From b8a2f0813458f6d54a273d2a83315611f1516e88 Mon Sep 17 00:00:00 2001 From: Maarten Hilferink Date: Fri, 21 Feb 2025 21:09:01 +0100 Subject: [PATCH] https://github.com/ObjectVision/RSopen/issues/230 --- cfg/main/BaseData/StateBasisjaar/Wonen.dms | 20 ++++++------- cfg/main/BaseData/Verdeling_VSSH.dms | 28 +++++++++---------- cfg/main/SourceData/Vastgoed/BAG.dms | 4 +-- .../SourceData/Vastgoed/BAG/Uitsmeer_key.dms | 1 + .../Beschikbaarheden/Zeef_Wonen_perOP_T.dms | 2 +- .../Densities/MaxWoningDichtheid_T.dms | 4 +-- 6 files changed, 30 insertions(+), 29 deletions(-) diff --git a/cfg/main/BaseData/StateBasisjaar/Wonen.dms b/cfg/main/BaseData/StateBasisjaar/Wonen.dms index 08117d4..ff29274 100644 --- a/cfg/main/BaseData/StateBasisjaar/Wonen.dms +++ b/cfg/main/BaseData/StateBasisjaar/Wonen.dms @@ -18,24 +18,24 @@ container Wonen // Woningen for_each_nedv( Classifications/Vastgoed/WP4/name , replace( - AsList('Verdeling_VSSH/Uitsmeren_WP4_'+Classifications/Vastgoed/VSSH/name +'/@WP@/Aantal_Woningen_per_AdminDomain',' + ') + AsList('Verdeling_VSSH/Uitsmeren_WP4_'+Classifications/Vastgoed/VSSH/name +'/@WP@/Aantal_Woningen_per_CompactedAdminDomain',' + ') , '@WP@' , Classifications/Vastgoed/WP4/name) - , AdminDomain + , CompactedAdminDomain , Woning ) { - attribute Totaal (AdminDomain) := ='Add('+AsItemList(Classifications/Vastgoed/WP4/name)+')'; + attribute Totaal (CompactedAdminDomain) := ='Add('+AsItemList(Classifications/Vastgoed/WP4/name)+')'; } container WP2_opp := for_each_nedv( Classifications/Vastgoed/WP2/name , replace( - AsList('Verdeling_VSSH/Uitsmeren_WP2_'+Classifications/Vastgoed/VSSH/name +'/@WP@/VBOopp_per_AdminDomain ',' + ') + AsList('Verdeling_VSSH/Uitsmeren_WP2_'+Classifications/Vastgoed/VSSH/name +'/@WP@/VBOopp_per_CompactedAdminDomain ',' + ') , '@WP@' , Classifications/Vastgoed/WP2/name) - , AdminDomain + , CompactedAdminDomain , Meter2 ); @@ -43,10 +43,10 @@ container Wonen // Woningen for_each_nedv( Classifications/Vastgoed/WP4/name , replace( - AsList('Verdeling_VSSH/Uitsmeren_WP4_'+Classifications/Vastgoed/VSSH/name +'/@WP@/VBOopp_per_AdminDomain ',' + ') + AsList('Verdeling_VSSH/Uitsmeren_WP4_'+Classifications/Vastgoed/VSSH/name +'/@WP@/VBOopp_per_CompactedAdminDomain ',' + ') , '@WP@' , Classifications/Vastgoed/WP4/name) - , AdminDomain + , CompactedAdminDomain , Meter2 ); @@ -55,13 +55,13 @@ container Wonen // Woningen Classifications/Vastgoed/WP1/name , 'WP4/Totaal' , 'not(all(IsNull(this)))' - , AdminDomain + , CompactedAdminDomain , Woning ) { - attribute Per_AllocDomain (AllocDomain) := sum(Totaal, AdminDomain/AllocDomain_rel); + attribute Per_CompactedAllocDomain (CompactedAllocDomain) := sum(Totaal, CompactedAdminDomain/CompactedAllocDomain_rel); } //nodig voor lu map - attribute Footprint (AdminDomain) := Verdeling_VSSH/Footprint_per_AdminDomain/Totaal; + attribute Footprint (CompactedAdminDomain) := Verdeling_VSSH/Footprint_per_CompactedAdminDomain/Totaal; } \ No newline at end of file diff --git a/cfg/main/BaseData/Verdeling_VSSH.dms b/cfg/main/BaseData/Verdeling_VSSH.dms index efcb581..037e2a9 100644 --- a/cfg/main/BaseData/Verdeling_VSSH.dms +++ b/cfg/main/BaseData/Verdeling_VSSH.dms @@ -14,7 +14,7 @@ container Verdeling_VSSH for_each_nedv( Vastgoed/WP2xVSSH/name , 'Uitsmeren_WP2_'+Vastgoed/WP2xVSSH/VSSH_name+'/'+Vastgoed/WP2xVSSH/WP_name+'/Aantal_Woningen_per_AdminDomain[woning]' - , AdminDomain + , CompactedAdminDomain , woning ) { @@ -24,15 +24,15 @@ container Verdeling_VSSH attribute Totaal_perRegio (SourceData/RegioIndelingen/NVM) := sum(Totaal, SourceData/RegioIndelingen/NVM/per_AdminDomain); } - container Footprint_per_AdminDomain := + container Footprint_per_CompactedAdminDomain := for_each_nedv( Vastgoed/WP2xVSSH/name - , 'Uitsmeren_WP2_'+Vastgoed/WP2xVSSH/VSSH_name+'/'+Vastgoed/WP2xVSSH/WP_name+'/Footprint_per_AdminDomain[meter2]' - , AdminDomain + , 'Uitsmeren_WP2_'+Vastgoed/WP2xVSSH/VSSH_name+'/'+Vastgoed/WP2xVSSH/WP_name+'/Footprint_per_CompactedAdminDomain[meter2]' + , CompactedAdminDomain , meter2 ) { - attribute Totaal (AdminDomain) := =AsList(Vastgoed/WP2xVSSH/name, ' + '); + attribute Totaal (CompactedAdminDomain) := =AsList(Vastgoed/WP2xVSSH/name, ' + '); } unit per_Gemeente := ='SourceData/RegioIndelingen/cbs/Y'+string(ModelParameters/Model_Startyear)+'/gemeente' @@ -62,17 +62,17 @@ container Verdeling_VSSH attribute VSSH_cond (pand_domain); // - attribute footprint_pand_perVSSH_domain (pand_perVSSH_domain) := ='pand_perVSSH_domain/'+WP_type+'_rel == Vastgoed/'+WP_type+'/V/'+WP_str+' ? pand_perVSSH_domain/footprint : 0[meter2]'; - attribute footprint_per_pand_domain (pand_domain) := recollect_by_cond(VSSH_cond, footprint_pand_perVSSH_domain, 0[meter2]); - attribute footprint_per_AdminDomain (AdminDomain) := sum(footprint_per_pand_domain[pand_domain/ToedelingsMatrix/pand_rel] * pand_domain/ToedelingsMatrix/ToedelingPand, pand_domain/ToedelingsMatrix/AdminDomain_rel); + attribute footprint_pand_perVSSH_domain (pand_perVSSH_domain) := ='pand_perVSSH_domain/'+WP_type+'_rel == Vastgoed/'+WP_type+'/V/'+WP_str+' ? pand_perVSSH_domain/footprint : 0[meter2]'; + attribute footprint_per_pand_domain (pand_domain) := recollect_by_cond(VSSH_cond, footprint_pand_perVSSH_domain, 0[meter2]); + attribute footprint_per_CompactedAdminDomain (CompactedAdminDomain) := sum(footprint_per_pand_domain[pand_domain/ToedelingsMatrix/pand_rel] * pand_domain/ToedelingsMatrix/ToedelingPand, pand_domain/ToedelingsMatrix/CompactedAdminDomain_rel); - attribute VBOopp_per_pand_perVSSH_domain (pand_perVSSH_domain) := ='pand_perVSSH_domain/'+WP_type+'_rel == Vastgoed/'+WP_type+'/V/'+WP_str+' ? pand_perVSSH_domain/VBOopp_inPand_'+WP_str+' : 0[meter2]'; - attribute VBOopp_per_pand_domain (pand_domain) := recollect_by_cond(VSSH_cond, VBOopp_per_pand_perVSSH_domain, 0[meter2]); - attribute VBOopp_per_AdminDomain (AdminDomain) := sum(VBOopp_per_pand_domain[pand_domain/ToedelingsMatrix/pand_rel] * pand_domain/ToedelingsMatrix/ToedelingPand, pand_domain/ToedelingsMatrix/AdminDomain_rel); + attribute VBOopp_per_pand_perVSSH_domain (pand_perVSSH_domain) := ='pand_perVSSH_domain/'+WP_type+'_rel == Vastgoed/'+WP_type+'/V/'+WP_str+' ? pand_perVSSH_domain/VBOopp_inPand_'+WP_str+' : 0[meter2]'; + attribute VBOopp_per_pand_domain (pand_domain) := recollect_by_cond(VSSH_cond, VBOopp_per_pand_perVSSH_domain, 0[meter2]); + attribute VBOopp_per_CompactedAdminDomain (CompactedAdminDomain) := sum(VBOopp_per_pand_domain[pand_domain/ToedelingsMatrix/pand_rel] * pand_domain/ToedelingsMatrix/ToedelingPand, pand_domain/ToedelingsMatrix/CompactedAdminDomain_rel); - attribute Aantal_woningen_per_pand_perVSSH_domain(pand_perVSSH_domain) := ='pand_perVSSH_domain/'+WP_type+'_rel == Vastgoed/'+WP_type+'/V/'+WP_str+' ? pand_perVSSH_domain/count_vbo_pand_woon[Woning] : 0[Woning]'; - attribute Aantal_woningen_per_pand_domain (pand_domain) := recollect_by_cond(VSSH_cond, Aantal_woningen_per_pand_perVSSH_domain, 0[Woning]); - attribute Aantal_woningen_per_AdminDomain (AdminDomain) := sum(Aantal_woningen_per_pand_domain[pand_domain/ToedelingsMatrix/pand_rel] * pand_domain/ToedelingsMatrix/ToedelingPand, pand_domain/ToedelingsMatrix/AdminDomain_rel); + attribute Aantal_woningen_per_pand_perVSSH_domain (pand_perVSSH_domain) := ='pand_perVSSH_domain/'+WP_type+'_rel == Vastgoed/'+WP_type+'/V/'+WP_str+' ? pand_perVSSH_domain/count_vbo_pand_woon[Woning] : 0[Woning]'; + attribute Aantal_woningen_per_pand_domain (pand_domain) := recollect_by_cond(VSSH_cond, Aantal_woningen_per_pand_perVSSH_domain, 0[Woning]); + attribute Aantal_woningen_per_CompactedAdminDomain(CompactedAdminDomain) := sum(Aantal_woningen_per_pand_domain[pand_domain/ToedelingsMatrix/pand_rel] * pand_domain/ToedelingsMatrix/ToedelingPand, pand_domain/ToedelingsMatrix/CompactedAdminDomain_rel); } } \ No newline at end of file diff --git a/cfg/main/SourceData/Vastgoed/BAG.dms b/cfg/main/SourceData/Vastgoed/BAG.dms index 57861c4..3cab787 100644 --- a/cfg/main/SourceData/Vastgoed/BAG.dms +++ b/cfg/main/SourceData/Vastgoed/BAG.dms @@ -88,8 +88,8 @@ container BAG : using = "Classifications/Vastgoed" attribute pand_hoogte := ../pand_hoogte/hoogte_cm[PHN_rel]; attribute pand_hoogte_maaiveld := ../pand_hoogte/hoogte_maaiveld[PHN_rel]; - unit ToedelingsMatrix := = 'Uitsmeer_key/AdminDomain_in_all_panden'; - unit ToedelingsMatrix_AllocDomain := = 'Uitsmeer_key/AllocDomain_in_all_panden'; + unit ToedelingsMatrix := Uitsmeer_key/AdminDomain_in_all_panden; + unit ToedelingsMatrix_AllocDomain := Uitsmeer_key/AllocDomain_in_all_panden; #include container Counts diff --git a/cfg/main/SourceData/Vastgoed/BAG/Uitsmeer_key.dms b/cfg/main/SourceData/Vastgoed/BAG/Uitsmeer_key.dms index c5faafa..dba2436 100644 --- a/cfg/main/SourceData/Vastgoed/BAG/Uitsmeer_key.dms +++ b/cfg/main/SourceData/Vastgoed/BAG/Uitsmeer_key.dms @@ -63,6 +63,7 @@ container Uitsmeer_key // truc om na de unique de bijborende AdminDomain_rel op te zoeken. attribute AdminDomain_rel := point_yx(int32(AdminDomain_id_rel / AdminDomain/nr_cols), int32(AdminDomain_id_rel % AdminDomain/nr_cols), AdminDomain), Descr = ""; + attribute CompactedAdminDomain_rel := CompactedAdminDomain/per_AdminDomain[AdminDomain_rel]; attribute pandAdmin_keyset_rel := combine_data(pand_grid_5m_tabel/pandAdmin_keyset, pand_rel, AdminDomain_id_rel); attribute ToedelingPand := sum(pand_grid_5m_tabel/ToedelingPand, pand_grid_5m_tabel/AdminDomain_in_all_panden_rel) diff --git a/cfg/main/Templates/Beschikbaarheden/Zeef_Wonen_perOP_T.dms b/cfg/main/Templates/Beschikbaarheden/Zeef_Wonen_perOP_T.dms index 4b46e0c..14ca065 100644 --- a/cfg/main/Templates/Beschikbaarheden/Zeef_Wonen_perOP_T.dms +++ b/cfg/main/Templates/Beschikbaarheden/Zeef_Wonen_perOP_T.dms @@ -26,7 +26,7 @@ Template Zeef_Wonen_perOP_T parameter MinimumExploitatieSaldo := ='VariantParameters/VariantK/MinimumExploitatieSaldo[VariantParameters/VariantK/V/'+Variant_name+']'; attribute PotentieleState (CompactedAllocDomain) := sum(Dichtheid_ha * AdminDomain/NrHaPerCell / float32(Beschikbaar_src), CompactedAdminDomain/CompactedAllocDomain_rel); - attribute StateBasisjaar (CompactedAllocDomain) := sum(collect_by_cond(CompactedAdminDomain, AdminDomain/IsCompactedDomain, BaseData/StartState/StateBasisjaar/Src0/Wonen/WP1s/Totaal) / float32(Beschikbaar_src), CompactedAdminDomain/CompactedAllocDomain_rel); + attribute StateBasisjaar (CompactedAllocDomain) := sum(BaseData/StartState/StateBasisjaar/Src0/Wonen/WP1s/Totaal / float32(Beschikbaar_src), CompactedAdminDomain/CompactedAllocDomain_rel); container Impl { diff --git a/cfg/main/Templates/Densities/MaxWoningDichtheid_T.dms b/cfg/main/Templates/Densities/MaxWoningDichtheid_T.dms index 780d7b3..093f8ca 100644 --- a/cfg/main/Templates/Densities/MaxWoningDichtheid_T.dms +++ b/cfg/main/Templates/Densities/MaxWoningDichtheid_T.dms @@ -32,8 +32,8 @@ Template MaxWoningDichtheid_T 1f ); - attribute Src (AdminDomain) := BaseData/StartState/StateBasisjaar/Src0/Wonen/WP1s/Totaal; - attribute Dichtheid_AllocDomain (AllocDomain) := sum(Src, AdminDomain/AllocDomain_rel) / (float32(IsWoonlocatie) * AllocDomain/NrHaPerCell); + attribute Src (CompactedAdminDomain) := BaseData/StartState/StateBasisjaar/Src0/Wonen/WP1s/Totaal; + attribute Dichtheid_AllocDomain (AllocDomain) := sum(Src, CompactedAdminDomain/AllocDomain_rel) / (float32(IsWoonlocatie) * AllocDomain/NrHaPerCell); attribute Dichtheid_Buurt (AllocDomain) := ='mean(Dichtheid_AllocDomain, Regioindelingen/cbs/Y'+string(ModelParameters/Model_Startyear)+'/buurt/per_AllocDomain)[Regioindelingen/cbs/Y'+string(ModelParameters/Model_Startyear)+'/Buurt/per_AllocDomain]'; attribute Dichtheid_Wijk (AllocDomain) := ='mean(Dichtheid_AllocDomain, Regioindelingen/cbs/Y'+string(ModelParameters/Model_Startyear)+'/Wijk/per_AllocDomain)[Regioindelingen/cbs/Y'+string(ModelParameters/Model_Startyear)+'/Wijk/per_AllocDomain]'; attribute Dichtheid_Gemeente (AllocDomain) := ='mean(Dichtheid_AllocDomain, Regioindelingen/cbs/Y'+string(ModelParameters/Model_Startyear)+'/Gemeente/per_AllocDomain)[Regioindelingen/cbs/Y'+string(ModelParameters/Model_Startyear)+'/Gemeente/per_AllocDomain]';