From 8f544b8af1c4d6c4a4e20bbecbe92c912e074ea6 Mon Sep 17 00:00:00 2001 From: Leif Denby Date: Mon, 9 Dec 2024 15:30:37 +0100 Subject: [PATCH 01/28] add WIP notebook on technique from Tomas Landelius --- docs/domain-cropping.ipynb | 8238 ++++++++++++++++++++++++++++++++++++ pdm.lock | 1512 ++++++- pyproject.toml | 7 + 3 files changed, 9680 insertions(+), 77 deletions(-) create mode 100644 docs/domain-cropping.ipynb diff --git a/docs/domain-cropping.ipynb b/docs/domain-cropping.ipynb new file mode 100644 index 0000000..e3f7546 --- /dev/null +++ b/docs/domain-cropping.ipynb @@ -0,0 +1,8238 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import cartopy.crs as ccrs\n", + "import spherical_geometry as sg\n", + "from spherical_geometry.polygon import SphericalPolygon" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import xarray as xr" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "url_lam = \"https://mllam-test-data.s3.eu-north-1.amazonaws.com/height_levels.zarr\"\n", + "url_boundary = \"gs://weatherbench2/datasets/era5/1959-2023_01_10-6h-64x32_equiangular_conservative.zarr\"" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
<xarray.Dataset> Size: 1GB\n",
+       "Dimensions:   (altitude: 1, y: 589, x: 789, time: 100)\n",
+       "Coordinates:\n",
+       "  * altitude  (altitude) int64 8B 100\n",
+       "    lat       (y, x) float64 4MB dask.array<chunksize=(256, 256), meta=np.ndarray>\n",
+       "    lon       (y, x) float64 4MB dask.array<chunksize=(256, 256), meta=np.ndarray>\n",
+       "  * time      (time) datetime64[ns] 800B 1990-09-01 ... 1990-09-13T09:00:00\n",
+       "  * x         (x) float64 6kB -1.999e+06 -1.997e+06 ... -3.175e+04 -2.925e+04\n",
+       "  * y         (y) float64 5kB -6.095e+05 -6.07e+05 ... 8.58e+05 8.605e+05\n",
+       "Data variables:\n",
+       "    r         (altitude, time, y, x) float64 372MB dask.array<chunksize=(1, 100, 256, 256), meta=np.ndarray>\n",
+       "    t         (altitude, time, y, x) float64 372MB dask.array<chunksize=(1, 100, 256, 256), meta=np.ndarray>\n",
+       "    u         (altitude, time, y, x) float64 372MB dask.array<chunksize=(1, 100, 256, 256), meta=np.ndarray>\n",
+       "    v         (altitude, time, y, x) float64 372MB dask.array<chunksize=(1, 100, 256, 256), meta=np.ndarray>\n",
+       "Attributes:\n",
+       "    description:  All prognostic variables for 10-year period on reduced levels
" + ], + "text/plain": [ + " Size: 1GB\n", + "Dimensions: (altitude: 1, y: 589, x: 789, time: 100)\n", + "Coordinates:\n", + " * altitude (altitude) int64 8B 100\n", + " lat (y, x) float64 4MB dask.array\n", + " lon (y, x) float64 4MB dask.array\n", + " * time (time) datetime64[ns] 800B 1990-09-01 ... 1990-09-13T09:00:00\n", + " * x (x) float64 6kB -1.999e+06 -1.997e+06 ... -3.175e+04 -2.925e+04\n", + " * y (y) float64 5kB -6.095e+05 -6.07e+05 ... 8.58e+05 8.605e+05\n", + "Data variables:\n", + " r (altitude, time, y, x) float64 372MB dask.array\n", + " t (altitude, time, y, x) float64 372MB dask.array\n", + " u (altitude, time, y, x) float64 372MB dask.array\n", + " v (altitude, time, y, x) float64 372MB dask.array\n", + "Attributes:\n", + " description: All prognostic variables for 10-year period on reduced levels" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ds_lam = xr.open_zarr(url_lam)\n", + "ds_lam" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
<xarray.Dataset> Size: 175GB\n",
+       "Dimensions:                                           (time: 93544,\n",
+       "                                                       longitude: 64,\n",
+       "                                                       latitude: 32, level: 13)\n",
+       "Coordinates:\n",
+       "  * latitude                                          (latitude) float64 256B ...\n",
+       "  * level                                             (level) int64 104B 50 ....\n",
+       "  * longitude                                         (longitude) float64 512B ...\n",
+       "  * time                                              (time) datetime64[ns] 748kB ...\n",
+       "Data variables: (12/62)\n",
+       "    10m_u_component_of_wind                           (time, longitude, latitude) float32 766MB dask.array<chunksize=(100, 64, 32), meta=np.ndarray>\n",
+       "    10m_v_component_of_wind                           (time, longitude, latitude) float32 766MB dask.array<chunksize=(100, 64, 32), meta=np.ndarray>\n",
+       "    10m_wind_speed                                    (time, longitude, latitude) float32 766MB dask.array<chunksize=(100, 64, 32), meta=np.ndarray>\n",
+       "    2m_dewpoint_temperature                           (time, longitude, latitude) float32 766MB dask.array<chunksize=(100, 64, 32), meta=np.ndarray>\n",
+       "    2m_temperature                                    (time, longitude, latitude) float32 766MB dask.array<chunksize=(100, 64, 32), meta=np.ndarray>\n",
+       "    above_ground                                      (time, level, longitude, latitude) float32 10GB dask.array<chunksize=(100, 13, 64, 32), meta=np.ndarray>\n",
+       "    ...                                                ...\n",
+       "    volumetric_soil_water_layer_1                     (time, longitude, latitude) float32 766MB dask.array<chunksize=(100, 64, 32), meta=np.ndarray>\n",
+       "    volumetric_soil_water_layer_2                     (time, longitude, latitude) float32 766MB dask.array<chunksize=(100, 64, 32), meta=np.ndarray>\n",
+       "    volumetric_soil_water_layer_3                     (time, longitude, latitude) float32 766MB dask.array<chunksize=(100, 64, 32), meta=np.ndarray>\n",
+       "    volumetric_soil_water_layer_4                     (time, longitude, latitude) float32 766MB dask.array<chunksize=(100, 64, 32), meta=np.ndarray>\n",
+       "    vorticity                                         (time, level, longitude, latitude) float32 10GB dask.array<chunksize=(100, 13, 64, 32), meta=np.ndarray>\n",
+       "    wind_speed                                        (time, level, longitude, latitude) float32 10GB dask.array<chunksize=(100, 13, 64, 32), meta=np.ndarray>
" + ], + "text/plain": [ + " Size: 175GB\n", + "Dimensions: (time: 93544,\n", + " longitude: 64,\n", + " latitude: 32, level: 13)\n", + "Coordinates:\n", + " * latitude (latitude) float64 256B ...\n", + " * level (level) int64 104B 50 ....\n", + " * longitude (longitude) float64 512B ...\n", + " * time (time) datetime64[ns] 748kB ...\n", + "Data variables: (12/62)\n", + " 10m_u_component_of_wind (time, longitude, latitude) float32 766MB dask.array\n", + " 10m_v_component_of_wind (time, longitude, latitude) float32 766MB dask.array\n", + " 10m_wind_speed (time, longitude, latitude) float32 766MB dask.array\n", + " 2m_dewpoint_temperature (time, longitude, latitude) float32 766MB dask.array\n", + " 2m_temperature (time, longitude, latitude) float32 766MB dask.array\n", + " above_ground (time, level, longitude, latitude) float32 10GB dask.array\n", + " ... ...\n", + " volumetric_soil_water_layer_1 (time, longitude, latitude) float32 766MB dask.array\n", + " volumetric_soil_water_layer_2 (time, longitude, latitude) float32 766MB dask.array\n", + " volumetric_soil_water_layer_3 (time, longitude, latitude) float32 766MB dask.array\n", + " volumetric_soil_water_layer_4 (time, longitude, latitude) float32 766MB dask.array\n", + " vorticity (time, level, longitude, latitude) float32 10GB dask.array\n", + " wind_speed (time, level, longitude, latitude) float32 10GB dask.array" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ds_boundary = xr.open_zarr(url_boundary)\n", + "ds_boundary" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "def get_latlon_arrays(ds, lon='longitude', lat='latitude'):\n", + " da_lon = ds[lon]\n", + " da_lat = ds[lat]\n", + "\n", + " # check if lat and lon dataarrays share dimensions, otherwise we need to\n", + " # broadcast\n", + " if da_lon.dims != da_lat.dims:\n", + " lons, lats = np.meshgrid(da_lon.values, da_lat.values)\n", + " lons = lons.flatten()\n", + " lats = lats.flatten()\n", + " else:\n", + " lons = da_lon.values.flatten()\n", + " lats = da_lat.values.flatten()\n", + " \n", + " return lons, lats\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "((2048, 2), (4661, 2))" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "k = 10\n", + "ds_lam_subsampled = ds_lam.isel(x=slice(None, None, k), y=slice(None, None, k))\n", + "points_bnd = np.array(get_latlon_arrays(ds_boundary)).T\n", + "points_lam = np.array(get_latlon_arrays(ds_lam_subsampled, lon='lon', lat='lat')).T\n", + "\n", + "points_bnd.shape, points_lam.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(subplot_kw={'projection': ccrs.PlateCarree()})\n", + "ax.coastlines()\n", + "ax.scatter(points_bnd[:, 0], points_bnd[:, 1], color='red', s=1)\n", + "ax.scatter(points_lam[:, 0], points_lam[:, 1], color='blue', s=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# latlon to cartesian coords\n", + "pts_bnd_x = np.array(sg.vector.lonlat_to_vector(points_bnd[:,0], points_bnd[:,1])).T\n", + "pts_lam_x = np.array(sg.vector.lonlat_to_vector(points_lam[:,0], points_lam[:,1])).T\n", + "\n", + "chull_lam = SphericalPolygon.convex_hull(pts_lam_x)\n", + "\n", + "# Finding the boundary points inside the convec hull is what takes time. Possibly speed up by restricting to a subset of points_bnd that are within some distance from area center or similar?\n", + "msk_in = np.array([chull_lam.contains_lonlat(x[1], x[0]) for x in points_bnd])\n", + "\n", + "# Distances from all boundary points outside the region to the closest point inside\n", + "d = np.array([np.min(np.arccos(np.dot(pts_lam_x, x))) for x in pts_bnd_x[~msk_in]])\n", + "\n", + "# Define boundary distance and mask boundary points outside that are closer\n", + "# This is now in radians but should be defined as meters based on Earth radius\n", + "ii = d < 0.2\n", + "\n", + "# Plot boundary valid boundary points outside and the LAM interior points (subset)\n", + "fig, ax = plt.subplots(subplot_kw={'projection': ccrs.PlateCarree()}, figsize=(10, 10))\n", + "ax.coastlines()\n", + "# xr.plot.scatter(ds_boundary, x='longitude', y='latitude', color='red', s=1, ax=ax, transform=ccrs.Geodetic())\n", + "xr.plot.scatter(ds_lam_subsampled, x='lon', y='lat', color='blue', s=1, ax=ax, transform=ccrs.Geodetic())\n", + "ax.plot(points_bnd[~msk_in,0][ii], points_bnd[~msk_in,1][ii], '.', color='green', markersize=1, transform=ccrs.Geodetic())" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([False, False, False, ..., False, False, False])" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ii" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/pdm.lock b/pdm.lock index 30a0e20..e89b9b0 100644 --- a/pdm.lock +++ b/pdm.lock @@ -2,10 +2,10 @@ # It is not intended for manual editing. [metadata] -groups = ["default", "dev"] +groups = ["default", "dev", "latlon-domain-crop"] strategy = ["inherit_metadata"] lock_version = "4.5.0" -content_hash = "sha256:ed345b0df8664a5ab1aadb77d5c4218ef15f135ddacd674f0d029e5a39f9654d" +content_hash = "sha256:5433ccdea7b0ccc8b1c0e5c0d3b0b14ade0af67f891744fc473ee9c72e779963" [[metadata.targets]] requires_python = ">=3.9" @@ -15,7 +15,7 @@ name = "aiohttp" version = "3.9.5" requires_python = ">=3.8" summary = "Async http client/server framework (asyncio)" -groups = ["default"] +groups = ["default", "latlon-domain-crop"] dependencies = [ "aiosignal>=1.1.2", "async-timeout<5.0,>=4.0; python_version < \"3.11\"", @@ -78,7 +78,7 @@ name = "aiosignal" version = "1.3.1" requires_python = ">=3.7" summary = "aiosignal: a list of registered asynchronous callbacks" -groups = ["default"] +groups = ["default", "latlon-domain-crop"] dependencies = [ "frozenlist>=1.1.0", ] @@ -87,6 +87,18 @@ files = [ {file = "aiosignal-1.3.1.tar.gz", hash = "sha256:54cd96e15e1649b75d6c87526a6ff0b6c1b0dd3459f43d9ca11d48c339b68cfc"}, ] +[[package]] +name = "appnope" +version = "0.1.4" +requires_python = ">=3.6" +summary = "Disable App Nap on macOS >= 10.9" +groups = ["dev"] +marker = "platform_system == \"Darwin\"" +files = [ + {file = "appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c"}, + {file = "appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee"}, +] + [[package]] name = "asciitree" version = "0.3.3" @@ -96,12 +108,67 @@ files = [ {file = "asciitree-0.3.3.tar.gz", hash = "sha256:4aa4b9b649f85e3fcb343363d97564aa1fb62e249677f2e18a96765145cc0f6e"}, ] +[[package]] +name = "astropy" +version = "6.0.1" +requires_python = ">=3.9" +summary = "Astronomy and astrophysics core library" +groups = ["latlon-domain-crop"] +dependencies = [ + "PyYAML>=3.13", + "astropy-iers-data>=0.2024.2.26.0.28.55", + "numpy<2,>=1.22", + "packaging>=19.0", + "pyerfa>=2.0.1.1", +] +files = [ + {file = "astropy-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2b5ff962b0e586953f95b63ec047e1d7a3b6a12a13d11c6e909e0bcd3e05b445"}, + {file = "astropy-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:129ed1fb1d23e6fbf8b8e697c2e7340d99bc6271b8c59f9572f3f47063a42e6a"}, + {file = "astropy-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6e998ee0ffa58342b4d44f2843b036015e3a6326b53185c5361fea4430658466"}, + {file = "astropy-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c33e3d746c3e7a324dbd76b236fe1e44304d5b6d941a1f724f419d01666d6d88"}, + {file = "astropy-6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2f53caf9efebcc9040a92c977dcdae78dd0ff4de218fd316e4fcaffd9ace8dc1"}, + {file = "astropy-6.0.1-cp310-cp310-win32.whl", hash = "sha256:242b8f101301ab303366109d0dfe3cf0db745bf778f7b859fb486105197577d1"}, + {file = "astropy-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:1db9e95438472f6ed53fa2f4e2811c2d84f4085eeacc3cb8820d770d1ea61d1c"}, + {file = "astropy-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c682967736228cc4477e63db0e8854375dd31d755de55b30256de98f1f7b7c23"}, + {file = "astropy-6.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5208b6f10956ca92efb73375364c81a7df365b441b07f4941a24ee0f1bd9e292"}, + {file = "astropy-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f28facb5800c0617f233c1db0e622da83de1f74ca28d0ff8646e360d4fda74e"}, + {file = "astropy-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c00922548a666b026e2630a563090341d74c8222066e9c84c9673395bca7363"}, + {file = "astropy-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9b3bf27c51fb46bba993695eebd0c39a4e2a792b707e65b28ac4e8ae703f93d4"}, + {file = "astropy-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1f183ab42655ad09b064a4e8eb9cd1eaa138b90ca2f0cd82a200afda062063a5"}, + {file = "astropy-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:d934aff5fe81e84a45098e281f969976963cc16b3401176a8171affd84301a27"}, + {file = "astropy-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:4fdd54fa57b85d50c4b83ab7ffd90ba2ffcc3d725e3f8d5ffa1ff5f500ef6b97"}, + {file = "astropy-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d1eb40fe68121753f43fc82d618a2eae53dd0731689e124ef9e002aa2c241c4f"}, + {file = "astropy-6.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8bc267738a85f633142c246dceefa722b653e7ba99f02e86dd9a7b980467eafc"}, + {file = "astropy-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e604898ca1790c9fd2e2dc83b38f9185556ea618a3a6e6be31c286fafbebd165"}, + {file = "astropy-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:034dff5994428fb89813f40a18600dd8804128c52edf3d1baa8936eca3738de4"}, + {file = "astropy-6.0.1-cp312-cp312-win32.whl", hash = "sha256:87ebbae7ba52f4de9b9f45029a3167d6515399138048d0b734c9033fda7fd723"}, + {file = "astropy-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:8fbd6d88935749ae892445691ac0dbd1923fc6d8094753a35150fc7756118fe3"}, + {file = "astropy-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f18536d6f97faa81ed6c9af7bb2e27b376b41b27399f862e3b13387538c966b9"}, + {file = "astropy-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:764992af1ee1cd6d6f26373d09ddb5ede639d025ce9ff658b3b6580dc2ba4ec6"}, + {file = "astropy-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:34fd2bb39cbfa6a8815b5cc99008d59057b9d341db00c67dbb40a3784a8dfb08"}, + {file = "astropy-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ca9da00bfa95fbf8475d22aba6d7d046f3821a107b733fc7c7c35c74fcfa2bbf"}, + {file = "astropy-6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:15a5da8a0a84d75b55fafd56630578131c3c9186e4e486b4d2fb15c349b844d0"}, + {file = "astropy-6.0.1-cp39-cp39-win32.whl", hash = "sha256:46cbadf360bbadb6a106217e104b91f85dd618658caffdaab5d54a14d0d52563"}, + {file = "astropy-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:eaff9388a2fed0757bd0b4c41c9346d0edea9e7e938a4bfa8070eaabbb538a23"}, + {file = "astropy-6.0.1.tar.gz", hash = "sha256:89a975de356d0608e74f1f493442fb3acbbb7a85b739e074460bb0340014b39c"}, +] + +[[package]] +name = "astropy-iers-data" +version = "0.2024.12.9.0.36.21" +requires_python = ">=3.8" +summary = "IERS Earth Rotation and Leap Second tables for the astropy core package" +groups = ["latlon-domain-crop"] +files = [ + {file = "astropy_iers_data-0.2024.12.9.0.36.21-py3-none-any.whl", hash = "sha256:f22cc517b5bc164e4d105c14677d918ab732ef10342fe76fc9068fa46755c91f"}, + {file = "astropy_iers_data-0.2024.12.9.0.36.21.tar.gz", hash = "sha256:b8c235b5420702a8e28bb43d94e634aa4bead38d9e72dea03fd0a22b1057817d"}, +] + [[package]] name = "asttokens" version = "2.4.1" summary = "Annotate AST trees with source code positions" groups = ["dev"] -marker = "python_version > \"3.6\"" dependencies = [ "six>=1.12.0", "typing; python_version < \"3.5\"", @@ -116,7 +183,7 @@ name = "async-timeout" version = "4.0.3" requires_python = ">=3.7" summary = "Timeout context manager for asyncio programs" -groups = ["default"] +groups = ["default", "latlon-domain-crop"] marker = "python_version < \"3.11\"" dependencies = [ "typing-extensions>=3.6.5; python_version < \"3.8\"", @@ -131,7 +198,7 @@ name = "attrs" version = "23.2.0" requires_python = ">=3.7" summary = "Classes Without Boilerplate" -groups = ["default"] +groups = ["default", "latlon-domain-crop"] dependencies = [ "importlib-metadata; python_version < \"3.8\"", ] @@ -140,17 +207,134 @@ files = [ {file = "attrs-23.2.0.tar.gz", hash = "sha256:935dc3b529c262f6cf76e50877d35a4bd3c1de194fd41f47a2b7ae8f19971f30"}, ] +[[package]] +name = "cachetools" +version = "5.5.0" +requires_python = ">=3.7" +summary = "Extensible memoizing collections and decorators" +groups = ["latlon-domain-crop"] +files = [ + {file = "cachetools-5.5.0-py3-none-any.whl", hash = "sha256:02134e8439cdc2ffb62023ce1debca2944c3f289d66bb17ead3ab3dede74b292"}, + {file = "cachetools-5.5.0.tar.gz", hash = "sha256:2cc24fb4cbe39633fb7badd9db9ca6295d766d9c2995f245725a46715d050f2a"}, +] + +[[package]] +name = "cartopy" +version = "0.23.0" +requires_python = ">=3.9" +summary = "A Python library for cartographic visualizations with Matplotlib" +groups = ["latlon-domain-crop"] +dependencies = [ + "matplotlib>=3.5", + "numpy>=1.21", + "packaging>=20", + "pyproj>=3.3.1", + "pyshp>=2.3", + "shapely>=1.7", +] +files = [ + {file = "Cartopy-0.23.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:374e66f816c3bafa48ffdbf6abaefa67063b405fac5f425f9be241cdf3498352"}, + {file = "Cartopy-0.23.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2bae450c4c913796cad0b7ce05aa2fa78d1788de47989f0a03183397648e24be"}, + {file = "Cartopy-0.23.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a40437596e8ac5e74575eab822c661f4e725bd995cfd9e445069695fe9086b42"}, + {file = "Cartopy-0.23.0-cp310-cp310-win_amd64.whl", hash = "sha256:3292d6d403137eed80d32014c2f28de6282bed8824213f4b4c2170f388b24a1b"}, + {file = "Cartopy-0.23.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:86b07b6794b616674e4e485b8574e9197bca54a4467d28dd01ae0bf178f8dc2b"}, + {file = "Cartopy-0.23.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8dece2aa8d5ff7bf989ded6b5f07c980fb5bb772952bc7cdeab469738abdecee"}, + {file = "Cartopy-0.23.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9dfd28352dc83d6b4e4cf85d84cb50fc4886d4c1510d61f4c7cf22477d1156f"}, + {file = "Cartopy-0.23.0-cp311-cp311-win_amd64.whl", hash = "sha256:b2671b5354e43220f8e1074e7fe30a8b9f71cb38407c78e51db9c97772f0320b"}, + {file = "Cartopy-0.23.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:80b9fd666fd47f6370d29f7ad4e352828d54aaf688a03d0b83b51e141cfd77fa"}, + {file = "Cartopy-0.23.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:43e36b8b7e7e373a5698757458fd28fafbbbf5f3ebbe2d378f6a5ec3993d6dc0"}, + {file = "Cartopy-0.23.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:550173b91155d4d81cd14b4892cb6cabe3dd32bd34feacaa1ec78c0e56287832"}, + {file = "Cartopy-0.23.0-cp312-cp312-win_amd64.whl", hash = "sha256:55219ee0fb069cc3254426e87382cde03546e86c3f7c6759f076823b1e3a44d9"}, + {file = "Cartopy-0.23.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6279af846bf77d9817ab8792a8e38ca561878f048bba1afdae3e3a30c5432bfd"}, + {file = "Cartopy-0.23.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:843bf9dc0a18e1a8eed872c49e8092e8a8109e4dce285ad96752841e21e8161e"}, + {file = "Cartopy-0.23.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:350ff8802e2bc617c09bd6148aeb46e841775a846bfaa6e635a212d1eaf5ab66"}, + {file = "Cartopy-0.23.0-cp39-cp39-win_amd64.whl", hash = "sha256:b52ab2274ad7504955854ef8d6f603e41f5d7163d02b29d369cecdbd29c2fda1"}, + {file = "Cartopy-0.23.0.tar.gz", hash = "sha256:231f37b35701f2ba31d94959cca75e6da04c2eea3a7f14ce1c75ee3b0eae7676"}, +] + [[package]] name = "certifi" version = "2024.6.2" requires_python = ">=3.6" summary = "Python package for providing Mozilla's CA Bundle." -groups = ["default"] +groups = ["default", "latlon-domain-crop"] files = [ {file = "certifi-2024.6.2-py3-none-any.whl", hash = "sha256:ddc6c8ce995e6987e7faf5e3f1b02b302836a0e5d98ece18392cb1a36c72ad56"}, {file = "certifi-2024.6.2.tar.gz", hash = "sha256:3cd43f1c6fa7dedc5899d69d3ad0398fd018ad1a17fba83ddaf78aa46c747516"}, ] +[[package]] +name = "cffi" +version = "1.17.1" +requires_python = ">=3.8" +summary = "Foreign Function Interface for Python calling C code." +groups = ["dev"] +marker = "implementation_name == \"pypy\"" +dependencies = [ + "pycparser", +] +files = [ + {file = "cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14"}, + {file = "cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be"}, + {file = "cffi-1.17.1-cp310-cp310-win32.whl", hash = "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c"}, + {file = "cffi-1.17.1-cp310-cp310-win_amd64.whl", hash = "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b"}, + {file = "cffi-1.17.1-cp311-cp311-win32.whl", hash = "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655"}, + {file = "cffi-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8"}, + {file = "cffi-1.17.1-cp312-cp312-win32.whl", hash = "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65"}, + {file = "cffi-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9"}, + {file = "cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d"}, + {file = "cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e"}, + {file = "cffi-1.17.1-cp39-cp39-win32.whl", hash = "sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7"}, + {file = "cffi-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662"}, + {file = "cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824"}, +] + [[package]] name = "cfgv" version = "3.4.0" @@ -167,7 +351,7 @@ name = "charset-normalizer" version = "3.3.2" requires_python = ">=3.7.0" summary = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -groups = ["default"] +groups = ["default", "latlon-domain-crop"] files = [ {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, @@ -256,6 +440,108 @@ files = [ {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, ] +[[package]] +name = "comm" +version = "0.2.2" +requires_python = ">=3.8" +summary = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc." +groups = ["dev"] +dependencies = [ + "traitlets>=4", +] +files = [ + {file = "comm-0.2.2-py3-none-any.whl", hash = "sha256:e6fb86cb70ff661ee8c9c14e7d36d6de3b4066f1441be4063df9c5009f0a64d3"}, + {file = "comm-0.2.2.tar.gz", hash = "sha256:3fd7a84065306e07bea1773df6eb8282de51ba82f77c72f9c85716ab11fe980e"}, +] + +[[package]] +name = "contourpy" +version = "1.3.0" +requires_python = ">=3.9" +summary = "Python library for calculating contours of 2D quadrilateral grids" +groups = ["latlon-domain-crop"] +dependencies = [ + "numpy>=1.23", +] +files = [ + {file = "contourpy-1.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:880ea32e5c774634f9fcd46504bf9f080a41ad855f4fef54f5380f5133d343c7"}, + {file = "contourpy-1.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:76c905ef940a4474a6289c71d53122a4f77766eef23c03cd57016ce19d0f7b42"}, + {file = "contourpy-1.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:92f8557cbb07415a4d6fa191f20fd9d2d9eb9c0b61d1b2f52a8926e43c6e9af7"}, + {file = "contourpy-1.3.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:36f965570cff02b874773c49bfe85562b47030805d7d8360748f3eca570f4cab"}, + {file = "contourpy-1.3.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cacd81e2d4b6f89c9f8a5b69b86490152ff39afc58a95af002a398273e5ce589"}, + {file = "contourpy-1.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:69375194457ad0fad3a839b9e29aa0b0ed53bb54db1bfb6c3ae43d111c31ce41"}, + {file = "contourpy-1.3.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:7a52040312b1a858b5e31ef28c2e865376a386c60c0e248370bbea2d3f3b760d"}, + {file = "contourpy-1.3.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3faeb2998e4fcb256542e8a926d08da08977f7f5e62cf733f3c211c2a5586223"}, + {file = "contourpy-1.3.0-cp310-cp310-win32.whl", hash = "sha256:36e0cff201bcb17a0a8ecc7f454fe078437fa6bda730e695a92f2d9932bd507f"}, + {file = "contourpy-1.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:87ddffef1dbe5e669b5c2440b643d3fdd8622a348fe1983fad7a0f0ccb1cd67b"}, + {file = "contourpy-1.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0fa4c02abe6c446ba70d96ece336e621efa4aecae43eaa9b030ae5fb92b309ad"}, + {file = "contourpy-1.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:834e0cfe17ba12f79963861e0f908556b2cedd52e1f75e6578801febcc6a9f49"}, + {file = "contourpy-1.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dbc4c3217eee163fa3984fd1567632b48d6dfd29216da3ded3d7b844a8014a66"}, + {file = "contourpy-1.3.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4865cd1d419e0c7a7bf6de1777b185eebdc51470800a9f42b9e9decf17762081"}, + {file = "contourpy-1.3.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:303c252947ab4b14c08afeb52375b26781ccd6a5ccd81abcdfc1fafd14cf93c1"}, + {file = "contourpy-1.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:637f674226be46f6ba372fd29d9523dd977a291f66ab2a74fbeb5530bb3f445d"}, + {file = "contourpy-1.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:76a896b2f195b57db25d6b44e7e03f221d32fe318d03ede41f8b4d9ba1bff53c"}, + {file = "contourpy-1.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e1fd23e9d01591bab45546c089ae89d926917a66dceb3abcf01f6105d927e2cb"}, + {file = "contourpy-1.3.0-cp311-cp311-win32.whl", hash = "sha256:d402880b84df3bec6eab53cd0cf802cae6a2ef9537e70cf75e91618a3801c20c"}, + {file = "contourpy-1.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:6cb6cc968059db9c62cb35fbf70248f40994dfcd7aa10444bbf8b3faeb7c2d67"}, + {file = "contourpy-1.3.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:570ef7cf892f0afbe5b2ee410c507ce12e15a5fa91017a0009f79f7d93a1268f"}, + {file = "contourpy-1.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:da84c537cb8b97d153e9fb208c221c45605f73147bd4cadd23bdae915042aad6"}, + {file = "contourpy-1.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0be4d8425bfa755e0fd76ee1e019636ccc7c29f77a7c86b4328a9eb6a26d0639"}, + {file = "contourpy-1.3.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9c0da700bf58f6e0b65312d0a5e695179a71d0163957fa381bb3c1f72972537c"}, + {file = "contourpy-1.3.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eb8b141bb00fa977d9122636b16aa67d37fd40a3d8b52dd837e536d64b9a4d06"}, + {file = "contourpy-1.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3634b5385c6716c258d0419c46d05c8aa7dc8cb70326c9a4fb66b69ad2b52e09"}, + {file = "contourpy-1.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0dce35502151b6bd35027ac39ba6e5a44be13a68f55735c3612c568cac3805fd"}, + {file = "contourpy-1.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:aea348f053c645100612b333adc5983d87be69acdc6d77d3169c090d3b01dc35"}, + {file = "contourpy-1.3.0-cp312-cp312-win32.whl", hash = "sha256:90f73a5116ad1ba7174341ef3ea5c3150ddf20b024b98fb0c3b29034752c8aeb"}, + {file = "contourpy-1.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:b11b39aea6be6764f84360fce6c82211a9db32a7c7de8fa6dd5397cf1d079c3b"}, + {file = "contourpy-1.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:3e1c7fa44aaae40a2247e2e8e0627f4bea3dd257014764aa644f319a5f8600e3"}, + {file = "contourpy-1.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:364174c2a76057feef647c802652f00953b575723062560498dc7930fc9b1cb7"}, + {file = "contourpy-1.3.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:32b238b3b3b649e09ce9aaf51f0c261d38644bdfa35cbaf7b263457850957a84"}, + {file = "contourpy-1.3.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d51fca85f9f7ad0b65b4b9fe800406d0d77017d7270d31ec3fb1cc07358fdea0"}, + {file = "contourpy-1.3.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:732896af21716b29ab3e988d4ce14bc5133733b85956316fb0c56355f398099b"}, + {file = "contourpy-1.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d73f659398a0904e125280836ae6f88ba9b178b2fed6884f3b1f95b989d2c8da"}, + {file = "contourpy-1.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c6c7c2408b7048082932cf4e641fa3b8ca848259212f51c8c59c45aa7ac18f14"}, + {file = "contourpy-1.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f317576606de89da6b7e0861cf6061f6146ead3528acabff9236458a6ba467f8"}, + {file = "contourpy-1.3.0-cp313-cp313-win32.whl", hash = "sha256:31cd3a85dbdf1fc002280c65caa7e2b5f65e4a973fcdf70dd2fdcb9868069294"}, + {file = "contourpy-1.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:4553c421929ec95fb07b3aaca0fae668b2eb5a5203d1217ca7c34c063c53d087"}, + {file = "contourpy-1.3.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:345af746d7766821d05d72cb8f3845dfd08dd137101a2cb9b24de277d716def8"}, + {file = "contourpy-1.3.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3bb3808858a9dc68f6f03d319acd5f1b8a337e6cdda197f02f4b8ff67ad2057b"}, + {file = "contourpy-1.3.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:420d39daa61aab1221567b42eecb01112908b2cab7f1b4106a52caaec8d36973"}, + {file = "contourpy-1.3.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4d63ee447261e963af02642ffcb864e5a2ee4cbfd78080657a9880b8b1868e18"}, + {file = "contourpy-1.3.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:167d6c890815e1dac9536dca00828b445d5d0df4d6a8c6adb4a7ec3166812fa8"}, + {file = "contourpy-1.3.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:710a26b3dc80c0e4febf04555de66f5fd17e9cf7170a7b08000601a10570bda6"}, + {file = "contourpy-1.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:75ee7cb1a14c617f34a51d11fa7524173e56551646828353c4af859c56b766e2"}, + {file = "contourpy-1.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:33c92cdae89ec5135d036e7218e69b0bb2851206077251f04a6c4e0e21f03927"}, + {file = "contourpy-1.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a11077e395f67ffc2c44ec2418cfebed032cd6da3022a94fc227b6faf8e2acb8"}, + {file = "contourpy-1.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e8134301d7e204c88ed7ab50028ba06c683000040ede1d617298611f9dc6240c"}, + {file = "contourpy-1.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e12968fdfd5bb45ffdf6192a590bd8ddd3ba9e58360b29683c6bb71a7b41edca"}, + {file = "contourpy-1.3.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fd2a0fc506eccaaa7595b7e1418951f213cf8255be2600f1ea1b61e46a60c55f"}, + {file = "contourpy-1.3.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4cfb5c62ce023dfc410d6059c936dcf96442ba40814aefbfa575425a3a7f19dc"}, + {file = "contourpy-1.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68a32389b06b82c2fdd68276148d7b9275b5f5cf13e5417e4252f6d1a34f72a2"}, + {file = "contourpy-1.3.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:94e848a6b83da10898cbf1311a815f770acc9b6a3f2d646f330d57eb4e87592e"}, + {file = "contourpy-1.3.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:d78ab28a03c854a873787a0a42254a0ccb3cb133c672f645c9f9c8f3ae9d0800"}, + {file = "contourpy-1.3.0-cp39-cp39-win32.whl", hash = "sha256:81cb5ed4952aae6014bc9d0421dec7c5835c9c8c31cdf51910b708f548cf58e5"}, + {file = "contourpy-1.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:14e262f67bd7e6eb6880bc564dcda30b15e351a594657e55b7eec94b6ef72843"}, + {file = "contourpy-1.3.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:fe41b41505a5a33aeaed2a613dccaeaa74e0e3ead6dd6fd3a118fb471644fd6c"}, + {file = "contourpy-1.3.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eca7e17a65f72a5133bdbec9ecf22401c62bcf4821361ef7811faee695799779"}, + {file = "contourpy-1.3.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:1ec4dc6bf570f5b22ed0d7efba0dfa9c5b9e0431aeea7581aa217542d9e809a4"}, + {file = "contourpy-1.3.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:00ccd0dbaad6d804ab259820fa7cb0b8036bda0686ef844d24125d8287178ce0"}, + {file = "contourpy-1.3.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8ca947601224119117f7c19c9cdf6b3ab54c5726ef1d906aa4a69dfb6dd58102"}, + {file = "contourpy-1.3.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:c6ec93afeb848a0845a18989da3beca3eec2c0f852322efe21af1931147d12cb"}, + {file = "contourpy-1.3.0.tar.gz", hash = "sha256:7ffa0db17717a8ffb127efd0c95a4362d996b892c2904db72428d5b52e1938a4"}, +] + +[[package]] +name = "cycler" +version = "0.12.1" +requires_python = ">=3.8" +summary = "Composable style cycles" +groups = ["latlon-domain-crop"] +files = [ + {file = "cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30"}, + {file = "cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c"}, +] + [[package]] name = "dask" version = "2024.7.1" @@ -292,13 +578,43 @@ files = [ {file = "dataclass_wizard-0.22.3-py2.py3-none-any.whl", hash = "sha256:63751203e54b9b9349212cc185331da73c1adc99c51312575eb73bb5c00c1962"}, ] +[[package]] +name = "debugpy" +version = "1.8.9" +requires_python = ">=3.8" +summary = "An implementation of the Debug Adapter Protocol for Python" +groups = ["dev"] +files = [ + {file = "debugpy-1.8.9-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:cfe1e6c6ad7178265f74981edf1154ffce97b69005212fbc90ca22ddfe3d017e"}, + {file = "debugpy-1.8.9-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ada7fb65102a4d2c9ab62e8908e9e9f12aed9d76ef44880367bc9308ebe49a0f"}, + {file = "debugpy-1.8.9-cp310-cp310-win32.whl", hash = "sha256:c36856343cbaa448171cba62a721531e10e7ffb0abff838004701454149bc037"}, + {file = "debugpy-1.8.9-cp310-cp310-win_amd64.whl", hash = "sha256:17c5e0297678442511cf00a745c9709e928ea4ca263d764e90d233208889a19e"}, + {file = "debugpy-1.8.9-cp311-cp311-macosx_14_0_universal2.whl", hash = "sha256:b74a49753e21e33e7cf030883a92fa607bddc4ede1aa4145172debc637780040"}, + {file = "debugpy-1.8.9-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:62d22dacdb0e296966d7d74a7141aaab4bec123fa43d1a35ddcb39bf9fd29d70"}, + {file = "debugpy-1.8.9-cp311-cp311-win32.whl", hash = "sha256:8138efff315cd09b8dcd14226a21afda4ca582284bf4215126d87342bba1cc66"}, + {file = "debugpy-1.8.9-cp311-cp311-win_amd64.whl", hash = "sha256:ff54ef77ad9f5c425398efb150239f6fe8e20c53ae2f68367eba7ece1e96226d"}, + {file = "debugpy-1.8.9-cp312-cp312-macosx_14_0_universal2.whl", hash = "sha256:957363d9a7a6612a37458d9a15e72d03a635047f946e5fceee74b50d52a9c8e2"}, + {file = "debugpy-1.8.9-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e565fc54b680292b418bb809f1386f17081d1346dca9a871bf69a8ac4071afe"}, + {file = "debugpy-1.8.9-cp312-cp312-win32.whl", hash = "sha256:3e59842d6c4569c65ceb3751075ff8d7e6a6ada209ceca6308c9bde932bcef11"}, + {file = "debugpy-1.8.9-cp312-cp312-win_amd64.whl", hash = "sha256:66eeae42f3137eb428ea3a86d4a55f28da9bd5a4a3d369ba95ecc3a92c1bba53"}, + {file = "debugpy-1.8.9-cp313-cp313-macosx_14_0_universal2.whl", hash = "sha256:957ecffff80d47cafa9b6545de9e016ae8c9547c98a538ee96ab5947115fb3dd"}, + {file = "debugpy-1.8.9-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1efbb3ff61487e2c16b3e033bc8595aea578222c08aaf3c4bf0f93fadbd662ee"}, + {file = "debugpy-1.8.9-cp313-cp313-win32.whl", hash = "sha256:7c4d65d03bee875bcb211c76c1d8f10f600c305dbd734beaed4077e902606fee"}, + {file = "debugpy-1.8.9-cp313-cp313-win_amd64.whl", hash = "sha256:e46b420dc1bea64e5bbedd678148be512442bc589b0111bd799367cde051e71a"}, + {file = "debugpy-1.8.9-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:7e8b079323a56f719977fde9d8115590cb5e7a1cba2fcee0986ef8817116e7c1"}, + {file = "debugpy-1.8.9-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6953b335b804a41f16a192fa2e7851bdcfd92173cbb2f9f777bb934f49baab65"}, + {file = "debugpy-1.8.9-cp39-cp39-win32.whl", hash = "sha256:7e646e62d4602bb8956db88b1e72fe63172148c1e25c041e03b103a25f36673c"}, + {file = "debugpy-1.8.9-cp39-cp39-win_amd64.whl", hash = "sha256:3d9755e77a2d680ce3d2c5394a444cf42be4a592caaf246dbfbdd100ffcf7ae5"}, + {file = "debugpy-1.8.9-py2.py3-none-any.whl", hash = "sha256:cc37a6c9987ad743d9c3a14fa1b1a14b7e4e6041f9dd0c8abf8895fe7a97b899"}, + {file = "debugpy-1.8.9.zip", hash = "sha256:1339e14c7d980407248f09824d1b25ff5c5616651689f1e0f0e51bdead3ea13e"}, +] + [[package]] name = "decorator" version = "5.1.1" requires_python = ">=3.5" summary = "Decorators for Humans" -groups = ["dev"] -marker = "python_version > \"3.6\"" +groups = ["dev", "latlon-domain-crop"] files = [ {file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"}, {file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"}, @@ -332,7 +648,6 @@ version = "2.0.1" requires_python = ">=3.5" summary = "Get the currently executing AST node of a frame, and other information" groups = ["dev"] -marker = "python_version > \"3.6\"" files = [ {file = "executing-2.0.1-py2.py3-none-any.whl", hash = "sha256:eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc"}, {file = "executing-2.0.1.tar.gz", hash = "sha256:35afe2ce3affba8ee97f2d69927fa823b08b472b7b994e36a52a964b93d16147"}, @@ -361,12 +676,63 @@ files = [ {file = "filelock-3.15.4.tar.gz", hash = "sha256:2207938cbc1844345cb01a5a95524dae30f0ce089eba5b00378295a17e3e90cb"}, ] +[[package]] +name = "fonttools" +version = "4.55.2" +requires_python = ">=3.8" +summary = "Tools to manipulate font files" +groups = ["latlon-domain-crop"] +files = [ + {file = "fonttools-4.55.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:bef0f8603834643b1a6419d57902f18e7d950ec1a998fb70410635c598dc1a1e"}, + {file = "fonttools-4.55.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:944228b86d472612d3b48bcc83b31c25c2271e63fdc74539adfcfa7a96d487fb"}, + {file = "fonttools-4.55.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9f0e55f5da594b85f269cfbecd2f6bd3e07d0abba68870bc3f34854de4fa4678"}, + {file = "fonttools-4.55.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5b1a6e576db0c83c1b91925bf1363478c4bb968dbe8433147332fb5782ce6190"}, + {file = "fonttools-4.55.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:616368b15716781bc84df5c2191dc0540137aaef56c2771eb4b89b90933f347a"}, + {file = "fonttools-4.55.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7bbae4f3915225c2c37670da68e2bf18a21206060ad31dfb95fec91ef641caa7"}, + {file = "fonttools-4.55.2-cp310-cp310-win32.whl", hash = "sha256:8b02b10648d69d67a7eb055f4d3eedf4a85deb22fb7a19fbd9acbae7c7538199"}, + {file = "fonttools-4.55.2-cp310-cp310-win_amd64.whl", hash = "sha256:bbea0ab841113ac8e8edde067e099b7288ffc6ac2dded538b131c2c0595d5f77"}, + {file = "fonttools-4.55.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d34525e8141286fa976e14806639d32294bfb38d28bbdb5f6be9f46a1cd695a6"}, + {file = "fonttools-4.55.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0ecd1c2b1c2ec46bb73685bc5473c72e16ed0930ef79bc2919ccadc43a99fb16"}, + {file = "fonttools-4.55.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9008438ad59e5a8e403a62fbefef2b2ff377eb3857d90a3f2a5f4d674ff441b2"}, + {file = "fonttools-4.55.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:131591ac8d7a47043aaf29581aba755ae151d46e49d2bf49608601efd71e8b4d"}, + {file = "fonttools-4.55.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:4c83381c3e3e3d9caa25527c4300543578341f21aae89e4fbbb4debdda8d82a2"}, + {file = "fonttools-4.55.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:42aca564b575252fd9954ed0d91d97a24de24289a16ce8ff74ed0bdf5ecebf11"}, + {file = "fonttools-4.55.2-cp311-cp311-win32.whl", hash = "sha256:c6457f650ebe15baa17fc06e256227f0a47f46f80f27ec5a0b00160de8dc2c13"}, + {file = "fonttools-4.55.2-cp311-cp311-win_amd64.whl", hash = "sha256:5cfa67414d7414442a5635ff634384101c54f53bb7b0e04aa6a61b013fcce194"}, + {file = "fonttools-4.55.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:18f082445b8fe5e91c53e6184f4c1c73f3f965c8bcc614c6cd6effd573ce6c1a"}, + {file = "fonttools-4.55.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:27c0f91adbbd706e8acd1db73e3e510118e62d0ffb651864567dccc5b2339f90"}, + {file = "fonttools-4.55.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3d8ccce035320d63dba0c35f52499322f5531dbe85bba1514c7cea26297e4c54"}, + {file = "fonttools-4.55.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:96e126df9615df214ec7f04bebcf60076297fbc10b75c777ce58b702d7708ffb"}, + {file = "fonttools-4.55.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:508ebb42956a7a931c4092dfa2d9b4ffd4f94cea09b8211199090d2bd082506b"}, + {file = "fonttools-4.55.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c1b9de46ef7b683d50400abf9f1578eaceee271ff51c36bf4b7366f2be29f498"}, + {file = "fonttools-4.55.2-cp312-cp312-win32.whl", hash = "sha256:2df61d9fc15199cc86dad29f64dd686874a3a52dda0c2d8597d21f509f95c332"}, + {file = "fonttools-4.55.2-cp312-cp312-win_amd64.whl", hash = "sha256:d337ec087da8216a828574aa0525d869df0a2ac217a2efc1890974ddd1fbc5b9"}, + {file = "fonttools-4.55.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:10aff204e2edee1d312fa595c06f201adf8d528a3b659cfb34cd47eceaaa6a26"}, + {file = "fonttools-4.55.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:09fe922a3eff181fd07dd724cdb441fb6b9fc355fd1c0f1aa79aca60faf1fbdd"}, + {file = "fonttools-4.55.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:487e1e8b524143a799bda0169c48b44a23a6027c1bb1957d5a172a7d3a1dd704"}, + {file = "fonttools-4.55.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b1726872e09268bbedb14dc02e58b7ea31ecdd1204c6073eda4911746b44797"}, + {file = "fonttools-4.55.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6fc88cfb58b0cd7b48718c3e61dd0d0a3ee8e2c86b973342967ce09fbf1db6d4"}, + {file = "fonttools-4.55.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e857fe1859901ad8c5cab32e0eebc920adb09f413d2d73b74b677cf47b28590c"}, + {file = "fonttools-4.55.2-cp313-cp313-win32.whl", hash = "sha256:81ccd2b3a420b8050c7d9db3be0555d71662973b3ef2a1d921a2880b58957db8"}, + {file = "fonttools-4.55.2-cp313-cp313-win_amd64.whl", hash = "sha256:d559eb1744c7dcfa90ae60cb1a4b3595e898e48f4198738c321468c01180cd83"}, + {file = "fonttools-4.55.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:d1100d8e665fe386a79cab59446992de881ea74d0d6c191bb988642692aa2421"}, + {file = "fonttools-4.55.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dbdc251c5e472e5ae6bc816f9b82718b8e93ff7992e7331d6cf3562b96aa268e"}, + {file = "fonttools-4.55.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d0bf24d2b02dbc9376d795a63062632ff73e3e9e60c0229373f500aed7e86dd7"}, + {file = "fonttools-4.55.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d4ff250ed4ff05015dfd9cf2adf7570c7a383ca80f4d9732ac484a5ed0d8453c"}, + {file = "fonttools-4.55.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:44cf2a98aa661dbdeb8c03f5e405b074e2935196780bb729888639f5276067d9"}, + {file = "fonttools-4.55.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:22ef222740eb89d189bf0612eb98fbae592c61d7efeac51bfbc2a1592d469557"}, + {file = "fonttools-4.55.2-cp39-cp39-win32.whl", hash = "sha256:93f439ca27e55f585e7aaa04a74990acd983b5f2245e41d6b79f0a8b44e684d8"}, + {file = "fonttools-4.55.2-cp39-cp39-win_amd64.whl", hash = "sha256:627cf10d6f5af5bec6324c18a2670f134c29e1b7dce3fb62e8ef88baa6cba7a9"}, + {file = "fonttools-4.55.2-py3-none-any.whl", hash = "sha256:8e2d89fbe9b08d96e22c7a81ec04a4e8d8439c31223e2dc6f2f9fc8ff14bdf9f"}, + {file = "fonttools-4.55.2.tar.gz", hash = "sha256:45947e7b3f9673f91df125d375eb57b9a23f2a603f438a1aebf3171bffa7a205"}, +] + [[package]] name = "frozenlist" version = "1.4.1" requires_python = ">=3.8" summary = "A list-like structure which implements collections.abc.MutableSequence" -groups = ["default"] +groups = ["default", "latlon-domain-crop"] files = [ {file = "frozenlist-1.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f9aa1878d1083b276b0196f2dfbe00c9b7e752475ed3b682025ff20c1c1f51ac"}, {file = "frozenlist-1.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:29acab3f66f0f24674b7dc4736477bcd4bc3ad4b896f5f45379a67bce8b96868"}, @@ -419,13 +785,185 @@ files = [ [[package]] name = "fsspec" -version = "2024.6.0" +version = "2024.10.0" requires_python = ">=3.8" summary = "File-system specification" -groups = ["default"] +groups = ["default", "latlon-domain-crop"] +files = [ + {file = "fsspec-2024.10.0-py3-none-any.whl", hash = "sha256:03b9a6785766a4de40368b88906366755e2819e758b83705c88cd7cb5fe81871"}, + {file = "fsspec-2024.10.0.tar.gz", hash = "sha256:eda2d8a4116d4f2429db8550f2457da57279247dd930bb12f821b58391359493"}, +] + +[[package]] +name = "gcsfs" +version = "2024.10.0" +requires_python = ">=3.8" +summary = "Convenient Filesystem interface over GCS" +groups = ["latlon-domain-crop"] +dependencies = [ + "aiohttp!=4.0.0a0,!=4.0.0a1", + "decorator>4.1.2", + "fsspec==2024.10.0", + "google-auth-oauthlib", + "google-auth>=1.2", + "google-cloud-storage", + "requests", +] +files = [ + {file = "gcsfs-2024.10.0-py2.py3-none-any.whl", hash = "sha256:bb2d23547e61203ea2dda5fa6c4b91a0c34b74ebe8bb6ab1926f6c33381bceb2"}, + {file = "gcsfs-2024.10.0.tar.gz", hash = "sha256:5df54cfe568e8fdeea5aafa7fed695cdc69a9a674e991ca8c1ce634f5df1d314"}, +] + +[[package]] +name = "google-api-core" +version = "2.23.0" +requires_python = ">=3.7" +summary = "Google API client core library" +groups = ["latlon-domain-crop"] +dependencies = [ + "google-auth<3.0.dev0,>=2.14.1", + "googleapis-common-protos<2.0.dev0,>=1.56.2", + "proto-plus<2.0.0dev,>=1.22.3", + "proto-plus<2.0.0dev,>=1.25.0; python_version >= \"3.13\"", + "protobuf!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<6.0.0.dev0,>=3.19.5", + "requests<3.0.0.dev0,>=2.18.0", +] +files = [ + {file = "google_api_core-2.23.0-py3-none-any.whl", hash = "sha256:c20100d4c4c41070cf365f1d8ddf5365915291b5eb11b83829fbd1c999b5122f"}, + {file = "google_api_core-2.23.0.tar.gz", hash = "sha256:2ceb087315e6af43f256704b871d99326b1f12a9d6ce99beaedec99ba26a0ace"}, +] + +[[package]] +name = "google-auth" +version = "2.36.0" +requires_python = ">=3.7" +summary = "Google Authentication Library" +groups = ["latlon-domain-crop"] +dependencies = [ + "cachetools<6.0,>=2.0.0", + "pyasn1-modules>=0.2.1", + "rsa<5,>=3.1.4", +] +files = [ + {file = "google_auth-2.36.0-py2.py3-none-any.whl", hash = "sha256:51a15d47028b66fd36e5c64a82d2d57480075bccc7da37cde257fc94177a61fb"}, + {file = "google_auth-2.36.0.tar.gz", hash = "sha256:545e9618f2df0bcbb7dcbc45a546485b1212624716975a1ea5ae8149ce769ab1"}, +] + +[[package]] +name = "google-auth-oauthlib" +version = "1.2.1" +requires_python = ">=3.6" +summary = "Google Authentication Library" +groups = ["latlon-domain-crop"] +dependencies = [ + "google-auth>=2.15.0", + "requests-oauthlib>=0.7.0", +] +files = [ + {file = "google_auth_oauthlib-1.2.1-py2.py3-none-any.whl", hash = "sha256:2d58a27262d55aa1b87678c3ba7142a080098cbc2024f903c62355deb235d91f"}, + {file = "google_auth_oauthlib-1.2.1.tar.gz", hash = "sha256:afd0cad092a2eaa53cd8e8298557d6de1034c6cb4a740500b5357b648af97263"}, +] + +[[package]] +name = "google-cloud-core" +version = "2.4.1" +requires_python = ">=3.7" +summary = "Google Cloud API client core library" +groups = ["latlon-domain-crop"] +dependencies = [ + "google-api-core!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.0,<3.0.0dev,>=1.31.6", + "google-auth<3.0dev,>=1.25.0", + "importlib-metadata>1.0.0; python_version < \"3.8\"", +] +files = [ + {file = "google-cloud-core-2.4.1.tar.gz", hash = "sha256:9b7749272a812bde58fff28868d0c5e2f585b82f37e09a1f6ed2d4d10f134073"}, + {file = "google_cloud_core-2.4.1-py2.py3-none-any.whl", hash = "sha256:a9e6a4422b9ac5c29f79a0ede9485473338e2ce78d91f2370c01e730eab22e61"}, +] + +[[package]] +name = "google-cloud-storage" +version = "2.19.0" +requires_python = ">=3.7" +summary = "Google Cloud Storage API client library" +groups = ["latlon-domain-crop"] +dependencies = [ + "google-api-core<3.0.0dev,>=2.15.0", + "google-auth<3.0dev,>=2.26.1", + "google-cloud-core<3.0dev,>=2.3.0", + "google-crc32c<2.0dev,>=1.0", + "google-resumable-media>=2.7.2", + "requests<3.0.0dev,>=2.18.0", +] +files = [ + {file = "google_cloud_storage-2.19.0-py2.py3-none-any.whl", hash = "sha256:aeb971b5c29cf8ab98445082cbfe7b161a1f48ed275822f59ed3f1524ea54fba"}, + {file = "google_cloud_storage-2.19.0.tar.gz", hash = "sha256:cd05e9e7191ba6cb68934d8eb76054d9be4562aa89dbc4236feee4d7d51342b2"}, +] + +[[package]] +name = "google-crc32c" +version = "1.6.0" +requires_python = ">=3.9" +summary = "A python wrapper of the C library 'Google CRC32C'" +groups = ["latlon-domain-crop"] +dependencies = [ + "importlib-resources>=1.3; python_version < \"3.9\" and os_name == \"nt\"", +] +files = [ + {file = "google_crc32c-1.6.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:5bcc90b34df28a4b38653c36bb5ada35671ad105c99cfe915fb5bed7ad6924aa"}, + {file = "google_crc32c-1.6.0-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:d9e9913f7bd69e093b81da4535ce27af842e7bf371cde42d1ae9e9bd382dc0e9"}, + {file = "google_crc32c-1.6.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a184243544811e4a50d345838a883733461e67578959ac59964e43cca2c791e7"}, + {file = "google_crc32c-1.6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:236c87a46cdf06384f614e9092b82c05f81bd34b80248021f729396a78e55d7e"}, + {file = "google_crc32c-1.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ebab974b1687509e5c973b5c4b8b146683e101e102e17a86bd196ecaa4d099fc"}, + {file = "google_crc32c-1.6.0-cp310-cp310-win_amd64.whl", hash = "sha256:50cf2a96da226dcbff8671233ecf37bf6e95de98b2a2ebadbfdf455e6d05df42"}, + {file = "google_crc32c-1.6.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:f7a1fc29803712f80879b0806cb83ab24ce62fc8daf0569f2204a0cfd7f68ed4"}, + {file = "google_crc32c-1.6.0-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:40b05ab32a5067525670880eb5d169529089a26fe35dce8891127aeddc1950e8"}, + {file = "google_crc32c-1.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a9e4b426c3702f3cd23b933436487eb34e01e00327fac20c9aebb68ccf34117d"}, + {file = "google_crc32c-1.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51c4f54dd8c6dfeb58d1df5e4f7f97df8abf17a36626a217f169893d1d7f3e9f"}, + {file = "google_crc32c-1.6.0-cp311-cp311-win_amd64.whl", hash = "sha256:bb8b3c75bd157010459b15222c3fd30577042a7060e29d42dabce449c087f2b3"}, + {file = "google_crc32c-1.6.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:ed767bf4ba90104c1216b68111613f0d5926fb3780660ea1198fc469af410e9d"}, + {file = "google_crc32c-1.6.0-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:62f6d4a29fea082ac4a3c9be5e415218255cf11684ac6ef5488eea0c9132689b"}, + {file = "google_crc32c-1.6.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c87d98c7c4a69066fd31701c4e10d178a648c2cac3452e62c6b24dc51f9fcc00"}, + {file = "google_crc32c-1.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd5e7d2445d1a958c266bfa5d04c39932dc54093fa391736dbfdb0f1929c1fb3"}, + {file = "google_crc32c-1.6.0-cp312-cp312-win_amd64.whl", hash = "sha256:7aec8e88a3583515f9e0957fe4f5f6d8d4997e36d0f61624e70469771584c760"}, + {file = "google_crc32c-1.6.0-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:e2806553238cd076f0a55bddab37a532b53580e699ed8e5606d0de1f856b5205"}, + {file = "google_crc32c-1.6.0-cp39-cp39-macosx_12_0_x86_64.whl", hash = "sha256:bb0966e1c50d0ef5bc743312cc730b533491d60585a9a08f897274e57c3f70e0"}, + {file = "google_crc32c-1.6.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:386122eeaaa76951a8196310432c5b0ef3b53590ef4c317ec7588ec554fec5d2"}, + {file = "google_crc32c-1.6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d2952396dc604544ea7476b33fe87faedc24d666fb0c2d5ac971a2b9576ab871"}, + {file = "google_crc32c-1.6.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:35834855408429cecf495cac67ccbab802de269e948e27478b1e47dfb6465e57"}, + {file = "google_crc32c-1.6.0-cp39-cp39-win_amd64.whl", hash = "sha256:d8797406499f28b5ef791f339594b0b5fdedf54e203b5066675c406ba69d705c"}, + {file = "google_crc32c-1.6.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:48abd62ca76a2cbe034542ed1b6aee851b6f28aaca4e6551b5599b6f3ef175cc"}, + {file = "google_crc32c-1.6.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18e311c64008f1f1379158158bb3f0c8d72635b9eb4f9545f8cf990c5668e59d"}, + {file = "google_crc32c-1.6.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:05e2d8c9a2f853ff116db9706b4a27350587f341eda835f46db3c0a8c8ce2f24"}, + {file = "google_crc32c-1.6.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91ca8145b060679ec9176e6de4f89b07363d6805bd4760631ef254905503598d"}, + {file = "google_crc32c-1.6.0.tar.gz", hash = "sha256:6eceb6ad197656a1ff49ebfbbfa870678c75be4344feb35ac1edf694309413dc"}, +] + +[[package]] +name = "google-resumable-media" +version = "2.7.2" +requires_python = ">=3.7" +summary = "Utilities for Google Media Downloads and Resumable Uploads" +groups = ["latlon-domain-crop"] +dependencies = [ + "google-crc32c<2.0dev,>=1.0", +] files = [ - {file = "fsspec-2024.6.0-py3-none-any.whl", hash = "sha256:58d7122eb8a1a46f7f13453187bfea4972d66bf01618d37366521b1998034cee"}, - {file = "fsspec-2024.6.0.tar.gz", hash = "sha256:f579960a56e6d8038a9efc8f9c77279ec12e6299aa86b0769a7e9c46b94527c2"}, + {file = "google_resumable_media-2.7.2-py2.py3-none-any.whl", hash = "sha256:3ce7551e9fe6d99e9a126101d2536612bb73486721951e9562fee0f90c6ababa"}, + {file = "google_resumable_media-2.7.2.tar.gz", hash = "sha256:5280aed4629f2b60b847b0d42f9857fd4935c11af266744df33d8074cae92fe0"}, +] + +[[package]] +name = "googleapis-common-protos" +version = "1.66.0" +requires_python = ">=3.7" +summary = "Common protobufs used in Google APIs" +groups = ["latlon-domain-crop"] +dependencies = [ + "protobuf!=3.20.0,!=3.20.1,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<6.0.0.dev0,>=3.20.2", +] +files = [ + {file = "googleapis_common_protos-1.66.0-py2.py3-none-any.whl", hash = "sha256:d7abcd75fabb2e0ec9f74466401f6c119a0b498e27370e9be4c94cb7e382b8ed"}, + {file = "googleapis_common_protos-1.66.0.tar.gz", hash = "sha256:c3e7b33d15fdca5374cc0a7346dd92ffa847425cc4ea941d970f13680052ec8c"}, ] [[package]] @@ -444,7 +982,7 @@ name = "idna" version = "3.7" requires_python = ">=3.5" summary = "Internationalized Domain Names in Applications (IDNA)" -groups = ["default"] +groups = ["default", "latlon-domain-crop"] files = [ {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"}, {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, @@ -455,7 +993,7 @@ name = "importlib-metadata" version = "7.2.1" requires_python = ">=3.8" summary = "Read metadata from Python packages" -groups = ["default"] +groups = ["default", "dev"] marker = "python_version < \"3.12\"" dependencies = [ "typing-extensions>=3.6.4; python_version < \"3.8\"", @@ -466,6 +1004,21 @@ files = [ {file = "importlib_metadata-7.2.1.tar.gz", hash = "sha256:509ecb2ab77071db5137c655e24ceb3eee66e7bbc6574165d0d114d9fc4bbe68"}, ] +[[package]] +name = "importlib-resources" +version = "6.4.5" +requires_python = ">=3.8" +summary = "Read resources from Python packages" +groups = ["latlon-domain-crop"] +marker = "python_version < \"3.10\"" +dependencies = [ + "zipp>=3.1.0; python_version < \"3.10\"", +] +files = [ + {file = "importlib_resources-6.4.5-py3-none-any.whl", hash = "sha256:ac29d5f956f01d5e4bb63102a5a19957f1b9175e45649977264a1416783bb717"}, + {file = "importlib_resources-6.4.5.tar.gz", hash = "sha256:980862a1d16c9e147a59603677fa2aa5fd82b87f223b6cb870695bcfce830065"}, +] + [[package]] name = "iniconfig" version = "2.0.0" @@ -508,13 +1061,38 @@ files = [ {file = "ipdb-0.13.13.tar.gz", hash = "sha256:e3ac6018ef05126d442af680aad863006ec19d02290561ac88b8b1c0b0cfc726"}, ] +[[package]] +name = "ipykernel" +version = "6.29.5" +requires_python = ">=3.8" +summary = "IPython Kernel for Jupyter" +groups = ["dev"] +dependencies = [ + "appnope; platform_system == \"Darwin\"", + "comm>=0.1.1", + "debugpy>=1.6.5", + "ipython>=7.23.1", + "jupyter-client>=6.1.12", + "jupyter-core!=5.0.*,>=4.12", + "matplotlib-inline>=0.1", + "nest-asyncio", + "packaging", + "psutil", + "pyzmq>=24", + "tornado>=6.1", + "traitlets>=5.4.0", +] +files = [ + {file = "ipykernel-6.29.5-py3-none-any.whl", hash = "sha256:afdb66ba5aa354b09b91379bac28ae4afebbb30e8b39510c9690afb7a10421b5"}, + {file = "ipykernel-6.29.5.tar.gz", hash = "sha256:f093a22c4a40f8828f8e330a9c297cb93dcab13bd9678ded6de8e5cf81c56215"}, +] + [[package]] name = "ipython" version = "8.18.1" requires_python = ">=3.9" summary = "IPython: Productive Interactive Computing" groups = ["dev"] -marker = "python_version > \"3.6\"" dependencies = [ "colorama; sys_platform == \"win32\"", "decorator", @@ -552,7 +1130,6 @@ version = "0.19.1" requires_python = ">=3.6" summary = "An autocompletion tool for Python that can be used for text editors." groups = ["dev"] -marker = "python_version > \"3.6\"" dependencies = [ "parso<0.9.0,>=0.8.3", ] @@ -561,6 +1138,157 @@ files = [ {file = "jedi-0.19.1.tar.gz", hash = "sha256:cf0496f3651bc65d7174ac1b7d043eff454892c708a87d1b683e57b569927ffd"}, ] +[[package]] +name = "jinja2" +version = "3.1.4" +requires_python = ">=3.7" +summary = "A very fast and expressive template engine." +groups = ["latlon-domain-crop"] +dependencies = [ + "MarkupSafe>=2.0", +] +files = [ + {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"}, + {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"}, +] + +[[package]] +name = "jupyter-client" +version = "8.6.3" +requires_python = ">=3.8" +summary = "Jupyter protocol implementation and client libraries" +groups = ["dev"] +dependencies = [ + "importlib-metadata>=4.8.3; python_version < \"3.10\"", + "jupyter-core!=5.0.*,>=4.12", + "python-dateutil>=2.8.2", + "pyzmq>=23.0", + "tornado>=6.2", + "traitlets>=5.3", +] +files = [ + {file = "jupyter_client-8.6.3-py3-none-any.whl", hash = "sha256:e8a19cc986cc45905ac3362915f410f3af85424b4c0905e94fa5f2cb08e8f23f"}, + {file = "jupyter_client-8.6.3.tar.gz", hash = "sha256:35b3a0947c4a6e9d589eb97d7d4cd5e90f910ee73101611f01283732bd6d9419"}, +] + +[[package]] +name = "jupyter-core" +version = "5.7.2" +requires_python = ">=3.8" +summary = "Jupyter core package. A base package on which Jupyter projects rely." +groups = ["dev"] +dependencies = [ + "platformdirs>=2.5", + "pywin32>=300; sys_platform == \"win32\" and platform_python_implementation != \"PyPy\"", + "traitlets>=5.3", +] +files = [ + {file = "jupyter_core-5.7.2-py3-none-any.whl", hash = "sha256:4f7315d2f6b4bcf2e3e7cb6e46772eba760ae459cd1f59d29eb57b0a01bd7409"}, + {file = "jupyter_core-5.7.2.tar.gz", hash = "sha256:aa5f8d32bbf6b431ac830496da7392035d6f61b4f54872f15c4bd2a9c3f536d9"}, +] + +[[package]] +name = "kiwisolver" +version = "1.4.7" +requires_python = ">=3.8" +summary = "A fast implementation of the Cassowary constraint solver" +groups = ["latlon-domain-crop"] +files = [ + {file = "kiwisolver-1.4.7-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8a9c83f75223d5e48b0bc9cb1bf2776cf01563e00ade8775ffe13b0b6e1af3a6"}, + {file = "kiwisolver-1.4.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:58370b1ffbd35407444d57057b57da5d6549d2d854fa30249771775c63b5fe17"}, + {file = "kiwisolver-1.4.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:aa0abdf853e09aff551db11fce173e2177d00786c688203f52c87ad7fcd91ef9"}, + {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:8d53103597a252fb3ab8b5845af04c7a26d5e7ea8122303dd7a021176a87e8b9"}, + {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:88f17c5ffa8e9462fb79f62746428dd57b46eb931698e42e990ad63103f35e6c"}, + {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88a9ca9c710d598fd75ee5de59d5bda2684d9db36a9f50b6125eaea3969c2599"}, + {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f4d742cb7af1c28303a51b7a27aaee540e71bb8e24f68c736f6f2ffc82f2bf05"}, + {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e28c7fea2196bf4c2f8d46a0415c77a1c480cc0724722f23d7410ffe9842c407"}, + {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e968b84db54f9d42046cf154e02911e39c0435c9801681e3fc9ce8a3c4130278"}, + {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0c18ec74c0472de033e1bebb2911c3c310eef5649133dd0bedf2a169a1b269e5"}, + {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:8f0ea6da6d393d8b2e187e6a5e3fb81f5862010a40c3945e2c6d12ae45cfb2ad"}, + {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:f106407dda69ae456dd1227966bf445b157ccc80ba0dff3802bb63f30b74e895"}, + {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:84ec80df401cfee1457063732d90022f93951944b5b58975d34ab56bb150dfb3"}, + {file = "kiwisolver-1.4.7-cp310-cp310-win32.whl", hash = "sha256:71bb308552200fb2c195e35ef05de12f0c878c07fc91c270eb3d6e41698c3bcc"}, + {file = "kiwisolver-1.4.7-cp310-cp310-win_amd64.whl", hash = "sha256:44756f9fd339de0fb6ee4f8c1696cfd19b2422e0d70b4cefc1cc7f1f64045a8c"}, + {file = "kiwisolver-1.4.7-cp310-cp310-win_arm64.whl", hash = "sha256:78a42513018c41c2ffd262eb676442315cbfe3c44eed82385c2ed043bc63210a"}, + {file = "kiwisolver-1.4.7-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d2b0e12a42fb4e72d509fc994713d099cbb15ebf1103545e8a45f14da2dfca54"}, + {file = "kiwisolver-1.4.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2a8781ac3edc42ea4b90bc23e7d37b665d89423818e26eb6df90698aa2287c95"}, + {file = "kiwisolver-1.4.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:46707a10836894b559e04b0fd143e343945c97fd170d69a2d26d640b4e297935"}, + {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ef97b8df011141c9b0f6caf23b29379f87dd13183c978a30a3c546d2c47314cb"}, + {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ab58c12a2cd0fc769089e6d38466c46d7f76aced0a1f54c77652446733d2d02"}, + {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:803b8e1459341c1bb56d1c5c010406d5edec8a0713a0945851290a7930679b51"}, + {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f9a9e8a507420fe35992ee9ecb302dab68550dedc0da9e2880dd88071c5fb052"}, + {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18077b53dc3bb490e330669a99920c5e6a496889ae8c63b58fbc57c3d7f33a18"}, + {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6af936f79086a89b3680a280c47ea90b4df7047b5bdf3aa5c524bbedddb9e545"}, + {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:3abc5b19d24af4b77d1598a585b8a719beb8569a71568b66f4ebe1fb0449460b"}, + {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:933d4de052939d90afbe6e9d5273ae05fb836cc86c15b686edd4b3560cc0ee36"}, + {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:65e720d2ab2b53f1f72fb5da5fb477455905ce2c88aaa671ff0a447c2c80e8e3"}, + {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3bf1ed55088f214ba6427484c59553123fdd9b218a42bbc8c6496d6754b1e523"}, + {file = "kiwisolver-1.4.7-cp311-cp311-win32.whl", hash = "sha256:4c00336b9dd5ad96d0a558fd18a8b6f711b7449acce4c157e7343ba92dd0cf3d"}, + {file = "kiwisolver-1.4.7-cp311-cp311-win_amd64.whl", hash = "sha256:929e294c1ac1e9f615c62a4e4313ca1823ba37326c164ec720a803287c4c499b"}, + {file = "kiwisolver-1.4.7-cp311-cp311-win_arm64.whl", hash = "sha256:e33e8fbd440c917106b237ef1a2f1449dfbb9b6f6e1ce17c94cd6a1e0d438376"}, + {file = "kiwisolver-1.4.7-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:5360cc32706dab3931f738d3079652d20982511f7c0ac5711483e6eab08efff2"}, + {file = "kiwisolver-1.4.7-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:942216596dc64ddb25adb215c3c783215b23626f8d84e8eff8d6d45c3f29f75a"}, + {file = "kiwisolver-1.4.7-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:48b571ecd8bae15702e4f22d3ff6a0f13e54d3d00cd25216d5e7f658242065ee"}, + {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ad42ba922c67c5f219097b28fae965e10045ddf145d2928bfac2eb2e17673640"}, + {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:612a10bdae23404a72941a0fc8fa2660c6ea1217c4ce0dbcab8a8f6543ea9e7f"}, + {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9e838bba3a3bac0fe06d849d29772eb1afb9745a59710762e4ba3f4cb8424483"}, + {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:22f499f6157236c19f4bbbd472fa55b063db77a16cd74d49afe28992dff8c258"}, + {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:693902d433cf585133699972b6d7c42a8b9f8f826ebcaf0132ff55200afc599e"}, + {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4e77f2126c3e0b0d055f44513ed349038ac180371ed9b52fe96a32aa071a5107"}, + {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:657a05857bda581c3656bfc3b20e353c232e9193eb167766ad2dc58b56504948"}, + {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4bfa75a048c056a411f9705856abfc872558e33c055d80af6a380e3658766038"}, + {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:34ea1de54beef1c104422d210c47c7d2a4999bdecf42c7b5718fbe59a4cac383"}, + {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:90da3b5f694b85231cf93586dad5e90e2d71b9428f9aad96952c99055582f520"}, + {file = "kiwisolver-1.4.7-cp312-cp312-win32.whl", hash = "sha256:18e0cca3e008e17fe9b164b55735a325140a5a35faad8de92dd80265cd5eb80b"}, + {file = "kiwisolver-1.4.7-cp312-cp312-win_amd64.whl", hash = "sha256:58cb20602b18f86f83a5c87d3ee1c766a79c0d452f8def86d925e6c60fbf7bfb"}, + {file = "kiwisolver-1.4.7-cp312-cp312-win_arm64.whl", hash = "sha256:f5a8b53bdc0b3961f8b6125e198617c40aeed638b387913bf1ce78afb1b0be2a"}, + {file = "kiwisolver-1.4.7-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2e6039dcbe79a8e0f044f1c39db1986a1b8071051efba3ee4d74f5b365f5226e"}, + {file = "kiwisolver-1.4.7-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a1ecf0ac1c518487d9d23b1cd7139a6a65bc460cd101ab01f1be82ecf09794b6"}, + {file = "kiwisolver-1.4.7-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7ab9ccab2b5bd5702ab0803676a580fffa2aa178c2badc5557a84cc943fcf750"}, + {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f816dd2277f8d63d79f9c8473a79fe54047bc0467754962840782c575522224d"}, + {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf8bcc23ceb5a1b624572a1623b9f79d2c3b337c8c455405ef231933a10da379"}, + {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dea0bf229319828467d7fca8c7c189780aa9ff679c94539eed7532ebe33ed37c"}, + {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c06a4c7cf15ec739ce0e5971b26c93638730090add60e183530d70848ebdd34"}, + {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:913983ad2deb14e66d83c28b632fd35ba2b825031f2fa4ca29675e665dfecbe1"}, + {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5337ec7809bcd0f424c6b705ecf97941c46279cf5ed92311782c7c9c2026f07f"}, + {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:4c26ed10c4f6fa6ddb329a5120ba3b6db349ca192ae211e882970bfc9d91420b"}, + {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c619b101e6de2222c1fcb0531e1b17bbffbe54294bfba43ea0d411d428618c27"}, + {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:073a36c8273647592ea332e816e75ef8da5c303236ec0167196793eb1e34657a"}, + {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:3ce6b2b0231bda412463e152fc18335ba32faf4e8c23a754ad50ffa70e4091ee"}, + {file = "kiwisolver-1.4.7-cp313-cp313-win32.whl", hash = "sha256:f4c9aee212bc89d4e13f58be11a56cc8036cabad119259d12ace14b34476fd07"}, + {file = "kiwisolver-1.4.7-cp313-cp313-win_amd64.whl", hash = "sha256:8a3ec5aa8e38fc4c8af308917ce12c536f1c88452ce554027e55b22cbbfbff76"}, + {file = "kiwisolver-1.4.7-cp313-cp313-win_arm64.whl", hash = "sha256:76c8094ac20ec259471ac53e774623eb62e6e1f56cd8690c67ce6ce4fcb05650"}, + {file = "kiwisolver-1.4.7-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3f9362ecfca44c863569d3d3c033dbe8ba452ff8eed6f6b5806382741a1334bd"}, + {file = "kiwisolver-1.4.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e8df2eb9b2bac43ef8b082e06f750350fbbaf2887534a5be97f6cf07b19d9583"}, + {file = "kiwisolver-1.4.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f32d6edbc638cde7652bd690c3e728b25332acbadd7cad670cc4a02558d9c417"}, + {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:e2e6c39bd7b9372b0be21456caab138e8e69cc0fc1190a9dfa92bd45a1e6e904"}, + {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:dda56c24d869b1193fcc763f1284b9126550eaf84b88bbc7256e15028f19188a"}, + {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79849239c39b5e1fd906556c474d9b0439ea6792b637511f3fe3a41158d89ca8"}, + {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5e3bc157fed2a4c02ec468de4ecd12a6e22818d4f09cde2c31ee3226ffbefab2"}, + {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3da53da805b71e41053dc670f9a820d1157aae77b6b944e08024d17bcd51ef88"}, + {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:8705f17dfeb43139a692298cb6637ee2e59c0194538153e83e9ee0c75c2eddde"}, + {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:82a5c2f4b87c26bb1a0ef3d16b5c4753434633b83d365cc0ddf2770c93829e3c"}, + {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ce8be0466f4c0d585cdb6c1e2ed07232221df101a4c6f28821d2aa754ca2d9e2"}, + {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:409afdfe1e2e90e6ee7fc896f3df9a7fec8e793e58bfa0d052c8a82f99c37abb"}, + {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5b9c3f4ee0b9a439d2415012bd1b1cc2df59e4d6a9939f4d669241d30b414327"}, + {file = "kiwisolver-1.4.7-cp39-cp39-win32.whl", hash = "sha256:a79ae34384df2b615eefca647a2873842ac3b596418032bef9a7283675962644"}, + {file = "kiwisolver-1.4.7-cp39-cp39-win_amd64.whl", hash = "sha256:cf0438b42121a66a3a667de17e779330fc0f20b0d97d59d2f2121e182b0505e4"}, + {file = "kiwisolver-1.4.7-cp39-cp39-win_arm64.whl", hash = "sha256:764202cc7e70f767dab49e8df52c7455e8de0df5d858fa801a11aa0d882ccf3f"}, + {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:94252291e3fe68001b1dd747b4c0b3be12582839b95ad4d1b641924d68fd4643"}, + {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:5b7dfa3b546da08a9f622bb6becdb14b3e24aaa30adba66749d38f3cc7ea9706"}, + {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bd3de6481f4ed8b734da5df134cd5a6a64fe32124fe83dde1e5b5f29fe30b1e6"}, + {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a91b5f9f1205845d488c928e8570dcb62b893372f63b8b6e98b863ebd2368ff2"}, + {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40fa14dbd66b8b8f470d5fc79c089a66185619d31645f9b0773b88b19f7223c4"}, + {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:eb542fe7933aa09d8d8f9d9097ef37532a7df6497819d16efe4359890a2f417a"}, + {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:8b01aac285f91ca889c800042c35ad3b239e704b150cfd3382adfc9dcc780e39"}, + {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:48be928f59a1f5c8207154f935334d374e79f2b5d212826307d072595ad76a2e"}, + {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f37cfe618a117e50d8c240555331160d73d0411422b59b5ee217843d7b693608"}, + {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:599b5c873c63a1f6ed7eead644a8a380cfbdf5db91dcb6f85707aaab213b1674"}, + {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:801fa7802e5cfabe3ab0c81a34c323a319b097dfb5004be950482d882f3d7225"}, + {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:0c6c43471bc764fad4bc99c5c2d6d16a676b1abf844ca7c8702bdae92df01ee0"}, + {file = "kiwisolver-1.4.7.tar.gz", hash = "sha256:9893ff81bd7107f7b685d3017cc6583daadb4fc26e4a888350df530e41980a60"}, +] + [[package]] name = "locket" version = "1.0.0" @@ -602,13 +1330,144 @@ files = [ {file = "markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"}, ] +[[package]] +name = "markupsafe" +version = "3.0.2" +requires_python = ">=3.9" +summary = "Safely add untrusted strings to HTML/XML markup." +groups = ["latlon-domain-crop"] +files = [ + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win32.whl", hash = "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a"}, + {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"}, +] + +[[package]] +name = "matplotlib" +version = "3.9.3" +requires_python = ">=3.9" +summary = "Python plotting package" +groups = ["latlon-domain-crop"] +dependencies = [ + "contourpy>=1.0.1", + "cycler>=0.10", + "fonttools>=4.22.0", + "importlib-resources>=3.2.0; python_version < \"3.10\"", + "kiwisolver>=1.3.1", + "numpy>=1.23", + "packaging>=20.0", + "pillow>=8", + "pyparsing>=2.3.1", + "python-dateutil>=2.7", +] +files = [ + {file = "matplotlib-3.9.3-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:41b016e3be4e740b66c79a031a0a6e145728dbc248142e751e8dab4f3188ca1d"}, + {file = "matplotlib-3.9.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e0143975fc2a6d7136c97e19c637321288371e8f09cff2564ecd73e865ea0b9"}, + {file = "matplotlib-3.9.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9f459c8ee2c086455744723628264e43c884be0c7d7b45d84b8cd981310b4815"}, + {file = "matplotlib-3.9.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:687df7ceff57b8f070d02b4db66f75566370e7ae182a0782b6d3d21b0d6917dc"}, + {file = "matplotlib-3.9.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:edd14cf733fdc4f6e6fe3f705af97676a7e52859bf0044aa2c84e55be739241c"}, + {file = "matplotlib-3.9.3-cp310-cp310-win_amd64.whl", hash = "sha256:1c40c244221a1adbb1256692b1133c6fb89418df27bf759a31a333e7912a4010"}, + {file = "matplotlib-3.9.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:cf2a60daf6cecff6828bc608df00dbc794380e7234d2411c0ec612811f01969d"}, + {file = "matplotlib-3.9.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:213d6dc25ce686516208d8a3e91120c6a4fdae4a3e06b8505ced5b716b50cc04"}, + {file = "matplotlib-3.9.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c52f48eb75fcc119a4fdb68ba83eb5f71656999420375df7c94cc68e0e14686e"}, + {file = "matplotlib-3.9.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3c93796b44fa111049b88a24105e947f03c01966b5c0cc782e2ee3887b790a3"}, + {file = "matplotlib-3.9.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:cd1077b9a09b16d8c3c7075a8add5ffbfe6a69156a57e290c800ed4d435bef1d"}, + {file = "matplotlib-3.9.3-cp311-cp311-win_amd64.whl", hash = "sha256:c96eeeb8c68b662c7747f91a385688d4b449687d29b691eff7068a4602fe6dc4"}, + {file = "matplotlib-3.9.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0a361bd5583bf0bcc08841df3c10269617ee2a36b99ac39d455a767da908bbbc"}, + {file = "matplotlib-3.9.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e14485bb1b83eeb3d55b6878f9560240981e7bbc7a8d4e1e8c38b9bd6ec8d2de"}, + {file = "matplotlib-3.9.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4a8d279f78844aad213c4935c18f8292a9432d51af2d88bca99072c903948045"}, + {file = "matplotlib-3.9.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b6c12514329ac0d03128cf1dcceb335f4fbf7c11da98bca68dca8dcb983153a9"}, + {file = "matplotlib-3.9.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6e9de2b390d253a508dd497e9b5579f3a851f208763ed67fdca5dc0c3ea6849c"}, + {file = "matplotlib-3.9.3-cp312-cp312-win_amd64.whl", hash = "sha256:d796272408f8567ff7eaa00eb2856b3a00524490e47ad505b0b4ca6bb8a7411f"}, + {file = "matplotlib-3.9.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:203d18df84f5288973b2d56de63d4678cc748250026ca9e1ad8f8a0fd8a75d83"}, + {file = "matplotlib-3.9.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:b651b0d3642991259109dc0351fc33ad44c624801367bb8307be9bfc35e427ad"}, + {file = "matplotlib-3.9.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:66d7b171fecf96940ce069923a08ba3df33ef542de82c2ff4fe8caa8346fa95a"}, + {file = "matplotlib-3.9.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6be0ba61f6ff2e6b68e4270fb63b6813c9e7dec3d15fc3a93f47480444fd72f0"}, + {file = "matplotlib-3.9.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9d6b2e8856dec3a6db1ae51aec85c82223e834b228c1d3228aede87eee2b34f9"}, + {file = "matplotlib-3.9.3-cp313-cp313-win_amd64.whl", hash = "sha256:90a85a004fefed9e583597478420bf904bb1a065b0b0ee5b9d8d31b04b0f3f70"}, + {file = "matplotlib-3.9.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3119b2f16de7f7b9212ba76d8fe6a0e9f90b27a1e04683cd89833a991682f639"}, + {file = "matplotlib-3.9.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:87ad73763d93add1b6c1f9fcd33af662fd62ed70e620c52fcb79f3ac427cf3a6"}, + {file = "matplotlib-3.9.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:026bdf3137ab6022c866efa4813b6bbeddc2ed4c9e7e02f0e323a7bca380dfa0"}, + {file = "matplotlib-3.9.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:760a5e89ebbb172989e8273024a1024b0f084510b9105261b3b00c15e9c9f006"}, + {file = "matplotlib-3.9.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:a42b9dc42de2cfe357efa27d9c50c7833fc5ab9b2eb7252ccd5d5f836a84e1e4"}, + {file = "matplotlib-3.9.3-cp313-cp313t-win_amd64.whl", hash = "sha256:e0fcb7da73fbf67b5f4bdaa57d85bb585a4e913d4a10f3e15b32baea56a67f0a"}, + {file = "matplotlib-3.9.3-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:031b7f5b8e595cc07def77ec5b58464e9bb67dc5760be5d6f26d9da24892481d"}, + {file = "matplotlib-3.9.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9fa6e193c14d6944e0685cdb527cb6b38b0e4a518043e7212f214113af7391da"}, + {file = "matplotlib-3.9.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e6eefae6effa0c35bbbc18c25ee6e0b1da44d2359c3cd526eb0c9e703cf055d"}, + {file = "matplotlib-3.9.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10d3e5c7a99bd28afb957e1ae661323b0800d75b419f24d041ed1cc5d844a764"}, + {file = "matplotlib-3.9.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:816a966d5d376bf24c92af8f379e78e67278833e4c7cbc9fa41872eec629a060"}, + {file = "matplotlib-3.9.3-cp39-cp39-win_amd64.whl", hash = "sha256:3fb0b37c896172899a4a93d9442ffdc6f870165f59e05ce2e07c6fded1c15749"}, + {file = "matplotlib-3.9.3-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:5f2a4ea08e6876206d511365b0bc234edc813d90b930be72c3011bbd7898796f"}, + {file = "matplotlib-3.9.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:9b081dac96ab19c54fd8558fac17c9d2c9cb5cc4656e7ed3261ddc927ba3e2c5"}, + {file = "matplotlib-3.9.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0a0a63cb8404d1d1f94968ef35738900038137dab8af836b6c21bb6f03d75465"}, + {file = "matplotlib-3.9.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:896774766fd6be4571a43bc2fcbcb1dcca0807e53cab4a5bf88c4aa861a08e12"}, + {file = "matplotlib-3.9.3.tar.gz", hash = "sha256:cd5dbbc8e25cad5f706845c4d100e2c8b34691b412b93717ce38d8ae803bcfa5"}, +] + [[package]] name = "matplotlib-inline" version = "0.1.7" requires_python = ">=3.8" summary = "Inline Matplotlib backend for Jupyter" groups = ["dev"] -marker = "python_version > \"3.6\"" dependencies = [ "traitlets", ] @@ -633,7 +1492,7 @@ name = "multidict" version = "6.0.5" requires_python = ">=3.7" summary = "multidict implementation" -groups = ["default"] +groups = ["default", "latlon-domain-crop"] files = [ {file = "multidict-6.0.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:228b644ae063c10e7f324ab1ab6b548bdf6f8b47f3ec234fef1093bc2735e5f9"}, {file = "multidict-6.0.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:896ebdcf62683551312c30e20614305f53125750803b614e9e6ce74a96232604"}, @@ -684,6 +1543,17 @@ files = [ {file = "multidict-6.0.5.tar.gz", hash = "sha256:f7e301075edaf50500f0b341543c41194d8df3ae5caf4702f2095f3ca73dd8da"}, ] +[[package]] +name = "nest-asyncio" +version = "1.6.0" +requires_python = ">=3.5" +summary = "Patch asyncio to allow nested event loops" +groups = ["dev"] +files = [ + {file = "nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c"}, + {file = "nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe"}, +] + [[package]] name = "nodeenv" version = "1.9.1" @@ -722,46 +1592,58 @@ files = [ [[package]] name = "numpy" -version = "2.0.0" +version = "1.26.4" requires_python = ">=3.9" summary = "Fundamental package for array computing in Python" -groups = ["default"] +groups = ["default", "latlon-domain-crop"] +files = [ + {file = "numpy-1.26.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0"}, + {file = "numpy-1.26.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a"}, + {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d209d8969599b27ad20994c8e41936ee0964e6da07478d6c35016bc386b66ad4"}, + {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f"}, + {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:62b8e4b1e28009ef2846b4c7852046736bab361f7aeadeb6a5b89ebec3c7055a"}, + {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a4abb4f9001ad2858e7ac189089c42178fcce737e4169dc61321660f1a96c7d2"}, + {file = "numpy-1.26.4-cp310-cp310-win32.whl", hash = "sha256:bfe25acf8b437eb2a8b2d49d443800a5f18508cd811fea3181723922a8a82b07"}, + {file = "numpy-1.26.4-cp310-cp310-win_amd64.whl", hash = "sha256:b97fe8060236edf3662adfc2c633f56a08ae30560c56310562cb4f95500022d5"}, + {file = "numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71"}, + {file = "numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef"}, + {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e"}, + {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5"}, + {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a"}, + {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a"}, + {file = "numpy-1.26.4-cp311-cp311-win32.whl", hash = "sha256:1af303d6b2210eb850fcf03064d364652b7120803a0b872f5211f5234b399f20"}, + {file = "numpy-1.26.4-cp311-cp311-win_amd64.whl", hash = "sha256:cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2"}, + {file = "numpy-1.26.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b3ce300f3644fb06443ee2222c2201dd3a89ea6040541412b8fa189341847218"}, + {file = "numpy-1.26.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b"}, + {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b"}, + {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed"}, + {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ab47dbe5cc8210f55aa58e4805fe224dac469cde56b9f731a4c098b91917159a"}, + {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1dda2e7b4ec9dd512f84935c5f126c8bd8b9f2fc001e9f54af255e8c5f16b0e0"}, + {file = "numpy-1.26.4-cp312-cp312-win32.whl", hash = "sha256:50193e430acfc1346175fcbdaa28ffec49947a06918b7b92130744e81e640110"}, + {file = "numpy-1.26.4-cp312-cp312-win_amd64.whl", hash = "sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818"}, + {file = "numpy-1.26.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7349ab0fa0c429c82442a27a9673fc802ffdb7c7775fad780226cb234965e53c"}, + {file = "numpy-1.26.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:52b8b60467cd7dd1e9ed082188b4e6bb35aa5cdd01777621a1658910745b90be"}, + {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5241e0a80d808d70546c697135da2c613f30e28251ff8307eb72ba696945764"}, + {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f870204a840a60da0b12273ef34f7051e98c3b5961b61b0c2c1be6dfd64fbcd3"}, + {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:679b0076f67ecc0138fd2ede3a8fd196dddc2ad3254069bcb9faf9a79b1cebcd"}, + {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:47711010ad8555514b434df65f7d7b076bb8261df1ca9bb78f53d3b2db02e95c"}, + {file = "numpy-1.26.4-cp39-cp39-win32.whl", hash = "sha256:a354325ee03388678242a4d7ebcd08b5c727033fcff3b2f536aea978e15ee9e6"}, + {file = "numpy-1.26.4-cp39-cp39-win_amd64.whl", hash = "sha256:3373d5d70a5fe74a2c1bb6d2cfd9609ecf686d47a2d7b1d37a8f3b6bf6003aea"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:afedb719a9dcfc7eaf2287b839d8198e06dcd4cb5d276a3df279231138e83d30"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95a7476c59002f2f6c590b9b7b998306fba6a5aa646b1e22ddfeaf8f78c3a29c"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7e50d0a0cc3189f9cb0aeb3a6a6af18c16f59f004b866cd2be1c14b36134a4a0"}, + {file = "numpy-1.26.4.tar.gz", hash = "sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010"}, +] + +[[package]] +name = "oauthlib" +version = "3.2.2" +requires_python = ">=3.6" +summary = "A generic, spec-compliant, thorough implementation of the OAuth request-signing logic" +groups = ["latlon-domain-crop"] files = [ - {file = "numpy-2.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:04494f6ec467ccb5369d1808570ae55f6ed9b5809d7f035059000a37b8d7e86f"}, - {file = "numpy-2.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2635dbd200c2d6faf2ef9a0d04f0ecc6b13b3cad54f7c67c61155138835515d2"}, - {file = "numpy-2.0.0-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:0a43f0974d501842866cc83471bdb0116ba0dffdbaac33ec05e6afed5b615238"}, - {file = "numpy-2.0.0-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:8d83bb187fb647643bd56e1ae43f273c7f4dbcdf94550d7938cfc32566756514"}, - {file = "numpy-2.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79e843d186c8fb1b102bef3e2bc35ef81160ffef3194646a7fdd6a73c6b97196"}, - {file = "numpy-2.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d7696c615765091cc5093f76fd1fa069870304beaccfd58b5dcc69e55ef49c1"}, - {file = "numpy-2.0.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b4c76e3d4c56f145d41b7b6751255feefae92edbc9a61e1758a98204200f30fc"}, - {file = "numpy-2.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:acd3a644e4807e73b4e1867b769fbf1ce8c5d80e7caaef0d90dcdc640dfc9787"}, - {file = "numpy-2.0.0-cp310-cp310-win32.whl", hash = "sha256:cee6cc0584f71adefe2c908856ccc98702baf95ff80092e4ca46061538a2ba98"}, - {file = "numpy-2.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:ed08d2703b5972ec736451b818c2eb9da80d66c3e84aed1deeb0c345fefe461b"}, - {file = "numpy-2.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ad0c86f3455fbd0de6c31a3056eb822fc939f81b1618f10ff3406971893b62a5"}, - {file = "numpy-2.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e7f387600d424f91576af20518334df3d97bc76a300a755f9a8d6e4f5cadd289"}, - {file = "numpy-2.0.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:34f003cb88b1ba38cb9a9a4a3161c1604973d7f9d5552c38bc2f04f829536609"}, - {file = "numpy-2.0.0-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:b6f6a8f45d0313db07d6d1d37bd0b112f887e1369758a5419c0370ba915b3871"}, - {file = "numpy-2.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f64641b42b2429f56ee08b4f427a4d2daf916ec59686061de751a55aafa22e4"}, - {file = "numpy-2.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a7039a136017eaa92c1848152827e1424701532ca8e8967fe480fe1569dae581"}, - {file = "numpy-2.0.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:46e161722e0f619749d1cd892167039015b2c2817296104487cd03ed4a955995"}, - {file = "numpy-2.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0e50842b2295ba8414c8c1d9d957083d5dfe9e16828b37de883f51fc53c4016f"}, - {file = "numpy-2.0.0-cp311-cp311-win32.whl", hash = "sha256:2ce46fd0b8a0c947ae047d222f7136fc4d55538741373107574271bc00e20e8f"}, - {file = "numpy-2.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:fbd6acc766814ea6443628f4e6751d0da6593dae29c08c0b2606164db026970c"}, - {file = "numpy-2.0.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:354f373279768fa5a584bac997de6a6c9bc535c482592d7a813bb0c09be6c76f"}, - {file = "numpy-2.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4d2f62e55a4cd9c58c1d9a1c9edaedcd857a73cb6fda875bf79093f9d9086f85"}, - {file = "numpy-2.0.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:1e72728e7501a450288fc8e1f9ebc73d90cfd4671ebbd631f3e7857c39bd16f2"}, - {file = "numpy-2.0.0-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:84554fc53daa8f6abf8e8a66e076aff6ece62de68523d9f665f32d2fc50fd66e"}, - {file = "numpy-2.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c73aafd1afca80afecb22718f8700b40ac7cab927b8abab3c3e337d70e10e5a2"}, - {file = "numpy-2.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49d9f7d256fbc804391a7f72d4a617302b1afac1112fac19b6c6cec63fe7fe8a"}, - {file = "numpy-2.0.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:0ec84b9ba0654f3b962802edc91424331f423dcf5d5f926676e0150789cb3d95"}, - {file = "numpy-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:feff59f27338135776f6d4e2ec7aeeac5d5f7a08a83e80869121ef8164b74af9"}, - {file = "numpy-2.0.0-cp312-cp312-win32.whl", hash = "sha256:c5a59996dc61835133b56a32ebe4ef3740ea5bc19b3983ac60cc32be5a665d54"}, - {file = "numpy-2.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:a356364941fb0593bb899a1076b92dfa2029f6f5b8ba88a14fd0984aaf76d0df"}, - {file = "numpy-2.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:9416a5c2e92ace094e9f0082c5fd473502c91651fb896bc17690d6fc475128d6"}, - {file = "numpy-2.0.0-pp39-pypy39_pp73-macosx_14_0_x86_64.whl", hash = "sha256:17067d097ed036636fa79f6a869ac26df7db1ba22039d962422506640314933a"}, - {file = "numpy-2.0.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:38ecb5b0582cd125f67a629072fed6f83562d9dd04d7e03256c9829bdec027ad"}, - {file = "numpy-2.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:cef04d068f5fb0518a77857953193b6bb94809a806bd0a14983a8f12ada060c9"}, - {file = "numpy-2.0.0.tar.gz", hash = "sha256:cf5d1c9e6837f8af9f92b6bd3e86d513cdc11f60fd62185cc49ec7d1aba34864"}, + {file = "oauthlib-3.2.2-py3-none-any.whl", hash = "sha256:8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca"}, + {file = "oauthlib-3.2.2.tar.gz", hash = "sha256:9859c40929662bec5d64f34d01c99e093149682a3f38915dc0655d5a633dd918"}, ] [[package]] @@ -769,7 +1651,7 @@ name = "packaging" version = "24.1" requires_python = ">=3.8" summary = "Core utilities for Python packages" -groups = ["default", "dev"] +groups = ["default", "dev", "latlon-domain-crop"] files = [ {file = "packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"}, {file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"}, @@ -820,7 +1702,6 @@ version = "0.8.4" requires_python = ">=3.6" summary = "A Python Parser" groups = ["dev"] -marker = "python_version > \"3.6\"" files = [ {file = "parso-0.8.4-py2.py3-none-any.whl", hash = "sha256:a418670a20291dacd2dddc80c377c5c3791378ee1e8d12bffc35420643d43f18"}, {file = "parso-0.8.4.tar.gz", hash = "sha256:eb3a7b58240fb99099a345571deecc0f9540ea5f4dd2fe14c2a99d6b281ab92d"}, @@ -846,7 +1727,7 @@ name = "pexpect" version = "4.9.0" summary = "Pexpect allows easy control of interactive console applications." groups = ["dev"] -marker = "sys_platform != \"win32\" and python_version > \"3.6\"" +marker = "sys_platform != \"win32\"" dependencies = [ "ptyprocess>=0.5", ] @@ -855,6 +1736,90 @@ files = [ {file = "pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f"}, ] +[[package]] +name = "pillow" +version = "11.0.0" +requires_python = ">=3.9" +summary = "Python Imaging Library (Fork)" +groups = ["latlon-domain-crop"] +files = [ + {file = "pillow-11.0.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:6619654954dc4936fcff82db8eb6401d3159ec6be81e33c6000dfd76ae189947"}, + {file = "pillow-11.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b3c5ac4bed7519088103d9450a1107f76308ecf91d6dabc8a33a2fcfb18d0fba"}, + {file = "pillow-11.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a65149d8ada1055029fcb665452b2814fe7d7082fcb0c5bed6db851cb69b2086"}, + {file = "pillow-11.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88a58d8ac0cc0e7f3a014509f0455248a76629ca9b604eca7dc5927cc593c5e9"}, + {file = "pillow-11.0.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:c26845094b1af3c91852745ae78e3ea47abf3dbcd1cf962f16b9a5fbe3ee8488"}, + {file = "pillow-11.0.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:1a61b54f87ab5786b8479f81c4b11f4d61702830354520837f8cc791ebba0f5f"}, + {file = "pillow-11.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:674629ff60030d144b7bca2b8330225a9b11c482ed408813924619c6f302fdbb"}, + {file = "pillow-11.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:598b4e238f13276e0008299bd2482003f48158e2b11826862b1eb2ad7c768b97"}, + {file = "pillow-11.0.0-cp310-cp310-win32.whl", hash = "sha256:9a0f748eaa434a41fccf8e1ee7a3eed68af1b690e75328fd7a60af123c193b50"}, + {file = "pillow-11.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:a5629742881bcbc1f42e840af185fd4d83a5edeb96475a575f4da50d6ede337c"}, + {file = "pillow-11.0.0-cp310-cp310-win_arm64.whl", hash = "sha256:ee217c198f2e41f184f3869f3e485557296d505b5195c513b2bfe0062dc537f1"}, + {file = "pillow-11.0.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:1c1d72714f429a521d8d2d018badc42414c3077eb187a59579f28e4270b4b0fc"}, + {file = "pillow-11.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:499c3a1b0d6fc8213519e193796eb1a86a1be4b1877d678b30f83fd979811d1a"}, + {file = "pillow-11.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c8b2351c85d855293a299038e1f89db92a2f35e8d2f783489c6f0b2b5f3fe8a3"}, + {file = "pillow-11.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f4dba50cfa56f910241eb7f883c20f1e7b1d8f7d91c750cd0b318bad443f4d5"}, + {file = "pillow-11.0.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:5ddbfd761ee00c12ee1be86c9c0683ecf5bb14c9772ddbd782085779a63dd55b"}, + {file = "pillow-11.0.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:45c566eb10b8967d71bf1ab8e4a525e5a93519e29ea071459ce517f6b903d7fa"}, + {file = "pillow-11.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b4fd7bd29610a83a8c9b564d457cf5bd92b4e11e79a4ee4716a63c959699b306"}, + {file = "pillow-11.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:cb929ca942d0ec4fac404cbf520ee6cac37bf35be479b970c4ffadf2b6a1cad9"}, + {file = "pillow-11.0.0-cp311-cp311-win32.whl", hash = "sha256:006bcdd307cc47ba43e924099a038cbf9591062e6c50e570819743f5607404f5"}, + {file = "pillow-11.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:52a2d8323a465f84faaba5236567d212c3668f2ab53e1c74c15583cf507a0291"}, + {file = "pillow-11.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:16095692a253047fe3ec028e951fa4221a1f3ed3d80c397e83541a3037ff67c9"}, + {file = "pillow-11.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d2c0a187a92a1cb5ef2c8ed5412dd8d4334272617f532d4ad4de31e0495bd923"}, + {file = "pillow-11.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:084a07ef0821cfe4858fe86652fffac8e187b6ae677e9906e192aafcc1b69903"}, + {file = "pillow-11.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8069c5179902dcdce0be9bfc8235347fdbac249d23bd90514b7a47a72d9fecf4"}, + {file = "pillow-11.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f02541ef64077f22bf4924f225c0fd1248c168f86e4b7abdedd87d6ebaceab0f"}, + {file = "pillow-11.0.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:fcb4621042ac4b7865c179bb972ed0da0218a076dc1820ffc48b1d74c1e37fe9"}, + {file = "pillow-11.0.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:00177a63030d612148e659b55ba99527803288cea7c75fb05766ab7981a8c1b7"}, + {file = "pillow-11.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8853a3bf12afddfdf15f57c4b02d7ded92c7a75a5d7331d19f4f9572a89c17e6"}, + {file = "pillow-11.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3107c66e43bda25359d5ef446f59c497de2b5ed4c7fdba0894f8d6cf3822dafc"}, + {file = "pillow-11.0.0-cp312-cp312-win32.whl", hash = "sha256:86510e3f5eca0ab87429dd77fafc04693195eec7fd6a137c389c3eeb4cfb77c6"}, + {file = "pillow-11.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:8ec4a89295cd6cd4d1058a5e6aec6bf51e0eaaf9714774e1bfac7cfc9051db47"}, + {file = "pillow-11.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:27a7860107500d813fcd203b4ea19b04babe79448268403172782754870dac25"}, + {file = "pillow-11.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:bcd1fb5bb7b07f64c15618c89efcc2cfa3e95f0e3bcdbaf4642509de1942a699"}, + {file = "pillow-11.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0e038b0745997c7dcaae350d35859c9715c71e92ffb7e0f4a8e8a16732150f38"}, + {file = "pillow-11.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ae08bd8ffc41aebf578c2af2f9d8749d91f448b3bfd41d7d9ff573d74f2a6b2"}, + {file = "pillow-11.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d69bfd8ec3219ae71bcde1f942b728903cad25fafe3100ba2258b973bd2bc1b2"}, + {file = "pillow-11.0.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:61b887f9ddba63ddf62fd02a3ba7add935d053b6dd7d58998c630e6dbade8527"}, + {file = "pillow-11.0.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:c6a660307ca9d4867caa8d9ca2c2658ab685de83792d1876274991adec7b93fa"}, + {file = "pillow-11.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:73e3a0200cdda995c7e43dd47436c1548f87a30bb27fb871f352a22ab8dcf45f"}, + {file = "pillow-11.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fba162b8872d30fea8c52b258a542c5dfd7b235fb5cb352240c8d63b414013eb"}, + {file = "pillow-11.0.0-cp313-cp313-win32.whl", hash = "sha256:f1b82c27e89fffc6da125d5eb0ca6e68017faf5efc078128cfaa42cf5cb38798"}, + {file = "pillow-11.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:8ba470552b48e5835f1d23ecb936bb7f71d206f9dfeee64245f30c3270b994de"}, + {file = "pillow-11.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:846e193e103b41e984ac921b335df59195356ce3f71dcfd155aa79c603873b84"}, + {file = "pillow-11.0.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:4ad70c4214f67d7466bea6a08061eba35c01b1b89eaa098040a35272a8efb22b"}, + {file = "pillow-11.0.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:6ec0d5af64f2e3d64a165f490d96368bb5dea8b8f9ad04487f9ab60dc4bb6003"}, + {file = "pillow-11.0.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c809a70e43c7977c4a42aefd62f0131823ebf7dd73556fa5d5950f5b354087e2"}, + {file = "pillow-11.0.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:4b60c9520f7207aaf2e1d94de026682fc227806c6e1f55bba7606d1c94dd623a"}, + {file = "pillow-11.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:1e2688958a840c822279fda0086fec1fdab2f95bf2b717b66871c4ad9859d7e8"}, + {file = "pillow-11.0.0-cp313-cp313t-win32.whl", hash = "sha256:607bbe123c74e272e381a8d1957083a9463401f7bd01287f50521ecb05a313f8"}, + {file = "pillow-11.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5c39ed17edea3bc69c743a8dd3e9853b7509625c2462532e62baa0732163a904"}, + {file = "pillow-11.0.0-cp313-cp313t-win_arm64.whl", hash = "sha256:75acbbeb05b86bc53cbe7b7e6fe00fbcf82ad7c684b3ad82e3d711da9ba287d3"}, + {file = "pillow-11.0.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:2e46773dc9f35a1dd28bd6981332fd7f27bec001a918a72a79b4133cf5291dba"}, + {file = "pillow-11.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2679d2258b7f1192b378e2893a8a0a0ca472234d4c2c0e6bdd3380e8dfa21b6a"}, + {file = "pillow-11.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eda2616eb2313cbb3eebbe51f19362eb434b18e3bb599466a1ffa76a033fb916"}, + {file = "pillow-11.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20ec184af98a121fb2da42642dea8a29ec80fc3efbaefb86d8fdd2606619045d"}, + {file = "pillow-11.0.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:8594f42df584e5b4bb9281799698403f7af489fba84c34d53d1c4bfb71b7c4e7"}, + {file = "pillow-11.0.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:c12b5ae868897c7338519c03049a806af85b9b8c237b7d675b8c5e089e4a618e"}, + {file = "pillow-11.0.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:70fbbdacd1d271b77b7721fe3cdd2d537bbbd75d29e6300c672ec6bb38d9672f"}, + {file = "pillow-11.0.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5178952973e588b3f1360868847334e9e3bf49d19e169bbbdfaf8398002419ae"}, + {file = "pillow-11.0.0-cp39-cp39-win32.whl", hash = "sha256:8c676b587da5673d3c75bd67dd2a8cdfeb282ca38a30f37950511766b26858c4"}, + {file = "pillow-11.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:94f3e1780abb45062287b4614a5bc0874519c86a777d4a7ad34978e86428b8dd"}, + {file = "pillow-11.0.0-cp39-cp39-win_arm64.whl", hash = "sha256:290f2cc809f9da7d6d622550bbf4c1e57518212da51b6a30fe8e0a270a5b78bd"}, + {file = "pillow-11.0.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:1187739620f2b365de756ce086fdb3604573337cc28a0d3ac4a01ab6b2d2a6d2"}, + {file = "pillow-11.0.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:fbbcb7b57dc9c794843e3d1258c0fbf0f48656d46ffe9e09b63bbd6e8cd5d0a2"}, + {file = "pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d203af30149ae339ad1b4f710d9844ed8796e97fda23ffbc4cc472968a47d0b"}, + {file = "pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21a0d3b115009ebb8ac3d2ebec5c2982cc693da935f4ab7bb5c8ebe2f47d36f2"}, + {file = "pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:73853108f56df97baf2bb8b522f3578221e56f646ba345a372c78326710d3830"}, + {file = "pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:e58876c91f97b0952eb766123bfef372792ab3f4e3e1f1a2267834c2ab131734"}, + {file = "pillow-11.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:224aaa38177597bb179f3ec87eeefcce8e4f85e608025e9cfac60de237ba6316"}, + {file = "pillow-11.0.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:5bd2d3bdb846d757055910f0a59792d33b555800813c3b39ada1829c372ccb06"}, + {file = "pillow-11.0.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:375b8dd15a1f5d2feafff536d47e22f69625c1aa92f12b339ec0b2ca40263273"}, + {file = "pillow-11.0.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:daffdf51ee5db69a82dd127eabecce20729e21f7a3680cf7cbb23f0829189790"}, + {file = "pillow-11.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7326a1787e3c7b0429659e0a944725e1b03eeaa10edd945a86dead1913383944"}, + {file = "pillow-11.0.0.tar.gz", hash = "sha256:72bacbaf24ac003fea9bff9837d1eedb6088758d41e100c1552930151f677739"}, +] + [[package]] name = "platformdirs" version = "4.2.2" @@ -901,7 +1866,6 @@ version = "3.0.47" requires_python = ">=3.7.0" summary = "Library for building powerful interactive command lines in Python" groups = ["dev"] -marker = "python_version > \"3.6\"" dependencies = [ "wcwidth", ] @@ -910,12 +1874,44 @@ files = [ {file = "prompt_toolkit-3.0.47.tar.gz", hash = "sha256:1e1b29cb58080b1e69f207c893a1a7bf16d127a5c30c9d17a25a5d77792e5360"}, ] +[[package]] +name = "proto-plus" +version = "1.25.0" +requires_python = ">=3.7" +summary = "Beautiful, Pythonic protocol buffers." +groups = ["latlon-domain-crop"] +dependencies = [ + "protobuf<6.0.0dev,>=3.19.0", +] +files = [ + {file = "proto_plus-1.25.0-py3-none-any.whl", hash = "sha256:c91fc4a65074ade8e458e95ef8bac34d4008daa7cce4a12d6707066fca648961"}, + {file = "proto_plus-1.25.0.tar.gz", hash = "sha256:fbb17f57f7bd05a68b7707e745e26528b0b3c34e378db91eef93912c54982d91"}, +] + +[[package]] +name = "protobuf" +version = "5.29.1" +requires_python = ">=3.8" +summary = "" +groups = ["latlon-domain-crop"] +files = [ + {file = "protobuf-5.29.1-cp310-abi3-win32.whl", hash = "sha256:22c1f539024241ee545cbcb00ee160ad1877975690b16656ff87dde107b5f110"}, + {file = "protobuf-5.29.1-cp310-abi3-win_amd64.whl", hash = "sha256:1fc55267f086dd4050d18ef839d7bd69300d0d08c2a53ca7df3920cc271a3c34"}, + {file = "protobuf-5.29.1-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:d473655e29c0c4bbf8b69e9a8fb54645bc289dead6d753b952e7aa660254ae18"}, + {file = "protobuf-5.29.1-cp38-abi3-manylinux2014_aarch64.whl", hash = "sha256:b5ba1d0e4c8a40ae0496d0e2ecfdbb82e1776928a205106d14ad6985a09ec155"}, + {file = "protobuf-5.29.1-cp38-abi3-manylinux2014_x86_64.whl", hash = "sha256:8ee1461b3af56145aca2800e6a3e2f928108c749ba8feccc6f5dd0062c410c0d"}, + {file = "protobuf-5.29.1-cp39-cp39-win32.whl", hash = "sha256:5a41deccfa5e745cef5c65a560c76ec0ed8e70908a67cc8f4da5fce588b50d57"}, + {file = "protobuf-5.29.1-cp39-cp39-win_amd64.whl", hash = "sha256:012ce28d862ff417fd629285aca5d9772807f15ceb1a0dbd15b88f58c776c98c"}, + {file = "protobuf-5.29.1-py3-none-any.whl", hash = "sha256:32600ddb9c2a53dedc25b8581ea0f1fd8ea04956373c0c07577ce58d312522e0"}, + {file = "protobuf-5.29.1.tar.gz", hash = "sha256:683be02ca21a6ffe80db6dd02c0b5b2892322c59ca57fd6c872d652cb80549cb"}, +] + [[package]] name = "psutil" version = "6.0.0" requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" summary = "Cross-platform lib for process and system monitoring in Python." -groups = ["default"] +groups = ["default", "dev"] files = [ {file = "psutil-6.0.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:c588a7e9b1173b6e866756dde596fd4cad94f9399daf99ad8c3258b3cb2b47a0"}, {file = "psutil-6.0.0-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ed2440ada7ef7d0d608f20ad89a04ec47d2d3ab7190896cd62ca5fc4fe08bf0"}, @@ -932,7 +1928,7 @@ name = "ptyprocess" version = "0.7.0" summary = "Run a subprocess in a pseudo terminal" groups = ["dev"] -marker = "sys_platform != \"win32\" and python_version > \"3.6\"" +marker = "sys_platform != \"win32\"" files = [ {file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"}, {file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"}, @@ -943,12 +1939,71 @@ name = "pure-eval" version = "0.2.2" summary = "Safely evaluate AST nodes without side effects" groups = ["dev"] -marker = "python_version > \"3.6\"" files = [ {file = "pure_eval-0.2.2-py3-none-any.whl", hash = "sha256:01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350"}, {file = "pure_eval-0.2.2.tar.gz", hash = "sha256:2b45320af6dfaa1750f543d714b6d1c520a1688dec6fd24d339063ce0aaa9ac3"}, ] +[[package]] +name = "pyasn1" +version = "0.6.1" +requires_python = ">=3.8" +summary = "Pure-Python implementation of ASN.1 types and DER/BER/CER codecs (X.208)" +groups = ["latlon-domain-crop"] +files = [ + {file = "pyasn1-0.6.1-py3-none-any.whl", hash = "sha256:0d632f46f2ba09143da3a8afe9e33fb6f92fa2320ab7e886e2d0f7672af84629"}, + {file = "pyasn1-0.6.1.tar.gz", hash = "sha256:6f580d2bdd84365380830acf45550f2511469f673cb4a5ae3857a3170128b034"}, +] + +[[package]] +name = "pyasn1-modules" +version = "0.4.1" +requires_python = ">=3.8" +summary = "A collection of ASN.1-based protocols modules" +groups = ["latlon-domain-crop"] +dependencies = [ + "pyasn1<0.7.0,>=0.4.6", +] +files = [ + {file = "pyasn1_modules-0.4.1-py3-none-any.whl", hash = "sha256:49bfa96b45a292b711e986f222502c1c9a5e1f4e568fc30e2574a6c7d07838fd"}, + {file = "pyasn1_modules-0.4.1.tar.gz", hash = "sha256:c28e2dbf9c06ad61c71a075c7e0f9fd0f1b0bb2d2ad4377f240d33ac2ab60a7c"}, +] + +[[package]] +name = "pycparser" +version = "2.22" +requires_python = ">=3.8" +summary = "C parser in Python" +groups = ["dev"] +marker = "implementation_name == \"pypy\"" +files = [ + {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, + {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, +] + +[[package]] +name = "pyerfa" +version = "2.0.1.5" +requires_python = ">=3.9" +summary = "Python bindings for ERFA" +groups = ["latlon-domain-crop"] +dependencies = [ + "numpy>=1.19.3", +] +files = [ + {file = "pyerfa-2.0.1.5-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:b282d7c60c4c47cf629c484c17ac504fcb04abd7b3f4dfcf53ee042afc3a5944"}, + {file = "pyerfa-2.0.1.5-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:be1aeb70390dd03a34faf96749d5cabc58437410b4aab7213c512323932427df"}, + {file = "pyerfa-2.0.1.5-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b0603e8e1b839327d586c8a627cdc634b795e18b007d84f0cda5500a0908254e"}, + {file = "pyerfa-2.0.1.5-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e43c7194e3242083f2350b46c09fd4bf8ba1bcc0ebd1460b98fc47fe2389906"}, + {file = "pyerfa-2.0.1.5-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:07b80cd70701f5d066b1ac8cce406682cfcd667a1186ec7d7ade597239a6021d"}, + {file = "pyerfa-2.0.1.5-cp39-abi3-win32.whl", hash = "sha256:d30b9b0df588ed5467e529d851ea324a67239096dd44703125072fd11b351ea2"}, + {file = "pyerfa-2.0.1.5-cp39-abi3-win_amd64.whl", hash = "sha256:66292d437dcf75925b694977aa06eb697126e7b86553e620371ed3e48b5e0ad0"}, + {file = "pyerfa-2.0.1.5-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:4991dee680ff36c87911d8faa4c7d1aa6278ad9b5e0d16158cf22fa7d74ba25c"}, + {file = "pyerfa-2.0.1.5-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:690e258294202c86f479e78e80fd235cd27bd717f7f60062fccc3dbd6ef0b1a9"}, + {file = "pyerfa-2.0.1.5-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:171ce9676a448a7eb555f03aa19ad5c749dbced1ce4f9923e4d93443c4a9c612"}, + {file = "pyerfa-2.0.1.5.tar.gz", hash = "sha256:17d6b24fe4846c65d5e7d8c362dcb08199dc63b30a236aedd73875cc83e1f6c0"}, +] + [[package]] name = "pygments" version = "2.18.0" @@ -960,6 +2015,67 @@ files = [ {file = "pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199"}, ] +[[package]] +name = "pyparsing" +version = "3.2.0" +requires_python = ">=3.9" +summary = "pyparsing module - Classes and methods to define and execute parsing grammars" +groups = ["latlon-domain-crop"] +files = [ + {file = "pyparsing-3.2.0-py3-none-any.whl", hash = "sha256:93d9577b88da0bbea8cc8334ee8b918ed014968fd2ec383e868fb8afb1ccef84"}, + {file = "pyparsing-3.2.0.tar.gz", hash = "sha256:cbf74e27246d595d9a74b186b810f6fbb86726dbf3b9532efb343f6d7294fe9c"}, +] + +[[package]] +name = "pyproj" +version = "3.6.1" +requires_python = ">=3.9" +summary = "Python interface to PROJ (cartographic projections and coordinate transformations library)" +groups = ["latlon-domain-crop"] +dependencies = [ + "certifi", +] +files = [ + {file = "pyproj-3.6.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ab7aa4d9ff3c3acf60d4b285ccec134167a948df02347585fdd934ebad8811b4"}, + {file = "pyproj-3.6.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4bc0472302919e59114aa140fd7213c2370d848a7249d09704f10f5b062031fe"}, + {file = "pyproj-3.6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5279586013b8d6582e22b6f9e30c49796966770389a9d5b85e25a4223286cd3f"}, + {file = "pyproj-3.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80fafd1f3eb421694857f254a9bdbacd1eb22fc6c24ca74b136679f376f97d35"}, + {file = "pyproj-3.6.1-cp310-cp310-win32.whl", hash = "sha256:c41e80ddee130450dcb8829af7118f1ab69eaf8169c4bf0ee8d52b72f098dc2f"}, + {file = "pyproj-3.6.1-cp310-cp310-win_amd64.whl", hash = "sha256:db3aedd458e7f7f21d8176f0a1d924f1ae06d725228302b872885a1c34f3119e"}, + {file = "pyproj-3.6.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ebfbdbd0936e178091309f6cd4fcb4decd9eab12aa513cdd9add89efa3ec2882"}, + {file = "pyproj-3.6.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:447db19c7efad70ff161e5e46a54ab9cc2399acebb656b6ccf63e4bc4a04b97a"}, + {file = "pyproj-3.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e7e13c40183884ec7f94eb8e0f622f08f1d5716150b8d7a134de48c6110fee85"}, + {file = "pyproj-3.6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65ad699e0c830e2b8565afe42bd58cc972b47d829b2e0e48ad9638386d994915"}, + {file = "pyproj-3.6.1-cp311-cp311-win32.whl", hash = "sha256:8b8acc31fb8702c54625f4d5a2a6543557bec3c28a0ef638778b7ab1d1772132"}, + {file = "pyproj-3.6.1-cp311-cp311-win_amd64.whl", hash = "sha256:38a3361941eb72b82bd9a18f60c78b0df8408416f9340521df442cebfc4306e2"}, + {file = "pyproj-3.6.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:1e9fbaf920f0f9b4ee62aab832be3ae3968f33f24e2e3f7fbb8c6728ef1d9746"}, + {file = "pyproj-3.6.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6d227a865356f225591b6732430b1d1781e946893789a609bb34f59d09b8b0f8"}, + {file = "pyproj-3.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:83039e5ae04e5afc974f7d25ee0870a80a6bd6b7957c3aca5613ccbe0d3e72bf"}, + {file = "pyproj-3.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fffb059ba3bced6f6725961ba758649261d85ed6ce670d3e3b0a26e81cf1aa8d"}, + {file = "pyproj-3.6.1-cp312-cp312-win32.whl", hash = "sha256:2d6ff73cc6dbbce3766b6c0bce70ce070193105d8de17aa2470009463682a8eb"}, + {file = "pyproj-3.6.1-cp312-cp312-win_amd64.whl", hash = "sha256:7a27151ddad8e1439ba70c9b4b2b617b290c39395fa9ddb7411ebb0eb86d6fb0"}, + {file = "pyproj-3.6.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4ba1f9b03d04d8cab24d6375609070580a26ce76eaed54631f03bab00a9c737b"}, + {file = "pyproj-3.6.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:18faa54a3ca475bfe6255156f2f2874e9a1c8917b0004eee9f664b86ccc513d3"}, + {file = "pyproj-3.6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fd43bd9a9b9239805f406fd82ba6b106bf4838d9ef37c167d3ed70383943ade1"}, + {file = "pyproj-3.6.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:50100b2726a3ca946906cbaa789dd0749f213abf0cbb877e6de72ca7aa50e1ae"}, + {file = "pyproj-3.6.1-cp39-cp39-win32.whl", hash = "sha256:9274880263256f6292ff644ca92c46d96aa7e57a75c6df3f11d636ce845a1877"}, + {file = "pyproj-3.6.1-cp39-cp39-win_amd64.whl", hash = "sha256:36b64c2cb6ea1cc091f329c5bd34f9c01bb5da8c8e4492c709bda6a09f96808f"}, + {file = "pyproj-3.6.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:fd93c1a0c6c4aedc77c0fe275a9f2aba4d59b8acf88cebfc19fe3c430cfabf4f"}, + {file = "pyproj-3.6.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6420ea8e7d2a88cb148b124429fba8cd2e0fae700a2d96eab7083c0928a85110"}, + {file = "pyproj-3.6.1.tar.gz", hash = "sha256:44aa7c704c2b7d8fb3d483bbf75af6cb2350d30a63b144279a09b75fead501bf"}, +] + +[[package]] +name = "pyshp" +version = "2.3.1" +requires_python = ">=2.7" +summary = "Pure Python read/write support for ESRI Shapefile format" +groups = ["latlon-domain-crop"] +files = [ + {file = "pyshp-2.3.1-py2.py3-none-any.whl", hash = "sha256:67024c0ccdc352ba5db777c4e968483782dfa78f8e200672a90d2d30fd8b7b49"}, + {file = "pyshp-2.3.1.tar.gz", hash = "sha256:4caec82fd8dd096feba8217858068bacb2a3b5950f43c048c6dc32a3489d5af1"}, +] + [[package]] name = "pytest" version = "8.2.2" @@ -984,7 +2100,7 @@ name = "python-dateutil" version = "2.9.0.post0" requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" summary = "Extensions to the standard Python datetime module" -groups = ["default"] +groups = ["default", "dev", "latlon-domain-crop"] dependencies = [ "six>=1.5", ] @@ -1003,12 +2119,35 @@ files = [ {file = "pytz-2024.1.tar.gz", hash = "sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812"}, ] +[[package]] +name = "pywin32" +version = "308" +summary = "Python for Window Extensions" +groups = ["dev"] +marker = "sys_platform == \"win32\" and platform_python_implementation != \"PyPy\"" +files = [ + {file = "pywin32-308-cp310-cp310-win32.whl", hash = "sha256:796ff4426437896550d2981b9c2ac0ffd75238ad9ea2d3bfa67a1abd546d262e"}, + {file = "pywin32-308-cp310-cp310-win_amd64.whl", hash = "sha256:4fc888c59b3c0bef905ce7eb7e2106a07712015ea1c8234b703a088d46110e8e"}, + {file = "pywin32-308-cp310-cp310-win_arm64.whl", hash = "sha256:a5ab5381813b40f264fa3495b98af850098f814a25a63589a8e9eb12560f450c"}, + {file = "pywin32-308-cp311-cp311-win32.whl", hash = "sha256:5d8c8015b24a7d6855b1550d8e660d8daa09983c80e5daf89a273e5c6fb5095a"}, + {file = "pywin32-308-cp311-cp311-win_amd64.whl", hash = "sha256:575621b90f0dc2695fec346b2d6302faebd4f0f45c05ea29404cefe35d89442b"}, + {file = "pywin32-308-cp311-cp311-win_arm64.whl", hash = "sha256:100a5442b7332070983c4cd03f2e906a5648a5104b8a7f50175f7906efd16bb6"}, + {file = "pywin32-308-cp312-cp312-win32.whl", hash = "sha256:587f3e19696f4bf96fde9d8a57cec74a57021ad5f204c9e627e15c33ff568897"}, + {file = "pywin32-308-cp312-cp312-win_amd64.whl", hash = "sha256:00b3e11ef09ede56c6a43c71f2d31857cf7c54b0ab6e78ac659497abd2834f47"}, + {file = "pywin32-308-cp312-cp312-win_arm64.whl", hash = "sha256:9b4de86c8d909aed15b7011182c8cab38c8850de36e6afb1f0db22b8959e3091"}, + {file = "pywin32-308-cp313-cp313-win32.whl", hash = "sha256:1c44539a37a5b7b21d02ab34e6a4d314e0788f1690d65b48e9b0b89f31abbbed"}, + {file = "pywin32-308-cp313-cp313-win_amd64.whl", hash = "sha256:fd380990e792eaf6827fcb7e187b2b4b1cede0585e3d0c9e84201ec27b9905e4"}, + {file = "pywin32-308-cp313-cp313-win_arm64.whl", hash = "sha256:ef313c46d4c18dfb82a2431e3051ac8f112ccee1a34f29c263c583c568db63cd"}, + {file = "pywin32-308-cp39-cp39-win32.whl", hash = "sha256:7873ca4dc60ab3287919881a7d4f88baee4a6e639aa6962de25a98ba6b193341"}, + {file = "pywin32-308-cp39-cp39-win_amd64.whl", hash = "sha256:71b3322d949b4cc20776436a9c9ba0eeedcbc9c650daa536df63f0ff111bb920"}, +] + [[package]] name = "pyyaml" version = "6.0.1" requires_python = ">=3.6" summary = "YAML parser and emitter for Python" -groups = ["default", "dev"] +groups = ["default", "dev", "latlon-domain-crop"] files = [ {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"}, {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"}, @@ -1036,12 +2175,104 @@ files = [ {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, ] +[[package]] +name = "pyzmq" +version = "26.2.0" +requires_python = ">=3.7" +summary = "Python bindings for 0MQ" +groups = ["dev"] +dependencies = [ + "cffi; implementation_name == \"pypy\"", +] +files = [ + {file = "pyzmq-26.2.0-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:ddf33d97d2f52d89f6e6e7ae66ee35a4d9ca6f36eda89c24591b0c40205a3629"}, + {file = "pyzmq-26.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dacd995031a01d16eec825bf30802fceb2c3791ef24bcce48fa98ce40918c27b"}, + {file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:89289a5ee32ef6c439086184529ae060c741334b8970a6855ec0b6ad3ff28764"}, + {file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5506f06d7dc6ecf1efacb4a013b1f05071bb24b76350832c96449f4a2d95091c"}, + {file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8ea039387c10202ce304af74def5021e9adc6297067f3441d348d2b633e8166a"}, + {file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:a2224fa4a4c2ee872886ed00a571f5e967c85e078e8e8c2530a2fb01b3309b88"}, + {file = "pyzmq-26.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:28ad5233e9c3b52d76196c696e362508959741e1a005fb8fa03b51aea156088f"}, + {file = "pyzmq-26.2.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:1c17211bc037c7d88e85ed8b7d8f7e52db6dc8eca5590d162717c654550f7282"}, + {file = "pyzmq-26.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b8f86dd868d41bea9a5f873ee13bf5551c94cf6bc51baebc6f85075971fe6eea"}, + {file = "pyzmq-26.2.0-cp310-cp310-win32.whl", hash = "sha256:46a446c212e58456b23af260f3d9fb785054f3e3653dbf7279d8f2b5546b21c2"}, + {file = "pyzmq-26.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:49d34ab71db5a9c292a7644ce74190b1dd5a3475612eefb1f8be1d6961441971"}, + {file = "pyzmq-26.2.0-cp310-cp310-win_arm64.whl", hash = "sha256:bfa832bfa540e5b5c27dcf5de5d82ebc431b82c453a43d141afb1e5d2de025fa"}, + {file = "pyzmq-26.2.0-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:8f7e66c7113c684c2b3f1c83cdd3376103ee0ce4c49ff80a648643e57fb22218"}, + {file = "pyzmq-26.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3a495b30fc91db2db25120df5847d9833af237546fd59170701acd816ccc01c4"}, + {file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77eb0968da535cba0470a5165468b2cac7772cfb569977cff92e240f57e31bef"}, + {file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ace4f71f1900a548f48407fc9be59c6ba9d9aaf658c2eea6cf2779e72f9f317"}, + {file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:92a78853d7280bffb93df0a4a6a2498cba10ee793cc8076ef797ef2f74d107cf"}, + {file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:689c5d781014956a4a6de61d74ba97b23547e431e9e7d64f27d4922ba96e9d6e"}, + {file = "pyzmq-26.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0aca98bc423eb7d153214b2df397c6421ba6373d3397b26c057af3c904452e37"}, + {file = "pyzmq-26.2.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:1f3496d76b89d9429a656293744ceca4d2ac2a10ae59b84c1da9b5165f429ad3"}, + {file = "pyzmq-26.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5c2b3bfd4b9689919db068ac6c9911f3fcb231c39f7dd30e3138be94896d18e6"}, + {file = "pyzmq-26.2.0-cp311-cp311-win32.whl", hash = "sha256:eac5174677da084abf378739dbf4ad245661635f1600edd1221f150b165343f4"}, + {file = "pyzmq-26.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:5a509df7d0a83a4b178d0f937ef14286659225ef4e8812e05580776c70e155d5"}, + {file = "pyzmq-26.2.0-cp311-cp311-win_arm64.whl", hash = "sha256:c0e6091b157d48cbe37bd67233318dbb53e1e6327d6fc3bb284afd585d141003"}, + {file = "pyzmq-26.2.0-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:ded0fc7d90fe93ae0b18059930086c51e640cdd3baebdc783a695c77f123dcd9"}, + {file = "pyzmq-26.2.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:17bf5a931c7f6618023cdacc7081f3f266aecb68ca692adac015c383a134ca52"}, + {file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55cf66647e49d4621a7e20c8d13511ef1fe1efbbccf670811864452487007e08"}, + {file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4661c88db4a9e0f958c8abc2b97472e23061f0bc737f6f6179d7a27024e1faa5"}, + {file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ea7f69de383cb47522c9c208aec6dd17697db7875a4674c4af3f8cfdac0bdeae"}, + {file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:7f98f6dfa8b8ccaf39163ce872bddacca38f6a67289116c8937a02e30bbe9711"}, + {file = "pyzmq-26.2.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e3e0210287329272539eea617830a6a28161fbbd8a3271bf4150ae3e58c5d0e6"}, + {file = "pyzmq-26.2.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:6b274e0762c33c7471f1a7471d1a2085b1a35eba5cdc48d2ae319f28b6fc4de3"}, + {file = "pyzmq-26.2.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:29c6a4635eef69d68a00321e12a7d2559fe2dfccfa8efae3ffb8e91cd0b36a8b"}, + {file = "pyzmq-26.2.0-cp312-cp312-win32.whl", hash = "sha256:989d842dc06dc59feea09e58c74ca3e1678c812a4a8a2a419046d711031f69c7"}, + {file = "pyzmq-26.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:2a50625acdc7801bc6f74698c5c583a491c61d73c6b7ea4dee3901bb99adb27a"}, + {file = "pyzmq-26.2.0-cp312-cp312-win_arm64.whl", hash = "sha256:4d29ab8592b6ad12ebbf92ac2ed2bedcfd1cec192d8e559e2e099f648570e19b"}, + {file = "pyzmq-26.2.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9dd8cd1aeb00775f527ec60022004d030ddc51d783d056e3e23e74e623e33726"}, + {file = "pyzmq-26.2.0-cp313-cp313-macosx_10_15_universal2.whl", hash = "sha256:28c812d9757fe8acecc910c9ac9dafd2ce968c00f9e619db09e9f8f54c3a68a3"}, + {file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d80b1dd99c1942f74ed608ddb38b181b87476c6a966a88a950c7dee118fdf50"}, + {file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8c997098cc65e3208eca09303630e84d42718620e83b733d0fd69543a9cab9cb"}, + {file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ad1bc8d1b7a18497dda9600b12dc193c577beb391beae5cd2349184db40f187"}, + {file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:bea2acdd8ea4275e1278350ced63da0b166421928276c7c8e3f9729d7402a57b"}, + {file = "pyzmq-26.2.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:23f4aad749d13698f3f7b64aad34f5fc02d6f20f05999eebc96b89b01262fb18"}, + {file = "pyzmq-26.2.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:a4f96f0d88accc3dbe4a9025f785ba830f968e21e3e2c6321ccdfc9aef755115"}, + {file = "pyzmq-26.2.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ced65e5a985398827cc9276b93ef6dfabe0273c23de8c7931339d7e141c2818e"}, + {file = "pyzmq-26.2.0-cp313-cp313-win32.whl", hash = "sha256:31507f7b47cc1ead1f6e86927f8ebb196a0bab043f6345ce070f412a59bf87b5"}, + {file = "pyzmq-26.2.0-cp313-cp313-win_amd64.whl", hash = "sha256:70fc7fcf0410d16ebdda9b26cbd8bf8d803d220a7f3522e060a69a9c87bf7bad"}, + {file = "pyzmq-26.2.0-cp313-cp313-win_arm64.whl", hash = "sha256:c3789bd5768ab5618ebf09cef6ec2b35fed88709b104351748a63045f0ff9797"}, + {file = "pyzmq-26.2.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:034da5fc55d9f8da09015d368f519478a52675e558c989bfcb5cf6d4e16a7d2a"}, + {file = "pyzmq-26.2.0-cp313-cp313t-macosx_10_15_universal2.whl", hash = "sha256:c92d73464b886931308ccc45b2744e5968cbaade0b1d6aeb40d8ab537765f5bc"}, + {file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:794a4562dcb374f7dbbfb3f51d28fb40123b5a2abadee7b4091f93054909add5"}, + {file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aee22939bb6075e7afededabad1a56a905da0b3c4e3e0c45e75810ebe3a52672"}, + {file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ae90ff9dad33a1cfe947d2c40cb9cb5e600d759ac4f0fd22616ce6540f72797"}, + {file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:43a47408ac52647dfabbc66a25b05b6a61700b5165807e3fbd40063fcaf46386"}, + {file = "pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:25bf2374a2a8433633c65ccb9553350d5e17e60c8eb4de4d92cc6bd60f01d306"}, + {file = "pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_i686.whl", hash = "sha256:007137c9ac9ad5ea21e6ad97d3489af654381324d5d3ba614c323f60dab8fae6"}, + {file = "pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:470d4a4f6d48fb34e92d768b4e8a5cc3780db0d69107abf1cd7ff734b9766eb0"}, + {file = "pyzmq-26.2.0-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:b1d464cb8d72bfc1a3adc53305a63a8e0cac6bc8c5a07e8ca190ab8d3faa43c2"}, + {file = "pyzmq-26.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4da04c48873a6abdd71811c5e163bd656ee1b957971db7f35140a2d573f6949c"}, + {file = "pyzmq-26.2.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:d049df610ac811dcffdc147153b414147428567fbbc8be43bb8885f04db39d98"}, + {file = "pyzmq-26.2.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:05590cdbc6b902101d0e65d6a4780af14dc22914cc6ab995d99b85af45362cc9"}, + {file = "pyzmq-26.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c811cfcd6a9bf680236c40c6f617187515269ab2912f3d7e8c0174898e2519db"}, + {file = "pyzmq-26.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:6835dd60355593de10350394242b5757fbbd88b25287314316f266e24c61d073"}, + {file = "pyzmq-26.2.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc6bee759a6bddea5db78d7dcd609397449cb2d2d6587f48f3ca613b19410cfc"}, + {file = "pyzmq-26.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c530e1eecd036ecc83c3407f77bb86feb79916d4a33d11394b8234f3bd35b940"}, + {file = "pyzmq-26.2.0-cp39-cp39-win32.whl", hash = "sha256:367b4f689786fca726ef7a6c5ba606958b145b9340a5e4808132cc65759abd44"}, + {file = "pyzmq-26.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:e6fa2e3e683f34aea77de8112f6483803c96a44fd726d7358b9888ae5bb394ec"}, + {file = "pyzmq-26.2.0-cp39-cp39-win_arm64.whl", hash = "sha256:7445be39143a8aa4faec43b076e06944b8f9d0701b669df4af200531b21e40bb"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:706e794564bec25819d21a41c31d4df2d48e1cc4b061e8d345d7fb4dd3e94072"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b435f2753621cd36e7c1762156815e21c985c72b19135dac43a7f4f31d28dd1"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:160c7e0a5eb178011e72892f99f918c04a131f36056d10d9c1afb223fc952c2d"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c4a71d5d6e7b28a47a394c0471b7e77a0661e2d651e7ae91e0cab0a587859ca"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:90412f2db8c02a3864cbfc67db0e3dcdbda336acf1c469526d3e869394fe001c"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:cdeabcff45d1c219636ee2e54d852262e5c2e085d6cb476d938aee8d921356b3"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35cffef589bcdc587d06f9149f8d5e9e8859920a071df5a2671de2213bef592a"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:18c8dc3b7468d8b4bdf60ce9d7141897da103c7a4690157b32b60acb45e333e6"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7133d0a1677aec369d67dd78520d3fa96dd7f3dcec99d66c1762870e5ea1a50a"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:6a96179a24b14fa6428cbfc08641c779a53f8fcec43644030328f44034c7f1f4"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:4f78c88905461a9203eac9faac157a2a0dbba84a0fd09fd29315db27be40af9f"}, + {file = "pyzmq-26.2.0.tar.gz", hash = "sha256:070672c258581c8e4f640b5159297580a9974b026043bd4ab0470be9ed324f1f"}, +] + [[package]] name = "requests" version = "2.32.3" requires_python = ">=3.8" summary = "Python HTTP for Humans." -groups = ["default"] +groups = ["default", "latlon-domain-crop"] dependencies = [ "certifi>=2017.4.17", "charset-normalizer<4,>=2", @@ -1053,6 +2284,21 @@ files = [ {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, ] +[[package]] +name = "requests-oauthlib" +version = "2.0.0" +requires_python = ">=3.4" +summary = "OAuthlib authentication support for Requests." +groups = ["latlon-domain-crop"] +dependencies = [ + "oauthlib>=3.0.0", + "requests>=2.0.0", +] +files = [ + {file = "requests-oauthlib-2.0.0.tar.gz", hash = "sha256:b3dffaebd884d8cd778494369603a9e7b58d29111bf6b41bdc2dcd87203af4e9"}, + {file = "requests_oauthlib-2.0.0-py2.py3-none-any.whl", hash = "sha256:7dd8a5c40426b779b0868c404bdef9768deccf22749cde15852df527e6269b36"}, +] + [[package]] name = "rich" version = "13.7.1" @@ -1069,6 +2315,20 @@ files = [ {file = "rich-13.7.1.tar.gz", hash = "sha256:9be308cb1fe2f1f57d67ce99e95af38a1e2bc71ad9813b0e247cf7ffbcc3a432"}, ] +[[package]] +name = "rsa" +version = "4.9" +requires_python = ">=3.6,<4" +summary = "Pure-Python RSA implementation" +groups = ["latlon-domain-crop"] +dependencies = [ + "pyasn1>=0.1.3", +] +files = [ + {file = "rsa-4.9-py3-none-any.whl", hash = "sha256:90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7"}, + {file = "rsa-4.9.tar.gz", hash = "sha256:e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21"}, +] + [[package]] name = "semver" version = "3.0.2" @@ -1080,23 +2340,103 @@ files = [ {file = "semver-3.0.2.tar.gz", hash = "sha256:6253adb39c70f6e51afed2fa7152bcd414c411286088fb4b9effb133885ab4cc"}, ] +[[package]] +name = "shapely" +version = "2.0.6" +requires_python = ">=3.7" +summary = "Manipulation and analysis of geometric objects" +groups = ["latlon-domain-crop"] +dependencies = [ + "numpy<3,>=1.14", +] +files = [ + {file = "shapely-2.0.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:29a34e068da2d321e926b5073539fd2a1d4429a2c656bd63f0bd4c8f5b236d0b"}, + {file = "shapely-2.0.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e1c84c3f53144febf6af909d6b581bc05e8785d57e27f35ebaa5c1ab9baba13b"}, + {file = "shapely-2.0.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2ad2fae12dca8d2b727fa12b007e46fbc522148a584f5d6546c539f3464dccde"}, + {file = "shapely-2.0.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b3304883bd82d44be1b27a9d17f1167fda8c7f5a02a897958d86c59ec69b705e"}, + {file = "shapely-2.0.6-cp310-cp310-win32.whl", hash = "sha256:3ec3a0eab496b5e04633a39fa3d5eb5454628228201fb24903d38174ee34565e"}, + {file = "shapely-2.0.6-cp310-cp310-win_amd64.whl", hash = "sha256:28f87cdf5308a514763a5c38de295544cb27429cfa655d50ed8431a4796090c4"}, + {file = "shapely-2.0.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5aeb0f51a9db176da9a30cb2f4329b6fbd1e26d359012bb0ac3d3c7781667a9e"}, + {file = "shapely-2.0.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9a7a78b0d51257a367ee115f4d41ca4d46edbd0dd280f697a8092dd3989867b2"}, + {file = "shapely-2.0.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f32c23d2f43d54029f986479f7c1f6e09c6b3a19353a3833c2ffb226fb63a855"}, + {file = "shapely-2.0.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b3dc9fb0eb56498912025f5eb352b5126f04801ed0e8bdbd867d21bdbfd7cbd0"}, + {file = "shapely-2.0.6-cp311-cp311-win32.whl", hash = "sha256:d93b7e0e71c9f095e09454bf18dad5ea716fb6ced5df3cb044564a00723f339d"}, + {file = "shapely-2.0.6-cp311-cp311-win_amd64.whl", hash = "sha256:c02eb6bf4cfb9fe6568502e85bb2647921ee49171bcd2d4116c7b3109724ef9b"}, + {file = "shapely-2.0.6-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:cec9193519940e9d1b86a3b4f5af9eb6910197d24af02f247afbfb47bcb3fab0"}, + {file = "shapely-2.0.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:83b94a44ab04a90e88be69e7ddcc6f332da7c0a0ebb1156e1c4f568bbec983c3"}, + {file = "shapely-2.0.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:537c4b2716d22c92036d00b34aac9d3775e3691f80c7aa517c2c290351f42cd8"}, + {file = "shapely-2.0.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98fea108334be345c283ce74bf064fa00cfdd718048a8af7343c59eb40f59726"}, + {file = "shapely-2.0.6-cp312-cp312-win32.whl", hash = "sha256:42fd4cd4834747e4990227e4cbafb02242c0cffe9ce7ef9971f53ac52d80d55f"}, + {file = "shapely-2.0.6-cp312-cp312-win_amd64.whl", hash = "sha256:665990c84aece05efb68a21b3523a6b2057e84a1afbef426ad287f0796ef8a48"}, + {file = "shapely-2.0.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:42805ef90783ce689a4dde2b6b2f261e2c52609226a0438d882e3ced40bb3013"}, + {file = "shapely-2.0.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6d2cb146191a47bd0cee8ff5f90b47547b82b6345c0d02dd8b25b88b68af62d7"}, + {file = "shapely-2.0.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e3fdef0a1794a8fe70dc1f514440aa34426cc0ae98d9a1027fb299d45741c381"}, + {file = "shapely-2.0.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c665a0301c645615a107ff7f52adafa2153beab51daf34587170d85e8ba6805"}, + {file = "shapely-2.0.6-cp313-cp313-win32.whl", hash = "sha256:0334bd51828f68cd54b87d80b3e7cee93f249d82ae55a0faf3ea21c9be7b323a"}, + {file = "shapely-2.0.6-cp313-cp313-win_amd64.whl", hash = "sha256:d37d070da9e0e0f0a530a621e17c0b8c3c9d04105655132a87cfff8bd77cc4c2"}, + {file = "shapely-2.0.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:392f66f458a0a2c706254f473290418236e52aa4c9b476a072539d63a2460595"}, + {file = "shapely-2.0.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:eba5bae271d523c938274c61658ebc34de6c4b33fdf43ef7e938b5776388c1be"}, + {file = "shapely-2.0.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7060566bc4888b0c8ed14b5d57df8a0ead5c28f9b69fb6bed4476df31c51b0af"}, + {file = "shapely-2.0.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b02154b3e9d076a29a8513dffcb80f047a5ea63c897c0cd3d3679f29363cf7e5"}, + {file = "shapely-2.0.6-cp39-cp39-win32.whl", hash = "sha256:44246d30124a4f1a638a7d5419149959532b99dfa25b54393512e6acc9c211ac"}, + {file = "shapely-2.0.6-cp39-cp39-win_amd64.whl", hash = "sha256:2b542d7f1dbb89192d3512c52b679c822ba916f93479fa5d4fc2fe4fa0b3c9e8"}, + {file = "shapely-2.0.6.tar.gz", hash = "sha256:997f6159b1484059ec239cacaa53467fd8b5564dabe186cd84ac2944663b0bf6"}, +] + [[package]] name = "six" version = "1.16.0" requires_python = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" summary = "Python 2 and 3 compatibility utilities" -groups = ["default", "dev"] +groups = ["default", "dev", "latlon-domain-crop"] files = [ {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, ] +[[package]] +name = "spherical-geometry" +version = "1.3.2" +requires_python = ">=3.9" +summary = "Python based tools for spherical geometry" +groups = ["latlon-domain-crop"] +dependencies = [ + "astropy>=5.0.4", + "numpy>=1.23", +] +files = [ + {file = "spherical_geometry-1.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06cb0965aed16f4247dee04df5a177cff24076b40bf752fc3c6885d2f0006185"}, + {file = "spherical_geometry-1.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b87668f88f0a16cff4061f8d4d6099b800316888e27824db3d1892fb4d0b97fb"}, + {file = "spherical_geometry-1.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:005e2e529ed6c21609c77fed787efbd5731fe0f86d729fb6ed9f1ac9ae7ab2b7"}, + {file = "spherical_geometry-1.3.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:0c09f8caba44873398dbe1a5dfbefd9d70e17140125593ec9ec4eef753f2f111"}, + {file = "spherical_geometry-1.3.2-cp310-cp310-win32.whl", hash = "sha256:06cd418fb475fb6a51b2b62dbc35a5e828ae00fd6e7f1c08dc902f8a97faa52a"}, + {file = "spherical_geometry-1.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:1513841201510a071168cb6bbaaf03a5054878d373a3f8fe9a3aa38c4edf4b63"}, + {file = "spherical_geometry-1.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:03e010efaa470d708201262cf8f1ac94b26775e8e039f6ea77559c798a3cf697"}, + {file = "spherical_geometry-1.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0e27786b7509aa16f15809a1ed2d2fcca7570a65e7376c5b867bc0c726557322"}, + {file = "spherical_geometry-1.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ebefd216e64bfdbe150036c117593b5cb22f75ecf552598e35aa3cd1b822310"}, + {file = "spherical_geometry-1.3.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6b125ac4dc9ed8cab0325a84b6d2c676fc3a32c9f8c1d5055a053c30413f67fb"}, + {file = "spherical_geometry-1.3.2-cp311-cp311-win32.whl", hash = "sha256:e3c01f2074c2b36f803311180d1a78b914bb30283f6eea1644c93928e7782c20"}, + {file = "spherical_geometry-1.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:54d178c3cddc271ae5e0f1e4c49cd99e22358f8047a12804fcf201979172de9c"}, + {file = "spherical_geometry-1.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ce5ceef9902e2564d44b5c22c11a7e4590918acf149c06f99611e10b6a76a3f7"}, + {file = "spherical_geometry-1.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5173f56001b8721181adc12b377898c58afca76159937a3391aafcfc756d2a05"}, + {file = "spherical_geometry-1.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:728e1cda8ad1ebebf60cbb48d763946813169133f12640bc1c11b49ea838b8db"}, + {file = "spherical_geometry-1.3.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8fd68dffe3fc33ea6e1c50730ed59ffcd433d609a51daf599fd4ec1848652901"}, + {file = "spherical_geometry-1.3.2-cp312-cp312-win32.whl", hash = "sha256:0c59cae46ede5a0c1352edebffef8651620c6ab2e863f1dd35043b74ac298b77"}, + {file = "spherical_geometry-1.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:a3090d10f67ad0cb9497fe2517028c7241de32e97e5d6cf5042d7cd85a2db4c2"}, + {file = "spherical_geometry-1.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:accab32117fdaf7aa94b3ffe7568b9f5fe9cb0d519a59d15f44ddab6030a277e"}, + {file = "spherical_geometry-1.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b0a1ff01e0c7f2f749c0c038ba91fa0096069ae243febda2c980f455fb99e886"}, + {file = "spherical_geometry-1.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c6e34806b25f965e4564ef11e4c487df6afc71e25605772e2d56244cc57cb62"}, + {file = "spherical_geometry-1.3.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:bc9e125bd75014f8ad6c677ca2913e70b039c14125680811336ba0247956a54e"}, + {file = "spherical_geometry-1.3.2-cp39-cp39-win32.whl", hash = "sha256:c910d4767b73a2c9f695135aefb7ff5eca6263c1b4cfba2a2d366e5ab30d9e15"}, + {file = "spherical_geometry-1.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:caf55117b9fbb130cb1ca090d395bb89bd032bd449534a74f095e9490dbcec50"}, + {file = "spherical_geometry-1.3.2.tar.gz", hash = "sha256:bed481a8b080748bf93434c3b113eae53609a61d0c0694db83c07685b52c3d23"}, +] + [[package]] name = "stack-data" version = "0.6.3" summary = "Extract data from python stack frames and tracebacks for informative displays" groups = ["dev"] -marker = "python_version > \"3.6\"" dependencies = [ "asttokens>=2.1.0", "executing>=1.2.0", @@ -1130,13 +2470,32 @@ files = [ {file = "toolz-0.12.1.tar.gz", hash = "sha256:ecca342664893f177a13dac0e6b41cbd8ac25a358e5f215316d43e2100224f4d"}, ] +[[package]] +name = "tornado" +version = "6.4.2" +requires_python = ">=3.8" +summary = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." +groups = ["dev"] +files = [ + {file = "tornado-6.4.2-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e828cce1123e9e44ae2a50a9de3055497ab1d0aeb440c5ac23064d9e44880da1"}, + {file = "tornado-6.4.2-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:072ce12ada169c5b00b7d92a99ba089447ccc993ea2143c9ede887e0937aa803"}, + {file = "tornado-6.4.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a017d239bd1bb0919f72af256a970624241f070496635784d9bf0db640d3fec"}, + {file = "tornado-6.4.2-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c36e62ce8f63409301537222faffcef7dfc5284f27eec227389f2ad11b09d946"}, + {file = "tornado-6.4.2-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bca9eb02196e789c9cb5c3c7c0f04fb447dc2adffd95265b2c7223a8a615ccbf"}, + {file = "tornado-6.4.2-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:304463bd0772442ff4d0f5149c6f1c2135a1fae045adf070821c6cdc76980634"}, + {file = "tornado-6.4.2-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:c82c46813ba483a385ab2a99caeaedf92585a1f90defb5693351fa7e4ea0bf73"}, + {file = "tornado-6.4.2-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:932d195ca9015956fa502c6b56af9eb06106140d844a335590c1ec7f5277d10c"}, + {file = "tornado-6.4.2-cp38-abi3-win32.whl", hash = "sha256:2876cef82e6c5978fde1e0d5b1f919d756968d5b4282418f3146b79b58556482"}, + {file = "tornado-6.4.2-cp38-abi3-win_amd64.whl", hash = "sha256:908b71bf3ff37d81073356a5fadcc660eb10c1476ee6e2725588626ce7e5ca38"}, + {file = "tornado-6.4.2.tar.gz", hash = "sha256:92bad5b4746e9879fd7bf1eb21dce4e3fc5128d71601f80005afa39237ad620b"}, +] + [[package]] name = "traitlets" version = "5.14.3" requires_python = ">=3.8" summary = "Traitlets Python configuration system" groups = ["dev"] -marker = "python_version > \"3.6\"" files = [ {file = "traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f"}, {file = "traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7"}, @@ -1170,7 +2529,7 @@ name = "urllib3" version = "2.2.2" requires_python = ">=3.8" summary = "HTTP library with thread-safe connection pooling, file post, and more." -groups = ["default"] +groups = ["default", "latlon-domain-crop"] files = [ {file = "urllib3-2.2.2-py3-none-any.whl", hash = "sha256:a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472"}, {file = "urllib3-2.2.2.tar.gz", hash = "sha256:dd505485549a7a552833da5e6063639d0d177c04f23bc3864e41e5dc5f612168"}, @@ -1198,7 +2557,6 @@ name = "wcwidth" version = "0.2.13" summary = "Measures the displayed width of unicode strings in a terminal" groups = ["dev"] -marker = "python_version > \"3.6\"" dependencies = [ "backports-functools-lru-cache>=1.2.1; python_version < \"3.2\"", ] @@ -1240,7 +2598,7 @@ name = "yarl" version = "1.9.4" requires_python = ">=3.7" summary = "Yet another URL library" -groups = ["default"] +groups = ["default", "latlon-domain-crop"] dependencies = [ "idna>=2.0", "multidict>=4.0", @@ -1318,7 +2676,7 @@ name = "zipp" version = "3.19.2" requires_python = ">=3.8" summary = "Backport of pathlib-compatible object wrapper for zip files" -groups = ["default"] +groups = ["default", "dev", "latlon-domain-crop"] marker = "python_version < \"3.12\"" files = [ {file = "zipp-3.19.2-py3-none-any.whl", hash = "sha256:f091755f667055f2d02b32c53771a7a6c8b47e1fdbc4b72a8b9072b3eef8015c"}, diff --git a/pyproject.toml b/pyproject.toml index 9c65473..4891fa5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -32,6 +32,12 @@ dask-distributed = [ "dask[distributed]>=2024.7.1", "bokeh!=3.0.*,>=2.4.2", ] +latlon-domain-crop = [ + "spherical-geometry>=1.3.2", + "cartopy>=0.23.0", + "gcsfs>=2024.10.0", + "jinja2>=3.1.4", +] [build-system] requires = ["pdm-backend"] build-backend = "pdm.backend" @@ -47,4 +53,5 @@ dev = [ "pytest>=8.0.2", "ipdb>=0.13.13", "pre-commit>=3.7.1", + "ipykernel>=6.29.5", ] From 9a3b5ad0196c292f57e9a0270f5f8be092d56743 Mon Sep 17 00:00:00 2001 From: Leif Denby Date: Tue, 10 Dec 2024 17:04:35 +0100 Subject: [PATCH 02/28] expose xlim/ylim and add config creation for testdata --- tests/data.py | 214 +++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 193 insertions(+), 21 deletions(-) diff --git a/tests/data.py b/tests/data.py index 78739ee..fdd2c77 100644 --- a/tests/data.py +++ b/tests/data.py @@ -1,10 +1,14 @@ import uuid +from pathlib import Path +from typing import List import isodate import numpy as np import pandas as pd import xarray as xr +import mllam_data_prep as mdp + SCHEMA_VERSION = "v0.5.0" NX, NY = 10, 8 @@ -29,9 +33,17 @@ "static", ] +DEFAULT_XLIM = DEFAULT_YLIM = DEFAULT_ZLIM = (0.0, 1.0) + def create_surface_forecast_dataset( - nt_analysis, nt_forecast, nx, ny, var_names=DEFAULT_FORECAST_VARS + nt_analysis, + nt_forecast, + nx, + ny, + var_names=DEFAULT_FORECAST_VARS, + xlim=DEFAULT_XLIM, + ylim=DEFAULT_YLIM, ): """ Create a fake forecast dataset with `nt_analysis` analysis times, `nt_forecast` @@ -44,8 +56,8 @@ def create_surface_forecast_dataset( T_START, periods=nt_forecast, freq=DT_FORECAST ).tz_localize(None) - x = np.arange(nx) - y = np.arange(ny) + x = np.linspace(*xlim, nx) + y = np.linspace(*ylim, ny) dataarrays = {} for var_name in var_names: @@ -66,7 +78,12 @@ def create_surface_forecast_dataset( def create_surface_analysis_dataset( - nt_analysis, nx, ny, var_names=DEFAULT_SURFACE_ANALYSIS_VARS + nt_analysis, + nx, + ny, + var_names=DEFAULT_SURFACE_ANALYSIS_VARS, + xlim=DEFAULT_XLIM, + ylim=DEFAULT_YLIM, ): """ Create a fake analysis dataset with `nt_analysis` analysis times, `nx` grid points @@ -76,8 +93,8 @@ def create_surface_analysis_dataset( T_START, periods=nt_analysis, freq=DT_ANALYSIS ).tz_localize(None) - x = np.arange(nx) - y = np.arange(ny) + x = np.linspace(*xlim, nx) + y = np.linspace(*ylim, ny) dataarrays = {} for var_name in var_names: @@ -103,6 +120,9 @@ def create_analysis_dataset_on_levels( nz, level_dim="altitude", var_names=DEFAULT_ATMOSPHERIC_ANALYSIS_VARS, + xlim=DEFAULT_XLIM, + ylim=DEFAULT_YLIM, + zlim=DEFAULT_ZLIM, ): """ Create a fake analysis dataset with `nt_analysis` analysis times, `nx` grid points in x-direction, @@ -120,14 +140,25 @@ def create_analysis_dataset_on_levels( Number of levels level_dim : str, optional Name of the level dimension, by default "altitude" + xlim : tuple, optional + Tuple of the form (xmin, xmax) defining the x-limits, by default DEFAULT_XLIM + ylim : tuple, optional + Tuple of the form (ymin, ymax) defining the y-limits, by default DEFAULT_YLIM + zlim : tuple, optional + Tuple of the form (zmin, zmax) defining the z-limits, by default DEFAULT_ZLIM + + Returns + ------- + xarray.Dataset + The created dataset """ ts_analysis = pd.date_range( T_START, periods=nt_analysis, freq=DT_ANALYSIS ).tz_localize(None) - x = np.arange(nx) - y = np.arange(ny) - z = np.arange(nz) + x = np.linspace(*xlim, nx) + y = np.linspace(*ylim, ny) + z = np.linspace(*zlim, nz) dataarrays = {} for var_name in var_names: @@ -155,6 +186,9 @@ def create_forecast_dataset_on_levels( nz, level_dim="altitude", var_names=DEFAULT_FORECAST_VARS, + xlim=DEFAULT_XLIM, + ylim=DEFAULT_YLIM, + zlim=DEFAULT_ZLIM, ): """ Create a fake forecast dataset with `nt_analysis` analysis times, `nt_forecast` @@ -175,6 +209,17 @@ def create_forecast_dataset_on_levels( Number of levels level_dim : str, optional Name of the level dimension, by default "altitude" + xlim : tuple, optional + Tuple of the form (xmin, xmax) defining the x-limits, by default DEFAULT_XLIM + ylim : tuple, optional + Tuple of the form (ymin, ymax) defining the y-limits, by default DEFAULT_YLIM + zlim : tuple, optional + Tuple of the form (zmin, zmax) defining the z-limits, by default DEFAULT_ZLIM + + Returns + ------- + xarray.Dataset + The created dataset """ ts_analysis = pd.date_range( @@ -184,9 +229,9 @@ def create_forecast_dataset_on_levels( T_START, periods=nt_forecast, freq=DT_FORECAST ).tz_localize(None) - x = np.arange(nx) - y = np.arange(ny) - z = np.arange(nz) + x = np.linspace(*xlim, nx) + y = np.linspace(*ylim, ny) + z = np.linspace(*zlim, nz) dataarrays = {} for var_name in var_names: @@ -207,12 +252,32 @@ def create_forecast_dataset_on_levels( return ds -def create_static_dataset(nx, ny, var_names=DEFAULT_STATIC_VARS): +def create_static_dataset( + nx, ny, var_names=DEFAULT_STATIC_VARS, xlim=DEFAULT_XLIM, ylim=DEFAULT_YLIM +): """ Create a fake static dataset with `nx` grid points in x-direction and `ny` grid points in y-direction. + + Parameters + ---------- + nx : int + Number of grid points in x-direction + ny : int + Number of grid points in y-direction + var_names : list, optional + List of variable names to create, by default DEFAULT_STATIC_VARS + xlim : tuple, optional + Tuple of the form (xmin, xmax) defining the x-limits, by default DEFAULT_XLIM + ylim : tuple, optional + Tuple of the form (ymin, ymax) defining the y-limits, by default DEFAULT_YLIM + + Returns + ------- + xarray.Dataset + The created dataset """ - x = np.arange(nx) - y = np.arange(ny) + x = np.linspace(*xlim, nx) + y = np.linspace(*ylim, ny) dataarrays = {} for var_name in var_names: @@ -230,7 +295,7 @@ def create_static_dataset(nx, ny, var_names=DEFAULT_STATIC_VARS): return ds -def create_data_collection(data_kinds, fp_root): +def create_data_collection(data_kinds, fp_root, xlim=DEFAULT_XLIM, ylim=DEFAULT_YLIM): """ Create a fake data collection with the given `data_kinds` and save it to `fp_root`, with each dataset having the `data_kind` name with a unique suffix and saved in `.zarr` format. @@ -259,15 +324,23 @@ def create_data_collection(data_kinds, fp_root): for data_kind in data_kinds: if data_kind == "surface_forecast": - ds = create_surface_forecast_dataset(NT_ANALYSIS, NT_FORECAST, NX, NY) + ds = create_surface_forecast_dataset( + NT_ANALYSIS, NT_FORECAST, NX, NY, xlim=xlim, ylim=ylim + ) elif data_kind == "surface_analysis": - ds = create_surface_analysis_dataset(NT_ANALYSIS, NX, NY) + ds = create_surface_analysis_dataset( + NT_ANALYSIS, NX, NY, xlim=xlim, ylim=ylim + ) elif data_kind == "analysis_on_levels": - ds = create_analysis_dataset_on_levels(NT_ANALYSIS, NX, NY, NZ) + ds = create_analysis_dataset_on_levels( + NT_ANALYSIS, NX, NY, NZ, xlim=xlim, ylim=ylim + ) elif data_kind == "forecast_on_levels": - ds = create_forecast_dataset_on_levels(NT_ANALYSIS, NT_FORECAST, NX, NY, NZ) + ds = create_forecast_dataset_on_levels( + NT_ANALYSIS, NT_FORECAST, NX, NY, NZ, xlim=xlim, ylim=ylim + ) elif data_kind == "static": - ds = create_static_dataset(NX, NY) + ds = create_static_dataset(NX, NY, xlim=xlim, ylim=ylim) else: raise ValueError(f"Unknown data kind: {data_kind}") @@ -279,3 +352,102 @@ def create_data_collection(data_kinds, fp_root): datasets[data_kind] = fp return datasets + + +def create_input_datasets_and_config( + identifier: str, + tmpdir: Path, + data_categories: List[str], + xlim: List[float] = DEFAULT_XLIM, + ylim: List[float] = DEFAULT_YLIM, +): + """ + Create a config and input datasets with test data for it with a given set + of data categories. + + Parameters + ---------- + identifier : str + Named identifier for the data collection + tmpdir : Path + Temporary directory to save the data collection + data_catagories : List[str] + List of categories of data to create, from state/forcing/static. + xlim : List[float], optional + List of the form [xmin, xmax] defining the x-limits, by default DEFAULT_XLIM + ylim : List[float], optional + List of the form [ymin, ymax] defining the y-limits, by default DEFAULT_YLIM + + Returns + ------- + mdp.Config + The created config + """ + + output_variables = {} + inputs = {} + + for data_category in data_categories: + input_dims = [] + output_dims = [] + if data_category in ["state", "forcing"]: + data_kinds = ["surface_analysis"] + variable_names = DEFAULT_SURFACE_ANALYSIS_VARS + input_dims.append("analysis_time") + output_dims.append("time") + elif data_category == "static": + data_kinds = ["static"] + variable_names = DEFAULT_STATIC_VARS + else: + raise NotImplementedError(f"Unknown data category: {data_category}") + input_dims.extend(["x", "y"]) + output_dims += ["grid_index", f"{data_category}_feature"] + + datasets = create_data_collection( + data_kinds=data_kinds, + fp_root=Path(tmpdir.name) / identifier, + xlim=xlim, + ylim=ylim, + ) + + assert len(datasets) == 1 + dataset_kind, dataset_path = datasets.popitem() + + output_variables[data_category] = output_dims + dim_mapping = {} + + for d in output_dims: + if d == "time": + dim_mapping[d] = mdp.config.DimMapping( + method="rename", + dim="analysis_time", + ) + elif d == "grid_index": + dim_mapping[d] = mdp.config.DimMapping( + method="stack", + dims=["x", "y"], + ) + else: + dim_mapping[d] = mdp.config.DimMapping( + method="stack_variables_by_var_name", + name_format="{var_name}", + ) + + inputs[f"{identifier}_{dataset_kind}"] = mdp.config.InputDataset( + path=dataset_path, + dims=input_dims, + variables=variable_names, + dim_mapping=dim_mapping, + target_output_variable=data_category, + ) + + config = mdp.Config( + schema_version=SCHEMA_VERSION, + dataset_version="v0.1.0", + output=mdp.config.Output( + variables=output_variables, + ), + inputs=inputs, + ) + + return config From 4cda6428dd6bca005e7ca992d00bb5215cd9ad30 Mon Sep 17 00:00:00 2001 From: Leif Denby Date: Tue, 10 Dec 2024 20:47:01 +0100 Subject: [PATCH 03/28] convex hull mask creation as DataArray complete --- docs/domain-cropping-mllam.ipynb | 1731 +++++++++++++++++++++ docs/domain-cropping.ipynb | 1285 ++++++++------- mllam_data_prep/ops/cropping.py | 113 ++ tests/test_latlon_convex_hull_cropping.py | 31 + 4 files changed, 2561 insertions(+), 599 deletions(-) create mode 100644 docs/domain-cropping-mllam.ipynb create mode 100644 mllam_data_prep/ops/cropping.py create mode 100644 tests/test_latlon_convex_hull_cropping.py diff --git a/docs/domain-cropping-mllam.ipynb b/docs/domain-cropping-mllam.ipynb new file mode 100644 index 0000000..95def46 --- /dev/null +++ b/docs/domain-cropping-mllam.ipynb @@ -0,0 +1,1731 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "import tests.data as testdata\n", + "import tempfile\n", + "\n", + "import xarray as xr\n", + "import matplotlib.pyplot as plt\n", + "import cartopy.crs as ccrs\n", + "\n", + "import mllam_data_prep as mdp\n", + "import tests.data as testdata\n", + "from mllam_data_prep.ops import cropping " + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "tmpdir = tempfile.TemporaryDirectory()\n", + "l = 500 * 1.0e3 # length and width of domain in meters\n", + "config_lam = testdata.create_input_datasets_and_config(\n", + " identifier=\"lam\",\n", + " data_categories=[\"state\"],\n", + " tmpdir=tmpdir,\n", + " xlim=[-l/2.0, l/2.0],\n", + " ylim=[-l/2.0, l/2.0],\n", + ")\n", + "# make the global domain twice as large as the LAM domain so that the lam\n", + "# domain is contained within the global domain\n", + "config_global = testdata.create_input_datasets_and_config(\n", + " identifier=\"global\",\n", + " data_categories=[\"state\"],\n", + " tmpdir=tmpdir,\n", + " xlim=[-l, l],\n", + " ylim=[-l, l]\n", + ")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[32m2024-12-10 17:02:17.477\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmllam_data_prep.create_dataset\u001b[0m:\u001b[36mcreate_dataset\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1mLoading dataset lam_surface_analysis from /var/folders/n8/kcprfkd918967drydbc_bphw0000gr/T/tmp6h_c0_ze/lam/surface_analysis_ca45dbbf-5bbd-42f3-980f-55f6abe03466.zarr\u001b[0m\n", + "\u001b[32m2024-12-10 17:02:17.481\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmllam_data_prep.create_dataset\u001b[0m:\u001b[36mcreate_dataset\u001b[0m:\u001b[36m160\u001b[0m - \u001b[1mMapping dimensions and variables for dataset lam_surface_analysis to state\u001b[0m\n", + "\u001b[32m2024-12-10 17:02:17.489\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmllam_data_prep.create_dataset\u001b[0m:\u001b[36m_merge_dataarrays_by_target\u001b[0m:\u001b[36m48\u001b[0m - \u001b[1mMerging dataarrays for target variable `state`\u001b[0m\n", + "\u001b[32m2024-12-10 17:02:17.499\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmllam_data_prep.create_dataset\u001b[0m:\u001b[36mcreate_dataset\u001b[0m:\u001b[36m195\u001b[0m - \u001b[1mChunking dataset with {}\u001b[0m\n", + "\u001b[32m2024-12-10 17:02:17.500\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmllam_data_prep.create_dataset\u001b[0m:\u001b[36mcreate_dataset\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1mLoading dataset global_surface_analysis from /var/folders/n8/kcprfkd918967drydbc_bphw0000gr/T/tmp6h_c0_ze/global/surface_analysis_c93d0634-bd93-4b36-9708-d180d7f57fe0.zarr\u001b[0m\n", + "\u001b[32m2024-12-10 17:02:17.510\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmllam_data_prep.create_dataset\u001b[0m:\u001b[36mcreate_dataset\u001b[0m:\u001b[36m160\u001b[0m - \u001b[1mMapping dimensions and variables for dataset global_surface_analysis to state\u001b[0m\n", + "\u001b[32m2024-12-10 17:02:17.513\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmllam_data_prep.create_dataset\u001b[0m:\u001b[36m_merge_dataarrays_by_target\u001b[0m:\u001b[36m48\u001b[0m - \u001b[1mMerging dataarrays for target variable `state`\u001b[0m\n", + "\u001b[32m2024-12-10 17:02:17.516\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmllam_data_prep.create_dataset\u001b[0m:\u001b[36mcreate_dataset\u001b[0m:\u001b[36m195\u001b[0m - \u001b[1mChunking dataset with {}\u001b[0m\n" + ] + } + ], + "source": [ + "ds_lam = mdp.create_dataset(config=config_lam)\n", + "ds_global = mdp.create_dataset(config=config_global)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
<xarray.Dataset> Size: 5kB\n",
+       "Dimensions:                       (time: 5, grid_index: 80, state_feature: 1)\n",
+       "Coordinates:\n",
+       "  * time                          (time) datetime64[ns] 40B 2000-01-01 ... 20...\n",
+       "    x                             (grid_index) float64 640B dask.array<chunksize=(80,), meta=np.ndarray>\n",
+       "    y                             (grid_index) float64 640B dask.array<chunksize=(80,), meta=np.ndarray>\n",
+       "  * state_feature                 (state_feature) <U15 60B 'pres_seasurface'\n",
+       "    state_feature_units           (state_feature) <U1 4B dask.array<chunksize=(1,), meta=np.ndarray>\n",
+       "    state_feature_long_name       (state_feature) <U1 4B dask.array<chunksize=(1,), meta=np.ndarray>\n",
+       "    state_feature_source_dataset  (state_feature) <U20 80B dask.array<chunksize=(1,), meta=np.ndarray>\n",
+       "Dimensions without coordinates: grid_index\n",
+       "Data variables:\n",
+       "    state                         (state_feature, time, grid_index) float64 3kB dask.array<chunksize=(1, 5, 80), meta=np.ndarray>\n",
+       "Attributes:\n",
+       "    schema_version:   v0.5.0\n",
+       "    dataset_version:  v0.1.0\n",
+       "    created_on:       2024-12-10T17:02:17\n",
+       "    created_with:     mllam-data-prep (https://github.com/mllam/mllam-data-prep)\n",
+       "    mdp_version:      v0.5.0
" + ], + "text/plain": [ + " Size: 5kB\n", + "Dimensions: (time: 5, grid_index: 80, state_feature: 1)\n", + "Coordinates:\n", + " * time (time) datetime64[ns] 40B 2000-01-01 ... 20...\n", + " x (grid_index) float64 640B dask.array\n", + " y (grid_index) float64 640B dask.array\n", + " * state_feature (state_feature) \n", + " state_feature_long_name (state_feature) \n", + " state_feature_source_dataset (state_feature) \n", + "Dimensions without coordinates: grid_index\n", + "Data variables:\n", + " state (state_feature, time, grid_index) float64 3kB dask.array\n", + "Attributes:\n", + " schema_version: v0.5.0\n", + " dataset_version: v0.1.0\n", + " created_on: 2024-12-10T17:02:17\n", + " created_with: mllam-data-prep (https://github.com/mllam/mllam-data-prep)\n", + " mdp_version: v0.5.0" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ds_lam" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
<xarray.Dataset> Size: 5kB\n",
+       "Dimensions:                       (time: 5, grid_index: 80, state_feature: 1)\n",
+       "Coordinates:\n",
+       "  * time                          (time) datetime64[ns] 40B 2000-01-01 ... 20...\n",
+       "    x                             (grid_index) float64 640B dask.array<chunksize=(80,), meta=np.ndarray>\n",
+       "    y                             (grid_index) float64 640B dask.array<chunksize=(80,), meta=np.ndarray>\n",
+       "  * state_feature                 (state_feature) <U15 60B 'pres_seasurface'\n",
+       "    state_feature_units           (state_feature) <U1 4B dask.array<chunksize=(1,), meta=np.ndarray>\n",
+       "    state_feature_long_name       (state_feature) <U1 4B dask.array<chunksize=(1,), meta=np.ndarray>\n",
+       "    state_feature_source_dataset  (state_feature) <U23 92B dask.array<chunksize=(1,), meta=np.ndarray>\n",
+       "Dimensions without coordinates: grid_index\n",
+       "Data variables:\n",
+       "    state                         (state_feature, time, grid_index) float64 3kB dask.array<chunksize=(1, 5, 80), meta=np.ndarray>\n",
+       "Attributes:\n",
+       "    schema_version:   v0.5.0\n",
+       "    dataset_version:  v0.1.0\n",
+       "    created_on:       2024-12-10T17:02:17\n",
+       "    created_with:     mllam-data-prep (https://github.com/mllam/mllam-data-prep)\n",
+       "    mdp_version:      v0.5.0
" + ], + "text/plain": [ + " Size: 5kB\n", + "Dimensions: (time: 5, grid_index: 80, state_feature: 1)\n", + "Coordinates:\n", + " * time (time) datetime64[ns] 40B 2000-01-01 ... 20...\n", + " x (grid_index) float64 640B dask.array\n", + " y (grid_index) float64 640B dask.array\n", + " * state_feature (state_feature) \n", + " state_feature_long_name (state_feature) \n", + " state_feature_source_dataset (state_feature) \n", + "Dimensions without coordinates: grid_index\n", + "Data variables:\n", + " state (state_feature, time, grid_index) float64 3kB dask.array\n", + "Attributes:\n", + " schema_version: v0.5.0\n", + " dataset_version: v0.1.0\n", + " created_on: 2024-12-10T17:02:17\n", + " created_with: mllam-data-prep (https://github.com/mllam/mllam-data-prep)\n", + " mdp_version: v0.5.0" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ds_global" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[32m2024-12-10 17:02:17.553\u001b[0m | \u001b[33m\u001b[1mWARNING \u001b[0m | \u001b[36mmllam_data_prep.ops.cropping\u001b[0m:\u001b[36m_add_latlon\u001b[0m:\u001b[36m30\u001b[0m - \u001b[33m\u001b[1mCould not find lat/lon coordinates. Assuming equal area projection centered on (lat, lon) = (0, 0) for now. This should be replaced!\u001b[0m\n", + "\u001b[32m2024-12-10 17:02:17.557\u001b[0m | \u001b[33m\u001b[1mWARNING \u001b[0m | \u001b[36mmllam_data_prep.ops.cropping\u001b[0m:\u001b[36m_add_latlon\u001b[0m:\u001b[36m30\u001b[0m - \u001b[33m\u001b[1mCould not find lat/lon coordinates. Assuming equal area projection centered on (lat, lon) = (0, 0) for now. This should be replaced!\u001b[0m\n" + ] + } + ], + "source": [ + "da_interior_mask = cropping.create_convex_hull_mask(ds=ds_global, ds_reference=ds_lam)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "da_interior_mask = da_interior_mask.where(da_interior_mask, drop=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ds_reference = ds_lam\n", + "ds = ds_global\n", + "\n", + "fig, ax = plt.subplots(subplot_kw=dict(projection=ccrs.PlateCarree()))\n", + "xr.plot.scatter(ax=ax, ds=ds, x=\"lon\", y=\"lat\", label=\"ds\", transform=ccrs.PlateCarree())\n", + "xr.plot.scatter(ax=ax, ds=ds_reference, x=\"lon\", y=\"lat\", label=\"ds_ref\", transform=ccrs.PlateCarree())\n", + "xr.plot.scatter(ax=ax, c=da_interior_mask, ds=da_interior_mask.to_dataset(name=\"mask\"), x=\"lon\", y=\"lat\", marker=\"x\", label=\"ds (interior)\")\n", + "ax.coastlines()\n", + "ax.gridlines(draw_labels=True)\n", + "ax.legend()\n", + "plt.show()\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + " \n", + " import matplotlib.pyplot as plt\n", + " import cartopy.crs as ccrs\n", + "\n", + " # fig, ax = plt.subplots()\n", + " # xr.plot.scatter(ax=ax, ds=ds, x=\"x\", y=\"y\", label=\"ds\")\n", + " # xr.plot.scatter(ax=ax, ds=ds_reference, x=\"x\", y=\"y\", label=\"ds_ref\")\n", + " # xr.plot.scatter(ax=ax, ds=da_interior_mask.to_dataset(name=\"mask\"), x=\"x\", y=\"y\", color=\"blue\", label=\"mask\")\n", + " # ax.legend()\n", + " # plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs/domain-cropping.ipynb b/docs/domain-cropping.ipynb index e3f7546..b12e6f1 100644 --- a/docs/domain-cropping.ipynb +++ b/docs/domain-cropping.ipynb @@ -418,7 +418,7 @@ " u (altitude, time, y, x) float64 372MB dask.array<chunksize=(1, 100, 256, 256), meta=np.ndarray>\n", " v (altitude, time, y, x) float64 372MB dask.array<chunksize=(1, 100, 256, 256), meta=np.ndarray>\n", "Attributes:\n", - " description: All prognostic variables for 10-year period on reduced levels