<?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" specific-use="SMUR" dtd-version="3.0" xml:lang="en">
<front>
<journal-meta>
<journal-id journal-id-type="publisher">EGUsphere</journal-id>
<journal-title-group>
<journal-title>EGUsphere</journal-title>
<abbrev-journal-title abbrev-type="publisher">EGUsphere</abbrev-journal-title>
<abbrev-journal-title abbrev-type="nlm-ta">EGUsphere</abbrev-journal-title>
</journal-title-group>
<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/egusphere-2026-5746</article-id>
<title-group>
<article-title>pypfda v1.0: An open-source, model-agnostic particle-filter engine for online sequential paleo data assimilation in Earth system models</article-title>
</title-group>
<contrib-group><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Fallah</surname>
<given-names>Bijan</given-names>
<ext-link>https://orcid.org/0000-0003-3302-2030</ext-link>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
</contrib>
<contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Goosse</surname>
<given-names>Hugues</given-names>
<ext-link>https://orcid.org/0000-0002-5438-3612</ext-link>
</name>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
</contrib>
<contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Huiskamp</surname>
<given-names>Willem</given-names>
<ext-link>https://orcid.org/0000-0001-6615-6348</ext-link>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
</contrib>
</contrib-group><aff id="aff1">
<label>1</label>
<addr-line>Potsdam Institute for Climate Impact Research (PIK), Member of the Leibniz Association, Potsdam, Germany</addr-line>
</aff>
<aff id="aff2">
<label>2</label>
<addr-line>Université catholique de Louvain, Earth and Life Institute, Place Louis Pasteur 3, B-1348 Louvain-la-Neuve, Belgium</addr-line>
</aff>
<pub-date pub-type="epub">
<day>13</day>
<month>11</month>
<year>2026</year>
</pub-date>
<volume>2026</volume>
<fpage>1</fpage>
<lpage>42</lpage>
<permissions>
<copyright-statement>Copyright: &#x000a9; 2026 Bijan Fallah 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://egusphere.copernicus.org/preprints/2026/egusphere-2026-5746/">This article is available from https://egusphere.copernicus.org/preprints/2026/egusphere-2026-5746/</self-uri>
<self-uri xlink:href="https://egusphere.copernicus.org/preprints/2026/egusphere-2026-5746/egusphere-2026-5746.pdf">The full text article is available as a PDF file from https://egusphere.copernicus.org/preprints/2026/egusphere-2026-5746/egusphere-2026-5746.pdf</self-uri>
<abstract>
<p>Data assimilation combines observations with the dynamics of a model to estimate the state of a system; in paleoclimatology it merges proxy records with climate models. Most reconstructions use the offline approach, in which the assimilated state does not persist, so slow processes such as the Atlantic overturning are not carried through time. We present pypfda v1.0, an open-source Python engine that runs an online particle filter inside a coupled Earth system model. At each analysis, ensemble members are weighted by their fit to the proxies, and the best-fitting members are copied and perturbed before the simulation continues, which preserves the ocean&apos;s multiyear memory without offline calibration or surrogate models. The engine connects to any model through four functions, so adding a model requires recompiling neither the model nor the filter. We tested it with the coupled model CM2Mc-BLING in twin experiments, in which 59 synthetic sea surface temperature proxies drawn from one model run constrain a 100-member ensemble that reconstructs the Atlantic Meridional Overturning Circulation (AMOC), a quantity the proxies do not observe directly. Skill appears only when the members start from diverse ocean states and when the analysis interval matches the ocean&apos;s timescales; a five-year interval works best. In a 300-year experiment, the reconstructed AMOC correlates with the truth at &lt;em&gt;r&lt;/em&gt; = +0.78, while an ensemble without assimilation shows no correlation. Copying members at each analysis concentrates the ensemble&apos;s ancestry, and the 300-year run converges to a single lineage after about 155 years, while skill is maintained because each analysis realigns the ensemble with the proxies. Because the observation operator is a separate module, proxy system models can be added for reconstructions with real proxies.</p>
</abstract>
<counts><page-count count="42"/></counts>
<funding-group>
<award-group id="gs1">
<funding-source>Deutsche Forschungsgemeinschaft</funding-source>
<award-id>50037087)</award-id>
</award-group>
</funding-group>
</article-meta>
</front>
<body/>
<back>
</back>
</article>