Skip to content

Commit

Permalink
remove force data type and update classifier
Browse files Browse the repository at this point in the history
  • Loading branch information
weiqi-tori authored and chrowe committed Aug 29, 2024
1 parent 2058d15 commit cfa316a
Show file tree
Hide file tree
Showing 5 changed files with 14 additions and 14 deletions.
10 changes: 5 additions & 5 deletions city_metrix/layers/smart_surface_lulc.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,12 @@ def get_data(self, bbox):

# Open space
open_space_osm = OpenStreetMap(osm_class=OpenStreetMapClass.OPEN_SPACE_HEAT).get_data(bbox).to_crs(crs).reset_index()
open_space_osm['Value'] = np.uint16(10)
open_space_osm['Value'] = 10


# Water
water_osm = OpenStreetMap(osm_class=OpenStreetMapClass.WATER).get_data(bbox).to_crs(crs).reset_index()
water_osm['Value'] = np.uint16(20)
water_osm['Value'] = 20


# Roads
Expand All @@ -60,7 +60,7 @@ def get_data(self, bbox):
roads_osm['lanes'] = roads_osm['lanes'].fillna(roads_osm['avg_lanes'])

# Add value field (30)
roads_osm['Value'] = np.uint16(30)
roads_osm['Value'] = 30

# Buffer roads by lanes * 10 ft (3.048 m)
# https://nacto.org/publication/urban-street-design-guide/street-design-elements/lane-width/#:~:text=wider%20lane%20widths.-,Lane%20widths%20of%2010%20feet%20are%20appropriate%20in%20urban%20areas,be%20used%20in%20each%20direction
Expand All @@ -74,7 +74,7 @@ def get_data(self, bbox):
)
else:
# Add value field (30)
roads_osm['Value'] = np.uint16(30)
roads_osm['Value'] = 30


# Building
Expand Down Expand Up @@ -113,7 +113,7 @@ def get_data(self, bbox):

# Parking
parking_osm = OpenStreetMap(osm_class=OpenStreetMapClass.PARKING).get_data(bbox).to_crs(crs).reset_index()
parking_osm['Value'] = np.uint16(50)
parking_osm['Value'] = 50


# combine features: open space, water, road, building, parking
Expand Down
Binary file modified city_metrix/models/building_classifier/building_classifier.pkl
Binary file not shown.
14 changes: 7 additions & 7 deletions city_metrix/models/building_classifier/building_classifier.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,8 @@ def get_data_esa_reclass(self, bbox, crs):
# Perform the reclassification
reclassified_esa = reclassify(esa_world_cover, bins=list(reclass_map.keys()), new_values=list(reclass_map.values()))

# Convert to int8 and chunk the data for Dask processing
reclassified_esa = reclassified_esa.astype(np.uint16).chunk({'x': 512, 'y': 512})
# Chunk the data for Dask processing
reclassified_esa = reclassified_esa.chunk({'x': 512, 'y': 512})

reclassified_esa = reclassified_esa.rio.write_crs(esa_world_cover.rio.crs, inplace=True)

Expand Down Expand Up @@ -79,8 +79,8 @@ def get_data_ulu(self, bbox, crs, snap_to):
for from_val, to_val in mapping.items():
ulu_lulc = ulu_lulc.where(ulu_lulc != from_val, to_val)

# Convert to int8 and chunk the data for Dask processing
ulu_lulc = ulu_lulc.astype(np.uint16).chunk({'x': 512, 'y': 512})
# Chunk the data for Dask processing
ulu_lulc = ulu_lulc.chunk({'x': 512, 'y': 512})

####### 1-Non-residential as default
# 0-Unclassified as nodata
Expand Down Expand Up @@ -112,7 +112,7 @@ def get_data_anbh(self, bbox, snap_to):

def rasterize_polygon(self, gdf, snap_to):
if gdf.empty:
raster = np.full(snap_to.shape, 0, dtype=np.uint16)
raster = np.full(snap_to.shape, 0)
raster = xr.DataArray(raster, dims=snap_to.dims, coords=snap_to.coords)

return raster.rio.write_crs(snap_to.rio.crs, inplace=True)
Expand All @@ -121,7 +121,7 @@ def rasterize_polygon(self, gdf, snap_to):
vector_data=gdf,
measurements=["Value"],
like=snap_to,
fill=np.uint16(0)
fill=0
).Value

return raster.rio.reproject_match(snap_to)
Expand Down Expand Up @@ -149,7 +149,7 @@ def building_classifier_tree(self):
# set classifier parameters
clf = DecisionTreeClassifier(max_depth=5)
# encode labels
buildings_sample['Slope_encoded'] = buildings_sample['Slope'].map({'low': np.uint16(42), 'high': np.uint16(40)})
buildings_sample['Slope_encoded'] = buildings_sample['Slope'].map({'low': 42, 'high': 40})

# Select these rows for the training set
build_train = buildings_sample[buildings_sample['Model']=='training']
Expand Down
2 changes: 1 addition & 1 deletion environment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ dependencies:
- geemap=0.32.0
- pip=23.3.1
- boto3=1.34.124
- scikit-learn=1.5.0
- scikit-learn=1.5.1
- pip:
- git+https://github.com/isciences/exactextract
- overturemaps==0.6.0
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,6 @@
"boto3",
"exactextract",
"overturemaps",
"scikit-learn>=1.5.0",
"scikit-learn>=1.5.1",
],
)

0 comments on commit cfa316a

Please sign in to comment.