I like to use a fresh environment each time I teach from this book. I used the following command on Dec 31, 2024 on an Intel Mac.
conda create -n gds_book -c conda-forge bottleneck cenpy contextily dask datashader geopandas hdbscan jupyter jupyterlab-spellchecker netCDF4 osmnx pysal rioxarray seaborn
List of packages installed along with their versions.
| Name |
Version |
Build |
Channel |
| access |
1.1.9 |
pyhd8ed1ab_2 |
conda-forge |
| affine |
2.4.0 |
pyhd8ed1ab_1 |
conda-forge |
| amply |
0.1.6 |
pyhd8ed1ab_1 |
conda-forge |
| anyio |
4.7.0 |
pyhd8ed1ab_0 |
conda-forge |
| aom |
3.9.1 |
hf036a51_0 |
conda-forge |
| appnope |
0.1.4 |
pyhd8ed1ab_1 |
conda-forge |
| argon2-cffi |
23.1.0 |
pyhd8ed1ab_1 |
conda-forge |
| argon2-cffi-bindings |
21.2.0 |
py312hb553811_5 |
conda-forge |
| arrow |
1.3.0 |
pyhd8ed1ab_1 |
conda-forge |
| asttokens |
3.0.0 |
pyhd8ed1ab_1 |
conda-forge |
| async-lru |
2.0.4 |
pyhd8ed1ab_1 |
conda-forge |
| attrs |
24.3.0 |
pyh71513ae_0 |
conda-forge |
| aws-c-auth |
0.8.0 |
h873230a_15 |
conda-forge |
| aws-c-cal |
0.8.1 |
hc0df2db_3 |
conda-forge |
| aws-c-common |
0.10.6 |
h6e16a3a_0 |
conda-forge |
| aws-c-compression |
0.3.0 |
hc0df2db_5 |
conda-forge |
| aws-c-event-stream |
0.5.0 |
h8236443_11 |
conda-forge |
| aws-c-http |
0.9.2 |
h5492b4a_4 |
conda-forge |
| aws-c-io |
0.15.3 |
h7bd4489_5 |
conda-forge |
| aws-c-mqtt |
0.11.0 |
h3488609_12 |
conda-forge |
| aws-c-s3 |
0.7.7 |
ha6e97d4_0 |
conda-forge |
| aws-c-sdkutils |
0.2.1 |
hc0df2db_4 |
conda-forge |
| aws-checksums |
0.2.2 |
hc0df2db_4 |
conda-forge |
| aws-crt-cpp |
0.29.7 |
hd560ef9_7 |
conda-forge |
| aws-sdk-cpp |
1.11.458 |
ha9aef39_4 |
conda-forge |
| azure-core-cpp |
1.14.0 |
h9a36307_0 |
conda-forge |
| azure-identity-cpp |
1.10.0 |
ha4e2ba9_0 |
conda-forge |
| azure-storage-blobs-cpp |
12.13.0 |
h3d2f5f1_1 |
conda-forge |
| azure-storage-common-cpp |
12.8.0 |
h1ccc5ac_1 |
conda-forge |
| azure-storage-files-datalake-cpp |
12.12.0 |
h86941f0_1 |
conda-forge |
| babel |
2.16.0 |
pyhd8ed1ab_1 |
conda-forge |
| beautifulsoup4 |
4.12.3 |
pyha770c72_1 |
conda-forge |
| bleach |
6.2.0 |
pyhd8ed1ab_1 |
conda-forge |
| blosc |
1.21.6 |
hd145fbb_1 |
conda-forge |
| bokeh |
3.6.2 |
pyhd8ed1ab_1 |
conda-forge |
| bottleneck |
1.4.2 |
py312h59f7578_0 |
conda-forge |
| branca |
0.8.1 |
pyhd8ed1ab_0 |
conda-forge |
| brotli |
1.1.0 |
h00291cd_2 |
conda-forge |
| brotli-bin |
1.1.0 |
h00291cd_2 |
conda-forge |
| brotli-python |
1.1.0 |
py312h5861a67_2 |
conda-forge |
| bzip2 |
1.0.8 |
hfdf4475_7 |
conda-forge |
| c-ares |
1.34.4 |
hf13058a_0 |
conda-forge |
| ca-certificates |
2024.12.14 |
h8857fd0_0 |
conda-forge |
| cached-property |
1.5.2 |
hd8ed1ab_1 |
conda-forge |
| cached_property |
1.5.2 |
pyha770c72_1 |
conda-forge |
| cenpy |
1.0.1 |
pyhd8ed1ab_0 |
conda-forge |
| certifi |
2024.12.14 |
pyhd8ed1ab_0 |
conda-forge |
| cffi |
1.17.1 |
py312hf857d28_0 |
conda-forge |
| cftime |
1.6.4 |
py312h3a11e2b_1 |
conda-forge |
| charset-normalizer |
3.4.0 |
pyhd8ed1ab_1 |
conda-forge |
| click |
8.1.8 |
pyh707e725_0 |
conda-forge |
| click-plugins |
1.1.1 |
pyhd8ed1ab_1 |
conda-forge |
| cligj |
0.7.2 |
pyhd8ed1ab_2 |
conda-forge |
| cloudpickle |
3.1.0 |
pyhd8ed1ab_2 |
conda-forge |
| coin-or-cbc |
2.10.12 |
h26cd4a2_1 |
conda-forge |
| coin-or-cgl |
0.60.9 |
h5c63661_0 |
conda-forge |
| coin-or-clp |
1.17.10 |
hf05e7e8_0 |
conda-forge |
| coin-or-osi |
0.108.11 |
h8c189bd_1 |
conda-forge |
| coin-or-utils |
2.11.12 |
h95c8798_1 |
conda-forge |
| coincbc |
2.10.12 |
1_metapackage |
conda-forge |
| colorama |
0.4.6 |
pyhd8ed1ab_1 |
conda-forge |
| colorcet |
3.1.0 |
pyhd8ed1ab_1 |
conda-forge |
| comm |
0.2.2 |
pyhd8ed1ab_1 |
conda-forge |
| contextily |
1.6.2 |
pyhd8ed1ab_1 |
conda-forge |
| contourpy |
1.3.1 |
py312hc47a885_0 |
conda-forge |
| cycler |
0.12.1 |
pyhd8ed1ab_1 |
conda-forge |
| cytoolz |
1.0.1 |
py312h01d7ebd_0 |
conda-forge |
| dask |
2024.12.1 |
pyhd8ed1ab_0 |
conda-forge |
| dask-core |
2024.12.1 |
pyhd8ed1ab_0 |
conda-forge |
| dask-expr |
1.1.21 |
pyhd8ed1ab_0 |
conda-forge |
| datashader |
0.16.3 |
pyhd8ed1ab_1 |
conda-forge |
| dav1d |
1.2.1 |
h0dc2134_0 |
conda-forge |
| debugpy |
1.8.11 |
py312haafddd8_0 |
conda-forge |
| decorator |
5.1.1 |
pyhd8ed1ab_1 |
conda-forge |
| defusedxml |
0.7.1 |
pyhd8ed1ab_0 |
conda-forge |
| deprecation |
2.1.0 |
pyh9f0ad1d_0 |
conda-forge |
| distributed |
2024.12.1 |
pyhd8ed1ab_0 |
conda-forge |
| docutils |
0.21.2 |
pyhd8ed1ab_1 |
conda-forge |
| entrypoints |
0.4 |
pyhd8ed1ab_1 |
conda-forge |
| esda |
2.6.0 |
pyhd8ed1ab_1 |
conda-forge |
| exceptiongroup |
1.2.2 |
pyhd8ed1ab_1 |
conda-forge |
| executing |
2.1.0 |
pyhd8ed1ab_1 |
conda-forge |
| fiona |
1.10.1 |
py312h4bcfd6b_3 |
conda-forge |
| folium |
0.19.3 |
pyhd8ed1ab_0 |
conda-forge |
| fonttools |
4.55.3 |
py312h3520af0_1 |
conda-forge |
| fqdn |
1.5.1 |
pyhd8ed1ab_1 |
conda-forge |
| freetype |
2.12.1 |
h60636b9_2 |
conda-forge |
| freexl |
2.0.0 |
h3183152_2 |
conda-forge |
| fsspec |
2024.12.0 |
pyhd8ed1ab_0 |
conda-forge |
| fuzzywuzzy |
0.18.0 |
pyhd8ed1ab_1 |
conda-forge |
| geographiclib |
2 |
pyhd8ed1ab_1 |
conda-forge |
| geopandas |
1.0.1 |
pyhd8ed1ab_3 |
conda-forge |
| geopandas-base |
1.0.1 |
pyha770c72_3 |
conda-forge |
| geopy |
2.4.1 |
pyhd8ed1ab_2 |
conda-forge |
| geos |
3.13.0 |
hac325c4_0 |
conda-forge |
| geotiff |
1.7.3 |
h2b6e260_3 |
conda-forge |
| gflags |
2.2.2 |
hac325c4_1005 |
conda-forge |
| giddy |
2.3.6 |
pyhd8ed1ab_0 |
conda-forge |
| giflib |
5.2.2 |
h10d778d_0 |
conda-forge |
| glog |
0.7.1 |
h2790a97_0 |
conda-forge |
| gmp |
6.3.0 |
hf036a51_2 |
conda-forge |
| gmpy2 |
2.1.5 |
py312h068713c_3 |
conda-forge |
| h11 |
0.14.0 |
pyhd8ed1ab_1 |
conda-forge |
| h2 |
4.1.0 |
pyhd8ed1ab_1 |
conda-forge |
| hdbscan |
0.8.39 |
py312h59f7578_0 |
conda-forge |
| hdf4 |
4.2.15 |
h8138101_7 |
conda-forge |
| hdf5 |
1.14.4 |
nompi_h1607680_105 |
conda-forge |
| hpack |
4.0.0 |
pyhd8ed1ab_1 |
conda-forge |
| httpcore |
1.0.7 |
pyh29332c3_1 |
conda-forge |
| httpx |
0.28.1 |
pyhd8ed1ab_0 |
conda-forge |
| hyperframe |
6.0.1 |
pyhd8ed1ab_1 |
conda-forge |
| icu |
75.1 |
h120a0e1_0 |
conda-forge |
| idna |
3.1 |
pyhd8ed1ab_1 |
conda-forge |
| importlib-metadata |
8.5.0 |
pyha770c72_1 |
conda-forge |
| importlib_resources |
6.4.5 |
pyhd8ed1ab_1 |
conda-forge |
| inequality |
1.0.1 |
pyhd8ed1ab_1 |
conda-forge |
| ipykernel |
6.29.5 |
pyh57ce528_0 |
conda-forge |
| ipython |
8.31.0 |
pyh707e725_0 |
conda-forge |
| ipywidgets |
8.1.5 |
pyhd8ed1ab_1 |
conda-forge |
| isoduration |
20.11.0 |
pyhd8ed1ab_1 |
conda-forge |
| jedi |
0.19.2 |
pyhd8ed1ab_1 |
conda-forge |
| jinja2 |
3.1.5 |
pyhd8ed1ab_0 |
conda-forge |
| joblib |
1.4.2 |
pyhd8ed1ab_1 |
conda-forge |
| json-c |
0.18 |
hc62ec3d_0 |
conda-forge |
| json5 |
0.10.0 |
pyhd8ed1ab_1 |
conda-forge |
| jsonpointer |
3.0.0 |
py312hb401068_1 |
conda-forge |
| jsonschema |
4.23.0 |
pyhd8ed1ab_1 |
conda-forge |
| jsonschema-specifications |
2024.10.1 |
pyhd8ed1ab_1 |
conda-forge |
| jsonschema-with-format-nongpl |
4.23.0 |
hd8ed1ab_1 |
conda-forge |
| jupyter |
1.1.1 |
pyhd8ed1ab_1 |
conda-forge |
| jupyter-lsp |
2.2.5 |
pyhd8ed1ab_1 |
conda-forge |
| jupyter_client |
8.6.3 |
pyhd8ed1ab_1 |
conda-forge |
| jupyter_console |
6.6.3 |
pyhd8ed1ab_1 |
conda-forge |
| jupyter_core |
5.7.2 |
pyh31011fe_1 |
conda-forge |
| jupyter_events |
0.11.0 |
pyhd8ed1ab_0 |
conda-forge |
| jupyter_server |
2.15.0 |
pyhd8ed1ab_0 |
conda-forge |
| jupyter_server_terminals |
0.5.3 |
pyhd8ed1ab_1 |
conda-forge |
| jupyterlab |
4.3.4 |
pyhd8ed1ab_0 |
conda-forge |
| jupyterlab-spellchecker |
0.8.4 |
pyhd8ed1ab_0 |
conda-forge |
| jupyterlab_pygments |
0.3.0 |
pyhd8ed1ab_2 |
conda-forge |
| jupyterlab_server |
2.27.3 |
pyhd8ed1ab_1 |
conda-forge |
| jupyterlab_widgets |
3.0.13 |
pyhd8ed1ab_1 |
conda-forge |
| kiwisolver |
1.4.7 |
py312hc5c4d5f_0 |
conda-forge |
| krb5 |
1.21.3 |
h37d8d59_0 |
conda-forge |
| lcms2 |
2.16 |
ha2f27b4_0 |
conda-forge |
| lerc |
4.0.0 |
hb486fe8_0 |
conda-forge |
| levenshtein |
0.26.1 |
py312hae40c12_0 |
conda-forge |
| libabseil |
20240722 |
cxx17_h0e468a2_2 |
conda-forge |
| libaec |
1.1.3 |
h73e2aa4_0 |
conda-forge |
| libarchive |
3.7.7 |
h1a33361_3 |
conda-forge |
| libarrow |
18.1.0 |
h731e907_7_cpu |
conda-forge |
| libarrow-acero |
18.1.0 |
ha6338a2_7_cpu |
conda-forge |
| libarrow-dataset |
18.1.0 |
ha6338a2_7_cpu |
conda-forge |
| libarrow-substrait |
18.1.0 |
h5c2345d_7_cpu |
conda-forge |
| libavif16 |
1.1.1 |
h71406da_2 |
conda-forge |
| libblas |
3.9.0 |
26_osx64_openblas |
conda-forge |
| libbrotlicommon |
1.1.0 |
h00291cd_2 |
conda-forge |
| libbrotlidec |
1.1.0 |
h00291cd_2 |
conda-forge |
| libbrotlienc |
1.1.0 |
h00291cd_2 |
conda-forge |
| libcblas |
3.9.0 |
26_osx64_openblas |
conda-forge |
| libcrc32c |
1.1.2 |
he49afe7_0 |
conda-forge |
| libcurl |
8.11.1 |
h5dec5d8_0 |
conda-forge |
| libcxx |
19.1.6 |
hf95d169_1 |
conda-forge |
| libde265 |
1.0.15 |
h7728843_0 |
conda-forge |
| libdeflate |
1.23 |
he65b83e_0 |
conda-forge |
| libedit |
3.1.20191231 |
h0678c8f_2 |
conda-forge |
| libev |
4.33 |
h10d778d_2 |
conda-forge |
| libevent |
2.1.12 |
ha90c15b_1 |
conda-forge |
| libexpat |
2.6.4 |
h240833e_0 |
conda-forge |
| libffi |
3.4.2 |
h0d85af4_5 |
conda-forge |
| libgdal-core |
3.10.0 |
ha746336_13 |
conda-forge |
| libgfortran |
5.0.0 |
13_2_0_h97931a8_3 |
conda-forge |
| libgfortran5 |
13.2.0 |
h2873a65_3 |
conda-forge |
| libgoogle-cloud |
2.33.0 |
h7000a09_1 |
conda-forge |
| libgoogle-cloud-storage |
2.33.0 |
h3f2b517_1 |
conda-forge |
| libgrpc |
1.67.1 |
h4896ac0_1 |
conda-forge |
| libheif |
1.19.5 |
gpl_hc62a4a2_100 |
conda-forge |
| libiconv |
1.17 |
hd75f5a5_2 |
conda-forge |
| libjpeg-turbo |
3.0.0 |
h0dc2134_1 |
conda-forge |
| libkml |
1.3.0 |
h9ee1731_1021 |
conda-forge |
| liblapack |
3.9.0 |
26_osx64_openblas |
conda-forge |
| liblapacke |
3.9.0 |
26_osx64_openblas |
conda-forge |
| libllvm14 |
14.0.6 |
hc8e404f_4 |
conda-forge |
| liblzma |
5.6.3 |
hd471939_1 |
conda-forge |
| libnetcdf |
4.9.2 |
nompi_hd7a758f_116 |
conda-forge |
| libnghttp2 |
1.64.0 |
hc7306c3_0 |
conda-forge |
| libopenblas |
0.3.28 |
openmp_hbf64a52_1 |
conda-forge |
| libparquet |
18.1.0 |
h3e22b07_7_cpu |
conda-forge |
| libpng |
1.6.44 |
h4b8f8c9_0 |
conda-forge |
| libprotobuf |
5.28.3 |
h6401091_1 |
conda-forge |
| libpysal |
4.12.1 |
pyhd8ed1ab_1 |
conda-forge |
| libre2-11 |
2024.07.02 |
h0e468a2_2 |
conda-forge |
| librttopo |
1.1.0 |
hdfb80b9_17 |
conda-forge |
| libsodium |
1.0.20 |
hfdf4475_0 |
conda-forge |
| libspatialindex |
2.1.0 |
h501a4e1_0 |
conda-forge |
| libspatialite |
5.1.0 |
h74337a0_12 |
conda-forge |
| libsqlite |
3.47.2 |
hdb6dae5_0 |
conda-forge |
| libssh2 |
1.11.1 |
h3dc7d44_0 |
conda-forge |
| libthrift |
0.21.0 |
h75589b3_0 |
conda-forge |
| libtiff |
4.7.0 |
hb77a491_3 |
conda-forge |
| libutf8proc |
2.9.0 |
h6e16a3a_1 |
conda-forge |
| libwebp-base |
1.5.0 |
h6cf52b4_0 |
conda-forge |
| libxcb |
1.17.0 |
hf1f96e2_0 |
conda-forge |
| libxml2 |
2.13.5 |
hebb159f_1 |
conda-forge |
| libzip |
1.11.2 |
h31df5bb_0 |
conda-forge |
| libzlib |
1.3.1 |
hd23fc13_2 |
conda-forge |
| llvm-openmp |
19.1.6 |
ha54dae1_0 |
conda-forge |
| llvmlite |
0.43.0 |
py312hcc8fd36_1 |
conda-forge |
| locket |
1.0.0 |
pyhd8ed1ab_0 |
conda-forge |
| lz4 |
4.3.3 |
py312h3d55e07_2 |
conda-forge |
| lz4-c |
1.10.0 |
h240833e_1 |
conda-forge |
| lzo |
2.1 |
h10d778d_1001 |
conda-forge |
| mapclassify |
2.8.1 |
pyhd8ed1ab_1 |
conda-forge |
| markupsafe |
3.0.2 |
py312h3520af0_1 |
conda-forge |
| matplotlib-base |
3.10.0 |
py312h535dea3_0 |
conda-forge |
| matplotlib-inline |
0.1.7 |
pyhd8ed1ab_1 |
conda-forge |
| mercantile |
1.2.1 |
pyhd8ed1ab_1 |
conda-forge |
| mgwr |
2.2.1 |
pyhd8ed1ab_1 |
conda-forge |
| minizip |
4.0.7 |
hfb7a1ec_3 |
conda-forge |
| mistune |
3.0.2 |
pyhd8ed1ab_1 |
conda-forge |
| momepy |
0.9.1 |
pyhd8ed1ab_0 |
conda-forge |
| mpc |
1.3.1 |
h9d8efa1_1 |
conda-forge |
| mpfr |
4.2.1 |
haed47dc_3 |
conda-forge |
| mpmath |
1.3.0 |
pyhd8ed1ab_1 |
conda-forge |
| msgpack-python |
1.1.0 |
py312hc5c4d5f_0 |
conda-forge |
| multipledispatch |
0.6.0 |
pyhd8ed1ab_1 |
conda-forge |
| munkres |
1.1.4 |
pyh9f0ad1d_0 |
conda-forge |
| nbclient |
0.10.2 |
pyhd8ed1ab_0 |
conda-forge |
| nbconvert-core |
7.16.4 |
pyhd8ed1ab_3 |
conda-forge |
| nbformat |
5.10.4 |
pyhd8ed1ab_1 |
conda-forge |
| ncurses |
6.5 |
hf036a51_1 |
conda-forge |
| nest-asyncio |
1.6.0 |
pyhd8ed1ab_1 |
conda-forge |
| netcdf4 |
1.7.2 |
nompi_py312haf04bd4_101 |
conda-forge |
| networkx |
3.4.2 |
pyh267e887_2 |
conda-forge |
| notebook |
7.3.2 |
pyhd8ed1ab_0 |
conda-forge |
| notebook-shim |
0.2.4 |
pyhd8ed1ab_1 |
conda-forge |
| numba |
0.60.0 |
py312hc3b515d_0 |
conda-forge |
| numpy |
2.0.2 |
py312hfc93d17_1 |
conda-forge |
| openjpeg |
2.5.3 |
h7fd6d84_0 |
conda-forge |
| openssl |
3.4.0 |
hd471939_0 |
conda-forge |
| orc |
2.0.3 |
h85ea3fe_2 |
conda-forge |
| osmnx |
2.0.0 |
ha770c72_5 |
conda-forge |
| osmnx-base |
2.0.0 |
pyhd8ed1ab_5 |
conda-forge |
| overrides |
7.7.0 |
pyhd8ed1ab_1 |
conda-forge |
| packaging |
24.2 |
pyhd8ed1ab_2 |
conda-forge |
| pandas |
2.2.3 |
py312h98e817e_1 |
conda-forge |
| pandocfilters |
1.5.0 |
pyhd8ed1ab_0 |
conda-forge |
| param |
2.2.0 |
pyhd8ed1ab_0 |
conda-forge |
| parso |
0.8.4 |
pyhd8ed1ab_1 |
conda-forge |
| partd |
1.4.2 |
pyhd8ed1ab_0 |
conda-forge |
| patsy |
1.0.1 |
pyhd8ed1ab_1 |
conda-forge |
| pcre2 |
10.44 |
h7634a1b_2 |
conda-forge |
| pexpect |
4.9.0 |
pyhd8ed1ab_1 |
conda-forge |
| pickleshare |
0.7.5 |
pyhd8ed1ab_1004 |
conda-forge |
| pillow |
11.0.0 |
py312h66fe14f_0 |
conda-forge |
| pip |
24.3.1 |
pyh8b19718_2 |
conda-forge |
| pkgutil-resolve-name |
1.3.10 |
pyhd8ed1ab_2 |
conda-forge |
| platformdirs |
4.3.6 |
pyhd8ed1ab_1 |
conda-forge |
| pointpats |
2.5.1 |
pyhd8ed1ab_1 |
conda-forge |
| proj |
9.5.1 |
h5273da6_0 |
conda-forge |
| prometheus_client |
0.21.1 |
pyhd8ed1ab_0 |
conda-forge |
| prompt-toolkit |
3.0.48 |
pyha770c72_1 |
conda-forge |
| prompt_toolkit |
3.0.48 |
hd8ed1ab_1 |
conda-forge |
| psutil |
6.1.1 |
py312h01d7ebd_0 |
conda-forge |
| pthread-stubs |
0.4 |
h00291cd_1002 |
conda-forge |
| ptyprocess |
0.7.0 |
pyhd8ed1ab_1 |
conda-forge |
| pulp |
2.8.0 |
py312hb401068_0 |
conda-forge |
| pure_eval |
0.2.3 |
pyhd8ed1ab_1 |
conda-forge |
| pyarrow |
18.1.0 |
py312hb401068_0 |
conda-forge |
| pyarrow-core |
18.1.0 |
py312h5157fe3_0_cpu |
conda-forge |
| pycparser |
2.22 |
pyh29332c3_1 |
conda-forge |
| pyct |
0.5.0 |
pyhd8ed1ab_1 |
conda-forge |
| pygments |
2.18.0 |
pyhd8ed1ab_1 |
conda-forge |
| pyobjc-core |
10.3.2 |
py312h2365019_0 |
conda-forge |
| pyobjc-framework-cocoa |
10.3.2 |
py312h2365019_0 |
conda-forge |
| pyogrio |
0.10.0 |
py312h4bcfd6b_1 |
conda-forge |
| pyparsing |
3.2.1 |
pyhd8ed1ab_0 |
conda-forge |
| pyproj |
3.7.0 |
py312h9673cc4_0 |
conda-forge |
| pysal |
24.7 |
pyhd8ed1ab_1 |
conda-forge |
| pysocks |
1.7.1 |
pyha55dd90_7 |
conda-forge |
| python |
3.12.8 |
h9ccd52b_1_cpython |
conda-forge |
| python-dateutil |
2.9.0.post0 |
pyhff2d567_1 |
conda-forge |
| python-fastjsonschema |
2.21.1 |
pyhd8ed1ab_0 |
conda-forge |
| python-json-logger |
2.0.7 |
pyhd8ed1ab_0 |
conda-forge |
| python-levenshtein |
0.26.1 |
pyhff2d567_1 |
conda-forge |
| python-tzdata |
2024.2 |
pyhd8ed1ab_1 |
conda-forge |
| python_abi |
3.12 |
5_cp312 |
conda-forge |
| pytz |
2024.1 |
pyhd8ed1ab_0 |
conda-forge |
| pyyaml |
6.0.2 |
py312hb553811_1 |
conda-forge |
| pyzmq |
26.2.0 |
py312h1060d5c_3 |
conda-forge |
| qhull |
2020.2 |
h3c5361c_5 |
conda-forge |
| quantecon |
0.7.2 |
pyhd8ed1ab_0 |
conda-forge |
| rapidfuzz |
3.11.0 |
py312haafddd8_0 |
conda-forge |
| rasterio |
1.4.3 |
py312h7846a4c_0 |
conda-forge |
| rasterstats |
0.20.0 |
pyhd8ed1ab_1 |
conda-forge |
| rav1e |
0.6.6 |
h7205ca4_2 |
conda-forge |
| re2 |
2024.07.02 |
ha5e900a_2 |
conda-forge |
| readline |
8.2 |
h9e318b2_1 |
conda-forge |
| referencing |
0.35.1 |
pyhd8ed1ab_1 |
conda-forge |
| requests |
2.32.3 |
pyhd8ed1ab_1 |
conda-forge |
| rfc3339-validator |
0.1.4 |
pyhd8ed1ab_1 |
conda-forge |
| rfc3986-validator |
0.1.1 |
pyh9f0ad1d_0 |
conda-forge |
| rio-vrt |
0.3.1 |
pyhd8ed1ab_1 |
conda-forge |
| rioxarray |
0.17.0 |
pyhd8ed1ab_0 |
conda-forge |
| rpds-py |
0.22.3 |
py312h0d0de52_0 |
conda-forge |
| rtree |
1.3.0 |
py312hf2eabd5_3 |
conda-forge |
| scikit-learn |
1.6.0 |
py312he1a5313_0 |
conda-forge |
| scipy |
1.14.1 |
py312h3b0f538_2 |
conda-forge |
| seaborn |
0.13.2 |
hd8ed1ab_3 |
conda-forge |
| seaborn-base |
0.13.2 |
pyhd8ed1ab_3 |
conda-forge |
| segregation |
2.5.1 |
pyhd8ed1ab_1 |
conda-forge |
| send2trash |
1.8.3 |
pyh31c8845_1 |
conda-forge |
| setuptools |
75.6.0 |
pyhff2d567_1 |
conda-forge |
| shapely |
2.0.6 |
py312h4ff98d2_2 |
conda-forge |
| simplejson |
3.19.3 |
py312hb553811_1 |
conda-forge |
| six |
1.17.0 |
pyhd8ed1ab_0 |
conda-forge |
| snappy |
1.2.1 |
haf3c120_1 |
conda-forge |
| sniffio |
1.3.1 |
pyhd8ed1ab_1 |
conda-forge |
| snuggs |
1.4.7 |
pyhd8ed1ab_2 |
conda-forge |
| sortedcontainers |
2.4.0 |
pyhd8ed1ab_0 |
conda-forge |
| soupsieve |
2.5 |
pyhd8ed1ab_1 |
conda-forge |
| spaghetti |
1.7.6 |
pyhd8ed1ab_1 |
conda-forge |
| spglm |
1.1.0 |
pyhd8ed1ab_2 |
conda-forge |
| spint |
1.0.7 |
pyhd8ed1ab_2 |
conda-forge |
| splot |
1.1.7 |
pyhd8ed1ab_1 |
conda-forge |
| spopt |
0.6.1 |
pyhd8ed1ab_0 |
conda-forge |
| spreg |
1.8.1 |
pyhd8ed1ab_1 |
conda-forge |
| spvcm |
0.3.0 |
pyhd8ed1ab_2 |
conda-forge |
| sqlite |
3.47.2 |
h2e4c9dc_0 |
conda-forge |
| stack_data |
0.6.3 |
pyhd8ed1ab_1 |
conda-forge |
| statsmodels |
0.14.4 |
py312h3a11e2b_0 |
conda-forge |
| svt-av1 |
2.3.0 |
h97d8b74_0 |
conda-forge |
| sympy |
1.13.3 |
pypyh2585a3b_103 |
conda-forge |
| tblib |
3.0.0 |
pyhd8ed1ab_1 |
conda-forge |
| terminado |
0.18.1 |
pyh31c8845_0 |
conda-forge |
| threadpoolctl |
3.5.0 |
pyhc1e730c_0 |
conda-forge |
| tinycss2 |
1.4.0 |
pyhd8ed1ab_0 |
conda-forge |
| tk |
8.6.13 |
h1abcd95_1 |
conda-forge |
| tobler |
0.12.0 |
pyhd8ed1ab_1 |
conda-forge |
| tomli |
2.2.1 |
pyhd8ed1ab_1 |
conda-forge |
| toolz |
1.0.0 |
pyhd8ed1ab_1 |
conda-forge |
| tornado |
6.4.2 |
py312h01d7ebd_0 |
conda-forge |
| tqdm |
4.67.1 |
pyhd8ed1ab_1 |
conda-forge |
| traitlets |
5.14.3 |
pyhd8ed1ab_1 |
conda-forge |
| types-python-dateutil |
2.9.0.20241206 |
pyhd8ed1ab_0 |
conda-forge |
| typing-extensions |
4.12.2 |
hd8ed1ab_1 |
conda-forge |
| typing_extensions |
4.12.2 |
pyha770c72_1 |
conda-forge |
| typing_utils |
0.1.0 |
pyhd8ed1ab_1 |
conda-forge |
| tzdata |
2024b |
hc8b5060_0 |
conda-forge |
| unicodedata2 |
15.1.0 |
py312h3d0f464_1 |
conda-forge |
| uri-template |
1.3.0 |
pyhd8ed1ab_1 |
conda-forge |
| uriparser |
0.9.8 |
h6aefe2f_0 |
conda-forge |
| urllib3 |
2.3.0 |
pyhd8ed1ab_0 |
conda-forge |
| wcwidth |
0.2.13 |
pyhd8ed1ab_1 |
conda-forge |
| webcolors |
24.11.1 |
pyhd8ed1ab_0 |
conda-forge |
| webencodings |
0.5.1 |
pyhd8ed1ab_3 |
conda-forge |
| websocket-client |
1.8.0 |
pyhd8ed1ab_1 |
conda-forge |
| wheel |
0.45.1 |
pyhd8ed1ab_1 |
conda-forge |
| widgetsnbextension |
4.0.13 |
pyhd8ed1ab_1 |
conda-forge |
| x265 |
3.5 |
hbb4e6a2_3 |
conda-forge |
| xarray |
2024.11.0 |
pyhd8ed1ab_0 |
conda-forge |
| xerces-c |
3.2.5 |
h197e74d_2 |
conda-forge |
| xorg-libxau |
1.0.12 |
h6e16a3a_0 |
conda-forge |
| xorg-libxdmcp |
1.1.5 |
h00291cd_0 |
conda-forge |
| xyzservices |
2024.9.0 |
pyhd8ed1ab_1 |
conda-forge |
| yaml |
0.2.5 |
h0d85af4_2 |
conda-forge |
| zeromq |
4.3.5 |
h7130eaa_7 |
conda-forge |
| zict |
3.0.0 |
pyhd8ed1ab_1 |
conda-forge |
| zipp |
3.21.0 |
pyhd8ed1ab_1 |
conda-forge |
| zlib |
1.3.1 |
hd23fc13_2 |
conda-forge |
| zstandard |
0.23.0 |
py312h7122b0e_1 |
conda-forge |
| zstd |
1.5.6 |
h915ae27_0 |
conda-forge |
The following are updates to the book to match these package versions.
from pysal.explore import esda
produces this message from numba.
OMP: Info #276: omp_set_nested routine deprecated, please use omp_set_max_active_levels instead.
I suspect this is peculiar to my ancient Intel Mac, but I thought I'd flag it.
03_spatial_data.ipynb and 12_feature_engineering.ipynb
The osmnx config() function has been replaced by a settings module. This line
osmnx.config(
overpass_settings='[out:json][timeout:90][date:"2021-10-07T00:00:00Z"]'
)
should change to this.
osmnx.settings.overpass_settings='[out:json][timeout:90][date:"2021-10-07T00:00:00Z"]'
07_local_autocorrelation.ipynb
In the last cell, matplotlib throws the following message.
Ignoring fixed y limits to fulfill fixed data aspect with adjustable data limits.
This is caused by this line.
# Keep proportion of axes
axs[i].axis("equal")
It appears that matplotlib was ignoring this line all along, but now tells you about it. Probably could delete it.
12_feature_engineering.ipynb
osmnx has changed its syntax for querying features from OSM. In addition, OSM has changed the attributes it returns with each feature. This code no longer works.
%%time
pois = osmnx.geometries_from_polygon(
airbnbs_ch, tags={"amenity": ["restaurant", "bar"]}
).reset_index()[
[
"element_type",
"osmid",
"amenity",
"cuisine",
"name",
"geometry",
]
]
The following works.
%%time
pois = osmnx.features_from_polygon(
airbnbs_ch, tags={"amenity": ["restaurant", "bar"]}
).reset_index()
pois = pois.rename(columns={'id':'osmid'})
pois = pois[
[
"osmid",
"amenity",
"cuisine",
"name",
"geometry",
]
]
GeoPandas has changed the op parameter to predicate. The following no longer works.
# Spatial join, appending attributes from right table to left one
joined = geopandas.sjoin(
# Right table - POIs
pois_albers,
# Left table - Airbnb with the geometry reset from the original
# points to the 500-meter buffer and selecting only `id` and
# `buffer_500m` column
airbnbs_albers.set_geometry("buffer_500m")[["id", "buffer_500m"]],
# Operation (spatial predicate) to use for the spatial join (`within`)
op="within",
)
This will fix it.
# Spatial join, appending attributes from right table to left one
joined = geopandas.sjoin(
# Right table - POIs
pois_albers,
# Left table - Airbnb with the geometry reset from the original
# points to the 500-meter buffer and selecting only `id` and
# `buffer_500m` column
airbnbs_albers.set_geometry("buffer_500m")[["id", "buffer_500m"]],
# Operation (spatial predicate) to use for the spatial join (`within`)
predicate="within",
)
A change in Rasterio results in dem.crs returning the WKT projection info, which is kinda confusing since it name checks five different EPSG numbers.
CRS.from_wkt('GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AXIS["Latitude",NORTH],AXIS["Longitude",EAST],AUTHORITY["EPSG","4326"]]')
Changing this to print(dem.crs) returns the following, which is clearer.
I like to use a fresh environment each time I teach from this book. I used the following command on Dec 31, 2024 on an Intel Mac.
List of packages installed along with their versions.
The following are updates to the book to match these package versions.
produces this message from numba.
I suspect this is peculiar to my ancient Intel Mac, but I thought I'd flag it.
03_spatial_data.ipynband12_feature_engineering.ipynbThe osmnx
config()function has been replaced by asettingsmodule. This lineshould change to this.
07_local_autocorrelation.ipynbIn the last cell, matplotlib throws the following message.
This is caused by this line.
It appears that matplotlib was ignoring this line all along, but now tells you about it. Probably could delete it.
12_feature_engineering.ipynbosmnx has changed its syntax for querying features from OSM. In addition, OSM has changed the attributes it returns with each feature. This code no longer works.
The following works.
GeoPandas has changed the
opparameter topredicate. The following no longer works.This will fix it.
A change in Rasterio results in
dem.crsreturning the WKT projection info, which is kinda confusing since it name checks five different EPSG numbers.Changing this to
print(dem.crs)returns the following, which is clearer.