Skip to content

History / UpdateAll and cache internals

Revisions

  • ObjectVision/NetworkModel_PBL#178 HB-paar: ketenstap over stopblokken Een HB-paar verdeelt de haltes die zijn herkomst bereikt nu over zoveel stopblokken als nodig zijn voor hoogstens MaxStopBlockSize haltes per blok, elk blok in een eigen GeoDmsRun, en het proces dat de lijst van de blokken maakt, schrijft eerst het voor- en natransport. Zeven pagina's gingen voor een HB-paar nog uit van een enkel stopblok; ze beschrijven nu de nieuwe werking: Routes of an OD pair, Model parameters, Public transport, Script reference, UpdateAll and cache internals, How to run the model en Glossary. Routes of an OD pair geeft het geheugen van de ketenstap nu met twee voorbeelden in Y2026, de VU naar PBL en Hilversum naar de VU, en de voorbeelden met -WaitForMemoryGB vragen 15 GB in plaats van 50 en 40. De pagina's over de cache zeggen dat een blok van een paar pas als geschreven telt als ook de onderdelen van zijn ketens er zijn.

    @MaartenHilferink MaartenHilferink committed Nov 12, 2026
  • ObjectVision/NetworkModel_PBL#125 Uitvoermappen met het dagdeel in de naam De pagina's die de naam van een uitvoermap geven, noemen nu <Analysis_date>_<PartOfDay>_<OutputLabel>_..., met WW en CC zonder dagdeel. OutputLabel bevat het dagdeel niet meer: de voorbeelden met -set OutputLabel b2025_afternoon en b2025_evening zijn weg, en de uitleg bij OutputLabel noemt alleen nog de zoneset en een eigen variant.

    @MaartenHilferink MaartenHilferink committed Nov 9, 2026
  • ObjectVision/NetworkModel_PBL#162 Wiki volgt de code De pagina's beschrijven nu wat de code doet op de plekken waar de doorlichting van 8 november een verschil vond (ObjectVision/NetworkModel_PBL#162), en volgen ook ObjectVision/NetworkModel_PBL#155 en ObjectVision/NetworkModel_PBL#157. Zo heeft Y2015 een feed, telt een legs-cache pas als klaar met zijn .done, is een ander OutputLabel voor andere instellingen niet nodig, rekent de auto op TomTom altijd tijdsafhankelijk en dunt Car/Front niet uit. De blokdelen, TransferWalkTime en PTWaitTime, de kolommen van de gecombineerde bestanden, middernacht op de tijdas en het einde van het venster staan er zoals de code ze rekent. De Glossary heeft nieuwe termen: fare journey, event, time window, boarding fare, fixed fare per ride, merge variant, section, OD pair mode, block part, connection link, manual connection, public transport node, stop node en het front voor het natransport. Fare group, Pareto front, Signature, Congestion moment en Analysis date zijn rechtgezet. Koppen die met de termen botsten, zijn hernoemd met de links naar hun ankers, zoals Installation, Congestion moments, Combining the output files en The chains of the pair. Metingen zonder casus zijn weg of hebben hun casus en jaar gekregen. De pagina over de methode van voor 2025 is een archiefpagina met een verwijzing naar de huidige pagina's.

    @MaartenHilferink MaartenHilferink committed Nov 8, 2026
  • ObjectVision/NetworkModel_PBL#153 Tariefpagina volgt de code Public transport fares noemde DOVA als standaard van PriceMethod, terwijl de code 'Detailed' heeft, en beschreef de controle van de tarieftabellen en het concessiegebied van een rit anders dan de code ze rekent. De pagina beschrijft nu het concessiegebied per lijn en de regel voor ritten in het buitenland (ObjectVision/NetworkModel_PBL#150), de vaste prijs per rit in Price_S (ObjectVision/NetworkModel_PBL#55), de zes zoekstappen in de tabel, en de controle met FAIL en WARN en de grenzen in ModelParameters/Advanced (ObjectVision/NetworkModel_PBL#153). Ook staat erin dat de ketenvoeger altijd op prijs selecteert, dat de HSL tussen Rotterdam en Breda geen toeslag kost en wat TripSurchargeReport doet, en het voorbeeld van een ouder tariefjaar gebruikt een bestaand analysemoment. Model parameters krijgt de drie grenzen, Public transport de regel voor ritten in het buitenland, en UpdateAll and cache internals zegt dat de stap checks de gedetailleerde tabel toetst en alleen bij FAIL stopt.

    @MaartenHilferink MaartenHilferink committed Nov 8, 2026
  • Eenvoudiger Engels, termen volgens de Glossary en kleine fouten De zinnen op alle pagina's zijn korter en vaker actief gemaakt, met gewone woorden, zonder de inhoud te veranderen. De termen volgen de Glossary: OD pair, ride voor een rit, journey voor een OV-reis, analysis moment en analysis date in plaats van reference date, congestion moment, time window, cache, morning rush hour, en regional transport en NS fare network in plaats van R-net en L-net. Hersteld zijn namen en paden die in de code anders zijn (`_parquet_r3`, `connect_ne`, `CarPriceTag`, de cachenamen met hash, `NS_TariffUnits_matrix`, het pad van `IFF_Stations`), het menu Local machine Options voor de source data folder, de paginanamen in de Sidebar, een losse `</details>`, typefouten, en kale issuenummers die nu links zijn. Waar de wiki inhoudelijk van het model afwijkt, is de tekst niet aangepast; die verschillen worden eerst beoordeeld. De koppen zijn gebleven, zodat de ankers op andere pagina's blijven werken.

    @MaartenHilferink MaartenHilferink committed Nov 8, 2026
  • ObjectVision/NetworkModel_PBL#145 Uitvoer van WW en CC los van het dagdeel De pagina's over de uitvoermappen en de signaturen beschrijven dat een signatuur alleen instellingen bevat die de uitvoer veranderen: WW en CC hebben geen vertrekmoment, geen criteria van een front en met parquet geen kosten in hun signatuur, hun map heet naar de herkomstset en hun bestanden tt_alle_<n>of<N>. Met parquet staan de exportvlaggen niet in de signatuur, en de kosten van WW en CC staan in die van de samenvoeging. Model parameters geeft weer Ochtendspits als standaard van PartOfDay.

    @MaartenHilferink MaartenHilferink committed Nov 7, 2026
  • ObjectVision/NetworkModel_PBL#133 Tellingen zonder Python De tellingen over alle blokken maakt NetworkSetup/GenerateOutput/OD_Counts_FromFiles nu in een eigen GeoDmsRun na de laatste portie, in plaats van batch/OdTellingen.py. How to run the model vraagt daarom geen Python meer, en Output files, UpdateAll and cache internals en Components and merging noemen het nieuwe item.

    @MaartenHilferink MaartenHilferink committed Nov 7, 2026
  • ObjectVision/NetworkModel_PBL#143 Opgeruimd; e-bike als fietswaarden Model parameters beschrijft de container Advanced in ModelParameters.dms en een e-bike als run met andere fietswaarden, met Cycling_CostPerKm en de eigen uitvoermappen die dat oplevert. Private transport, Walking and cycling legs, Network optimisation, Data, How to run the model en UpdateAll and cache internals noemen de Fietstelweek, de weging naar inwoners en de aparte e-bikemodus niet meer. De lijst van maximale looptijden in Advanced noemt nu ook die van Cr en Cn (ObjectVision/NetworkModel_PBL#147).

    @MaartenHilferink MaartenHilferink committed Nov 7, 2026
  • ObjectVision/NetworkModel_PBL#145 Uitvoermap met de hash van de signatuur De pagina's noemen de uitvoermap nu <datum>_<label>_<component>_<hash> en voor de samenvoeging _Merged<nr>_<hash>: uitvoer met andere instellingen staat in een eigen map naast de eerdere, en MergeRunNr is alleen nog een volgnummer. Components and merging zegt welke instellingen in de signatuur van een component staan, dat elke run die signatuur hetzelfde berekent, en hoe de samenvoeging de map van elke component vindt en controleert. Bij de benen en de autocaches staat nu wat hun signatuur ook noemt: de OSM-netwerkcache met zijn hash, de knooppuntstraffen, de instellingen van het autonet en de ligging van herkomsten en bestemmingen.

    @MaartenHilferink MaartenHilferink committed Nov 6, 2026
  • ObjectVision/NetworkModel_PBL#133 Pagina stap voor stap opgeheven De pagina Running the model step by step beschreef de stappen van een run een tweede keer, via GeoDmsGui, naast How to run the model. Daardoor liep de pagina uit de pas: de stapnummers lagen een stap voor op MakeUnlinkedData, twee metingen weken af van de hardwaretabel, en de uitvoerstap per component met het samenvoegen als laatste stap ontbrak. Wie het model draait, heeft genoeg aan How to run the model. Wat alleen op die pagina stond, staat nu elders. How to run the model heeft onder Source data een paragraaf The GTFS feed, met de feeds per AnalysisMoment en hoe je een feed toevoegt. UpdateAll and cache internals heeft een paragraaf Running the steps in GeoDmsGui, met de items per stap en drie verschillen met een batchrun: de ketencache vraagt een OV-component als GuiComponent, de autocaches vragen Car of Merged, en na een merge in GeoDmsGui moet OdTellingen.py nog draaien. De datum in de cachenamen van OV_Knooppunten staat nu bij Destset op Model parameters, en Private transport zegt dat de exporttabellen de ketencache en de uitvoerstap niet nodig hebben. De zijbalk, Home en de links op andere pagina's zijn bijgewerkt.

    @MaartenHilferink MaartenHilferink committed Nov 2, 2026
  • ObjectVision/NetworkModel_PBL#133 UpdateAll: secties en bronstap De pagina's beschrijven UpdateAll.cmd zoals het nu werkt: de secties all, sources, checks, cars, chains en legs met -component, de bronstap die een bestaande cache overslaat, en de uitvoerstap als deel van all. De opties -nosources en verwante, en de secties output en merge zijn eruit. De engine komt uit GEODMS_EXE of de geïnstalleerde versie, en OUTPUT_SINGLE, CHAINCACHE_SINGLE en de pauzevlag zijn uit de beschrijving. UpdateAll and cache internals geeft de naam en signatuur van de OSM-netwerkcache, de items van checks, sources en all, de volgorde van de uitvoerstap en de logbestanden van de ketenstap zonder component. How to run the model begint nu bij de gewone manier van draaien: een dubbelklik op UpdateAll.cmd, die all draait en aan het eind op een toets wacht, of voor een lange run op ScheduleUpdateAll.cmd, die all als geplande taak start. Daarna volgen wat een run doet, het starten vanaf de opdrachtprompt met omgevingsvariabelen, en de andere secties, die elk een soort cache maken. De kop van het hoofdstuk heet nu Running the model with batch\UpdateAll.cmd; de links op andere pagina's wijzen naar de nieuwe ankers. Het voorbeeld van UpdateAll_status.txt begint nu met een run van all waarin alles al klaar was, gevolgd door de regels van een component die wel rekent.

    @MaartenHilferink MaartenHilferink committed Nov 2, 2026
  • ObjectVision/NetworkModel_PBL#141 GeoDMS 20.28.0 als standaardversie en als minimum How to run the model raadt nu GeoDMS 20.28.0 aan, met het installatiebestand. De pagina zegt dat de configuratie een oudere versie weigert, met de foutmelding erbij, omdat de geheugenpieken per component op 20.28.0 gemeten zijn, en dat 20.28.0 de snellere autocache van 20.27.0 bevat en minder geheugen gebruikt in pareto_optimal_eps (ObjectVision/GeoDMS#1327). De versie van GEODMS_VERSION, het voorbeeld voor een andere versie en de standaardengine van WriteODResults.ps1 en RunFrontValidation.ps1 op de andere pagina's zijn bijgewerkt, en de aanwijzingen voor engines ouder dan 20.26.0 op Routes of an OD pair zijn weg. De minimumversies per functie en de beschrijvingen van de runs blijven staan.

    @MaartenHilferink MaartenHilferink committed Nov 1, 2026
  • ObjectVision/NetworkModel_PBL#133 Autostap slaat een bestaande cache over UpdateAll and cache internals zei dat een vertrekmoment met een complete autocache niets kost. Write_Car rekent echter bij elke aanvraag, en pas sinds f470ef2 en 99902d0 vraagt UpdateAll eerst de toestand van de cache op en slaat een geschreven cache over. De pagina beschrijft nu die controle: signatuur plus woordenboek van de mmd, en in de modus per herkomst-bestemmingspaar ook de links. Running the model step by step en Private transport noemen het overslaan en hoe je een cache opnieuw laat maken. Daarnaast beschrijft de pagina wat batch\ReportUpdateAll.py sinds 1ad4dc7 laat zien: de stappen van de laatste run, met --since voor een run die gestopt en opnieuw gestart is, en de porties van een uitvoerstap samen.

    @MaartenHilferink MaartenHilferink committed Oct 31, 2026
  • ObjectVision/NetworkModel_PBL#133 Logbestanden per component Sinds UpdateAll de componenten van een variant na elkaar rekent, dragen de logbestanden van de porties de naam van de component: UpdateAll_chains_<component>_b<nnn>.txt en UpdateAll_output_<component>_b<nnn>.txt. UpdateAll and cache internals noemt ze nu zo.

    @MaartenHilferink MaartenHilferink committed Oct 30, 2026
  • ObjectVision/NetworkModel_PBL#88 Autocache in hele seconden en meters Private transport beschrijft de autocache nu zoals de code van e005a3f en 90042fb. De cache bewaart de reistijd in hele seconden (uint16) en de afstand in hele meters (uint32). Front bevat alle rijen van de cache, omdat de zoektocht CarFrontEpsilon al toepast en opnieuw uitdunnen op de afgeronde waarden routes zou laten vallen die er minder dan een seconde of een meter langs gaan. De naam van een autocache bevat nu ook de revisie, bijvoorbeeld DirectCar_TT2025-12_TD07h00m_b2025_b2025_r4_4ff0c20f.mmd, en de revisie is _r4; dat staat ook in UpdateAll and cache internals. How to run the model en Running the model step by step noemen de omvang op schijf van een autocache per vertrekmoment: 10,0 tot 10,7 GB, tegen 11,5 tot 12,2 GB ervoor.

    @MaartenHilferink MaartenHilferink committed Oct 30, 2026
  • ObjectVision/NetworkModel_PBL#122 Ketencache per stopblok als parquet De wiki beschrijft de ketencache nu zoals de code van 4b2dd50: elk stopblok schrijft een parquet met zstd, <n>of<N>.parquet, en daarna <n>of<N>.done, en pas met dat bestand telt een blok als geschreven. Dat staat in Public transport, Script reference, UpdateAll and cache internals, Routes of an OD pair, Running the model step by step en How to run the model. Bij de kolommen staat nu in welke eenheid ze zijn, en dat prijzen, tijden en afstanden als uint32 worden geschreven, omdat GDAL een uint16 als int16 schrijft. Het voorbeeld van de cachenaam is die van de huidige ketencache van de ochtendspits van 2025.

    @MaartenHilferink MaartenHilferink committed Oct 30, 2026
  • ObjectVision/NetworkModel_PBL#133 Variant en UpdateAll per component How to run the model beschrijft het instellen van de variant met een schakelaar per type voor- en natransport en per directe rit, met de vraag van PBL van oktober 2026 als voorbeeld, en hoe UpdateAll.cmd eerst de instellingen controleert, de componenten na elkaar rekent, complete componenten overslaat en ze samenvoegt. De logs met een regel per stap en de geplande taak zonder grens van 72 uur staan erbij. Model parameters vervangt Component, PreTransport, PostTransport, MergeOutput en MergeComponents door de variant, GuiComponent en Merge, en beschrijft AnalysisDay en MaxMemoryPerProcess_GB, waarmee de uitvoerstap zware herkomstblokken in delen rekent. Public transport, de Glossary, Routes of an OD pair, Running the model step by step, Script reference, UpdateAll and cache internals, Validating the Pareto front en Walking and cycling legs gebruiken dezelfde namen.

    @MaartenHilferink MaartenHilferink committed Oct 30, 2026
  • #133 Paden na de herindeling van de parameters De wiki volgt de indeling van de configuratie van 30 oktober. MinimiseCriteria, CongestionSpeed_DaySelection, AnalysisMomentPresets, de leveringen die elk analysemoment gebruikt en de vertrekmomenten (PartsOfDay en PT_DepartureMinutes_All) staan in ModelParameters, de componenten en de flextermen in Classifications, de tabellen van de ritopslag bij OVprijzen/NS, en PT_DepartureHours en CongestionTimes in Impl. De pagina Model parameters beschrijft de acht groepen van ModelParameters. De buurtsets volgen #126: elk CBS-jaar heeft zijn eigen buurten met de BAG van dat jaar, en een run kan Buurt2025 met Y2023 combineren. PriceMethod staat standaard op Detailed.

    @jipclaassens jipclaassens committed Oct 30, 2026
  • Tijd, geheugen en hervatten per stap van UpdateAll How to run the model zegt nu dat UpdateAll zijn stappen strikt na elkaar draait, ook de porties binnen de ketenstap en de uitvoerstap, zodat er altijd precies een GeoDmsRun rekent en het geheugen dat een run vraagt de piek van zijn zwaarste stap is en niet de som van de stappen. Dat stond er nergens, terwijl de ketenstap elders wel parallel heet, wat over de verdeling van het werk binnen een proces gaat. De paragraaf over hardware heeft nu een tabel met de gemeten tijd en geheugenpiek per stap, uit de logs van een complete ochtendspitsrun van 2025 (Buurt2025, 450 herkomstblokken, 500 halteblokken, GeoDMS 20.27.0) op een machine met 16 cores en 128 GB. De ketenstap is de zwaarste met 3,8 uur en 61 GB, de uitvoer van een OV-component kost 1,9 uur en 38 GB, en een autostore 2,9 uur per vertrekmoment, waar eerder alleen takes hours stond. ReportUpdateAll.py haalt dezelfde getallen uit de logs van een eigen run. Bij de OSM-stap stond 3,1 GB als geheugen, maar dat is de omvang van de cache op schijf: de stap zelf vraagt 21 GB. Nieuw is de paragraaf If a run is aborted, met per sectie de eenheid van werk en wat een afgebroken run opnieuw doet. De ketenstap hervat bij het eerste blok zonder cache, ook na een crash of een machine die zonder geheugen kwam, omdat een blok pas meetelt als GeoDMS er 0Dictionary.dms in heeft geschreven, na de data van het blok. De uitvoerstap hervat niet: hij leegt de uitvoermap en begint bij blok 1. Bij de benen schrijft het model de signature voor de parquet, dus na een afbreking daartussen geldt een basisset als geschreven terwijl zijn cache ontbreekt of half is, en loopt de volgende run daarop vast. UpdateAll and cache internals legt de toetsen per sectie uit; Running the model step by step en Script reference verwijzen ernaar.

    @MaartenHilferink MaartenHilferink committed Oct 29, 2026
  • GeoDMS 20.27.0 als standaardversie UpdateAll.cmd en de batchscripts gebruiken nu GeoDMS 20.27.0. How to run the model raadt die versie aan, met het installatiebestand en de reden: een autocache kost ongeveer de helft van de tijd (ObjectVision/GeoDMS#1327). Met 20.27.0 is GEODMS_EXE niet meer nodig; de voorbeelden voor de opdrachtprompt en de geplande taak laten hem daarom weg, en een punt eronder zegt wanneer je hem wel zet. De standaardengine van WriteODResults.ps1 en RunFrontValidation.ps1 op de andere paginas is bijgewerkt.

    @MaartenHilferink MaartenHilferink committed Oct 28, 2026
  • Links naar BlocksPerPortion wijzen naar de groepskop BlocksPerPortion staat op Model parameters in een ingeklapt paneel, en GitHub klapt dat niet open bij een link naar een kop erin. De twee links wijzen nu naar de kop General van de afgesproken en technische keuzes, boven dat paneel.

    @MaartenHilferink MaartenHilferink committed Oct 28, 2026
  • How to run the model in eenvoudig Engels, details naar eigen paginas How to run the model is herschreven voor wie het model draait: korte zinnen en alleen wat een gebruiker nodig heeft. Dat is installeren, een run instellen, UpdateAll.cmd starten, wat elke sectie maakt, waar de uitvoer staat, de logs, de geplande taak en de hardware. Details die een gebruiker soms nodig heeft, staan in openklapbare panelen: wanneer een sectie opnieuw moet, welke GeoDMS-functies welke versie vragen, meer over de geplande taak en hoe je de geheugenpiek verlaagt. De rest is letterlijk verplaatst. De stappen 1 tot 6 staan op de nieuwe pagina Running the model step by step, de tellingen, de mediaan en het samenvoegen van de uitvoer op de nieuwe pagina Output files. De items per sectie en de namen van de caches staan op UpdateAll and cache internals. Links uit andere paginas wijzen naar de nieuwe plek; Home en de zijbalk noemen de nieuwe paginas, en de inleiding van Home is ook eenvoudiger geschreven.

    @MaartenHilferink MaartenHilferink committed Oct 28, 2026
  • Ontwikkelaarsdelen van How to run the model naar eigen paginas How to run the model is voor wie het model draait. De vergelijking van twee runs staat nu op Validating the Pareto front. De zoekvolgorde van de engine, de vijf stappen van de sectie output, de hulpbestanden in batch\log en de controle van de cachehandtekening staan op UpdateAll and cache internals. Op How to run the model blijft wat een gebruiker nodig heeft: dat output de uitvoermap van de component eerst leegmaakt, waar de logs van een stap staan, en verwijzingen naar de nieuwe paginas. Beide paginas staan in de zijbalk onder How to run the model.

    @MaartenHilferink MaartenHilferink committed Oct 28, 2026