diff --git a/environment.yml b/environment.yml
new file mode 100644
index 0000000000000000000000000000000000000000..13d74f29d055726a9505d0eff7defd3e0f26debc
--- /dev/null
+++ b/environment.yml
@@ -0,0 +1,243 @@
+name: tdm-geoparsing-py39
+channels:
+  - conda-forge
+dependencies:
+  - appnope=0.1.3=pyhd8ed1ab_0
+  - argon2-cffi=21.3.0=pyhd8ed1ab_0
+  - argon2-cffi-bindings=21.2.0=py39hb18efdd_2
+  - asttokens=2.0.8=pyhd8ed1ab_0
+  - attrs=22.1.0=pyh71513ae_1
+  - backcall=0.2.0=pyh9f0ad1d_0
+  - backports=1.0=py_2
+  - backports.functools_lru_cache=1.6.4=pyhd8ed1ab_0
+  - beautifulsoup4=4.11.1=pyha770c72_0
+  - bleach=5.0.1=pyhd8ed1ab_0
+  - blosc=1.21.1=hd414afc_3
+  - boost-cpp=1.78.0=h1cb353e_1
+  - brotlipy=0.7.0=py39hb18efdd_1004
+  - bzip2=1.0.8=h3422bc3_4
+  - c-ares=1.18.1=h3422bc3_0
+  - ca-certificates=2022.6.15.1=h4653dfc_0
+  - cairo=1.16.0=h73a0509_1013
+  - certifi=2022.6.15.1=pyhd8ed1ab_0
+  - cffi=1.15.1=py39h04d3946_0
+  - cfitsio=4.1.0=hd4f5c17_0
+  - charset-normalizer=2.1.1=pyhd8ed1ab_0
+  - click=8.1.3=py39h2804cbe_0
+  - click-plugins=1.1.1=py_0
+  - cligj=0.7.2=pyhd8ed1ab_1
+  - colorama=0.4.5=pyhd8ed1ab_0
+  - cryptography=37.0.4=py39h4cb6239_0
+  - curl=7.83.1=h2fcd78c_0
+  - dataclasses=0.8=pyhc8e2a94_3
+  - debugpy=1.6.3=py39h3c22d25_0
+  - decorator=5.1.1=pyhd8ed1ab_0
+  - defusedxml=0.7.1=pyhd8ed1ab_0
+  - emoji=2.0.0=pyhd8ed1ab_0
+  - entrypoints=0.4=pyhd8ed1ab_0
+  - executing=1.0.0=pyhd8ed1ab_0
+  - expat=2.4.8=h6b3803e_0
+  - filelock=3.8.0=pyhd8ed1ab_0
+  - fiona=1.8.21=py39hf45f784_2
+  - flit-core=3.7.1=pyhd8ed1ab_0
+  - font-ttf-dejavu-sans-mono=2.37=hab24e00_0
+  - font-ttf-inconsolata=3.000=h77eed37_0
+  - font-ttf-source-code-pro=2.038=h77eed37_0
+  - font-ttf-ubuntu=0.83=hab24e00_0
+  - fontconfig=2.14.0=h82840c6_1
+  - fonts-conda-ecosystem=1=0
+  - fonts-conda-forge=1=0
+  - freetype=2.12.1=hd633e50_0
+  - freexl=1.0.6=h1a8c8d9_1
+  - gdal=3.5.1=py39hf919091_5
+  - geos=3.11.0=h9a09cb3_0
+  - geotiff=1.7.1=hc898e3f_3
+  - gettext=0.19.8.1=h049c9fb_1008
+  - giflib=5.2.1=h27ca646_2
+  - hdf4=4.2.15=hc683e77_4
+  - hdf5=1.12.2=nompi_h8968d4b_100
+  - huggingface_hub=0.9.1=pyhd8ed1ab_0
+  - icu=70.1=h6b3803e_0
+  - idna=3.3=pyhd8ed1ab_0
+  - importlib-metadata=4.11.4=py39h2804cbe_0
+  - importlib_metadata=4.11.4=hd8ed1ab_0
+  - importlib_resources=5.9.0=pyhd8ed1ab_0
+  - ipykernel=6.15.2=pyh736e0ef_0
+  - ipython=8.5.0=pyhd1c38e8_1
+  - ipython_genutils=0.2.0=py_1
+  - ipywidgets=8.0.2=pyhd8ed1ab_1
+  - jedi=0.18.1=pyhd8ed1ab_2
+  - jinja2=3.1.2=pyhd8ed1ab_1
+  - joblib=1.1.0=pyhd8ed1ab_0
+  - jpeg=9e=he4db4b2_2
+  - json-c=0.16=hc449e50_0
+  - jsonschema=4.16.0=pyhd8ed1ab_0
+  - jupyter=1.0.0=py39h2804cbe_7
+  - jupyter_client=7.3.5=pyhd8ed1ab_0
+  - jupyter_console=6.4.4=pyhd8ed1ab_0
+  - jupyter_core=4.11.1=py39h2804cbe_0
+  - jupyterlab_pygments=0.2.2=pyhd8ed1ab_0
+  - jupyterlab_widgets=3.0.3=pyhd8ed1ab_0
+  - kealib=1.4.15=h02ce806_1
+  - krb5=1.19.3=hf9b2bbe_0
+  - lcms2=2.12=had6a04f_0
+  - lerc=4.0.0=h9a09cb3_0
+  - libblas=3.9.0=16_osxarm64_openblas
+  - libcblas=3.9.0=16_osxarm64_openblas
+  - libcurl=7.83.1=h2fcd78c_0
+  - libcxx=14.0.6=h2692d47_0
+  - libdap4=3.20.6=h8510809_2
+  - libdeflate=1.14=h1a8c8d9_0
+  - libedit=3.1.20191231=hc8eb9b7_2
+  - libev=4.33=h642e427_1
+  - libffi=3.4.2=h3422bc3_5
+  - libgdal=3.5.1=he1a18a7_5
+  - libgfortran=5.0.0=11_3_0_hd922786_25
+  - libgfortran5=11.3.0=hdaf2cc0_25
+  - libglib=2.72.1=ha1047ec_0
+  - libiconv=1.16=h642e427_0
+  - libkml=1.3.0=h41464e4_1015
+  - liblapack=3.9.0=16_osxarm64_openblas
+  - libnetcdf=4.8.1=nompi_h996a5af_104
+  - libnghttp2=1.47.0=h232270b_1
+  - libopenblas=0.3.21=openmp_hc731615_3
+  - libpng=1.6.37=h9b2ccdc_4
+  - libpq=14.5=hb2ab832_0
+  - libprotobuf=3.20.1=hb5ab8b9_4
+  - librttopo=1.1.0=h275bb25_11
+  - libsodium=1.0.18=h27ca646_1
+  - libspatialite=5.0.1=h47b1232_18
+  - libsqlite=3.39.3=h76d750c_0
+  - libssh2=1.10.0=hb80f160_3
+  - libtiff=4.4.0=hfa0b094_4
+  - libwebp-base=1.2.4=h57fd34a_0
+  - libxml2=2.9.14=h9d8dfc2_4
+  - libzip=1.9.2=h96606af_1
+  - libzlib=1.2.12=ha287fd2_2
+  - llvm-openmp=14.0.4=hd125106_0
+  - lz4-c=1.9.3=hbdafb3b_1
+  - markupsafe=2.1.1=py39hb18efdd_1
+  - matplotlib-inline=0.1.6=pyhd8ed1ab_0
+  - mistune=0.8.4=py39h5161555_1005
+  - munch=2.5.0=py_0
+  - nbclient=0.5.13=pyhd8ed1ab_0
+  - nbconvert=6.4.5=py39h2804cbe_0
+  - nbformat=5.4.0=pyhd8ed1ab_0
+  - ncurses=6.3=h07bb92c_1
+  - nest-asyncio=1.5.5=pyhd8ed1ab_0
+  - ninja=1.11.0=hf86a087_0
+  - notebook=6.4.12=pyha770c72_0
+  - nspr=4.32=hbdafb3b_1
+  - nss=3.78=h1483a63_0
+  - numpy=1.23.3=py39hcb4b507_0
+  - openjpeg=2.5.0=h5d4e404_1
+  - openssl=1.1.1q=ha287fd2_0
+  - packaging=21.3=pyhd8ed1ab_0
+  - pandocfilters=1.5.0=pyhd8ed1ab_0
+  - parso=0.8.3=pyhd8ed1ab_0
+  - pcre=8.45=hbdafb3b_0
+  - pexpect=4.8.0=pyh9f0ad1d_2
+  - pickleshare=0.7.5=py_1003
+  - pip=22.2.2=pyhd8ed1ab_0
+  - pixman=0.40.0=h27ca646_0
+  - pkgutil-resolve-name=1.3.10=pyhd8ed1ab_0
+  - poppler=22.04.0=h4f9e0c6_3
+  - poppler-data=0.4.11=hd8ed1ab_0
+  - postgresql=14.5=hb0ca4ee_0
+  - proj=9.0.1=h4c79c2b_1
+  - prometheus_client=0.14.1=pyhd8ed1ab_0
+  - prompt-toolkit=3.0.31=pyha770c72_0
+  - prompt_toolkit=3.0.31=hd8ed1ab_0
+  - protobuf=3.20.1=py39h6e3512e_0
+  - psutil=5.9.2=py39h02fc5c5_0
+  - ptyprocess=0.7.0=pyhd3deb0d_0
+  - pure_eval=0.2.2=pyhd8ed1ab_0
+  - pycparser=2.21=pyhd8ed1ab_0
+  - pygments=2.13.0=pyhd8ed1ab_0
+  - pyopenssl=22.0.0=pyhd8ed1ab_0
+  - pyparsing=3.0.9=pyhd8ed1ab_0
+  - pyrsistent=0.18.1=py39hb18efdd_1
+  - pysocks=1.7.1=pyha2e5f31_6
+  - python=3.9.13=hc596b02_0_cpython
+  - python-dateutil=2.8.2=pyhd8ed1ab_0
+  - python-fastjsonschema=2.16.1=pyhd8ed1ab_0
+  - python_abi=3.9=2_cp39
+  - pytorch=1.12.1=cpu_py39h0768760_0
+  - pyyaml=6.0=py39hb18efdd_4
+  - pyzmq=23.2.1=py39h59d144a_0
+  - readline=8.1.2=h46ed386_0
+  - regex=2022.9.11=py39h02fc5c5_0
+  - requests=2.28.1=pyhd8ed1ab_1
+  - sacremoses=0.0.53=pyhd8ed1ab_0
+  - send2trash=1.8.0=pyhd8ed1ab_0
+  - setuptools=65.3.0=pyhd8ed1ab_1
+  - shapely=1.8.4=py39hbc2314a_0
+  - six=1.16.0=pyh6c4a22f_0
+  - sleef=3.5.1=h156473d_2
+  - snappy=1.1.9=h39c3846_1
+  - soupsieve=2.3.2.post1=pyhd8ed1ab_0
+  - sqlite=3.39.3=h2229b38_0
+  - stack_data=0.5.0=pyhd8ed1ab_0
+  - stanza=1.4.0=pyhd8ed1ab_0
+  - terminado=0.15.0=py39h2804cbe_0
+  - testpath=0.6.0=pyhd8ed1ab_0
+  - tiledb=2.11.1=hc7ac4c9_0
+  - tk=8.6.12=he1e0b03_0
+  - tokenizers=0.12.1=py39hae86270_1
+  - tornado=6.2=py39h9eb174b_0
+  - tqdm=4.64.1=pyhd8ed1ab_0
+  - traitlets=5.3.0=pyhd8ed1ab_0
+  - transformers=4.19.4=pyhd8ed1ab_0
+  - typing-extensions=4.3.0=hd8ed1ab_0
+  - typing_extensions=4.3.0=pyha770c72_0
+  - tzcode=2022c=h57fd34a_0
+  - tzdata=2022c=h191b570_0
+  - urllib3=1.26.11=pyhd8ed1ab_0
+  - wcwidth=0.2.5=pyh9f0ad1d_2
+  - webencodings=0.5.1=py_1
+  - wheel=0.37.1=pyhd8ed1ab_0
+  - widgetsnbextension=4.0.3=pyhd8ed1ab_0
+  - xerces-c=3.2.3=h1b0b642_5
+  - xz=5.2.6=h57fd34a_0
+  - yaml=0.2.5=h3422bc3_2
+  - zeromq=4.3.4=hbdafb3b_1
+  - zipp=3.8.1=pyhd8ed1ab_0
+  - zlib=1.2.12=ha287fd2_2
+  - zstd=1.5.2=h8128057_4
+  - pip:
+    - blis==0.9.1
+    - branca==0.5.0
+    - catalogue==2.0.8
+    - confection==0.0.1
+    - cycler==0.11.0
+    - cymem==2.0.6
+    - folium==0.12.1.post1
+    - fonttools==4.37.1
+    - fr-core-news-sm==3.4.0
+    - geojson==2.5.0
+    - geopandas==0.11.1
+    - gpxpy==1.5.0
+    - kiwisolver==1.4.4
+    - langcodes==3.3.0
+    - lxml==4.9.1
+    - matplotlib==3.5.3
+    - murmurhash==1.0.8
+    - pandas==1.4.4
+    - pathy==0.6.2
+    - perdido==0.1.27
+    - pillow==9.2.0
+    - preshed==3.0.7
+    - pydantic==1.9.2
+    - pyproj==3.4.0
+    - pytz==2022.2.1
+    - scikit-learn==1.1.2
+    - scipy==1.9.1
+    - smart-open==5.2.1
+    - spacy==3.4.1
+    - spacy-legacy==3.0.10
+    - spacy-loggers==1.0.3
+    - srsly==2.4.4
+    - thinc==8.1.1
+    - threadpoolctl==3.1.0
+    - typer==0.4.2
+    - wasabi==0.10.1