DictLoader

Loader
example how a DictLoader is used to load a Dictionary of thematic data
Author

Karel Dieussaert

Published

January 7, 2026

DictLoader

This example shows a basic Loader example of the Aligner

from brdr.aligner import Aligner
from brdr.be.grb.enums import GRBType
from brdr.be.grb.loader import GRBActualLoader
from brdr.geometry_utils import geom_from_wkt

from brdr.loader import DictLoader

if __name__ == "__main__":
    """
    Example to load dat with a DictLoader, and also adding the properties to the result
    """
    # CREATE AN ALIGNER
    aligner = Aligner(crs="EPSG:31370")
    # ADD A THEMATIC POLYGON TO THEMATIC DICTIONARY and LOAD into Aligner
    id = "my_theme_id"
    wkt = "MULTIPOLYGON (((141894.30860000103712082 192030.99359999969601631, 141895.30039999634027481 192030.43499999865889549, 141916.94680000096559525 192018.24240000173449516, 141935.11959999799728394 192008.00629999861121178, 141938.46660000085830688 192006.36679999902844429, 141938.01630000025033951 192004.09310000017285347, 141936.13579999655485153 191997.07739999890327454, 141927.83190000057220459 191974.37330000102519989, 141924.48290000110864639 191964.26909999921917915, 141918.48789999634027481 191946.18219999969005585, 141897.54580000042915344 191892.38010000064969063, 141885.81229999661445618 191863.05810000002384186, 141883.73430000245571136 191858.32620000094175339, 141881.57930000126361847 191851.27149999886751175, 141880.02970000356435776 191844.1534000001847744, 141875.37430000305175781 191822.76999999955296516, 141875.30219999700784683 191822.43849999830126762, 141875.31379999965429306 191822.42839999869465828, 141875.32599999755620956 191822.41780000180006027, 141873.66679999977350235 191810.330400001257658, 141873.53939999639987946 191810.47140000015497208, 141824.16929999738931656 191865.09059999883174896, 141807.49130000174045563 191883.54179999977350235, 141806.4221000000834465 191884.39990000054240227, 141804.12879999727010727 191884.68789999932050705, 141802.18280000239610672 191884.19500000029802322, 141799.86169999837875366 191882.65430000051856041, 141797.43410000205039978 191879.70760000124573708, 141796.65850000083446503 191879.23550000041723251, 141795.6005999967455864 191879.14139999821782112, 141793.61129999905824661 191879.65769999846816063, 141791.29720000177621841 191881.41699999943375587, 141775.49679999798536301 191898.58630000054836273, 141762.63560000061988831 191912.02459999918937683, 141746.34480000287294388 191931.99890000000596046, 141739.71980000287294388 191941.33379999920725822, 141718.17260000109672546 191963.87099999934434891, 141707.33889999985694885 191974.1517999991774559, 141691.99570000171661377 191990.56419999897480011, 141682.7752000018954277 191999.544599998742342, 141680.59319999814033508 192001.8539000004529953, 141677.57880000025033951 192009.98910000175237656, 141677.57880000025033951 192024.72419999912381172, 141687.39810000360012054 192032.38650000095367432, 141710.51529999822378159 192048.2443000003695488, 141718.70740000158548355 192054.53130000084638596, 141792.93550000339746475 192111.49830000102519989, 141790.39050000160932541 192115.83139999955892563, 141771.93940000236034393 192145.56280000135302544, 141756.72280000150203705 192171.94390000030398369, 141750.73979999870061874 192185.24599999934434891, 141746.87189999967813492 192192.59640000015497208, 141744.20000000298023224 192197.03090000152587891, 141741.65730000287294388 192203.05490000173449516, 141738.98480000346899033 192211.15890000015497208, 141736.27549999952316284 192222.19130000099539757, 141734.4122999981045723 192232.36960000172257423, 141734.01650000363588333 192233.20839999988675117, 141733.4156000018119812 192233.86070000007748604, 141732.60769999772310257 192234.36529999971389771, 141731.69009999930858612 192234.72720000147819519, 141730.37650000303983688 192234.86820000037550926, 141727.74570000171661377 192234.72109999880194664, 141708.45470000058412552 192234.2791999988257885, 141680.76659999787807465 192234.02210000157356262, 141656.07289999723434448 192234.38520000129938126, 141629.07209999859333038 192233.29850000143051147, 141618.51850000023841858 192231.88439999893307686, 141603.34749999642372131 192228.10990000143647194, 141597.26340000331401825 192226.65670000016689301, 141592.5292000025510788 192225.30229999870061874, 141568.39479999989271164 192219.11100000143051147, 141554.37330000102519989 192214.54509999975562096, 141541.26389999687671661 192208.97210000082850456, 141529.27139999717473984 192202.5982000008225441, 141527.42339999973773956 192207.54980000108480453, 141526.95019999891519547 192208.81769999861717224, 141538.93559999763965607 192213.12829999998211861, 141551.88490000367164612 192218.77100000157952309, 141563.40359999984502792 192223.01000000163912773, 141568.94730000197887421 192224.56370000168681145, 141588.22190000116825104 192230.68310000002384186, 141599.65079999715089798 192233.4813000001013279, 141604.27549999952316284 192234.52360000088810921, 141612.59619999676942825 192236.39869999885559082, 141625.6671999990940094 192238.60940000042319298, 141640.7581000030040741 192239.92980000004172325, 141687.70180000364780426 192239.60280000045895576, 141708.04810000211000443 192239.78669999912381172, 141725.32699999958276749 192239.62020000070333481, 141736.44510000199079514 192239.40599999949336052, 141738.10999999940395355 192233.08529999852180481, 141744.46729999780654907 192208.94959999993443489, 141747.24490000307559967 192201.90359999984502792, 141750.76910000294446945 192194.79340000078082085, 141757.62960000336170197 192183.66059999912977219, 141765.30849999934434891 192168.3214000016450882, 141766.5877000018954277 192166.07369999960064888, 141779.35530000180006027 192173.02180000022053719, 141801.67239999771118164 192199.32169999927282333, 141831.40259999781847 192121.48229999840259552, 141831.68190000206232071 192121.63430000096559525, 141839.40439999848604202 192125.83700000122189522, 141847.05669999867677689 192105.80189999938011169, 141848.41929999738931656 192102.23440000042319298, 141852.30349999666213989 192092.06469999998807907, 141856.9464000016450882 192074.37240000069141388, 141855.61249999701976776 192070.44669999927282333, 141854.58449999988079071 192067.42040000110864639, 141851.04050000011920929 192056.98910000175237656, 141853.14169999957084656 192055.68459999933838844, 141855.8546999990940094 192053.98660000041127205, 141857.53270000219345093 192052.94280000030994415, 141865.36980000138282776 192048.06769999861717224, 141878.53230000287294388 192039.87979999929666519, 141877.30830000340938568 192037.69469999894499779, 141888.70970000326633453 192031.27279999852180481, 141889.19900000095367432 192031.21249999850988388, 141890.32779999822378159 192033.23580000177025795, 141894.30860000103712082 192030.99359999969601631),(141798.70589999854564667 192111.06799999997019768, 141801.00859999656677246 192106.89739999920129776, 141829.50010000169277191 192122.21880000084638596, 141800.99939999729394913 192196.83920000120997429, 141781.65139999985694885 192173.08870000019669533, 141767.0609000027179718 192165.24260000139474869, 141773.47720000147819519 192153.96849999949336052, 141785.42890000343322754 192135.11470000073313713, 141798.70589999854564667 192111.06799999997019768)))"
    thematic_dict = {id: geom_from_wkt(wkt)}
    loader = DictLoader(data_dict=thematic_dict)
    aligner.load_thematic_data(loader)

    # Load reference data: The actual GRB-parcels
    loader = GRBActualLoader(grb_type=GRBType.ADP, partition=1000, aligner=aligner)
    aligner.load_reference_data(loader)
    # EXECUTE THE ALIGNMENT
    relevant_distance = 5
    aligner_result = aligner.process(relevant_distances=[relevant_distance])
    process_results = aligner_result.get_results(aligner=aligner)
    # PRINT RESULTS IN WKT
    print("result: " + process_results[id][relevant_distance]["result"].wkt)
    print(
        "added area: " + process_results[id][relevant_distance]["result_diff_plus"].wkt
    )
    print(
        "removed area: " + process_results[id][relevant_distance]["result_diff_min"].wkt
    )
result: MULTIPOLYGON (((141793.03305738285 192111.57318755027, 141790.3904695799 192115.8313674, 141771.93939757044 192145.56282341923, 141756.72275755982 192171.94387944016, 141750.7398455493 192185.2460234514, 141746.87194155 192192.59642345, 141742.82794304754 192200.28146594105, 141741.65728554007 192203.0549194593, 141739.89092246076 192208.41111370703, 141741.73062030482 192209.46040323336, 141750.76909355 192194.79341545, 141757.6296375507 192183.66061543886, 141765.30848556166 192168.32135143687, 141766.5828628447 192166.08220142793, 141767.06086818798 192165.24256983973, 141773.4771895606 192153.96845541894, 141785.4289335803 192135.1146954095, 141796.82158037843 192114.48072135754, 141797.44501794243 192113.35157246463, 141797.60589956064 192113.06018915444, 141798.28997375924 192111.8212172532, 141798.70586158 192111.0679753901, 141801.0038013616 192106.90600920998, 141801.6800913187 192105.68115173615, 141801.83878959 192105.39373539, 141831.4026264999 192121.48230970738, 141831.6818585496 192121.634309734, 141839.40442161 192125.8370634101, 141847.05670962 192105.80186339008, 141848.41933292866 192102.23450520015, 141852.3034936202 192092.0647113792, 141856.94637363 192074.37242337025, 141855.6125496299 192070.44666336008, 141854.5844539097 192067.42036021277, 141851.04045362 192056.98912736, 141852.39097125817 192056.15064807926, 141853.1417016185 192055.68455135095, 141854.7287057269 192054.69134007988, 141855.85472564306 192053.9866313356, 141857.53274162 192052.94279135, 141865.36978304185 192048.0676644248, 141866.81699864636 192047.1673787629, 141866.85261363 192047.1452233501, 141876.4258150617 192041.1901092554, 141878.53229363996 192039.87975133993, 141877.30829364 192037.69466334017, 141888.31859764 192031.49306334008, 141888.70970164993 192031.27277534, 141889.19904564018 192031.21248734, 141890.32781365007 192033.23578333991, 141894.3086136501 192030.99360734, 141895.30042165008 192030.43495134008, 141916.94675767008 192018.24237533, 141935.11955768114 192008.0063433195, 141938.46662968 192006.36679132, 141938.01632567964 192004.09312731825, 141936.13581368045 191997.07744731105, 141927.83194167062 191974.37331930175, 141924.4854072258 191964.27673489143, 141924.4828872273 191964.26913198843, 141918.4878776708 191946.182215282, 141897.54579764695 191892.38010323196, 141885.81229364063 191863.05811922147, 141883.7343416403 191858.32621522073, 141881.57933363982 191851.27149521885, 141880.02970324864 191844.153422599, 141875.3021755949 191822.43851153212, 141875.3254736129 191822.41380685786, 141873.66682164 191810.33043919006, 141873.53940063194 191810.47136385995, 141824.16934979084 191865.09056700877, 141807.49126958975 191883.54183124026, 141806.4220855899 191884.39994324007, 141804.12877357993 191884.68794324, 141802.18278958995 191884.19501524014, 141799.86170159004 191882.65427923997, 141797.43405357964 191879.70759122973, 141796.65850158 191879.23552723, 141795.60058157754 191879.14144723074, 141793.61126957982 191879.6576712401, 141791.29722157962 191881.41703124024, 141775.4967735719 191898.58631124764, 141762.63558956096 191912.02464724876, 141746.34477355 191931.99891927, 141739.71981353982 191941.33383128035, 141718.17261353089 191963.87104728923, 141707.3389495192 191974.1517513007, 141691.99571750825 191990.5641673119, 141682.7752375 191999.5446473201, 141680.5932215 192001.85389532015, 141677.57882149992 192009.98906332042, 141677.57882149992 192024.7241673399, 141687.3980854999 192032.38650334, 141710.5152695301 192048.24429535, 141718.70739026685 192054.5313297759, 141749.1093688275 192077.86358368513, 141751.58060556688 192074.77973901018, 141791.9401655799 192108.53645538993, 141790.96320244708 192109.984659987, 141792.9354935801 192111.49831139, 141793.03305738285 192111.57318755027)), ((141725.3270455372 192239.62016747976, 141736.44512554 192239.40602347982, 141737.61955949193 192234.94725314045, 141737.64666152475 192234.8443595378, 141738.78980980895 192230.5043660842, 141733.4156215401 192233.86067948, 141732.60768554022 192234.36525547988, 141731.69005354 192234.72723948, 141731.4883200514 192234.8068185435, 141731.04332745058 192234.79662609258, 141730.37651752948 192234.86816748008, 141727.74573353713 192234.7210954799, 141708.45472552654 192234.2792394801, 141680.76659750368 192234.0220874799, 141656.07290149166 192234.38522348, 141629.07206946905 192233.29850347992, 141618.5185334608 192231.88435948017, 141603.34752545008 192228.10989548, 141597.26342945182 192226.65671147034, 141592.5292214508 192225.30234347016, 141568.39482142948 192219.1109834698, 141554.3732534101 192214.54509547, 141547.59936119211 192212.33929130126, 141541.2639414099 192208.97210346008, 141529.2713654 192202.5982154602, 141527.42342940008 192207.54976746, 141526.95021872703 192208.8177373759, 141533.91939805186 192211.32418877794, 141538.93562139958 192213.12826346981, 141551.88486940946 192218.77101546992, 141563.40358942084 192223.00999147023, 141568.94726942235 192224.5636554708, 141588.22189343965 192230.68307947982, 141599.6508214521 192233.48128748054, 141604.2754954486 192234.52358471838, 141612.59616546106 192236.39866348018, 141625.66720547026 192238.6093514799, 141640.75814947 192239.92979947993, 141687.70182951 192239.60275947992, 141708.04813351537 192239.7866954799, 141719.13516967124 192239.67984257417, 141725.3270455372 192239.62016747976)))
added area: GEOMETRYCOLLECTION EMPTY
removed area: MULTIPOLYGON (((141751.58060556688 192074.77973901018, 141749.10938305568 192077.86356592987, 141790.96320994748 192109.98464886873, 141791.9401655799 192108.53645538993, 141751.58060556688 192074.77973901018)), ((141792.93549358012 192111.49831138997, 141790.75651614694 192115.20822342104, 141790.77155240465 192115.21730295772, 141793.03305738285 192111.57318755027, 141792.93549358012 192111.49831138997)), ((141801.6723999977 192199.32169999927, 141831.40260148828 192121.48229609613, 141801.83878959 192105.39373539, 141801.6800913187 192105.68115173615, 141801.00856517133 192106.8973812718, 141829.5001000017 192122.21880000085, 141800.9993999973 192196.8392000012, 141781.65139999986 192173.0887000002, 141767.06086249847 192165.24257983334, 141766.5877020916 192166.0737011368, 141779.3553000018 192173.02180000022, 141801.6723999977 192199.32169999927)), ((141742.88068583191 192200.15653360618, 141742.89109347828 192200.16145755255, 141746.75789507607 192192.81315251102, 141746.74550845352 192192.8061695695, 141744.20000000298 192197.03090000153, 141742.88068583191 192200.15653360618)), ((141541.3799938568 192209.03378372776, 141547.59936119211 192212.33929130126, 141554.2501284672 192214.5050019014, 141554.25409109317 192214.49442252837, 141541.38488562324 192209.02353278152, 141541.3799938568 192209.03378372776)), ((141750.71698525207 192194.8985433813, 141750.70753692367 192194.89330513956, 141741.73062030482 192209.46040323336, 141739.8909476443 192208.4111280707, 141738.98480000347 192211.15890000015, 141736.27549999952 192222.191300001, 141734.4122999981 192232.36960000172, 141734.01650000364 192233.2083999999, 141733.41561533514 192233.86068335516, 141738.78981405136 192230.50436343474, 141744.4672999978 192208.94959999993, 141747.24490000308 192201.90359999985, 141750.71698525207 192194.8985433813)), ((141731.6901736623 192234.72719209458, 141731.09726907214 192234.79083364972, 141731.09756480512 192234.79786838643, 141731.4883200514 192234.8068185435, 141731.6901736623 192234.72719209458)))

← Back to examples - overview