<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v3.0 20080202//EN" "https://jats.nlm.nih.gov/nlm-dtd/publishing/3.0/journalpublishing3.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article" dtd-version="3.0" xml:lang="en">
<front>
<journal-meta>
<journal-id journal-id-type="publisher">ISPRS-Archives</journal-id>
<journal-title-group>
<journal-title>The International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences</journal-title>
<abbrev-journal-title abbrev-type="publisher">ISPRS-Archives</abbrev-journal-title>
<abbrev-journal-title abbrev-type="nlm-ta">Int. Arch. Photogramm. Remote Sens. Spatial Inf. Sci.</abbrev-journal-title>
</journal-title-group>
<issn pub-type="epub">2194-9034</issn>
<publisher><publisher-name>Copernicus Publications</publisher-name>
<publisher-loc>Göttingen, Germany</publisher-loc>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.5194/isprs-archives-L-4-W1-2026-49-2026</article-id>
<title-group>
<article-title>Open-Source Spatiotemporal Traffic Congestion Analysis at City Scale: A Reproducible Python Pipeline Combining PySAL, OSMnx, and Multilevel Modeling</article-title>
</title-group>
<contrib-group><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Hadi</surname>
<given-names>Firman</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
</contrib>
<contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Abdullah</surname>
<given-names>Fauzan</given-names>
</name>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
</contrib>
<contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Wahyuddin</surname>
<given-names>Yasser</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
</contrib>
<contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Sabri</surname>
<given-names>L.M.</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
</contrib>
</contrib-group><aff id="aff1">
<label>1</label>
<addr-line>Department of Geodetic Engineering, Faculty of Engineering, Universitas Diponegoro, Semarang, Indonesia</addr-line>
</aff>
<aff id="aff2">
<label>2</label>
<addr-line>Department of Statistics, Faculty of Sciences and Mathematics, Universitas Diponegoro, Semarang, Indonesia</addr-line>
</aff>
<pub-date pub-type="epub">
<day>29</day>
<month>08</month>
<year>2026</year>
</pub-date>
<volume>L-4/W1-2026</volume>
<fpage>49</fpage>
<lpage>56</lpage>
<permissions>
<copyright-statement>Copyright: &#x000a9; 2026 Firman Hadi et al.</copyright-statement>
<copyright-year>2026</copyright-year>
<license license-type="open-access">
<license-p>This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this licence, visit <ext-link ext-link-type="uri"  xlink:href="https://creativecommons.org/licenses/by/4.0/">https://creativecommons.org/licenses/by/4.0/</ext-link></license-p>
</license>
</permissions>
<self-uri xlink:href="https://isprs-archives.copernicus.org/articles/L-4-W1-2026/49/2026/isprs-archives-L-4-W1-2026-49-2026.html">This article is available from https://isprs-archives.copernicus.org/articles/L-4-W1-2026/49/2026/isprs-archives-L-4-W1-2026-49-2026.html</self-uri>
<self-uri xlink:href="https://isprs-archives.copernicus.org/articles/L-4-W1-2026/49/2026/isprs-archives-L-4-W1-2026-49-2026.pdf">The full text article is available as a PDF file from https://isprs-archives.copernicus.org/articles/L-4-W1-2026/49/2026/isprs-archives-L-4-W1-2026-49-2026.pdf</self-uri>
<abstract>
<p>City-scale spatiotemporal traffic analysis requires a long workflow&amp;mdash;raw probe-data ingestion, segment matching to a stable reference network, temporal aggregation, exploratory spatial statistics, network-topology analysis, multilevel variance decomposition, and reproducible figure generation. Existing FOSS4G tools cover individual stages well (PySAL for spatial statistics, OSMnx for street networks, statsmodels for mixed models), but no integrated FOSS4G stack delivers all stages end-to-end with stable identifiers across provider data revisions. We present &lt;code&gt;traffic-congestion-pipeline&lt;/code&gt;, an MIT-licensed Python package distributed on PyPI that closes this gap. The contribution comprises four engineering elements: (i) a provider-agnostic collector with HERE, TomTom, and Google back-ends behind a single interface; (ii) an OSM-based two-stage spatial matcher (geometric intersection followed by nearest-neighbour fallback) producing a stable &lt;code&gt;osm_composite_id&lt;/code&gt; with 99.8% match rates across 50,000+ collection snapshots; (iii) a modular eleven-command CLI and Python API that allow each analysis stage to be run independently or chained into a single reproducible workflow; and (iv) demonstration on 316 million traffic observations from three Indonesian cities (Jakarta, Bandung, Semarang), processed end-to-end on consumer hardware in approximately fifteen minutes. The pipeline has supported a peer-reviewed empirical study and is, to our knowledge, the first FOSS4G stack to integrate provider-agnostic collection, OSM-stable segment identity, and multilevel variance decomposition into a single installable artifact.</p>
</abstract>
<counts><page-count count="8"/></counts>
</article-meta>
</front>
<body/>
<back>
</back>
</article>