Git Product home page Git Product logo

grdwindinversion's Introduction

grdwindinversion

Python Version Dependencies Status

Package to perform Wind inversion from GRD Level-1 SAR images

Usage

   SAR_L1-to-L2_wind_processor -h
   usage: SAR_L1-to-L2_wind_processor [-h] --input_file INPUT_FILE [--config_file CONFIG_FILE] --outputdir OUTPUTDIR [--verbose] [--overwrite]

   Perform inversion from S1(L1-GRD) SAFE, L1-RCM, L1-RS2 ; using xsar/xsarsea tools

   options:
     -h, --help            show this help message and exit
     --input_file INPUT_FILE
                           input file path
     --config_file CONFIG_FILE
                           config file path [if not provided will take config file based on input file]
     --outputdir OUTPUTDIR
     --verbose
     --overwrite           overwrite existing .nc files [default is False]

Features

This Python library (based on xarray) allows to perform wind inversion from level-1 GRD (projected magnitude image). Mission supported:

  • Sentinel-1
  • RCM
  • RadarSat-2

grdwindinversion's People

Contributors

agrouaze avatar vincelhx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

vincelhx

grdwindinversion's Issues

TIFF error TIFFReadDirectory:Failed to read directory at offset

When processing
S1A_EW_GRDM_1SDV_20210930T205405_20210930T205434_039916_04B935_B159.SAFE

11/02/2024 18:56:11 INFO init.py(304) GDAL signalled an error: err_no=1, msg='s1a-ew-grd-vv-20210930t205405-20210930t205434-039916-04b935-001.tiff: TIFFFetchDirectory:/home/datawork-cersat-public/cache/project/mpc-sentinel1/data/esa/sentinel-1a/L1/EW/S1A_EW_GRDM_1S/2021/273/S1A_EW_GRDM_1SDV_20210930T205405_20210930T205434_039916_04B935_B159.SAFE/measurement/s1a-ew-grd-vv-20210930t205405-20210930t205434-039916-04b935-001.tiff: Can not read TIFF directory count'
11/02/2024 18:56:11 INFO init.py(304) GDAL signalled an error: err_no=1, msg='s1a-ew-grd-vv-20210930t205405-20210930t205434-039916-04b935-001.tiff: TIFFReadDirectory:Failed to read directory at offset 102684056'
11/02/2024 18:56:11 INFO inversion.py(493) Traceback (most recent call last):
  File "rasterio/base.pyx", line 310, in rasterio.base.DatasetBase.__init
  File "rasterio/_base.pyx", line 221, in rasterio._base.open_dataset
  File "rasterio/_err.pyx", line 221, in rasterio._err.exc_wrap_pointer
rasterio._err.CPLE_AppDefinedError: s1a-ew-grd-vv-20210930t205405-20210930t205434-039916-04b935-001.tiff: TIFFReadDirectory:Failed to read directory at offset 102684056

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/tmp/2024v2v1_0v9_0v2v3vpost6_1v0v7_1v0v6_1v0v5_1v1v11_1v0v1_1v0v1/grdwindinversion/lib/python3.10/site-packages/grdwindinversion/inversion.py", line 476, in makeL2
    xsar_dataset = fct_dataset(meta, resolution=resolution,recalibration=recalibration)
  File "/tmp/2024v2v1_0v9_0v2v3vpost6_1v0v7_1v0v6_1v0v5_1v1v11_1v0v1_1v0v1/grdwindinversion/lib/python3.10/site-packages/xsar/sentinel1_dataset.py", line 135, in init
    self.resolution, DN_tmp = self.sar_meta.reader.load_digital_number(resolution=resolution,
  File "/tmp/2024v2v1_0v9_0v2v3vpost6_1v0v7_1v0v6_1v0v5_1v1v11_1v0v1_1v0v1/grdwindinversion/lib/python3.10/site-packages/safe_s1/metadata.py", line 179, in load_digital_number
    rio = rasterio.open(files_measurement[0])
  File "/tmp/2024v2v1_0v9_0v2v3vpost6_1v0v7_1v0v6_1v0v5_1v1v11_1v0v1_1v0v1/grdwindinversion/lib/python3.10/site-packages/rasterio/env.py", line 451, in wrapper
    return f(args, *kwds)
  File "/tmp/2024v2v1_0v9_0v2v3vpost6_1v0v7_1v0v6_1v0v5_1v1v11_1v0v1_1v0v1/grdwindinversion/lib/python3.10/site-packages/rasterio/init.py", line 304, in open
    dataset = DatasetReader(path, driver=driver, sharing=sharing, **kwargs)
  File "rasterio/base.pyx", line 312, in rasterio.base.DatasetBase.__init
rasterio.errors.RasterioIOError: s1a-ew-grd-vv-20210930t205405-20210930t205434-039916-04b935-001.tiff: TIFFReadDirectory:Failed to read directory at offset 102684056

11/02/2024 18:56:11 ERROR inversion.py(494) s1a-ew-grd-vv-20210930t205405-20210930t205434-039916-04b935-001.tiff: TIFFReadDirectory:Failed to read directory at offset 102684056

Using env :

#
# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                 conda_forge    conda-forge
_openmp_mutex             4.5                       2_gnu    conda-forge
affine                    2.4.0              pyhd8ed1ab_0    conda-forge
aiohttp                   3.9.1           py310h2372a71_0    conda-forge
aiosignal                 1.3.1              pyhd8ed1ab_0    conda-forge
alsa-lib                  1.2.10               hd590300_0    conda-forge
aom                       3.8.1                h59595ed_0    conda-forge
async-timeout             4.0.3              pyhd8ed1ab_0    conda-forge
attr                      2.5.1                h166bdaf_1    conda-forge
attrs                     23.2.0             pyh71513ae_0    conda-forge
aws-c-auth                0.7.15               h70caa3e_0    conda-forge
aws-c-cal                 0.6.9                h14ec70c_3    conda-forge
aws-c-common              0.9.12               hd590300_0    conda-forge
aws-c-compression         0.2.17               h572eabf_8    conda-forge
aws-c-event-stream        0.4.1                h17cd1f3_5    conda-forge
aws-c-http                0.8.0                hc6da83f_5    conda-forge
aws-c-io                  0.14.3               h3c8c088_1    conda-forge
aws-c-mqtt                0.10.1               h0ef3971_3    conda-forge
aws-c-s3                  0.5.0                h1b46bed_2    conda-forge
aws-c-sdkutils            0.1.14               h572eabf_0    conda-forge
aws-checksums             0.1.17               h572eabf_7    conda-forge
aws-crt-cpp               0.26.1               h33f84b2_9    conda-forge
aws-sdk-cpp               1.11.242             h65f022c_0    conda-forge
azure-core-cpp            1.10.3               h91d86a7_1    conda-forge
azure-storage-blobs-cpp   12.10.0              h00ab1b0_0    conda-forge
azure-storage-common-cpp  12.5.0               hb858b4b_2    conda-forge
blosc                     1.21.5               h0f2a231_0    conda-forge
bokeh                     3.3.4              pyhd8ed1ab_0    conda-forge
branca                    0.7.1              pyhd8ed1ab_0    conda-forge
brotli                    1.1.0                hd590300_1    conda-forge
brotli-bin                1.1.0                hd590300_1    conda-forge
brotli-python             1.1.0           py310hc6cd4ac_1    conda-forge
bzip2                     1.0.8                hd590300_5    conda-forge
c-ares                    1.26.0               hd590300_0    conda-forge
ca-certificates           2024.2.2             hbcca054_0    conda-forge
cairo                     1.18.0               h3faef2a_0    conda-forge
cartopy                   0.22.0          py310hcc13569_1    conda-forge
certifi                   2024.2.2           pyhd8ed1ab_0    conda-forge
cfitsio                   4.3.1                hbdc6101_0    conda-forge
cftime                    1.6.3           py310h1f7b6fc_0    conda-forge
charset-normalizer        3.3.2              pyhd8ed1ab_0    conda-forge
click                     8.1.7           unix_pyh707e725_0    conda-forge
click-plugins             1.1.1                      py_0    conda-forge
cligj                     0.7.2              pyhd8ed1ab_1    conda-forge
cloudpickle               3.0.0              pyhd8ed1ab_0    conda-forge
colorama                  0.4.6              pyhd8ed1ab_0    conda-forge
contourpy                 1.2.0           py310hd41b1e2_0    conda-forge
cycler                    0.12.1             pyhd8ed1ab_0    conda-forge
cytoolz                   0.12.3          py310h2372a71_0    conda-forge
dask                      2024.2.0           pyhd8ed1ab_0    conda-forge
dask-core                 2024.2.0           pyhd8ed1ab_0    conda-forge
dav1d                     1.2.1                hd590300_0    conda-forge
dbus                      1.13.6               h5008d03_3    conda-forge
distributed               2024.2.0           pyhd8ed1ab_0    conda-forge
docrep                    0.3.2              pyh44b312d_0    conda-forge
elementpath               4.2.1                    pypi_0    pypi
exceptiongroup            1.2.0                    pypi_0    pypi
expat                     2.5.0                hcb278e6_1    conda-forge
ffmpeg                    6.1.1           gpl_h8007c5b_104    conda-forge
fiona                     1.9.5           py310h0a1e91f_3    conda-forge
folium                    0.15.1             pyhd8ed1ab_0    conda-forge
font-ttf-dejavu-sans-mono 2.37                 hab24e00_0    conda-forge
font-ttf-inconsolata      3.000                h77eed37_0    conda-forge
font-ttf-source-code-pro  2.038                h77eed37_0    conda-forge
font-ttf-ubuntu           0.83                 h77eed37_1    conda-forge
fontconfig                2.14.2               h14ed4e7_0    conda-forge
fonts-conda-ecosystem     1                             0    conda-forge
fonts-conda-forge         1                             0    conda-forge
fonttools                 4.48.1          py310h2372a71_0    conda-forge
freeglut                  3.2.2                hac7e632_2    conda-forge
freetype                  2.12.1               h267a509_2    conda-forge
freexl                    2.0.0                h743c826_0    conda-forge
fribidi                   1.0.10               h36c2ea0_0    conda-forge
frozenlist                1.4.1           py310h2372a71_0    conda-forge
fsspec                    2024.2.0           pyhca7485f_0    conda-forge
future                    0.18.3             pyhd8ed1ab_0    conda-forge
gdal                      3.8.3           py310he073c5f_2    conda-forge
geopandas                 0.14.3             pyhd8ed1ab_0    conda-forge
geopandas-base            0.14.3             pyha770c72_0    conda-forge
geos                      3.12.1               h59595ed_0    conda-forge
geotiff                   1.7.1               h6b2125f_15    conda-forge
gettext                   0.21.1               h27087fc_0    conda-forge
gflags                    2.2.2             he1b5a44_1004    conda-forge
giflib                    5.2.1                h0b41bf4_3    conda-forge
glib                      2.78.3               hfc55251_0    conda-forge
glib-tools                2.78.3               hfc55251_0    conda-forge
glog                      0.6.0                h6f12383_0    conda-forge
gmp                       6.3.0                h59595ed_0    conda-forge
gnutls                    3.7.9                hb077bed_0    conda-forge
graphite2                 1.3.13            h58526e2_1001    conda-forge
grdwindinversion          0.2.3.post6              pypi_0    pypi
gst-plugins-base          1.22.9               h8e1006c_0    conda-forge
gstreamer                 1.22.9               h98fc4e7_0    conda-forge
harfbuzz                  8.3.0                h3d44ed6_0    conda-forge
hdf4                      4.2.15               h2a13503_7    conda-forge
hdf5                      1.14.3          nompi_h4f84152_100    conda-forge
icu                       73.2                 h59595ed_0    conda-forge
idna                      3.6                pyhd8ed1ab_0    conda-forge
importlib-metadata        7.0.1              pyha770c72_0    conda-forge
importlib-resources       6.1.1              pyhd8ed1ab_0    conda-forge
importlib_metadata        7.0.1                hd8ed1ab_0    conda-forge
importlib_resources       6.1.1              pyhd8ed1ab_0    conda-forge
jasper                    4.2.0                he6dfbbe_0    conda-forge
jinja2                    3.1.3              pyhd8ed1ab_0    conda-forge
jmespath                  1.0.1              pyhd8ed1ab_0    conda-forge
joblib                    1.3.2              pyhd8ed1ab_0    conda-forge
json-c                    0.17                 h7ab15ed_0    conda-forge
kealib                    1.5.3                h2f55d51_0    conda-forge
keyutils                  1.6.1                h166bdaf_0    conda-forge
kiwisolver                1.4.5           py310hd41b1e2_1    conda-forge
krb5                      1.21.2               h659d440_0    conda-forge
lame                      3.100             h166bdaf_1003    conda-forge
lcms2                     2.16                 hb7c19ff_0    conda-forge
ld_impl_linux-64          2.40                 h41732ed_0    conda-forge
lerc                      4.0.0                h27087fc_0    conda-forge
libabseil                 20230802.1      cxx17_h59595ed_0    conda-forge
libaec                    1.1.2                h59595ed_1    conda-forge
libarchive                3.7.2                h2aa1ff5_1    conda-forge
libarrow                  15.0.0           he2c5238_2_cpu    conda-forge
libarrow-acero            15.0.0           h59595ed_2_cpu    conda-forge
libarrow-dataset          15.0.0           h59595ed_2_cpu    conda-forge
libarrow-flight           15.0.0           hdc44a87_2_cpu    conda-forge
libarrow-flight-sql       15.0.0           hfbc7f12_2_cpu    conda-forge
libarrow-gandiva          15.0.0           hacb8726_2_cpu    conda-forge
libarrow-substrait        15.0.0           hfbc7f12_2_cpu    conda-forge
libass                    0.17.1               h8fe9dca_1    conda-forge
libblas                   3.9.0           21_linux64_openblas    conda-forge
libboost-headers          1.84.0               ha770c72_0    conda-forge
libbrotlicommon           1.1.0                hd590300_1    conda-forge
libbrotlidec              1.1.0                hd590300_1    conda-forge
libbrotlienc              1.1.0                hd590300_1    conda-forge
libcap                    2.69                 h0f662aa_0    conda-forge
libcblas                  3.9.0           21_linux64_openblas    conda-forge
libclang                  15.0.7          default_hb11cfb5_4    conda-forge
libclang13                15.0.7          default_ha2b6cf4_4    conda-forge
libcrc32c                 1.1.2                h9c3ff4c_0    conda-forge
libcups                   2.3.3                h4637d8d_4    conda-forge
libcurl                   8.5.0                hca28451_0    conda-forge
libdeflate                1.19                 hd590300_0    conda-forge
libdrm                    2.4.114              h166bdaf_0    conda-forge
libedit                   3.1.20191231         he28a2e2_2    conda-forge
libev                     4.33                 hd590300_2    conda-forge
libevent                  2.1.12               hf998b51_1    conda-forge
libexpat                  2.5.0                hcb278e6_1    conda-forge
libffi                    3.4.2                h7f98852_5    conda-forge
libflac                   1.4.3                h59595ed_0    conda-forge
libgcc-ng                 13.2.0               h807b86a_5    conda-forge
libgcrypt                 1.10.3               hd590300_0    conda-forge
libgdal                   3.8.3                h80d7d79_2    conda-forge
libgfortran-ng            13.2.0               h69a702a_5    conda-forge
libgfortran5              13.2.0               ha4646dd_5    conda-forge
libglib                   2.78.3               h783c2da_0    conda-forge
libglu                    9.0.0             hac7e632_1003    conda-forge
libgomp                   13.2.0               h807b86a_5    conda-forge
libgoogle-cloud           2.12.0               hef10d8f_5    conda-forge
libgpg-error              1.47                 h71f35ed_0    conda-forge
libgrpc                   1.60.0               h74775cd_1    conda-forge
libhwloc                  2.9.3           default_h554bfaf_1009    conda-forge
libiconv                  1.17                 hd590300_2    conda-forge
libidn2                   2.3.7                hd590300_0    conda-forge
libjpeg-turbo             3.0.0                hd590300_1    conda-forge
libkml                    1.3.0             h01aab08_1018    conda-forge
liblapack                 3.9.0           21_linux64_openblas    conda-forge
liblapacke                3.9.0           21_linux64_openblas    conda-forge
libllvm14                 14.0.6               hcd5def8_4    conda-forge
libllvm15                 15.0.7               hb3ce162_4    conda-forge
libnetcdf                 4.9.2           nompi_h9612171_113    conda-forge
libnghttp2                1.58.0               h47da74e_1    conda-forge
libnl                     3.9.0                hd590300_0    conda-forge
libnsl                    2.0.1                hd590300_0    conda-forge
libnuma                   2.0.16               h0b41bf4_1    conda-forge
libogg                    1.3.4                h7f98852_1    conda-forge
libopenblas               0.3.26          pthreads_h413a1c8_0    conda-forge
libopencv                 4.9.0           py310hc29bc96_7    conda-forge
libopenvino               2023.3.0             h2e90f83_0    conda-forge
libopenvino-auto-batch-plugin 2023.3.0             hd5fc58b_0    conda-forge
libopenvino-auto-plugin   2023.3.0             hd5fc58b_0    conda-forge
libopenvino-hetero-plugin 2023.3.0             h3ecfda7_0    conda-forge
libopenvino-intel-cpu-plugin 2023.3.0             h2e90f83_0    conda-forge
libopenvino-intel-gpu-plugin 2023.3.0             h2e90f83_0    conda-forge
libopenvino-ir-frontend   2023.3.0             h3ecfda7_0    conda-forge
libopenvino-onnx-frontend 2023.3.0             hfbc7f12_0    conda-forge
libopenvino-paddle-frontend 2023.3.0             hfbc7f12_0    conda-forge
libopenvino-pytorch-frontend 2023.3.0             h59595ed_0    conda-forge
libopenvino-tensorflow-frontend 2023.3.0             h0bff32c_0    conda-forge
libopenvino-tensorflow-lite-frontend 2023.3.0             h59595ed_0    conda-forge
libopus                   1.3.1                h7f98852_1    conda-forge
libparquet                15.0.0           h352af49_2_cpu    conda-forge
libpciaccess              0.17                 h166bdaf_0    conda-forge
libpng                    1.6.42               h2797004_0    conda-forge
libpq                     16.2                 h33b98f1_0    conda-forge
libprotobuf               4.25.1               hf27288f_1    conda-forge
libre2-11                 2023.06.02           h7a70373_0    conda-forge
librttopo                 1.1.0               h8917695_15    conda-forge
libsndfile                1.2.2                hc60ed4a_1    conda-forge
libspatialindex           1.9.3                h9c3ff4c_4    conda-forge
libspatialite             5.1.0                h7bd4643_4    conda-forge
libsqlite                 3.45.1               h2797004_0    conda-forge
libssh2                   1.11.0               h0841786_0    conda-forge
libstdcxx-ng              13.2.0               h7e041cc_5    conda-forge
libsystemd0               255                  h3516f8a_0    conda-forge
libtasn1                  4.19.0               h166bdaf_0    conda-forge
libthrift                 0.19.0               hb90f79a_1    conda-forge
libtiff                   4.6.0                ha9c0a0a_2    conda-forge
libunistring              0.9.10               h7f98852_0    conda-forge
libutf8proc               2.8.0                h166bdaf_0    conda-forge
libuuid                   2.38.1               h0b41bf4_0    conda-forge
libva                     2.20.0               hd590300_0    conda-forge
libvorbis                 1.3.7                h9c3ff4c_0    conda-forge
libvpx                    1.13.1               h59595ed_0    conda-forge
libwebp-base              1.3.2                hd590300_0    conda-forge
libxcb                    1.15                 h0b41bf4_0    conda-forge
libxcrypt                 4.4.36               hd590300_1    conda-forge
libxkbcommon              1.6.0                hd429924_1    conda-forge
libxml2                   2.12.5               h232c23b_0    conda-forge
libxslt                   1.1.39               h76b75d6_0    conda-forge
libzip                    1.10.1               h2629f0a_3    conda-forge
libzlib                   1.2.13               hd590300_5    conda-forge
llvmlite                  0.42.0          py310h1b8f574_1    conda-forge
locket                    1.0.0              pyhd8ed1ab_0    conda-forge
lxml                      5.1.0           py310hcfd0673_0    conda-forge
lz4                       4.3.3           py310h350c4a5_0    conda-forge
lz4-c                     1.9.4                hcb278e6_0    conda-forge
lzo                       2.10              h516909a_1000    conda-forge
mapclassify               2.6.1              pyhd8ed1ab_0    conda-forge
markdown-it-py            3.0.0              pyhd8ed1ab_0    conda-forge
markupsafe                2.1.5           py310h2372a71_0    conda-forge
matplotlib-base           3.8.2           py310h62c0568_0    conda-forge
mdurl                     0.1.2              pyhd8ed1ab_0    conda-forge
minizip                   4.0.4                h0ab5242_0    conda-forge
mpg123                    1.32.4               h59595ed_0    conda-forge
msgpack-python            1.0.7           py310hd41b1e2_0    conda-forge
multidict                 6.0.5           py310h2372a71_0    conda-forge
munkres                   1.1.4              pyh9f0ad1d_0    conda-forge
mysql-common              8.0.33               hf1915f5_6    conda-forge
mysql-libs                8.0.33               hca2cd23_6    conda-forge
ncurses                   6.4                  h59595ed_2    conda-forge
netcdf4                   1.6.5           nompi_py310hba70d50_100    conda-forge
nettle                    3.9.1                h7ab15ed_0    conda-forge
networkx                  3.2.1              pyhd8ed1ab_0    conda-forge
nspr                      4.35                 h27087fc_0    conda-forge
nss                       3.97                 h1d7d5a4_0    conda-forge
numba                     0.59.0          py310h7dc5dd1_1    conda-forge
numpy                     1.26.4          py310hb13e2d6_0    conda-forge
ocl-icd                   2.3.1                h7f98852_0    conda-forge
ocl-icd-system            1.0.0                         1    conda-forge
opencv                    4.9.0           py310h1bdf985_7    conda-forge
openh264                  2.4.1                h59595ed_0    conda-forge
openjpeg                  2.5.0                h488ebb8_3    conda-forge
openssl                   3.2.1                hd590300_0    conda-forge
orc                       1.9.2                h7829240_1    conda-forge
p11-kit                   0.24.1               hc5aa10d_0    conda-forge
packaging                 23.2               pyhd8ed1ab_0    conda-forge
pandas                    2.2.0           py310hcc13569_0    conda-forge
partd                     1.4.1              pyhd8ed1ab_0    conda-forge
pcre2                     10.42                hcad00b1_0    conda-forge
pillow                    10.2.0          py310h01dd4db_0    conda-forge
pip                       24.0               pyhd8ed1ab_0    conda-forge
pixman                    0.43.2               h59595ed_0    conda-forge
poppler                   24.02.0              h590f24d_0    conda-forge
poppler-data              0.4.12               hd8ed1ab_0    conda-forge
postgresql                16.2                 h7387d8b_0    conda-forge
proj                      9.3.1                h1d62c97_0    conda-forge
psutil                    5.9.8           py310h2372a71_0    conda-forge
pthread-stubs             0.4               h36c2ea0_1001    conda-forge
pugixml                   1.14                 h59595ed_0    conda-forge
pulseaudio-client         16.1                 hb77b528_5    conda-forge
py-opencv                 4.9.0           py310h5f968ed_7    conda-forge
pyarrow                   15.0.0          py310hf9e7431_2_cpu    conda-forge
pyarrow-hotfix            0.6                pyhd8ed1ab_0    conda-forge
pygments                  2.17.2             pyhd8ed1ab_0    conda-forge
pyparsing                 3.1.1              pyhd8ed1ab_0    conda-forge
pyproj                    3.6.1           py310hd5c30f3_5    conda-forge
pyshp                     2.3.1              pyhd8ed1ab_0    conda-forge
pysocks                   1.7.1              pyha2e5f31_6    conda-forge
python                    3.10.13         hd12c33a_1_cpython    conda-forge
python-dateutil           2.8.2              pyhd8ed1ab_0    conda-forge
python-tzdata             2023.4             pyhd8ed1ab_0    conda-forge
python_abi                3.10                    4_cp310    conda-forge
pytz                      2024.1             pyhd8ed1ab_0    conda-forge
pyyaml                    6.0.1           py310h2372a71_1    conda-forge
qt-main                   5.15.8              h450f30e_18    conda-forge
rasterio                  1.3.9           py310hedc89e0_2    conda-forge
rdma-core                 50.0                 hd3aeb46_0    conda-forge
re2                       2023.06.02           h2873b5e_0    conda-forge
readline                  8.2                  h8228510_1    conda-forge
regex                     2023.12.25      py310h2372a71_0    conda-forge
requests                  2.31.0             pyhd8ed1ab_0    conda-forge
rich                      13.7.0             pyhd8ed1ab_0    conda-forge
rioxarray                 0.15.1             pyhd8ed1ab_0    conda-forge
rtree                     1.2.0           py310hbdcdc62_0    conda-forge
s2n                       1.4.3                h06160fa_0    conda-forge
scikit-learn              1.4.0           py310h1fdf081_0    conda-forge
scipy                     1.12.0          py310hb13e2d6_2    conda-forge
setuptools                69.0.3             pyhd8ed1ab_0    conda-forge
shapely                   2.0.2           py310hc3e127f_1    conda-forge
shellingham               1.5.4              pyhd8ed1ab_0    conda-forge
six                       1.16.0             pyh6c4a22f_0    conda-forge
snappy                    1.1.10               h9fff704_0    conda-forge
snuggs                    1.4.7                      py_0    conda-forge
sortedcontainers          2.4.0              pyhd8ed1ab_0    conda-forge
sqlite                    3.45.1               h2c6b66d_0    conda-forge
svt-av1                   1.8.0                h59595ed_0    conda-forge
tbb                       2021.11.0            h00ab1b0_1    conda-forge
tblib                     3.0.0              pyhd8ed1ab_0    conda-forge
threadpoolctl             3.2.0              pyha21a80b_0    conda-forge
tiledb                    2.19.1               h4386cac_0    conda-forge
tk                        8.6.13          noxft_h4845f30_101    conda-forge
toolz                     0.12.1             pyhd8ed1ab_0    conda-forge
tornado                   6.3.3           py310h2372a71_1    conda-forge
typer                     0.9.0              pyhd8ed1ab_0    conda-forge
typing-extensions         4.9.0                hd8ed1ab_0    conda-forge
typing_extensions         4.9.0              pyha770c72_0    conda-forge
tzcode                    2024a                h3f72095_0    conda-forge
tzdata                    2024a                h0c530f3_0    conda-forge
ucx                       1.15.0               h75e419f_3    conda-forge
unicodedata2              15.1.0          py310h2372a71_0    conda-forge
uriparser                 0.9.7                hcb278e6_1    conda-forge
urllib3                   2.2.0              pyhd8ed1ab_0    conda-forge
wheel                     0.42.0             pyhd8ed1ab_0    conda-forge
x264                      1!164.3095           h166bdaf_2    conda-forge
x265                      3.5                  h924138e_3    conda-forge
xarray                    2024.1.1           pyhd8ed1ab_0    conda-forge
xarray-datatree           0.0.14             pyhd8ed1ab_0    conda-forge
xarray-safe-rcm           2023.6.1                 pypi_0    pypi
xarray-safe-s1            2024.1.9           pyhd8ed1ab_0    conda-forge
xcb-util                  0.4.0                hd590300_1    conda-forge
xcb-util-image            0.4.0                h8ee46fc_1    conda-forge
xcb-util-keysyms          0.4.0                h8ee46fc_1    conda-forge
xcb-util-renderutil       0.3.9                hd590300_1    conda-forge
xcb-util-wm               0.4.1                h8ee46fc_1    conda-forge
xerces-c                  3.2.5                hac6953d_0    conda-forge
xkeyboard-config          2.41                 hd590300_0    conda-forge
xmlschema                 3.0.1                    pypi_0    pypi
xmltodict                 0.13.0             pyhd8ed1ab_0    conda-forge
xorg-fixesproto           5.0               h7f98852_1002    conda-forge
xorg-inputproto           2.3.2             h7f98852_1002    conda-forge
xorg-kbproto              1.0.7             h7f98852_1002    conda-forge
xorg-libice               1.1.1                hd590300_0    conda-forge
xorg-libsm                1.2.4                h7391055_0    conda-forge
xorg-libx11               1.8.7                h8ee46fc_0    conda-forge
xorg-libxau               1.0.11               hd590300_0    conda-forge
xorg-libxdmcp             1.1.3                h7f98852_0    conda-forge
xorg-libxext              1.3.4                h0b41bf4_2    conda-forge
xorg-libxfixes            5.0.3             h7f98852_1004    conda-forge
xorg-libxi                1.7.10               h7f98852_0    conda-forge
xorg-libxrender           0.9.11               hd590300_0    conda-forge
xorg-renderproto          0.11.1            h7f98852_1002    conda-forge
xorg-xextproto            7.3.0             h0b41bf4_1003    conda-forge
xorg-xf86vidmodeproto     2.3.1             h7f98852_1002    conda-forge
xorg-xproto               7.0.31            h7f98852_1007    conda-forge
xradarsat2                2023.6.13          pyhd8ed1ab_0    conda-forge
xrft                      1.0.1              pyhd8ed1ab_0    conda-forge
xsar                      2024.2.1           pyhd8ed1ab_0    conda-forge
xsarsea                   0.9             py310hff52083_1    conda-forge
xyzservices               2023.10.1          pyhd8ed1ab_0    conda-forge
xz                        5.2.6                h166bdaf_0    conda-forge
yaml                      0.2.5                h7f98852_2    conda-forge
yarl                      1.9.4           py310h2372a71_0    conda-forge
zict                      3.0.0              pyhd8ed1ab_0    conda-forge
zipp                      3.17.0             pyhd8ed1ab_0    conda-forge
zlib                      1.2.13               hd590300_5    conda-forge
zstd                      1.5.5                hfc55251_0    conda-forge

Calling main script without config does not work (but it should following the args doc)

$ SAR_L1-to-L2_wind_processor --input_file /home/datawork-cersat-public/cache/project/sarwing/data/RS2/L1/VV_VH/2022/248/RS2_OK141302_PK1242225_DK1208539_SCWA_20220905_212400_VV_VH_SGF --outputdir ./output_tests/
05/09/2023 16:46:29 INFO main.py(34) input file: /home/datawork-cersat-public/cache/project/sarwing/data/RS2/L1/VV_VH/2022/248/RS2_OK141302_PK1242225_DK1208539_SCWA_20220905_212400_VV_VH_SGF
Traceback (most recent call last):
  File "/home/datawork-cersat-public/cache/project/sarwing/users/tcevaer/chain/l1_inversion_pip_env/bin/SAR_L1-to-L2_wind_processor", line 8, in <module>
    sys.exit(processor_starting_point())
  File "/home/datawork-cersat-public/cache/project/sarwing/users/tcevaer/grdwindinversion/grdwindinversion/main.py", line 55, in processor_starting_point
    out_file = makeL2(input_file, out_folder, config_file, overwrite=args.overwrite)
  File "/home/datawork-cersat-public/cache/project/sarwing/users/tcevaer/grdwindinversion/grdwindinversion/inversion.py", line 121, in makeL2
    raise FileNotFoundError('config_path do not exists, got %s ' % config_path)
FileNotFoundError: config_path do not exists, got config_RS2.yaml 

In the parser it says :

    parser.add_argument('--config_file',
                        help='config file path [if not provided will take config file based on input file]',

nesz = nesz_cross

while processing a file, we observed that in outputfie, nesz = nesz_cross

RCM processing are in error

python main.py --input_file /home/datawork-cersat-public/provider/asc-csa/satellite/l1/rcm/rcm3/SCLNC/GRD/2023/137/RCM3_OK2554779_PK2560509_1_SCLNC_20230517_132957_VV_VH_GRD/ --outputdir /tmp/

traceback:

10/07/2023 12:00:44 INFO schemas.py(1234) Resource 'XMLSchema.xsd' is already loaded                                                                                                                          
/opt/conda-envs/dev/lib/python3.10/site-packages/safe_rcm/product/reader.py:59: UserWarning: Converting non-nanosecond precision datetime values to nanosecond precision. This behavior can eventually be rela
xed in xarray, as it is an artifact from pandas which is now beginning to support non-nanosecond precision values. This warning is caused by passing non-nanosecond np.datetime64 or np.timedelta64 values to 
the DataArray or Variable constructor; it can be silenced by converting the values to nanosecond precision ahead of time.
  {"timeStamp": ds["timeStamp"].astype("datetime64")}                                                                                                                                                         
/opt/conda-envs/dev/lib/python3.10/site-packages/safe_rcm/product/reader.py:68: UserWarning: Converting non-nanosecond precision datetime values to nanosecond precision. This behavior can eventually be rela
xed in xarray, as it is an artifact from pandas which is now beginning to support non-nanosecond precision values. This warning is caused by passing non-nanosecond np.datetime64 or np.timedelta64 values to 
the DataArray or Variable constructor; it can be silenced by converting the values to nanosecond precision ahead of time.                                              
  {"timeStamp": ds["timeStamp"].astype("datetime64")}                                                                                                                                                         
10/07/2023 12:00:48 ERROR io.py(224) FilePath is currently a read-only interface.                                                                                                                             
10/07/2023 12:00:48 ERROR io.py(224) FilePath is currently a read-only interface.                                                                                                                             
10/07/2023 12:00:48 ERROR io.py(224) File-like object not found in virtual filesystem: b'4c0b12dc-4cb1-44b9-9279-d1232838c090/4c0b12dc-4cb1-44b9-9279-d1232838c090.aux'
10/07/2023 12:00:48 ERROR io.py(224) File-like object not found in virtual filesystem: b'4c0b12dc-4cb1-44b9-9279-d1232838c090/4c0b12dc-4cb1-44b9-9279-d1232838c090.AUX'
10/07/2023 12:00:48 ERROR io.py(224) File-like object not found in virtual filesystem: b'4c0b12dc-4cb1-44b9-9279-d1232838c090/4c0b12dc-4cb1-44b9-9279-d1232838c090.aux'
10/07/2023 12:00:48 ERROR io.py(224) File-like object not found in virtual filesystem: b'4c0b12dc-4cb1-44b9-9279-d1232838c090/4c0b12dc-4cb1-44b9-9279-d1232838c090.AUX'
10/07/2023 12:00:48 ERROR io.py(224) FilePath is currently a read-only interface.
10/07/2023 12:00:48 ERROR io.py(224) FilePath is currently a read-only interface.
10/07/2023 12:00:48 ERROR io.py(224) File-like object not found in virtual filesystem: b'f8fbcc5c-b210-4bd0-9597-7bd55b111071/f8fbcc5c-b210-4bd0-9597-7bd55b111071.aux'
10/07/2023 12:00:48 ERROR io.py(224) File-like object not found in virtual filesystem: b'f8fbcc5c-b210-4bd0-9597-7bd55b111071/f8fbcc5c-b210-4bd0-9597-7bd55b111071.AUX'
10/07/2023 12:00:48 ERROR io.py(224) File-like object not found in virtual filesystem: b'f8fbcc5c-b210-4bd0-9597-7bd55b111071/f8fbcc5c-b210-4bd0-9597-7bd55b111071.aux'
10/07/2023 12:00:48 ERROR io.py(224) File-like object not found in virtual filesystem: b'f8fbcc5c-b210-4bd0-9597-7bd55b111071/f8fbcc5c-b210-4bd0-9597-7bd55b111071.AUX'
Traceback (most recent call last):
  File "/home1/datahome/agrouaze/sources/git/grdwindinversion/grdwindinversion/main.py", line 48, in <module>
    out_file = makeL2(input_file, out_folder, config_file,overwrite=args.overwrite)
  File "/home1/datahome/agrouaze/sources/git/grdwindinversion/grdwindinversion/inversion.py", line 120, in makeL2
    meta = fct_meta(filename)
  File "/home1/datahome/agrouaze/sources/git/xsar/src/xsar/utils.py", line 94, in wrapper
    result = f(*args, **kwargs)
  File "/home1/datahome/agrouaze/sources/git/xsar/src/xsar/rcm_meta.py", line 93, in __init__
    self.manifest_attrs = self._create_manifest_attrs()
  File "/home1/datahome/agrouaze/sources/git/xsar/src/xsar/rcm_meta.py", line 196, in _create_manifest_attrs
    dic["swath_type"] = os.path.basename(self.path).split('_')[4]
IndexError: list index out of range

Make outputdir mandatory

In main.py

OUT_DEFAULT = "/home/datawork-cersat-public/cache/public/ftp/project/L2GRD/prod_test"
...
    parser.add_argument('--outputdir', required=False, default=OUT_DEFAULT)

I suggest to remove OUT_DEFAULT and set required=True

Add option to disable subdirectory creation

When a netcdf is generated, a subdirectory is created (ie. S1A_IW_GRDH_1SDV_20230911T222130_20230911T222154_050286_060DC0_C12F.SAFE). It would be better if an option could enable/disable this behavior.

Getconf is broken

SAR_L1-to-L2_wind_processor --input_file /home/datawork-cersat-public/cache/project/sarwing/data/RS2/L1/VV_VH/2022/248/RS2_OK141302_PK1242225_DK1208539_SCWA_20220905_212400_VV_VH_SGF --output_dir ./output_tests/
Traceback (most recent call last):
  File "/home/datawork-cersat-public/cache/project/sarwing/users/tcevaer/chain/l1_inversion_pip_env/bin/SAR_L1-to-L2_wind_processor", line 5, in <module>
    from grdwindinversion.main import processor_starting_point
  File "/home/datawork-cersat-public/cache/project/sarwing/users/tcevaer/grdwindinversion/grdwindinversion/__init__.py", line 7, in <module>
    from grdwindinversion import *
  File "/home/datawork-cersat-public/cache/project/sarwing/users/tcevaer/grdwindinversion/grdwindinversion/inversion.py", line 17, in <module>
    from .load_config import getConf
  File "/home/datawork-cersat-public/cache/project/sarwing/users/tcevaer/grdwindinversion/grdwindinversion/load_config.py", line 14, in <module>
    stream = open(config_path, 'r')
FileNotFoundError: [Errno 2] No such file or directory: './data_config.yaml'

warnings xarray coords

Some warnings that we should remove:

grdwindinversion/grdwindinversion/inversion.py:351: UserWarning: rename 'line' to 'owiAzSize' does not create an index anymore. Try using swap_dims instead or use set_index after rename to create an indexed coordinate.
  dataset_1000m = dataset_1000m.rename({"line": "owiAzSize", "sample": "owiRaSize"})
grdwindinversion/grdwindinversion/inversion.py:351: UserWarning: rename 'sample' to 'owiRaSize' does not create an index anymore. Try using swap_dims instead or use set_index after rename to create an indexed coordinate.

Some imports do not work

SAR_L1-to-L2_wind_processor --input_file /home/datawork-cersat-public/cache/project/sarwing/data/RS2/L1/VV_VH/2022/248/RS2_OK141302_PK1242225_DK1208539_SCWA_20220905_212400_VV_VH_SGF --output_dir ./output_tests/
Traceback (most recent call last):
  File "/home/datawork-cersat-public/cache/project/sarwing/users/tcevaer/chain/l1_inversion_pip_env/bin/SAR_L1-to-L2_wind_processor", line 5, in <module>
    from grdwindinversion.main import processor_starting_point
  File "/home/datawork-cersat-public/cache/project/sarwing/users/tcevaer/grdwindinversion/grdwindinversion/__init__.py", line 7, in <module>
    from grdwindinversion import *
  File "/home/datawork-cersat-public/cache/project/sarwing/users/tcevaer/grdwindinversion/grdwindinversion/inversion.py", line 17, in <module>
    from load_config import getConf
ModuleNotFoundError: No module named 'load_config'

Processing RS2 file seems buggy

file : /home/datawork-cersat-public/cache/project/sarwing/data/RS2/L1/VV_VH/2022/248/RS2_OK141302_PK1242225_DK1208539_SCWA_20220905_212400_VV_VH_SGF

When processing this file I got not always the same output. Sometimes ncview bugs when displaying owiWindSpeed var, sometimes not.
It seems that for RS2 files there sometimes are artifacts in the wind speed var.

rs2_1
rs2_2

Auxiliary dir error : TypeError: expected str, bytes or os.PathLike object, not NoneType

When processing

/home/datawork-cersat-public/cache/project/mpc-sentinel1/data/esa/sentinel-1a/L1/IW/S1A_IW_GRDH_1S/2023/297/S1A_IW_GRDH_1SDV_20231024T004708_20231024T004737_050900_0622AE_3F98.SAFE

11/02/2024 06:23:15 INFO inversion.py(493) Traceback (most recent call last):
  File "/home/datawork-cersat-public/cache/project/sarwing/commits/2024v2v1_0v9_0v2v3vpost6_1v0v7_1v0v6_1v0v5_1v1v11_1v0v1_1v0v1/grdwindinversion/lib/python3.10/site-packages/grdwindinversion/inversion.py", line 467, in makeL2
    xsar_dataset = fct_dataset(
  File "/home/datawork-cersat-public/cache/project/sarwing/commits/2024v2v1_0v9_0v2v3vpost6_1v0v7_1v0v6_1v0v5_1v1v11_1v0v1_1v0v1/grdwindinversion/lib/python3.10/site-packages/xsar/sentinel1_dataset.py", line 289, in __init__
    self.add_high_resolution_variables(
  File "/home/datawork-cersat-public/cache/project/sarwing/commits/2024v2v1_0v9_0v2v3vpost6_1v0v7_1v0v6_1v0v5_1v1v11_1v0v1_1v0v1/grdwindinversion/lib/python3.10/site-packages/xsar/sentinel1_dataset.py", line 476, in add_high_resolution_variables
    self.add_gains(config["auxiliary_names"][self.sar_meta.short_name.split(":")[-2][0:3]][self.aux_config_name]["AUX_CAL"],
  File "/home/datawork-cersat-public/cache/project/sarwing/commits/2024v2v1_0v9_0v2v3vpost6_1v0v7_1v0v6_1v0v5_1v1v11_1v0v1_1v0v1/grdwindinversion/lib/python3.10/site-packages/xsar/sentinel1_dataset.py", line 566, in add_gains
    path_aux_cal_new = get_path_aux_cal(new_aux_cal_name)
  File "/home/datawork-cersat-public/cache/project/sarwing/commits/2024v2v1_0v9_0v2v3vpost6_1v0v7_1v0v6_1v0v5_1v1v11_1v0v1_1v0v1/grdwindinversion/lib/python3.10/site-packages/xsar/utils.py", line 768, in get_path_aux_cal
    path = os.path.join(config["auxiliary_dir"],
  File "/home/datawork-cersat-public/cache/project/sarwing/commits/2024v2v1_0v9_0v2v3vpost6_1v0v7_1v0v6_1v0v5_1v1v11_1v0v1_1v0v1/grdwindinversion/lib/python3.10/posixpath.py", line 76, in join
    a = os.fspath(a)
TypeError: expected str, bytes or os.PathLike object, not NoneType

Antimeridian crossing not yet checked

ERROR inversion.py(185) Antimeridian crossing not yet checked

product tested: RS2/L1/VV_VH/2022/013/RS2_OK133121_PK1162214_DK1119226_SCWA_20220113_173154_VV_VH_SGF

ValueError: Variable 'windspeed_cross': Could not convert tuple of form (dims, data[, attrs, encoding]): (['line', 'sample'], None) to Variable.

For S1A_IW_GRDH_1SSV_20141004T211657_20141004T211722_002685_002FF5_E0BD.SAFE

Traceback (most recent call last):
  File "/tmp/2024v2v1_0v9_0v2v3vpost6_1v0v7_1v0v6_1v0v5_1v1v11_1v0v1_1v0v1/grdwindinversion/lib/python3.10/site-packages/xarray/core/variable.py", line 130, in as_variable
    obj = Variable(*obj)
  File "/tmp/2024v2v1_0v9_0v2v3vpost6_1v0v7_1v0v6_1v0v5_1v1v11_1v0v1_1v0v1/grdwindinversion/lib/python3.10/site-packages/xarray/core/variable.py", line 365, in __init__
    super().__init__(
  File "/tmp/2024v2v1_0v9_0v2v3vpost6_1v0v7_1v0v6_1v0v5_1v1v11_1v0v1_1v0v1/grdwindinversion/lib/python3.10/site-packages/xarray/namedarray/core.py", line 253, in __init__
    self._dims = self._parse_dimensions(dims)
  File "/tmp/2024v2v1_0v9_0v2v3vpost6_1v0v7_1v0v6_1v0v5_1v1v11_1v0v1_1v0v1/grdwindinversion/lib/python3.10/site-packages/xarray/namedarray/core.py", line 481, in _parse_dimensions
    raise ValueError(
ValueError: dimensions ('line', 'sample') must have the same length as the number of data dimensions, ndim=0

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/tmp/2024v2v1_0v9_0v2v3vpost6_1v0v7_1v0v6_1v0v5_1v1v11_1v0v1_1v0v1/grdwindinversion/bin/SAR_L1-to-L2_wind_processor", line 8, in <module>
    sys.exit(processor_starting_point())
  File "/tmp/2024v2v1_0v9_0v2v3vpost6_1v0v7_1v0v6_1v0v5_1v1v11_1v0v1_1v0v1/grdwindinversion/lib/python3.10/site-packages/grdwindinversion/main.py", line 66, in processor_starting_point
    out_file,outputds = makeL2(input_file, out_folder, config_file, overwrite=args.overwrite,resolution = resolution, generateCSV = args.no_generate_csv)
  File "/tmp/2024v2v1_0v9_0v2v3vpost6_1v0v7_1v0v6_1v0v5_1v1v11_1v0v1_1v0v1/grdwindinversion/lib/python3.10/site-packages/grdwindinversion/inversion.py", line 610, in makeL2
    xr_dataset = xr_dataset.assign(
  File "/tmp/2024v2v1_0v9_0v2v3vpost6_1v0v7_1v0v6_1v0v5_1v1v11_1v0v1_1v0v1/grdwindinversion/lib/python3.10/site-packages/xarray/core/dataset.py", line 7062, in assign
    data.update(results_data_vars)
  File "/tmp/2024v2v1_0v9_0v2v3vpost6_1v0v7_1v0v6_1v0v5_1v1v11_1v0v1_1v0v1/grdwindinversion/lib/python3.10/site-packages/xarray/core/dataset.py", line 5624, in update
    merge_result = dataset_update_method(self, other)
  File "/tmp/2024v2v1_0v9_0v2v3vpost6_1v0v7_1v0v6_1v0v5_1v1v11_1v0v1_1v0v1/grdwindinversion/lib/python3.10/site-packages/xarray/core/merge.py", line 1075, in dataset_update_method
    return merge_core(
  File "/tmp/2024v2v1_0v9_0v2v3vpost6_1v0v7_1v0v6_1v0v5_1v1v11_1v0v1_1v0v1/grdwindinversion/lib/python3.10/site-packages/xarray/core/merge.py", line 718, in merge_core
    collected = collect_variables_and_indexes(aligned, indexes=indexes)
  File "/tmp/2024v2v1_0v9_0v2v3vpost6_1v0v7_1v0v6_1v0v5_1v1v11_1v0v1_1v0v1/grdwindinversion/lib/python3.10/site-packages/xarray/core/merge.py", line 358, in collect_variables_and_indexes
    variable = as_variable(variable, name=name)
  File "/tmp/2024v2v1_0v9_0v2v3vpost6_1v0v7_1v0v6_1v0v5_1v1v11_1v0v1_1v0v1/grdwindinversion/lib/python3.10/site-packages/xarray/core/variable.py", line 132, in as_variable
    raise error.__class__(
ValueError: Variable 'windspeed_cross': Could not convert tuple of form (dims, data[, attrs, encoding]): (['line', 'sample'], None) to Variable.

Using env :

#
# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                 conda_forge    conda-forge
_openmp_mutex             4.5                       2_gnu    conda-forge
affine                    2.4.0              pyhd8ed1ab_0    conda-forge
aiohttp                   3.9.1           py310h2372a71_0    conda-forge
aiosignal                 1.3.1              pyhd8ed1ab_0    conda-forge
alsa-lib                  1.2.10               hd590300_0    conda-forge
aom                       3.8.1                h59595ed_0    conda-forge
async-timeout             4.0.3              pyhd8ed1ab_0    conda-forge
attr                      2.5.1                h166bdaf_1    conda-forge
attrs                     23.2.0             pyh71513ae_0    conda-forge
aws-c-auth                0.7.15               h70caa3e_0    conda-forge
aws-c-cal                 0.6.9                h14ec70c_3    conda-forge
aws-c-common              0.9.12               hd590300_0    conda-forge
aws-c-compression         0.2.17               h572eabf_8    conda-forge
aws-c-event-stream        0.4.1                h17cd1f3_5    conda-forge
aws-c-http                0.8.0                hc6da83f_5    conda-forge
aws-c-io                  0.14.3               h3c8c088_1    conda-forge
aws-c-mqtt                0.10.1               h0ef3971_3    conda-forge
aws-c-s3                  0.5.0                h1b46bed_2    conda-forge
aws-c-sdkutils            0.1.14               h572eabf_0    conda-forge
aws-checksums             0.1.17               h572eabf_7    conda-forge
aws-crt-cpp               0.26.1               h33f84b2_9    conda-forge
aws-sdk-cpp               1.11.242             h65f022c_0    conda-forge
azure-core-cpp            1.10.3               h91d86a7_1    conda-forge
azure-storage-blobs-cpp   12.10.0              h00ab1b0_0    conda-forge
azure-storage-common-cpp  12.5.0               hb858b4b_2    conda-forge
blosc                     1.21.5               h0f2a231_0    conda-forge
bokeh                     3.3.4              pyhd8ed1ab_0    conda-forge
branca                    0.7.1              pyhd8ed1ab_0    conda-forge
brotli                    1.1.0                hd590300_1    conda-forge
brotli-bin                1.1.0                hd590300_1    conda-forge
brotli-python             1.1.0           py310hc6cd4ac_1    conda-forge
bzip2                     1.0.8                hd590300_5    conda-forge
c-ares                    1.26.0               hd590300_0    conda-forge
ca-certificates           2024.2.2             hbcca054_0    conda-forge
cairo                     1.18.0               h3faef2a_0    conda-forge
cartopy                   0.22.0          py310hcc13569_1    conda-forge
certifi                   2024.2.2           pyhd8ed1ab_0    conda-forge
cfitsio                   4.3.1                hbdc6101_0    conda-forge
cftime                    1.6.3           py310h1f7b6fc_0    conda-forge
charset-normalizer        3.3.2              pyhd8ed1ab_0    conda-forge
click                     8.1.7           unix_pyh707e725_0    conda-forge
click-plugins             1.1.1                      py_0    conda-forge
cligj                     0.7.2              pyhd8ed1ab_1    conda-forge
cloudpickle               3.0.0              pyhd8ed1ab_0    conda-forge
colorama                  0.4.6              pyhd8ed1ab_0    conda-forge
contourpy                 1.2.0           py310hd41b1e2_0    conda-forge
cycler                    0.12.1             pyhd8ed1ab_0    conda-forge
cytoolz                   0.12.3          py310h2372a71_0    conda-forge
dask                      2024.2.0           pyhd8ed1ab_0    conda-forge
dask-core                 2024.2.0           pyhd8ed1ab_0    conda-forge
dav1d                     1.2.1                hd590300_0    conda-forge
dbus                      1.13.6               h5008d03_3    conda-forge
distributed               2024.2.0           pyhd8ed1ab_0    conda-forge
docrep                    0.3.2              pyh44b312d_0    conda-forge
elementpath               4.2.1                    pypi_0    pypi
exceptiongroup            1.2.0                    pypi_0    pypi
expat                     2.5.0                hcb278e6_1    conda-forge
ffmpeg                    6.1.1           gpl_h8007c5b_104    conda-forge
fiona                     1.9.5           py310h0a1e91f_3    conda-forge
folium                    0.15.1             pyhd8ed1ab_0    conda-forge
font-ttf-dejavu-sans-mono 2.37                 hab24e00_0    conda-forge
font-ttf-inconsolata      3.000                h77eed37_0    conda-forge
font-ttf-source-code-pro  2.038                h77eed37_0    conda-forge
font-ttf-ubuntu           0.83                 h77eed37_1    conda-forge
fontconfig                2.14.2               h14ed4e7_0    conda-forge
fonts-conda-ecosystem     1                             0    conda-forge
fonts-conda-forge         1                             0    conda-forge
fonttools                 4.48.1          py310h2372a71_0    conda-forge
freeglut                  3.2.2                hac7e632_2    conda-forge
freetype                  2.12.1               h267a509_2    conda-forge
freexl                    2.0.0                h743c826_0    conda-forge
fribidi                   1.0.10               h36c2ea0_0    conda-forge
frozenlist                1.4.1           py310h2372a71_0    conda-forge
fsspec                    2024.2.0           pyhca7485f_0    conda-forge
future                    0.18.3             pyhd8ed1ab_0    conda-forge
gdal                      3.8.3           py310he073c5f_2    conda-forge
geopandas                 0.14.3             pyhd8ed1ab_0    conda-forge
geopandas-base            0.14.3             pyha770c72_0    conda-forge
geos                      3.12.1               h59595ed_0    conda-forge
geotiff                   1.7.1               h6b2125f_15    conda-forge
gettext                   0.21.1               h27087fc_0    conda-forge
gflags                    2.2.2             he1b5a44_1004    conda-forge
giflib                    5.2.1                h0b41bf4_3    conda-forge
glib                      2.78.3               hfc55251_0    conda-forge
glib-tools                2.78.3               hfc55251_0    conda-forge
glog                      0.6.0                h6f12383_0    conda-forge
gmp                       6.3.0                h59595ed_0    conda-forge
gnutls                    3.7.9                hb077bed_0    conda-forge
graphite2                 1.3.13            h58526e2_1001    conda-forge
grdwindinversion          0.2.3.post6              pypi_0    pypi
gst-plugins-base          1.22.9               h8e1006c_0    conda-forge
gstreamer                 1.22.9               h98fc4e7_0    conda-forge
harfbuzz                  8.3.0                h3d44ed6_0    conda-forge
hdf4                      4.2.15               h2a13503_7    conda-forge
hdf5                      1.14.3          nompi_h4f84152_100    conda-forge
icu                       73.2                 h59595ed_0    conda-forge
idna                      3.6                pyhd8ed1ab_0    conda-forge
importlib-metadata        7.0.1              pyha770c72_0    conda-forge
importlib-resources       6.1.1              pyhd8ed1ab_0    conda-forge
importlib_metadata        7.0.1                hd8ed1ab_0    conda-forge
importlib_resources       6.1.1              pyhd8ed1ab_0    conda-forge
jasper                    4.2.0                he6dfbbe_0    conda-forge
jinja2                    3.1.3              pyhd8ed1ab_0    conda-forge
jmespath                  1.0.1              pyhd8ed1ab_0    conda-forge
joblib                    1.3.2              pyhd8ed1ab_0    conda-forge
json-c                    0.17                 h7ab15ed_0    conda-forge
kealib                    1.5.3                h2f55d51_0    conda-forge
keyutils                  1.6.1                h166bdaf_0    conda-forge
kiwisolver                1.4.5           py310hd41b1e2_1    conda-forge
krb5                      1.21.2               h659d440_0    conda-forge
lame                      3.100             h166bdaf_1003    conda-forge
lcms2                     2.16                 hb7c19ff_0    conda-forge
ld_impl_linux-64          2.40                 h41732ed_0    conda-forge
lerc                      4.0.0                h27087fc_0    conda-forge
libabseil                 20230802.1      cxx17_h59595ed_0    conda-forge
libaec                    1.1.2                h59595ed_1    conda-forge
libarchive                3.7.2                h2aa1ff5_1    conda-forge
libarrow                  15.0.0           he2c5238_2_cpu    conda-forge
libarrow-acero            15.0.0           h59595ed_2_cpu    conda-forge
libarrow-dataset          15.0.0           h59595ed_2_cpu    conda-forge
libarrow-flight           15.0.0           hdc44a87_2_cpu    conda-forge
libarrow-flight-sql       15.0.0           hfbc7f12_2_cpu    conda-forge
libarrow-gandiva          15.0.0           hacb8726_2_cpu    conda-forge
libarrow-substrait        15.0.0           hfbc7f12_2_cpu    conda-forge
libass                    0.17.1               h8fe9dca_1    conda-forge
libblas                   3.9.0           21_linux64_openblas    conda-forge
libboost-headers          1.84.0               ha770c72_0    conda-forge
libbrotlicommon           1.1.0                hd590300_1    conda-forge
libbrotlidec              1.1.0                hd590300_1    conda-forge
libbrotlienc              1.1.0                hd590300_1    conda-forge
libcap                    2.69                 h0f662aa_0    conda-forge
libcblas                  3.9.0           21_linux64_openblas    conda-forge
libclang                  15.0.7          default_hb11cfb5_4    conda-forge
libclang13                15.0.7          default_ha2b6cf4_4    conda-forge
libcrc32c                 1.1.2                h9c3ff4c_0    conda-forge
libcups                   2.3.3                h4637d8d_4    conda-forge
libcurl                   8.5.0                hca28451_0    conda-forge
libdeflate                1.19                 hd590300_0    conda-forge
libdrm                    2.4.114              h166bdaf_0    conda-forge
libedit                   3.1.20191231         he28a2e2_2    conda-forge
libev                     4.33                 hd590300_2    conda-forge
libevent                  2.1.12               hf998b51_1    conda-forge
libexpat                  2.5.0                hcb278e6_1    conda-forge
libffi                    3.4.2                h7f98852_5    conda-forge
libflac                   1.4.3                h59595ed_0    conda-forge
libgcc-ng                 13.2.0               h807b86a_5    conda-forge
libgcrypt                 1.10.3               hd590300_0    conda-forge
libgdal                   3.8.3                h80d7d79_2    conda-forge
libgfortran-ng            13.2.0               h69a702a_5    conda-forge
libgfortran5              13.2.0               ha4646dd_5    conda-forge
libglib                   2.78.3               h783c2da_0    conda-forge
libglu                    9.0.0             hac7e632_1003    conda-forge
libgomp                   13.2.0               h807b86a_5    conda-forge
libgoogle-cloud           2.12.0               hef10d8f_5    conda-forge
libgpg-error              1.47                 h71f35ed_0    conda-forge
libgrpc                   1.60.0               h74775cd_1    conda-forge
libhwloc                  2.9.3           default_h554bfaf_1009    conda-forge
libiconv                  1.17                 hd590300_2    conda-forge
libidn2                   2.3.7                hd590300_0    conda-forge
libjpeg-turbo             3.0.0                hd590300_1    conda-forge
libkml                    1.3.0             h01aab08_1018    conda-forge
liblapack                 3.9.0           21_linux64_openblas    conda-forge
liblapacke                3.9.0           21_linux64_openblas    conda-forge
libllvm14                 14.0.6               hcd5def8_4    conda-forge
libllvm15                 15.0.7               hb3ce162_4    conda-forge
libnetcdf                 4.9.2           nompi_h9612171_113    conda-forge
libnghttp2                1.58.0               h47da74e_1    conda-forge
libnl                     3.9.0                hd590300_0    conda-forge
libnsl                    2.0.1                hd590300_0    conda-forge
libnuma                   2.0.16               h0b41bf4_1    conda-forge
libogg                    1.3.4                h7f98852_1    conda-forge
libopenblas               0.3.26          pthreads_h413a1c8_0    conda-forge
libopencv                 4.9.0           py310hc29bc96_7    conda-forge
libopenvino               2023.3.0             h2e90f83_0    conda-forge
libopenvino-auto-batch-plugin 2023.3.0             hd5fc58b_0    conda-forge
libopenvino-auto-plugin   2023.3.0             hd5fc58b_0    conda-forge
libopenvino-hetero-plugin 2023.3.0             h3ecfda7_0    conda-forge
libopenvino-intel-cpu-plugin 2023.3.0             h2e90f83_0    conda-forge
libopenvino-intel-gpu-plugin 2023.3.0             h2e90f83_0    conda-forge
libopenvino-ir-frontend   2023.3.0             h3ecfda7_0    conda-forge
libopenvino-onnx-frontend 2023.3.0             hfbc7f12_0    conda-forge
libopenvino-paddle-frontend 2023.3.0             hfbc7f12_0    conda-forge
libopenvino-pytorch-frontend 2023.3.0             h59595ed_0    conda-forge
libopenvino-tensorflow-frontend 2023.3.0             h0bff32c_0    conda-forge
libopenvino-tensorflow-lite-frontend 2023.3.0             h59595ed_0    conda-forge
libopus                   1.3.1                h7f98852_1    conda-forge
libparquet                15.0.0           h352af49_2_cpu    conda-forge
libpciaccess              0.17                 h166bdaf_0    conda-forge
libpng                    1.6.42               h2797004_0    conda-forge
libpq                     16.2                 h33b98f1_0    conda-forge
libprotobuf               4.25.1               hf27288f_1    conda-forge
libre2-11                 2023.06.02           h7a70373_0    conda-forge
librttopo                 1.1.0               h8917695_15    conda-forge
libsndfile                1.2.2                hc60ed4a_1    conda-forge
libspatialindex           1.9.3                h9c3ff4c_4    conda-forge
libspatialite             5.1.0                h7bd4643_4    conda-forge
libsqlite                 3.45.1               h2797004_0    conda-forge
libssh2                   1.11.0               h0841786_0    conda-forge
libstdcxx-ng              13.2.0               h7e041cc_5    conda-forge
libsystemd0               255                  h3516f8a_0    conda-forge
libtasn1                  4.19.0               h166bdaf_0    conda-forge
libthrift                 0.19.0               hb90f79a_1    conda-forge
libtiff                   4.6.0                ha9c0a0a_2    conda-forge
libunistring              0.9.10               h7f98852_0    conda-forge
libutf8proc               2.8.0                h166bdaf_0    conda-forge
libuuid                   2.38.1               h0b41bf4_0    conda-forge
libva                     2.20.0               hd590300_0    conda-forge
libvorbis                 1.3.7                h9c3ff4c_0    conda-forge
libvpx                    1.13.1               h59595ed_0    conda-forge
libwebp-base              1.3.2                hd590300_0    conda-forge
libxcb                    1.15                 h0b41bf4_0    conda-forge
libxcrypt                 4.4.36               hd590300_1    conda-forge
libxkbcommon              1.6.0                hd429924_1    conda-forge
libxml2                   2.12.5               h232c23b_0    conda-forge
libxslt                   1.1.39               h76b75d6_0    conda-forge
libzip                    1.10.1               h2629f0a_3    conda-forge
libzlib                   1.2.13               hd590300_5    conda-forge
llvmlite                  0.42.0          py310h1b8f574_1    conda-forge
locket                    1.0.0              pyhd8ed1ab_0    conda-forge
lxml                      5.1.0           py310hcfd0673_0    conda-forge
lz4                       4.3.3           py310h350c4a5_0    conda-forge
lz4-c                     1.9.4                hcb278e6_0    conda-forge
lzo                       2.10              h516909a_1000    conda-forge
mapclassify               2.6.1              pyhd8ed1ab_0    conda-forge
markdown-it-py            3.0.0              pyhd8ed1ab_0    conda-forge
markupsafe                2.1.5           py310h2372a71_0    conda-forge
matplotlib-base           3.8.2           py310h62c0568_0    conda-forge
mdurl                     0.1.2              pyhd8ed1ab_0    conda-forge
minizip                   4.0.4                h0ab5242_0    conda-forge
mpg123                    1.32.4               h59595ed_0    conda-forge
msgpack-python            1.0.7           py310hd41b1e2_0    conda-forge
multidict                 6.0.5           py310h2372a71_0    conda-forge
munkres                   1.1.4              pyh9f0ad1d_0    conda-forge
mysql-common              8.0.33               hf1915f5_6    conda-forge
mysql-libs                8.0.33               hca2cd23_6    conda-forge
ncurses                   6.4                  h59595ed_2    conda-forge
netcdf4                   1.6.5           nompi_py310hba70d50_100    conda-forge
nettle                    3.9.1                h7ab15ed_0    conda-forge
networkx                  3.2.1              pyhd8ed1ab_0    conda-forge
nspr                      4.35                 h27087fc_0    conda-forge
nss                       3.97                 h1d7d5a4_0    conda-forge
numba                     0.59.0          py310h7dc5dd1_1    conda-forge
numpy                     1.26.4          py310hb13e2d6_0    conda-forge
ocl-icd                   2.3.1                h7f98852_0    conda-forge
ocl-icd-system            1.0.0                         1    conda-forge
opencv                    4.9.0           py310h1bdf985_7    conda-forge
openh264                  2.4.1                h59595ed_0    conda-forge
openjpeg                  2.5.0                h488ebb8_3    conda-forge
openssl                   3.2.1                hd590300_0    conda-forge
orc                       1.9.2                h7829240_1    conda-forge
p11-kit                   0.24.1               hc5aa10d_0    conda-forge
packaging                 23.2               pyhd8ed1ab_0    conda-forge
pandas                    2.2.0           py310hcc13569_0    conda-forge
partd                     1.4.1              pyhd8ed1ab_0    conda-forge
pcre2                     10.42                hcad00b1_0    conda-forge
pillow                    10.2.0          py310h01dd4db_0    conda-forge
pip                       24.0               pyhd8ed1ab_0    conda-forge
pixman                    0.43.2               h59595ed_0    conda-forge
poppler                   24.02.0              h590f24d_0    conda-forge
poppler-data              0.4.12               hd8ed1ab_0    conda-forge
postgresql                16.2                 h7387d8b_0    conda-forge
proj                      9.3.1                h1d62c97_0    conda-forge
psutil                    5.9.8           py310h2372a71_0    conda-forge
pthread-stubs             0.4               h36c2ea0_1001    conda-forge
pugixml                   1.14                 h59595ed_0    conda-forge
pulseaudio-client         16.1                 hb77b528_5    conda-forge
py-opencv                 4.9.0           py310h5f968ed_7    conda-forge
pyarrow                   15.0.0          py310hf9e7431_2_cpu    conda-forge
pyarrow-hotfix            0.6                pyhd8ed1ab_0    conda-forge
pygments                  2.17.2             pyhd8ed1ab_0    conda-forge
pyparsing                 3.1.1              pyhd8ed1ab_0    conda-forge
pyproj                    3.6.1           py310hd5c30f3_5    conda-forge
pyshp                     2.3.1              pyhd8ed1ab_0    conda-forge
pysocks                   1.7.1              pyha2e5f31_6    conda-forge
python                    3.10.13         hd12c33a_1_cpython    conda-forge
python-dateutil           2.8.2              pyhd8ed1ab_0    conda-forge
python-tzdata             2023.4             pyhd8ed1ab_0    conda-forge
python_abi                3.10                    4_cp310    conda-forge
pytz                      2024.1             pyhd8ed1ab_0    conda-forge
pyyaml                    6.0.1           py310h2372a71_1    conda-forge
qt-main                   5.15.8              h450f30e_18    conda-forge
rasterio                  1.3.9           py310hedc89e0_2    conda-forge
rdma-core                 50.0                 hd3aeb46_0    conda-forge
re2                       2023.06.02           h2873b5e_0    conda-forge
readline                  8.2                  h8228510_1    conda-forge
regex                     2023.12.25      py310h2372a71_0    conda-forge
requests                  2.31.0             pyhd8ed1ab_0    conda-forge
rich                      13.7.0             pyhd8ed1ab_0    conda-forge
rioxarray                 0.15.1             pyhd8ed1ab_0    conda-forge
rtree                     1.2.0           py310hbdcdc62_0    conda-forge
s2n                       1.4.3                h06160fa_0    conda-forge
scikit-learn              1.4.0           py310h1fdf081_0    conda-forge
scipy                     1.12.0          py310hb13e2d6_2    conda-forge
setuptools                69.0.3             pyhd8ed1ab_0    conda-forge
shapely                   2.0.2           py310hc3e127f_1    conda-forge
shellingham               1.5.4              pyhd8ed1ab_0    conda-forge
six                       1.16.0             pyh6c4a22f_0    conda-forge
snappy                    1.1.10               h9fff704_0    conda-forge
snuggs                    1.4.7                      py_0    conda-forge
sortedcontainers          2.4.0              pyhd8ed1ab_0    conda-forge
sqlite                    3.45.1               h2c6b66d_0    conda-forge
svt-av1                   1.8.0                h59595ed_0    conda-forge
tbb                       2021.11.0            h00ab1b0_1    conda-forge
tblib                     3.0.0              pyhd8ed1ab_0    conda-forge
threadpoolctl             3.2.0              pyha21a80b_0    conda-forge
tiledb                    2.19.1               h4386cac_0    conda-forge
tk                        8.6.13          noxft_h4845f30_101    conda-forge
toolz                     0.12.1             pyhd8ed1ab_0    conda-forge
tornado                   6.3.3           py310h2372a71_1    conda-forge
typer                     0.9.0              pyhd8ed1ab_0    conda-forge
typing-extensions         4.9.0                hd8ed1ab_0    conda-forge
typing_extensions         4.9.0              pyha770c72_0    conda-forge
tzcode                    2024a                h3f72095_0    conda-forge
tzdata                    2024a                h0c530f3_0    conda-forge
ucx                       1.15.0               h75e419f_3    conda-forge
unicodedata2              15.1.0          py310h2372a71_0    conda-forge
uriparser                 0.9.7                hcb278e6_1    conda-forge
urllib3                   2.2.0              pyhd8ed1ab_0    conda-forge
wheel                     0.42.0             pyhd8ed1ab_0    conda-forge
x264                      1!164.3095           h166bdaf_2    conda-forge
x265                      3.5                  h924138e_3    conda-forge
xarray                    2024.1.1           pyhd8ed1ab_0    conda-forge
xarray-datatree           0.0.14             pyhd8ed1ab_0    conda-forge
xarray-safe-rcm           2023.6.1                 pypi_0    pypi
xarray-safe-s1            2024.1.9           pyhd8ed1ab_0    conda-forge
xcb-util                  0.4.0                hd590300_1    conda-forge
xcb-util-image            0.4.0                h8ee46fc_1    conda-forge
xcb-util-keysyms          0.4.0                h8ee46fc_1    conda-forge
xcb-util-renderutil       0.3.9                hd590300_1    conda-forge
xcb-util-wm               0.4.1                h8ee46fc_1    conda-forge
xerces-c                  3.2.5                hac6953d_0    conda-forge
xkeyboard-config          2.41                 hd590300_0    conda-forge
xmlschema                 3.0.1                    pypi_0    pypi
xmltodict                 0.13.0             pyhd8ed1ab_0    conda-forge
xorg-fixesproto           5.0               h7f98852_1002    conda-forge
xorg-inputproto           2.3.2             h7f98852_1002    conda-forge
xorg-kbproto              1.0.7             h7f98852_1002    conda-forge
xorg-libice               1.1.1                hd590300_0    conda-forge
xorg-libsm                1.2.4                h7391055_0    conda-forge
xorg-libx11               1.8.7                h8ee46fc_0    conda-forge
xorg-libxau               1.0.11               hd590300_0    conda-forge
xorg-libxdmcp             1.1.3                h7f98852_0    conda-forge
xorg-libxext              1.3.4                h0b41bf4_2    conda-forge
xorg-libxfixes            5.0.3             h7f98852_1004    conda-forge
xorg-libxi                1.7.10               h7f98852_0    conda-forge
xorg-libxrender           0.9.11               hd590300_0    conda-forge
xorg-renderproto          0.11.1            h7f98852_1002    conda-forge
xorg-xextproto            7.3.0             h0b41bf4_1003    conda-forge
xorg-xf86vidmodeproto     2.3.1             h7f98852_1002    conda-forge
xorg-xproto               7.0.31            h7f98852_1007    conda-forge
xradarsat2                2023.6.13          pyhd8ed1ab_0    conda-forge
xrft                      1.0.1              pyhd8ed1ab_0    conda-forge
xsar                      2024.2.1           pyhd8ed1ab_0    conda-forge
xsarsea                   0.9             py310hff52083_1    conda-forge
xyzservices               2023.10.1          pyhd8ed1ab_0    conda-forge
xz                        5.2.6                h166bdaf_0    conda-forge
yaml                      0.2.5                h7f98852_2    conda-forge
yarl                      1.9.4           py310h2372a71_0    conda-forge
zict                      3.0.0              pyhd8ed1ab_0    conda-forge
zipp                      3.17.0             pyhd8ed1ab_0    conda-forge
zlib                      1.2.13               hd590300_5    conda-forge
zstd                      1.5.5                hfc55251_0    conda-forge

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.