From 2b007df006fb037dc895c2281d9a17bc10cbd137 Mon Sep 17 00:00:00 2001 From: gis-xh Date: Mon, 13 Oct 2025 11:12:23 +0800 Subject: [PATCH] =?UTF-8?q?feat(steup):=20=E6=9B=B4=E6=96=B0=E7=8E=AF?= =?UTF-8?q?=E5=A2=83=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=E5=92=8C=E4=BE=9D?= =?UTF-8?q?=E8=B5=96=E9=A1=B9=E7=89=88=E6=9C=AC.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 24 ++-- setup/environment.yml | 2 + setup/lpdaac.yml | 319 +++++++++++++++++++++--------------------- 3 files changed, 174 insertions(+), 171 deletions(-) diff --git a/README.md b/README.md index 599b3dc..9bae543 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,26 @@ -# NASA EARTHDATA 数据自动化爬取与预处理 +# 公开RS/GIS数据自动化下载与预处理工具 + + ## 仓库说明 1. EARTHDATA 说明 -- NASA 计划于 2026 年底将公开数据全部集成进 EARTHDATA 中 -- HLS 数据集:NASA 多部门将 Landsat8/9 与 Sentinel-2A/B 统一协调至 30m,划分为: +- NASA 计划于2026年底将公开数据全部集成进 EARTHDATA 中 +- HLS 数据集:NASA多部门将 Landsat8/9 与 Sentinel-2A/B 统一协调至 30m,划分为: - L30(Landsat8/9,包含其独有的 2 个热红外波段,并已处理为表面亮温 ℃) - S30(Sentinel-2A/B,包含其独有的 4 个红边波段) - - 对于核心六波段(Blue/Green/Red/NIR/SWIR1/SWIR2)可直接合并使用,合并后湖北地区单格网观测频率约为 3-4d + - 对于核心六波段(Blue/Green/Red/NIR/SWIR1/SWIR2)可直接合并使用,合并后湖北地区单格网观测频率约为3-4d 2. 使用说明 -- 本仓库基于官方原始脚本修复了实际使用中存在的 bug,并添加了更多可控制参数 -- 爬取时不要使用魔法工具 -- 实测单格网全年影像爬取+预处理约 1h -- 单用户每秒限制 100 次请求 +- 针对HLS数据获取,基于NASA EARTHDATA官方原始脚本修复了实际使用中的bug,并添加了更多控制参数 +- 使用时不要使用魔法工具 +- 实测单格网全年HLS影像爬取+预处理约1h ## 1 安装基础环境 -### 1.1 miniforge +### 1.1 miniforge 介绍 - miniforge 是结合 conda 与 mamba 的最小化包,比 Anaconda 和 Miniconda 更快更轻量,并且配置命令与原 conda 基本一致,支持直接使用 mamba 命令。 - 简而言之,环境配置效率上,miniforge > Mambaforge (202407 已废弃) > Miniconda + Mamba > Miniconda > Anaconda @@ -52,7 +53,7 @@ D:\program\miniforge3\Library\bin conda config --set show_channel_urls yes ``` -- 在`C:\Users\实际用户名\`目录找到`.condarc`文件,使用记事本打开,输入如下内容并保存 +- 在 `C:\Users\实际用户名\` 目录找到 `.condarc` 文件,使用记事本打开,输入如下内容并保存 ``` envs_dirs: @@ -123,7 +124,6 @@ mamba activate lpdaac mamba env export > setup/lpdaac.yml ``` - ## 3 设计思路 ### 3.1 数据组织 @@ -218,4 +218,4 @@ python .\\HLS_SuPER\\HLS_SuPER.py -roi .\\data\\vectors\\49REL.geojson -tile T49 ### 4.2 其他数据 -v1.0: 直接运行`DATA_SuPER/`目录下所需数据对应的\*.py 文件即可. +v1.0: 直接运行 `DATA_SuPER/` 目录下所需数据对应的 `*.py` 文件即可. diff --git a/setup/environment.yml b/setup/environment.yml index 47a2f1d..12b6756 100644 --- a/setup/environment.yml +++ b/setup/environment.yml @@ -27,3 +27,5 @@ dependencies: - seaborn - spectral - selenium + - firefox + - geckodriver diff --git a/setup/lpdaac.yml b/setup/lpdaac.yml index 0017ed4..8edd066 100644 --- a/setup/lpdaac.yml +++ b/setup/lpdaac.yml @@ -2,25 +2,26 @@ name: lpdaac channels: - conda-forge dependencies: - - _libavif_api=1.3.0=h57928b3_0 + - _libavif_api=1.3.0=h57928b3_2 - _openmp_mutex=4.5=2_gnu + - _python_abi3_support=1.0=hd8ed1ab_2 - affine=2.4.0=pyhd8ed1ab_1 - - aiobotocore=2.23.2=pyhe01879c_1 + - aiobotocore=2.24.2=pyhcf101f3_0 - aiohappyeyeballs=2.6.1=pyhd8ed1ab_0 - - aiohttp=3.12.15=py312h05f76fc_0 + - aiohttp=3.13.0=py312h30f5c63_0 - aiohttp-cors=0.8.1=pyhd8ed1ab_0 - aioitertools=0.12.0=pyhd8ed1ab_1 - aiosignal=1.4.0=pyhd8ed1ab_0 - annotated-types=0.7.0=pyhd8ed1ab_1 - - anyio=4.10.0=pyhe01879c_0 + - anyio=4.11.0=pyhcf101f3_0 - aom=3.9.1=he0c23c2_0 - argon2-cffi=25.1.0=pyhd8ed1ab_0 - - argon2-cffi-bindings=25.1.0=py312he06e257_0 + - argon2-cffi-bindings=25.1.0=py312he06e257_1 - arrow=1.3.0=pyhd8ed1ab_1 - asciitree=0.3.3=py_2 - asttokens=3.0.0=pyhd8ed1ab_1 - async-lru=2.0.5=pyh29332c3_0 - - attrs=25.3.0=pyh71513ae_0 + - attrs=25.4.0=pyh71513ae_0 - aws-c-auth=0.9.0=h467f71e_16 - aws-c-cal=0.9.2=hef2a5b8_1 - aws-c-common=0.12.4=hfd05255_0 @@ -35,31 +36,31 @@ dependencies: - aws-crt-cpp=0.32.10=h16ee0b7_3 - aws-sdk-cpp=1.11.510=h41ea3a3_14 - babel=2.17.0=pyhd8ed1ab_0 - - beautifulsoup4=4.13.4=pyha770c72_0 + - beautifulsoup4=4.14.2=pyha770c72_0 - bleach=6.2.0=pyh29332c3_4 - bleach-with-css=6.2.0=h82add2a_4 - blosc=1.21.6=hfd34d9b_1 - - bokeh=3.7.3=pyhd8ed1ab_0 - - botocore=1.39.8=pyge310_1234567_0 + - bokeh=3.8.0=pyhd8ed1ab_0 + - botocore=1.40.18=pyhd8ed1ab_0 - bounded-pool-executor=0.0.3=pyhd8ed1ab_0 - - branca=0.8.1=pyhd8ed1ab_0 - - brotli=1.1.0=h2466b09_3 - - brotli-bin=1.1.0=h2466b09_3 - - brotli-python=1.1.0=py312h275cf98_3 - - bzip2=1.0.8=h2466b09_7 + - branca=0.8.2=pyhd8ed1ab_0 + - brotli=1.1.0=hfd05255_4 + - brotli-bin=1.1.0=hfd05255_4 + - brotli-python=1.1.0=py312hbb81ca0_4 + - bzip2=1.0.8=h0ad9c76_8 - c-ares=1.34.5=h2466b09_0 - - c-blosc2=2.19.1=h3cf07e4_0 + - c-blosc2=2.21.3=h3cf07e4_0 - ca-certificates=2025.10.5=h4c7d964_0 - cached-property=1.5.2=hd8ed1ab_1 - cached_property=1.5.2=pyha770c72_1 - - cachetools=5.5.2=pyhd8ed1ab_0 - - cartopy=0.25.0=py312hc128f0a_0 + - cachetools=6.2.0=pyhd8ed1ab_0 + - cartopy=0.25.0=py312hc128f0a_1 - certifi=2025.10.5=pyhd8ed1ab_0 - - cffi=1.17.1=py312h4389bb4_0 - - cftime=1.6.4=py312h1a27103_1 + - cffi=2.0.0=py312he06e257_0 + - cftime=1.6.4=py312h196c9fc_2 - charls=2.4.2=h1537add_0 - charset-normalizer=3.4.3=pyhd8ed1ab_0 - - click=8.2.1=pyh7428d3b_0 + - click=8.1.8=pyh7428d3b_0 - click-plugins=1.1.1.2=pyhd8ed1ab_0 - cligj=0.7.2=pyhd8ed1ab_2 - cloudpickle=3.1.1=pyhd8ed1ab_0 @@ -68,52 +69,54 @@ dependencies: - colorful=0.5.6=pyhd8ed1ab_0 - comm=0.2.3=pyhe01879c_0 - configobj=5.0.9=pyhd8ed1ab_1 - - contourpy=1.3.3=py312hf90b1b7_1 + - contourpy=1.3.3=py312hf90b1b7_2 - cpython=3.12.11=py312hd8ed1ab_0 - - cryptography=45.0.6=py312h84d000f_0 + - cryptography=45.0.7=py312h84d000f_1 - curlify=2.2.1=pyh44b312d_0 - cycler=0.12.1=pyhd8ed1ab_1 - cytoolz=1.0.1=py312h4389bb4_0 - - dask=2025.7.0=pyhe01879c_0 - - dask-core=2025.7.0=pyhe01879c_1 + - dask=2025.9.1=pyhcf101f3_0 + - dask-core=2025.9.1=pyhcf101f3_0 - datashader=0.18.2=pyhd8ed1ab_0 - dav1d=1.2.1=hcfcfb64_0 - - debugpy=1.8.16=py312ha1a9051_0 + - debugpy=1.8.17=py312ha1a9051_0 - decorator=5.2.1=pyhd8ed1ab_0 - defusedxml=0.7.1=pyhd8ed1ab_0 - deprecated=1.2.18=pyhd8ed1ab_0 - distlib=0.4.0=pyhd8ed1ab_0 - - distributed=2025.7.0=pyhe01879c_0 + - distributed=2025.9.1=pyhcf101f3_0 - donfig=0.8.1.post1=pyhd8ed1ab_1 - earthaccess=0.15.1=pyhcf101f3_0 - exceptiongroup=1.3.0=pyhd8ed1ab_0 - - executing=2.2.0=pyhd8ed1ab_0 + - executing=2.2.1=pyhd8ed1ab_0 - fasteners=0.19=pyhd8ed1ab_1 - - filelock=3.18.0=pyhd8ed1ab_0 + - filelock=3.20.0=pyhd8ed1ab_0 - fiona=1.10.1=py312h6e88f47_3 + - firefox=143.0.4=h5112557_0 - folium=0.20.0=pyhd8ed1ab_0 - - fonttools=4.59.0=py312h05f76fc_0 + - fonttools=4.60.1=py312h05f76fc_0 - fqdn=1.5.1=pyhd8ed1ab_1 - - freetype=2.13.3=h57928b3_1 + - freetype=2.14.1=h57928b3_0 - freexl=2.0.0=hf297d47_2 - frozenlist=1.7.0=py312hfdf67e6_0 - - fsspec=2025.7.0=pyhd8ed1ab_0 - - gdal=3.10.3=py312h07de9ea_12 - - geopandas=1.1.1=pyhd8ed1ab_0 - - geopandas-base=1.1.1=pyha770c72_0 + - fsspec=2025.9.0=pyhd8ed1ab_0 + - gdal=3.10.3=py312h07de9ea_21 + - geckodriver=0.36.0=h127b8e1_0 + - geopandas=1.1.1=pyhd8ed1ab_1 + - geopandas-base=1.1.1=pyha770c72_1 - geos=3.13.1=h9ea8674_0 - geotiff=1.7.4=h86c3423_2 - - geoviews=1.14.0=hd8ed1ab_0 - - geoviews-core=1.14.0=pyha770c72_0 + - geoviews=1.14.1=hd8ed1ab_0 + - geoviews-core=1.14.1=pyha770c72_0 - giflib=5.2.2=h64bf75a_0 - - google-api-core=2.25.1=pyhd8ed1ab_0 - - google-auth=2.40.3=pyhd8ed1ab_0 + - google-api-core=2.25.2=pyhd8ed1ab_0 + - google-auth=2.41.1=pyhd8ed1ab_0 - googleapis-common-protos=1.70.0=pyhd8ed1ab_0 - grpcio=1.71.0=py312h18946f6_1 - h11=0.16.0=pyhd8ed1ab_0 - - h2=4.2.0=pyhd8ed1ab_0 + - h2=4.3.0=pyhcf101f3_0 - h5netcdf=1.6.4=pyhd8ed1ab_0 - - h5py=3.14.0=nompi_py312h6cc2a29_100 + - h5py=3.14.0=nompi_py312h03cd2ba_101 - harmony-py=1.2.0=pyhd8ed1ab_0 - hdf4=4.2.15=h5557f11_7 - hdf5=1.14.6=nompi_he30205f_103 @@ -121,46 +124,45 @@ dependencies: - hpack=4.1.0=pyhd8ed1ab_0 - httpcore=1.0.9=pyh29332c3_0 - httpx=0.28.1=pyhd8ed1ab_0 - - hvplot=0.12.0=pyhd8ed1ab_0 + - hvplot=0.12.1=pyhd8ed1ab_0 - hyperframe=6.1.0=pyhd8ed1ab_0 - idna=3.10=pyhd8ed1ab_1 - - imagecodecs=2025.8.2=py312h2f18ccd_0 + - imagecodecs=2025.8.2=py312h424859f_4 - imageio=2.37.0=pyhfb79c49_0 - importlib-metadata=8.7.0=pyhe01879c_1 - importlib-resources=6.5.2=pyhd8ed1ab_0 - importlib_resources=6.5.2=pyhd8ed1ab_0 - ipykernel=6.30.1=pyh3521513_0 - - ipython=9.4.0=pyh6be1c34_0 + - ipython=9.6.0=pyh6be1c34_0 - ipython_pygments_lexers=1.1.1=pyhd8ed1ab_0 - ipywidgets=8.1.7=pyhd8ed1ab_0 - isoduration=20.11.0=pyhd8ed1ab_1 - jedi=0.19.2=pyhd8ed1ab_1 - jinja2=3.1.6=pyhd8ed1ab_0 - jmespath=1.0.1=pyhd8ed1ab_1 - - joblib=1.5.1=pyhd8ed1ab_0 - - json5=0.12.0=pyhd8ed1ab_0 - - jsonpointer=3.0.0=py312h2e8e312_1 - - jsonschema=4.25.0=pyhe01879c_0 - - jsonschema-specifications=2025.4.1=pyh29332c3_0 - - jsonschema-with-format-nongpl=4.25.0=he01879c_0 + - joblib=1.5.2=pyhd8ed1ab_0 + - json5=0.12.1=pyhd8ed1ab_0 + - jsonpointer=3.0.0=py312h2e8e312_2 + - jsonschema=4.25.1=pyhe01879c_0 + - jsonschema-specifications=2025.9.1=pyhcf101f3_0 + - jsonschema-with-format-nongpl=4.25.1=he01879c_0 - jupyter=1.1.1=pyhd8ed1ab_1 - - jupyter-lsp=2.2.6=pyhe01879c_0 + - jupyter-lsp=2.3.0=pyhcf101f3_0 - jupyter_bokeh=4.0.5=pyhd8ed1ab_1 - jupyter_client=8.6.3=pyhd8ed1ab_1 - jupyter_console=6.6.3=pyhd8ed1ab_1 - jupyter_core=5.8.1=pyh5737063_0 - jupyter_events=0.12.0=pyh29332c3_0 - - jupyter_server=2.16.0=pyhe01879c_0 + - jupyter_server=2.17.0=pyhcf101f3_0 - jupyter_server_terminals=0.5.3=pyhd8ed1ab_1 - - jupyterlab=4.4.5=pyhd8ed1ab_0 + - jupyterlab=4.4.9=pyhd8ed1ab_0 - jupyterlab_pygments=0.3.0=pyhd8ed1ab_2 - jupyterlab_server=2.27.3=pyhd8ed1ab_1 - jupyterlab_widgets=3.0.15=pyhd8ed1ab_0 - jxrlib=1.1=hcfcfb64_3 - - kerchunk=0.2.7=pyhd8ed1ab_0 - - kiwisolver=1.4.8=py312hf90b1b7_1 + - kiwisolver=1.4.9=py312h78d62e6_1 - krb5=1.21.3=hdf4eb48_0 - - lark=1.2.2=pyhd8ed1ab_1 + - lark=1.3.0=pyhd8ed1ab_0 - lazy-loader=0.4=pyhd8ed1ab_2 - lcms2=2.17=hbcf6048_0 - lerc=4.0.0=h6470a55_1 @@ -171,36 +173,36 @@ dependencies: - libarrow-acero=20.0.0=h7d8d6a5_8_cuda - libarrow-dataset=20.0.0=h7d8d6a5_8_cuda - libarrow-substrait=20.0.0=hb76e781_8_cuda - - libavif16=1.3.0=hf2698fe_0 - - libblas=3.9.0=34_h5709861_mkl - - libbrotlicommon=1.1.0=h2466b09_3 - - libbrotlidec=1.1.0=h2466b09_3 - - libbrotlienc=1.1.0=h2466b09_3 - - libcblas=3.9.0=34_h2a3cdd5_mkl + - libavif16=1.3.0=he916da2_2 + - libblas=3.9.0=35_h5709861_mkl + - libbrotlicommon=1.1.0=hfd05255_4 + - libbrotlidec=1.1.0=hfd05255_4 + - libbrotlienc=1.1.0=hfd05255_4 + - libcblas=3.9.0=35_h2a3cdd5_mkl - libcrc32c=1.1.2=h0e60522_0 - libcurl=8.14.1=h88aaa65_0 - libdeflate=1.24=h76ddb4d_0 - libevent=2.1.12=h3671451_1 - libexpat=2.7.1=hac47afa_0 - libffi=3.4.6=h537db12_1 - - libfreetype=2.13.3=h57928b3_1 - - libfreetype6=2.13.3=h0b5ce68_1 - - libgcc=15.1.0=h1383e82_4 - - libgdal-core=3.10.3=h228a343_12 - - libgdal-hdf4=3.10.3=ha47b6c4_12 - - libgomp=15.1.0=h1383e82_4 + - libfreetype=2.14.1=h57928b3_0 + - libfreetype6=2.14.1=hdbac1cb_0 + - libgcc=15.2.0=h1383e82_7 + - libgdal-core=3.10.3=h228a343_13 + - libgdal-hdf4=3.10.3=ha47b6c4_13 + - libgomp=15.2.0=h1383e82_7 - libgoogle-cloud=2.36.0=hf249c01_1 - libgoogle-cloud-storage=2.36.0=he5eb982_1 - libgrpc=1.71.0=h8c3449c_1 - libhwloc=2.12.1=default_h88281d1_1000 - - libhwy=1.2.0=h1d1702c_0 - - libiconv=1.18=h135ad9c_1 + - libhwy=1.3.0=ha71e874_1 + - libiconv=1.18=hc1393d2_2 - libjpeg-turbo=3.1.0=h2466b09_0 - - libjxl=0.11.1=ha161b08_2 + - libjxl=0.11.1=hb7713f0_4 - libkml=1.3.0=h538826c_1021 - - liblapack=3.9.0=34_hf9ab0e9_mkl + - liblapack=3.9.0=35_hf9ab0e9_mkl - liblzma=5.8.1=h2466b09_2 - - libnetcdf=4.9.2=nompi_ha45073a_118 + - libnetcdf=4.9.3=nompi_ha45073a_102 - libparquet=20.0.0=ha850022_8_cuda - libpng=1.6.50=h7351971_1 - libprotobuf=5.29.3=hd33f5f0_2 @@ -211,89 +213,89 @@ dependencies: - libsqlite=3.50.4=hf5d6505_0 - libssh2=1.11.1=h9aa295b_0 - libthrift=0.21.0=hbe90ef8_0 - - libtiff=4.7.0=h05922d8_5 + - libtiff=4.7.1=h550210a_0 - libutf8proc=2.10.0=hff4702e_0 - libwebp-base=1.6.0=h4d5522a_0 - - libwinpthread=12.0.0.r4.gg4f2fc60ca=h57928b3_9 + - libwinpthread=12.0.0.r4.gg4f2fc60ca=h57928b3_10 - libxcb=1.17.0=h0e4246c_0 - libxml2=2.13.8=h741aa76_1 - libzip=1.11.2=h3135430_0 - libzlib=1.3.1=h2466b09_2 - libzopfli=1.0.3=h0e60522_0 - linkify-it-py=2.0.3=pyhd8ed1ab_1 - - llvm-openmp=20.1.8=hfa2b4ca_1 - - llvmlite=0.44.0=py312h1f7db74_1 + - llvm-openmp=21.1.2=hfa2b4ca_3 + - llvmlite=0.45.1=py312hdb9728c_0 - locket=1.0.0=pyhd8ed1ab_0 - - lz4=4.4.4=py312h032eceb_0 + - lz4=4.4.4=py312ha1aa51a_1 - lz4-c=1.10.0=h2466b09_1 - lzo=2.10=h6a83c73_1002 - mapclassify=2.10.0=pyhd8ed1ab_1 - - markdown=3.8.2=pyhd8ed1ab_0 - - markdown-it-py=3.0.0=pyhd8ed1ab_1 - - markupsafe=3.0.2=py312h31fea79_1 - - matplotlib-base=3.10.5=py312h0ebf65c_0 + - markdown=3.9=pyhd8ed1ab_0 + - markdown-it-py=4.0.0=pyhd8ed1ab_0 + - markupsafe=3.0.3=py312h05f76fc_0 + - matplotlib-base=3.10.6=py312h0ebf65c_1 - matplotlib-inline=0.1.7=pyhd8ed1ab_1 - - mdit-py-plugins=0.4.2=pyhd8ed1ab_1 + - mdit-py-plugins=0.5.0=pyhd8ed1ab_0 - mdurl=0.1.2=pyhd8ed1ab_1 - minizip=4.0.10=h9fa1bad_0 - - mistune=3.1.3=pyh29332c3_0 + - mistune=3.1.4=pyhcf101f3_0 - mkl=2024.2.2=h57928b3_16 - - msgpack-python=1.1.1=py312hd5eb7cc_0 + - msgpack-python=1.1.2=py312hf90b1b7_0 - multidict=6.6.3=py312h05f76fc_0 - multimethod=2.0=pyhd8ed1ab_0 - multipledispatch=0.6.0=pyhd8ed1ab_1 - munkres=1.1.4=pyhd8ed1ab_1 - - narwhals=2.0.1=pyhe01879c_0 + - narwhals=2.7.0=pyhcf101f3_0 - nbclient=0.10.2=pyhd8ed1ab_0 - nbconvert-core=7.16.6=pyh29332c3_0 - nbformat=5.10.4=pyhd8ed1ab_1 - nest-asyncio=1.6.0=pyhd8ed1ab_1 - - netcdf4=1.7.2=nompi_py312hf8617a8_102 + - netcdf4=1.7.2=nompi_py312h79d12a2_104 - networkx=3.5=pyhe01879c_0 - - notebook=7.4.5=pyhd8ed1ab_0 + - notebook=7.4.7=pyhd8ed1ab_0 - notebook-shim=0.2.4=pyhd8ed1ab_1 - - numba=0.61.2=py312hdcac391_1 + - numba=0.62.1=py312h9a042f1_0 - numcodecs=0.15.1=py312h72972c8_0 - - numpy=2.2.6=py312h3150e54_0 + - numpy=2.3.3=py312ha72d056_0 - odc-geo=0.5.0rc1=pyhd8ed1ab_0 - odc-loader=0.5.1=pyhd8ed1ab_0 - odc-stac=0.4.0=pyhd8ed1ab_0 - opencensus=0.11.3=pyhd8ed1ab_1 - - opencensus-context=0.1.3=py312h2e8e312_3 - - openjpeg=2.5.3=h24db6dd_1 + - opencensus-context=0.1.3=py312h2e8e312_4 + - openjpeg=2.5.4=h24db6dd_0 - openssl=3.5.4=h725018a_0 - - opentelemetry-api=1.36.0=pyhd8ed1ab_0 - - opentelemetry-exporter-prometheus=0.48b0=pyhd8ed1ab_0 - - opentelemetry-proto=1.36.0=pyhd8ed1ab_0 - - opentelemetry-sdk=1.36.0=pyhd8ed1ab_0 - - opentelemetry-semantic-conventions=0.57b0=pyh3cfb1c2_0 + - opentelemetry-api=1.35.0=pyhd8ed1ab_0 + - opentelemetry-exporter-prometheus=0.56b0=pyhe01879c_1 + - opentelemetry-proto=1.37.0=pyhd8ed1ab_0 + - opentelemetry-sdk=1.35.0=pyhd8ed1ab_0 + - opentelemetry-semantic-conventions=0.56b0=pyh3cfb1c2_0 - orc=2.1.2=h35764e3_0 - outcome=1.3.0.post0=pyhd8ed1ab_1 - overrides=7.7.0=pyhd8ed1ab_1 - packaging=25.0=pyh29332c3_1 - - pandas=2.3.1=py312hc128f0a_0 + - pandas=2.3.3=py312hc128f0a_1 - pandocfilters=1.5.0=pyhd8ed1ab_0 - - panel=1.7.5=pyhd8ed1ab_0 + - panel=1.8.2=pyhd8ed1ab_0 - param=2.2.1=pyhd8ed1ab_0 - - parso=0.8.4=pyhd8ed1ab_1 + - parso=0.8.5=pyhcf101f3_0 - partd=1.4.2=pyhd8ed1ab_0 - patsy=1.0.1=pyhd8ed1ab_1 - pcre2=10.45=h99c9b8b_0 - pickleshare=0.7.5=pyhd8ed1ab_1004 - - pillow=11.3.0=py312hfb502af_0 + - pillow=11.3.0=py312h5ee8bfe_3 - pip=25.2=pyh8b19718_0 - - platformdirs=4.3.8=pyhe01879c_0 + - platformdirs=4.5.0=pyhcf101f3_0 - pockets=0.9.1=pyhd8ed1ab_1 - pqdm=0.2.0=pyhd8ed1ab_1 - progressbar2=4.2.0=pyhd8ed1ab_0 - - proj=9.6.2=h7990399_1 - - prometheus_client=0.22.1=pyhd8ed1ab_0 - - prompt-toolkit=3.0.51=pyha770c72_0 - - prompt_toolkit=3.0.51=hd8ed1ab_0 + - proj=9.6.2=h7990399_2 + - prometheus_client=0.23.1=pyhd8ed1ab_0 + - prompt-toolkit=3.0.52=pyha770c72_0 + - prompt_toolkit=3.0.52=hd8ed1ab_0 - propcache=0.3.1=py312h31fea79_0 - proto-plus=1.26.1=pyhd8ed1ab_0 - protobuf=5.29.3=py312h275cf98_0 - - psutil=7.0.0=py312h4389bb4_0 + - psutil=7.1.0=py312he06e257_0 - pthread-stubs=0.4=h0e40799_1002 - pure_eval=0.2.3=pyhd8ed1ab_1 - py-spy=0.4.1=h77a83cd_0 @@ -302,25 +304,26 @@ dependencies: - pyasn1=0.6.1=pyhd8ed1ab_2 - pyasn1-modules=0.4.2=pyhd8ed1ab_0 - pycparser=2.22=pyh29332c3_1 - - pyct=0.5.0=pyhd8ed1ab_1 - - pydantic=2.11.7=pyh3cfb1c2_0 - - pydantic-core=2.33.2=py312h8422cdd_0 + - pyct=0.6.0=pyhd8ed1ab_0 + - pydantic=2.12.0=pyh3cfb1c2_0 + - pydantic-core=2.41.1=py312hdabe01f_0 - pygments=2.19.2=pyhd8ed1ab_0 - - pykdtree=1.4.3=py312h196c9fc_0 + - pykdtree=1.4.3=py312h196c9fc_1 - pyogrio=0.11.0=py312h6e88f47_0 - pyopenssl=25.1.0=pyhd8ed1ab_0 - - pyparsing=3.2.3=pyhe01879c_2 - - pyproj=3.7.1=py312h5ea471a_1 + - pyparsing=3.2.5=pyhcf101f3_0 + - pyproj=3.7.2=py312h235ce7f_1 - pyresample=1.34.2=py312h275cf98_0 - - pyshp=3.0.0=pyhd8ed1ab_0 + - pyshp=3.0.2=pyhd8ed1ab_0 - pysocks=1.7.1=pyh09c184e_7 - - pystac=1.13.0=pyhd8ed1ab_0 + - pystac=1.14.1=pyhd8ed1ab_0 - pystac-client=0.9.0=pyhd8ed1ab_0 - python=3.12.11=h3f84c4b_0_cpython - python-cmr=0.13.0=pyhff2d567_1 - python-dateutil=2.9.0.post0=pyhe01879c_2 - python-dotenv=0.20.0=pyhd8ed1ab_0 - - python-fastjsonschema=2.21.1=pyhd8ed1ab_0 + - python-fastjsonschema=2.21.2=pyhe01879c_0 + - python-gil=3.12.11=hd8ed1ab_0 - python-json-logger=2.0.7=pyhd8ed1ab_0 - python-tzdata=2025.2=pyhd8ed1ab_0 - python-utils=3.9.1=pyhff2d567_1 @@ -328,97 +331,93 @@ dependencies: - pytz=2025.2=pyhd8ed1ab_0 - pyu2f=0.1.5=pyhd8ed1ab_1 - pyviz_comms=3.0.6=pyhd8ed1ab_0 - - pywavelets=1.9.0=py312h196c9fc_0 - - pywin32=311=py312h829343e_0 - - pywinpty=2.0.15=py312h275cf98_0 - - pyyaml=6.0.2=py312h31fea79_2 - - pyzmq=27.0.1=py312h5b324a9_0 + - pywavelets=1.9.0=py312h196c9fc_1 + - pywin32=311=py312h829343e_1 + - pywinpty=2.0.15=py312h275cf98_1 + - pyyaml=6.0.3=py312h05f76fc_0 + - pyzmq=27.1.0=py312hbb5da91_0 - qhull=2020.2=hc790b64_5 - - rasterio=1.4.3=py312ha172ac9_1 + - rasterio=1.4.3=py312h9aeec68_2 - rav1e=0.7.1=ha073cba_3 - - ray-core=2.47.1=py312h4ed40c6_0 - - ray-default=2.47.1=py312h7553cdf_0 + - ray-core=2.49.2=py312h6652516_2 + - ray-default=2.49.2=py312h8c80c70_2 - re2=2025.06.26=h3dd2b4f_0 - referencing=0.36.2=pyh29332c3_0 - - requests=2.32.4=pyhd8ed1ab_0 + - requests=2.32.5=pyhd8ed1ab_0 - rfc3339-validator=0.1.4=pyhd8ed1ab_1 - rfc3986-validator=0.1.1=pyh9f0ad1d_0 - rfc3987-syntax=1.1.0=pyhe01879c_1 - rioxarray=0.19.0=pyhd8ed1ab_0 - - rpds-py=0.27.0=py312hdabe01f_0 + - rpds-py=0.27.1=py312hdabe01f_1 - rsa=4.9.1=pyhd8ed1ab_0 - - s3fs=2025.7.0=pyhd8ed1ab_0 - - scikit-image=0.25.2=py312h72972c8_1 - - scikit-learn=1.7.1=py312h91ac024_0 - - scipy=1.16.0=py312h1416ca1_0 + - s3fs=2025.9.0=pyhd8ed1ab_0 + - scikit-image=0.25.2=py312hc128f0a_2 + - scikit-learn=1.7.2=py312h91ac024_0 + - scipy=1.16.2=py312h33376e8_0 - seaborn=0.13.2=hd8ed1ab_3 - seaborn-base=0.13.2=pyhd8ed1ab_3 - - selenium=4.34.2=pyhe01879c_0 - - selenium-manager=4.34.0=h18a1a76_0 + - selenium=4.36.0=pyhcf101f3_0 + - selenium-manager=4.36.0=h18a1a76_0 - send2trash=1.8.3=pyh5737063_1 - - setproctitle=1.3.6=py312h4389bb4_0 - setuptools=80.9.0=pyhff2d567_0 - shapely=2.0.7=py312h3f81574_1 - six=1.17.0=pyhe01879c_1 - - smart_open=7.3.0.post1=pyhe01879c_0 + - smart_open=7.3.1=pyhcf101f3_0 - snappy=1.2.2=h7fa0ca8_0 - sniffio=1.3.1=pyhd8ed1ab_1 - snuggs=1.4.7=pyhd8ed1ab_2 - sortedcontainers=2.4.0=pyhd8ed1ab_1 - - soupsieve=2.7=pyhd8ed1ab_0 + - soupsieve=2.8=pyhd8ed1ab_0 - spectral=0.24=pyhd8ed1ab_0 - sphinxcontrib-napoleon=0.7=pyhd8ed1ab_1 - sqlite=3.50.4=hdb435a2_0 - stack_data=0.6.3=pyhd8ed1ab_1 - - statsmodels=0.14.5=py312h196c9fc_0 - - svt-av1=3.0.2=he0c23c2_0 - - tbb=2021.13.0=h18a62a1_2 + - statsmodels=0.14.5=py312h196c9fc_1 + - svt-av1=3.1.2=hac47afa_0 + - tbb=2021.13.0=h18a62a1_3 - tblib=3.1.0=pyhd8ed1ab_0 - tenacity=9.1.2=pyhd8ed1ab_0 - terminado=0.18.1=pyh5737063_0 - threadpoolctl=3.6.0=pyhecae5ae_0 - - tifffile=2025.6.11=pyhd8ed1ab_0 + - tifffile=2025.10.4=pyhd8ed1ab_0 - tinycss2=1.4.0=pyhd8ed1ab_0 - tinynetrc=1.3.1=pyhd8ed1ab_0 - tk=8.6.13=h2c6b04d_2 - - tomli=2.2.1=pyhe01879c_2 + - tomli=2.3.0=pyhcf101f3_0 - toolz=1.0.0=pyhd8ed1ab_1 - - tornado=6.5.2=py312he06e257_0 + - tornado=6.5.2=py312he06e257_1 - tqdm=4.67.1=pyhd8ed1ab_1 - traitlets=5.14.3=pyhd8ed1ab_1 - - trio=0.30.0=py312h2e8e312_0 + - trio=0.31.0=py312h680a3fa_0 - trio-websocket=0.12.2=pyh29332c3_0 - - types-python-dateutil=2.9.0.20250809=pyhd8ed1ab_0 - - typing-extensions=4.14.1=h4440ef1_0 - - typing-inspection=0.4.1=pyhd8ed1ab_0 - - typing_extensions=4.14.1=pyhe01879c_0 + - types-python-dateutil=2.9.0.20251008=pyhd8ed1ab_0 + - typing-extensions=4.15.0=h396c80c_0 + - typing-inspection=0.4.2=pyhd8ed1ab_0 + - typing_extensions=4.15.0=pyhcf101f3_0 - typing_utils=0.1.0=pyhd8ed1ab_1 - tzdata=2025b=h78e105d_0 - uc-micro-py=1.0.3=pyhd8ed1ab_1 - - ucrt=10.0.22621.0=h57928b3_1 - - ujson=5.10.0=py312h275cf98_1 - - unicodedata2=16.0.0=py312h4389bb4_0 - - universal_pathlib=0.2.6=pyhd8ed1ab_1 + - ucrt=10.0.26100.0=h57928b3_0 + - unicodedata2=16.0.0=py312he06e257_1 - uri-template=1.3.0=pyhd8ed1ab_1 - uriparser=0.9.8=h5a68840_0 - urllib3=2.5.0=pyhd8ed1ab_0 - vc=14.3=h41ae7f8_31 - vc14_runtime=14.44.35208=h818238b_31 - vcomp14=14.44.35208=h818238b_31 - - virtualenv=20.33.1=pyhd8ed1ab_0 - - virtualizarr=1.2.0=pyhd8ed1ab_0 + - virtualenv=20.35.3=pyhd8ed1ab_0 - vs2015_runtime=14.44.35208=h38c0c73_31 - - wcwidth=0.2.13=pyhd8ed1ab_1 + - wcwidth=0.2.14=pyhd8ed1ab_0 - webcolors=24.11.1=pyhd8ed1ab_0 - webencodings=0.5.1=pyhd8ed1ab_3 - - websocket-client=1.8.0=pyhd8ed1ab_1 + - websocket-client=1.9.0=pyhd8ed1ab_0 - wheel=0.45.1=pyhd8ed1ab_1 - widgetsnbextension=4.0.14=pyhd8ed1ab_0 - win_inet_pton=1.1.0=pyh7428d3b_8 - winpty=0.4.3=4 - - wrapt=1.17.2=py312h4389bb4_0 + - wrapt=1.17.3=py312he06e257_1 - wsproto=1.2.0=pyhd8ed1ab_1 - - xarray=2025.7.1=pyhd8ed1ab_0 + - xarray=2025.10.1=pyhd8ed1ab_0 - xerces-c=3.2.5=he0c23c2_2 - xorg-libxau=1.0.12=h0e40799_0 - xorg-libxdmcp=1.1.5=h0e40799_0 @@ -426,13 +425,15 @@ dependencies: - yaml=0.2.5=h6a83c73_3 - yarl=1.20.1=py312h31fea79_0 - zarr=2.18.7=pyhd8ed1ab_0 - - zeromq=4.3.5=ha9f60a1_7 - - zfp=1.0.1=he0c23c2_2 + - zeromq=4.3.5=h5bddc39_9 + - zfp=1.0.1=h2f0f97f_3 - zict=3.0.0=pyhd8ed1ab_1 - zipp=3.23.0=pyhd8ed1ab_0 - zlib=1.3.1=h2466b09_2 - zlib-ng=2.2.5=h1608b31_0 - - zstandard=0.23.0=py312h4389bb4_2 + - zstandard=0.25.0=py312he5662c2_0 - zstd=1.5.7=hbeecb71_2 - pip: - - beautifulsoup4==4.12.3 + - beautifulsoup4==4.12.3 + +prefix: "D:\\program\\miniforge3\\envs\\lpdaac"