Skip to content

History / Deepening III, Python and GeoDMS side by side

Revisions

  • Deepening III: the OD pair key with combine_unit_uint64 and combine_data OD_key is now combine_data(OD_code, From_Place_rel, To_Place_rel), a relation to OD_code := combine_unit_uint64(Places, Places), instead of origin times #Places plus destination computed by hand, as in NetworkModel_PBL. The skeleton declares OD_code next to Places, and the text, the translation table and exercise 3 follow. Checked by assembling the code blocks of the page into one configuration and running it with GeoDmsRun 20.22.1: both files equal the same counts in Python. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

    @MaartenHilferink MaartenHilferink committed Oct 4, 2026
  • Deepening III: Rijen with union_data and sum_uint64, no needless conversions As in NetworkModel_PBL bee7f55: the rows per kind are now gathered with union_data(Classifications/OD_Tellingen_Soort, #R, sum_uint64(IsKeten), ...) like the group tables, so Soort_nr and Soort_rel are gone; sum_uint64(x) replaces sum(uint64(x)), and #R, #Paren and #UniekeParen need no uint64(). The text explains which conversion is still needed (uint64(#Places) in OD_key) and notes that the timings were measured with the first version. Checked again by assembling the code blocks of the page into one configuration and running it with GeoDmsRun 20.22.1: both files equal the same counts in Python. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

    @MaartenHilferink MaartenHilferink committed Oct 4, 2026
  • Deepening III: group tables with union_data, and a self-contained example The group tables Paren_Telling and Paren_Samen are now filled with union_data(Classifications/OD_Tellingen_Groep, ...), one count per group in the order of the classification, as in NetworkModel_PBL since ec53e1d; Groep_nr is gone. The page now also defines the two classifications and gives a skeleton of the model around the counts, with test data, so that the code blocks of the page together form a configuration that runs as it is. Exercise 1 asks to assemble and run it and gives the expected two files. Checked by assembling the code blocks of the page into one configuration and running it with GeoDmsRun 20.22.1: both files equal the same counts in Python. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

    @MaartenHilferink MaartenHilferink committed Oct 4, 2026
  • Deepening III: Python and GeoDMS side by side One aggregation from NetworkModel_PBL (rows per kind of option and unique origin-destination pairs per group, over 450 blocks and four departure moments, 173 million rows), written as a Python script on the output files and as GeoDMS code inside the output step. The page shows both implementations, a translation table of the idioms, and run times measured on 4 October 2026: per block 0.73 to 1.03 s in Python (about half of it parsing CSV) against 54 ms in the GeoDMS; for the whole morning 65 s with 8 Python processes against about 25 s of operator time in the output step. Linked from the sidebar, Home, Module 2D and Deepening II. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

    @MaartenHilferink MaartenHilferink committed Oct 4, 2026