@@ -132,8 +132,8 @@ def generate_derived_measures(
132132 if self .built_version .name == "ghsl_r2023a" :
133133 # No derived measures for GHSL
134134 return {}
135- elif self .built_version .name == "microsoft_v6" :
136- return _generate_microsoft_derived_measures (pm_data , self .feature_metadata )
135+ elif self .built_version .name in [ "microsoft_v6" , "microsoft_v7" ] :
136+ return _generate_microsoft_derived_measures (pm_data , self .feature_metadata , self . built_version . name )
137137 else :
138138 msg = f"Unknown built version: { self .built_version .name } "
139139 raise ValueError (msg )
@@ -256,18 +256,31 @@ def link_features(
256256def _generate_microsoft_derived_measures (
257257 pm_data : PopulationModelData ,
258258 feature_metadata : FeatureMetadata ,
259+ built_version_name : str ,
259260) -> dict [str , Path ]:
261+ feature_dict = {
262+ "microsoft_v6" : {
263+ "density" : "microsoft_v6_density" ,
264+ "height" : "ghsl_r2023a_height" ,
265+ "p_residential" : "ghsl_r2023a_proportion_residential" ,
266+ },
267+ "microsoft_v7" : {
268+ "density" : "microsoft_v7_density" ,
269+ "height" : "microsoft_v7_height" ,
270+ "p_residential" : "ghsl_r2023a_proportion_residential" ,
271+ },
272+ }[built_version_name ]
260273 density = pm_data .load_feature (
261- feature_name = "microsoft_v6_density" ,
274+ feature_name = feature_dict [ "density" ] ,
262275 ** feature_metadata .shared_kwargs ,
263276 )
264277 density_arr = density ._ndarray # noqa: SLF001
265278 height_arr = pm_data .load_feature ( # noqa: SLF001
266- feature_name = "ghsl_r2023a_height" ,
279+ feature_name = feature_dict [ "height" ] ,
267280 ** feature_metadata .shared_kwargs ,
268281 )._ndarray
269282 p_residential_arr = pm_data .load_feature ( # noqa: SLF001
270- feature_name = "ghsl_r2023a_proportion_residential" ,
283+ feature_name = feature_dict [ "p_residential" ] ,
271284 ** feature_metadata .shared_kwargs ,
272285 )._ndarray
273286
@@ -298,13 +311,13 @@ def _generate_microsoft_derived_measures(
298311 )
299312 pm_data .save_feature (
300313 out ,
301- feature_name = f"microsoft_v6_ { measure } " ,
314+ feature_name = f"{ built_version_name } _ { measure } " ,
302315 ** feature_metadata .shared_kwargs ,
303316 )
304317
305318 out_paths = {
306- f"microsoft_v6_ { m } " : pm_data .feature_path (
307- feature_name = f"microsoft_v6_ { m } " ,
319+ f"{ built_version_name } _ { m } " : pm_data .feature_path (
320+ feature_name = f"{ built_version_name } _ { m } " ,
308321 ** feature_metadata .shared_kwargs ,
309322 )
310323 for m in out_ops
0 commit comments