From d7b3c1f94e5f34b9cb5a5d22ede530cf66babb02 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 21 Jun 2023 12:45:45 +0100 Subject: [PATCH 01/34] [Condalock] Update Linux condalock file (#3237) Co-authored-by: valeriupredoi --- conda-linux-64.lock | 160 ++++++++++++++++++++++---------------------- 1 file changed, 80 insertions(+), 80 deletions(-) diff --git a/conda-linux-64.lock b/conda-linux-64.lock index e8915dafdc..c41403d662 100644 --- a/conda-linux-64.lock +++ b/conda-linux-64.lock @@ -1,6 +1,6 @@ # Generated by conda-lock. # platform: linux-64 -# input_hash: cdee46d10f8bc1b75620e0bfb5babf885dd0f4e4fc49bd6d7ac9f226a3f0c8af +# input_hash: 7d637eea13b048450933417ec5ec069834faf2d132e6ccfa960adbe351ac0b19 @EXPLICIT https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2#d7c89558ba9fa0495403155b64376d81 https://conda.anaconda.org/conda-forge/linux-64/_py-xgboost-mutex-2.0-gpu_0.tar.bz2#7702188077361f43a4d61e64c694f850 @@ -30,13 +30,13 @@ https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.40-hf60 https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2#fee5683a3f04bd15cbd8318b096a27ab https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-13.1.0-he5830b7_0.conda#cd93f779ff018dd85c7544c015c9db3c https://conda.anaconda.org/conda-forge/linux-64/aom-3.5.0-h27087fc_0.tar.bz2#a08150fd2298460cd1fcccf626305642 -https://conda.anaconda.org/conda-forge/linux-64/aws-c-common-0.8.19-hd590300_0.conda#81bd50906818d08c2f98d6d9f94cbd02 +https://conda.anaconda.org/conda-forge/linux-64/aws-c-common-0.8.20-hd590300_0.conda#8717fccceb6a9394d86f37f3b663b4e9 https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h7f98852_4.tar.bz2#a1fd65c7ccbf10880423d82bca54eb54 https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.19.1-hd590300_0.conda#e8c18d865be43e2fb3f7a145b6adf1f5 https://conda.anaconda.org/conda-forge/linux-64/charls-2.4.2-h59595ed_0.conda#4336bd67920dd504cd8c6761d6a99645 https://conda.anaconda.org/conda-forge/linux-64/cudatoolkit-11.1.1-ha002fc5_11.conda#2b11133c35a4899a29fc5109d8f95d2e https://conda.anaconda.org/conda-forge/linux-64/dav1d-1.2.1-hd590300_0.conda#418c6ca5929a611cbd69204907a83995 -https://conda.anaconda.org/conda-forge/linux-64/fftw-3.3.10-nompi_hc118613_107.conda#28b2b46b350ddb6a01d061392f75af54 +https://conda.anaconda.org/conda-forge/linux-64/fftw-3.3.10-nompi_hc118613_108.conda#6fa90698000b05dfe8ce6515794fe71a https://conda.anaconda.org/conda-forge/linux-64/freexl-1.0.6-h166bdaf_1.tar.bz2#897e772a157faf3330d72dd291486f62 https://conda.anaconda.org/conda-forge/linux-64/fribidi-1.0.10-h36c2ea0_0.tar.bz2#ac7bc6a654f8f41b352b38f4051135f8 https://conda.anaconda.org/conda-forge/linux-64/geos-3.11.2-hcb278e6_0.conda#3b8e364995e3575e57960d29c1e5ab14 @@ -73,14 +73,14 @@ https://conda.anaconda.org/conda-forge/linux-64/libunwind-1.6.2-h9c3ff4c_0.tar.b https://conda.anaconda.org/conda-forge/linux-64/libutf8proc-2.8.0-h166bdaf_0.tar.bz2#ede4266dc02e875fe1ea77b25dd43747 https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda#40b61aab5c7ba9ff276c41cfffe6b80b https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.3.0-h0b41bf4_0.conda#0d4a7508d8c6c65314f2b9c1f56ad408 -https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.2.13-h166bdaf_4.tar.bz2#f3f9de449d32ca9b9c66a22863c96f41 +https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.2.13-hd590300_5.conda#f36c115f1ee199da648e0597ec2047ad https://conda.anaconda.org/conda-forge/linux-64/libzopfli-1.0.3-h9c3ff4c_0.tar.bz2#c66fe2d123249af7651ebde8984c51c2 https://conda.anaconda.org/conda-forge/linux-64/lz4-c-1.9.4-hcb278e6_0.conda#318b08df404f9c9be5712aaa5a6f0bb0 https://conda.anaconda.org/conda-forge/linux-64/lzo-2.10-h516909a_1000.tar.bz2#bb14fcb13341b81d5eb386423b9d2bac https://conda.anaconda.org/conda-forge/linux-64/make-4.3-hd18ef5c_1.tar.bz2#4049ebfd3190b580dffe76daed26155a https://conda.anaconda.org/conda-forge/linux-64/mbedtls-3.3.0-hcb278e6_0.conda#cc1213f464c357b647cc5dde5cfca881 https://conda.anaconda.org/conda-forge/linux-64/metis-5.1.0-h58526e2_1006.tar.bz2#d099b812378b1e133c12e3b75167d83a -https://conda.anaconda.org/conda-forge/linux-64/nccl-2.18.1.1-h12f7317_0.conda#27a927b408c246762a9d891a3e6e1c2c +https://conda.anaconda.org/conda-forge/linux-64/nccl-2.18.3.1-h12f7317_0.conda#c0041b39fc72c1d12139b45363c8a510 https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.4-hcb278e6_0.conda#681105bccc2a3f7f1a837d47d39c9179 https://conda.anaconda.org/conda-forge/linux-64/nspr-4.35-h27087fc_0.conda#da0ec11a6454ae19bff5b02ed881a2b1 https://conda.anaconda.org/conda-forge/linux-64/openlibm-0.8.1-h7f98852_0.tar.bz2#ba0c56761f2380babaa783b2a37b4d08 @@ -108,10 +108,10 @@ https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2#2161 https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h7f98852_2.tar.bz2#4cb3ad778ec2d5a7acbdf254eb1c42ae https://conda.anaconda.org/conda-forge/linux-64/zfp-1.0.0-h27087fc_3.tar.bz2#0428af0510c3fafedf1c66b43102a34b https://conda.anaconda.org/conda-forge/linux-64/zlib-ng-2.0.7-h0b41bf4_0.conda#49e8329110001f04923fe7e864990b0c -https://conda.anaconda.org/conda-forge/linux-64/aws-c-cal-0.5.26-hf677bf3_1.conda#7d00f2b22493e28400fdbea8dc110790 -https://conda.anaconda.org/conda-forge/linux-64/aws-c-compression-0.2.16-hbad4bc6_7.conda#d58359b64c6d1256c07eeaee753159e3 -https://conda.anaconda.org/conda-forge/linux-64/aws-c-sdkutils-0.1.9-hbad4bc6_2.conda#eee3831810e132b6caf45f03c3428363 -https://conda.anaconda.org/conda-forge/linux-64/aws-checksums-0.1.14-hbad4bc6_7.conda#916c2a86bf786aab811a60990f7538ed +https://conda.anaconda.org/conda-forge/linux-64/aws-c-cal-0.5.27-hf85dbcb_0.conda#d067fbf673901a6e0fd323da1eeafe10 +https://conda.anaconda.org/conda-forge/linux-64/aws-c-compression-0.2.17-h4b87b72_0.conda#183be3df566bc1c143d5d7e0fc60ed8b +https://conda.anaconda.org/conda-forge/linux-64/aws-c-sdkutils-0.1.10-h4b87b72_0.conda#613b0910286d4feba563ad657ac93372 +https://conda.anaconda.org/conda-forge/linux-64/aws-checksums-0.1.16-h4b87b72_0.conda#c2a56432ce6009419442dd78e4d63829 https://conda.anaconda.org/conda-forge/linux-64/expat-2.5.0-hcb278e6_1.conda#8b9b5aca60558d02ddaa09d599e55920 https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-13.1.0-hc4be1a9_0.conda#99d1a8a8ee1665ee9435f8d160df69fe https://conda.anaconda.org/conda-forge/linux-64/glog-0.6.0-h6f12383_0.tar.bz2#b31f3565cb84435407594e548a2fb7b2 @@ -131,23 +131,22 @@ https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.42.0-h2797004_0.cond https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.0-h0841786_0.conda#1f5a58e686b13bcfde88b93f547d23fe https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.15-h0b41bf4_0.conda#33277193f5b92bad9fdd230eb700929c https://conda.anaconda.org/conda-forge/linux-64/libxgboost-1.7.4-cuda111ha8527ea_2.conda#c3d7574f9f6f4066c05eb935f3d96672 -https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.10.4-hfdac1af_0.conda#241845899caff54ac1d2b3102ad988cf +https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.11.4-h0d562d8_0.conda#e46fad17d5fb57316b956f88dca765e4 https://conda.anaconda.org/conda-forge/linux-64/libzip-1.9.2-hc929e4a_1.tar.bz2#5b122b50e738c4be5c3f2899f010d7cf https://conda.anaconda.org/conda-forge/linux-64/mpfr-4.2.0-hb012696_0.conda#14d87bdff2cbd3b1179a29fb316ed743 https://conda.anaconda.org/conda-forge/linux-64/openblas-ilp64-0.3.23-pthreads_h3d04fff_0.conda#9787e8492f0a51a6b0498dc86f3864f9 -https://conda.anaconda.org/conda-forge/linux-64/pandoc-2.19.2-h32600fe_2.conda#326f46f36d15c44cff5f81d505cb717f https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.40-hc3806b6_0.tar.bz2#69e2c796349cd9b273890bee0febfe1b https://conda.anaconda.org/conda-forge/linux-64/perl-5.32.1-2_h7f98852_perl5.tar.bz2#09ba115862623f00962e9809ea248f1a https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda#47d31b792659ce70f470b5c82fdfb7a4 -https://conda.anaconda.org/conda-forge/linux-64/s2n-1.3.44-h06160fa_0.conda#968cb0fca1249fe9778876201dd2b828 +https://conda.anaconda.org/conda-forge/linux-64/s2n-1.3.45-h06160fa_0.conda#5b78d77397d75049c433eb7b17a9bca8 https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.12-h27826a3_0.tar.bz2#5b8c42eb62e9fc961af70bdd6a26e168 https://conda.anaconda.org/conda-forge/linux-64/ucx-1.14.1-h78ab4a6_2.conda#afb7b0b482fe84c26a8940876b41c2dc https://conda.anaconda.org/conda-forge/linux-64/xorg-fixesproto-5.0-h7f98852_1002.tar.bz2#65ad6e1eb4aed2b0611855aff05e04f6 https://conda.anaconda.org/conda-forge/linux-64/xorg-libsm-1.2.3-hd9c2040_1000.tar.bz2#9e856f78d5c80d5a78f61e72d1d473a3 https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.4-h9c3ff4c_1.tar.bz2#21743a8d2ea0c8cfbbf8fe489b0347df -https://conda.anaconda.org/conda-forge/linux-64/zlib-1.2.13-h166bdaf_4.tar.bz2#4b11e365c0275b808be78b30f904e295 +https://conda.anaconda.org/conda-forge/linux-64/zlib-1.2.13-hd590300_5.conda#68c34ec6149623be41a1933ab996a209 https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.2-h3eb15da_6.conda#6b63daed8feeca47be78f323e793d555 -https://conda.anaconda.org/conda-forge/linux-64/aws-c-io-0.13.21-h9fef7b8_5.conda#0e64949e8f740ceeb9f1d6255f314ab2 +https://conda.anaconda.org/conda-forge/linux-64/aws-c-io-0.13.26-h0d05201_0.conda#2b8feff4f71c70e9ca0f7ac66b464e8a https://conda.anaconda.org/conda-forge/linux-64/blosc-1.21.4-h0f2a231_0.conda#876286b5941933a0f558777e57d883cc https://conda.anaconda.org/conda-forge/linux-64/boost-cpp-1.78.0-h6582d0a_3.conda#d3c3c7698d0b878aab1b86db95407c8e https://conda.anaconda.org/conda-forge/linux-64/brotli-bin-1.0.9-h166bdaf_8.tar.bz2#e5613f2bc717e9945840ff474419b8e4 @@ -158,24 +157,25 @@ https://conda.anaconda.org/conda-forge/linux-64/gfortran_impl_linux-64-13.1.0-hd https://conda.anaconda.org/conda-forge/linux-64/gxx_impl_linux-64-13.1.0-hc4be1a9_0.conda#e6591b3c81fc5fb83e342b20a2506e80 https://conda.anaconda.org/conda-forge/linux-64/hdfeos2-2.20-hebf79cf_1003.conda#23bb57b64a629bc3b33379beece7f0d7 https://conda.anaconda.org/conda-forge/linux-64/krb5-1.20.1-h81ceb04_0.conda#89a41adce7106749573d883b2f657d78 -https://conda.anaconda.org/conda-forge/linux-64/libarchive-3.6.2-h3d51595_0.conda#9f915b4adeb9dcfd450b9ad238e2db4c +https://conda.anaconda.org/conda-forge/linux-64/libarchive-3.6.2-h039dbb9_1.conda#29cf970521d30d113f3425b84cb250f6 https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-17_linux64_openblas.conda#7ef0969b00fe3d6eef56a8151d3afb29 https://conda.anaconda.org/conda-forge/linux-64/libgit2-1.5.1-h1f77430_0.conda#16802fd0c80290248ea79a570bd83b95 https://conda.anaconda.org/conda-forge/linux-64/libglib-2.76.3-hebfc3b9_0.conda#a64f11b244b2c112cd3fa1cbe9493999 https://conda.anaconda.org/conda-forge/linux-64/libglu-9.0.0-hac7e632_1002.conda#4c4dce87e96b321308f81ba2c10d2897 https://conda.anaconda.org/conda-forge/linux-64/libgrpc-1.54.2-hb20ce57_2.conda#2d6c2c90dd7805816bd78d80977b61d6 -https://conda.anaconda.org/conda-forge/linux-64/libhwloc-2.9.1-hd6dc26d_0.conda#a3ede1b8e47f993ff1fe3908b23bb307 +https://conda.anaconda.org/conda-forge/linux-64/libhwloc-2.9.1-nocuda_h7313eea_6.conda#cd72a08ef4e84dea4c67edde33eb3191 https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-17_linux64_openblas.conda#a2103882c46492e26500fcb56c03de8b https://conda.anaconda.org/conda-forge/linux-64/libthrift-0.18.1-h8fd135c_2.conda#bbf65f7688512872f063810623b755dc -https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.5.0-ha587672_6.conda#4e5ee4b062c21519efbee7e2ae608748 -https://conda.anaconda.org/conda-forge/linux-64/libxslt-1.1.37-h873f0b0_0.tar.bz2#ed0d77d947ddeb974892de8df7224d12 +https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.5.1-h8b53f26_0.conda#8ad377fb60abab446a9f02c62b3c2190 +https://conda.anaconda.org/conda-forge/linux-64/libxslt-1.1.37-h0054252_1.conda#f27960e8873abb5476e96ef33bdbdccd https://conda.anaconda.org/conda-forge/linux-64/nss-3.89-he45b914_0.conda#2745719a58eeaab6657256a3f142f099 -https://conda.anaconda.org/conda-forge/linux-64/orc-1.8.3-h2f23424_1.conda#bf63c66993744a1d4b59a6cfdb59524e +https://conda.anaconda.org/conda-forge/linux-64/orc-1.8.4-h2f23424_0.conda#4bb92585a250e67d49b46c073d29f9dd +https://conda.anaconda.org/conda-forge/linux-64/pandoc-3.1.3-h32600fe_0.conda#8287aeb8462e2d4b235eff788e75919d https://conda.anaconda.org/conda-forge/linux-64/python-3.11.4-hab00c5b_0_cpython.conda#1c628861a2a126b9fc9363ca1b7d014e https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.42.0-h2c6b66d_0.conda#1192f6ec654a5bc4ee1d64bdc4a3e5cc https://conda.anaconda.org/conda-forge/linux-64/tktable-2.10-hb7b940f_3.tar.bz2#ea4d0879e40211fa26f38d8986db1bbe https://conda.anaconda.org/conda-forge/linux-64/udunits2-2.2.28-hc3e0081_0.tar.bz2#d4c341e0379c31e9e781d4f204726867 -https://conda.anaconda.org/conda-forge/linux-64/xorg-libx11-1.8.5-h8ee46fc_0.conda#742d9cd4a7da3ac6345f986e5da3b18d +https://conda.anaconda.org/conda-forge/linux-64/xorg-libx11-1.8.6-h8ee46fc_0.conda#7590b76c3d11d21caa44f3fc38ac584a https://conda.anaconda.org/conda-forge/noarch/affine-2.4.0-pyhd8ed1ab_0.conda#ae5f4ad87126c55ba3f690ef07f81d64 https://conda.anaconda.org/conda-forge/noarch/alabaster-0.7.13-pyhd8ed1ab_0.conda#06006184e203b61d3525f90de394471e https://conda.anaconda.org/conda-forge/linux-64/antlr-python-runtime-4.7.2-py311h38be061_1003.tar.bz2#0ab8f8f0cae99343907fe68cda11baea @@ -183,8 +183,8 @@ https://conda.anaconda.org/conda-forge/linux-64/arpack-3.7.0-hdefa2d7_2.tar.bz2# https://conda.anaconda.org/conda-forge/noarch/asciitree-0.3.3-py_2.tar.bz2#c0481c9de49f040272556e2cedf42816 https://conda.anaconda.org/conda-forge/linux-64/atk-1.0-2.38.0-hd4edc92_1.tar.bz2#6c72ec3e660a51736913ef6ea68c454b https://conda.anaconda.org/conda-forge/noarch/attrs-23.1.0-pyh71513ae_1.conda#3edfead7cedd1ab4400a6c588f3e75f8 -https://conda.anaconda.org/conda-forge/linux-64/aws-c-event-stream-0.2.20-hb4b372c_7.conda#7eb8e72640ac21ce4e7d26e873a21cbe -https://conda.anaconda.org/conda-forge/linux-64/aws-c-http-0.7.7-h2632f9a_4.conda#f4cd59b8e2ac740faded0f75aa965a71 +https://conda.anaconda.org/conda-forge/linux-64/aws-c-event-stream-0.3.0-hc5de78f_6.conda#11a833cfa28e5132331443fd2e4e4b30 +https://conda.anaconda.org/conda-forge/linux-64/aws-c-http-0.7.8-h412fb1b_4.conda#ab2cf24045e164be40b4f50f8045f31d https://conda.anaconda.org/conda-forge/linux-64/backports.zoneinfo-0.2.1-py311h38be061_7.tar.bz2#ec62b3c5b953cb610f5e2b09cd776caf https://conda.anaconda.org/conda-forge/linux-64/brotli-1.0.9-h166bdaf_8.tar.bz2#2ff08978892a3e8b954397c461f18418 https://conda.anaconda.org/conda-forge/noarch/certifi-2023.5.7-pyhd8ed1ab_0.conda#5d1b71c942b8421285934dad1d891ebc @@ -192,7 +192,7 @@ https://conda.anaconda.org/conda-forge/noarch/cfgv-3.3.1-pyhd8ed1ab_0.tar.bz2#eb https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.1.0-pyhd8ed1ab_0.conda#7fcff9f6f123696e940bda77bd4d6551 https://conda.anaconda.org/conda-forge/noarch/click-8.1.3-unix_pyhd8ed1ab_2.tar.bz2#20e4087407c7cb04a40817114b333dbf https://conda.anaconda.org/conda-forge/noarch/cloudpickle-2.2.1-pyhd8ed1ab_0.conda#b325bfc4cff7d7f8a868f1f7ecc4ed16 -https://conda.anaconda.org/conda-forge/noarch/codespell-2.2.4-pyhd8ed1ab_0.conda#27996543252c93207e54bb35daf80998 +https://conda.anaconda.org/conda-forge/noarch/codespell-2.2.5-pyhd8ed1ab_0.conda#c73551c990f6e7e9c83cdb8bdbafdeb8 https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2#3faab06a954c2a04039983f2c4a50d99 https://conda.anaconda.org/conda-forge/noarch/config-0.5.1-pyhd8ed1ab_0.tar.bz2#97275d4898af65967b1ad57923cef770 https://conda.anaconda.org/conda-forge/noarch/configargparse-1.5.3-pyhd8ed1ab_0.tar.bz2#318b72c3c2dfca9aebdbaf258609d02d @@ -209,7 +209,7 @@ https://conda.anaconda.org/conda-forge/noarch/et_xmlfile-1.1.0-pyhd8ed1ab_0.cond https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.1.1-pyhd8ed1ab_0.conda#7312299d7a0ea4993159229b7d2dceb2 https://conda.anaconda.org/conda-forge/noarch/execnet-1.9.0-pyhd8ed1ab_0.tar.bz2#0e521f7a5e60d508b121d38b04874fb2 https://conda.anaconda.org/conda-forge/noarch/fasteners-0.17.3-pyhd8ed1ab_0.tar.bz2#348e27e78a5e39090031448c72f66d5e -https://conda.anaconda.org/conda-forge/noarch/filelock-3.12.1-pyhd8ed1ab_0.conda#1f262528bc0ca9d410b98c02d09de3ac +https://conda.anaconda.org/conda-forge/noarch/filelock-3.12.2-pyhd8ed1ab_0.conda#53522ec72e6adae42bd373ef58357230 https://conda.anaconda.org/conda-forge/noarch/findlibs-0.0.5-pyhd8ed1ab_0.conda#8f325f63020af6f7acbe2c4cb4c920db https://conda.anaconda.org/conda-forge/linux-64/fontconfig-2.14.2-h14ed4e7_0.conda#0f69b688f52ff6da70bccb7ff7001d1d https://conda.anaconda.org/conda-forge/linux-64/frozenlist-1.3.3-py311hd4cff14_0.tar.bz2#b81ebef162551d6cf909263695fd6d6b @@ -217,7 +217,7 @@ https://conda.anaconda.org/conda-forge/noarch/fsspec-2023.6.0-pyh1a96a4e_0.conda https://conda.anaconda.org/conda-forge/linux-64/gdk-pixbuf-2.42.10-h6b639ba_2.conda#ee8220db21db8094998005990418fe5b https://conda.anaconda.org/conda-forge/noarch/geographiclib-1.52-pyhd8ed1ab_0.tar.bz2#6880e7100ebae550a33ce26663316d85 https://conda.anaconda.org/conda-forge/linux-64/gsl-2.7-he838d99_0.tar.bz2#fec079ba39c9cca093bf4c00001825de -https://conda.anaconda.org/conda-forge/linux-64/gts-0.7.6-h64030ff_2.tar.bz2#112eb9b5b93f0c02e59aea4fd1967363 +https://conda.anaconda.org/conda-forge/linux-64/gts-0.7.6-h977cf35_4.conda#4d8df0b0db060d33c9a702ada998a8fe https://conda.anaconda.org/conda-forge/linux-64/humanfriendly-10.0-py311h38be061_4.tar.bz2#5c4f38a9e482f00a7bf23fe479c8ca29 https://conda.anaconda.org/conda-forge/noarch/idna-3.4-pyhd8ed1ab_0.tar.bz2#34272b248891bddccc64479f9a7fffed https://conda.anaconda.org/conda-forge/noarch/imagesize-1.4.1-pyhd8ed1ab_0.tar.bz2#7de5386c8fea29e76b303f37dde4c352 @@ -229,20 +229,20 @@ https://conda.anaconda.org/conda-forge/noarch/lazy_loader-0.2-pyhd8ed1ab_0.conda https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.15-haa2dc70_1.conda#980d8aca0bc23ca73fa8caa3e7c84c28 https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.1.2-h409715c_0.conda#50c873c9660ed116707ae15b663928d8 https://conda.anaconda.org/conda-forge/linux-64/libkml-1.3.0-h37653c0_1015.tar.bz2#37d3747dd24d604f63d2610910576e63 -https://conda.anaconda.org/conda-forge/linux-64/libpq-15.3-hbcd7760_0.conda#e945f0fd2471f9b51b32819c1ea83577 +https://conda.anaconda.org/conda-forge/linux-64/libpq-15.3-hbcd7760_1.conda#8afb2a97d256ffde95b91a6283bc598c https://conda.anaconda.org/conda-forge/linux-64/libwebp-1.3.0-hb47c5f0_0.conda#9cfd7ad6e1539ca1ad172083586b3301 https://conda.anaconda.org/conda-forge/linux-64/llvmlite-0.40.0-py311ha6695c7_0.conda#4524604af5d8545cdef802c3a4c3951d https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2#91e27ef3d05cc772ce627e51cff111c4 -https://conda.anaconda.org/conda-forge/linux-64/lxml-4.9.2-py311h14a6109_0.conda#cad902ff23dfa44e54e6daa046593a17 +https://conda.anaconda.org/conda-forge/linux-64/lxml-4.9.2-py311h1a07684_1.conda#22b4fb083a8262c0b4e135c86a2c0c99 https://conda.anaconda.org/conda-forge/linux-64/lz4-4.3.2-py311h9f220a4_0.conda#b8aad2507303e04037e8d02d8ac54217 https://conda.anaconda.org/conda-forge/linux-64/markupsafe-2.1.3-py311h459d7ec_0.conda#9904dc4adb5d547cb21e136f98cb24b0 https://conda.anaconda.org/conda-forge/noarch/mccabe-0.7.0-pyhd8ed1ab_0.tar.bz2#34fc335fc50eef0b5ea708f2b5f54e0c -https://conda.anaconda.org/conda-forge/noarch/mistune-2.0.5-pyhd8ed1ab_0.conda#61a07195cfc935f1c1901d8ecf4af441 +https://conda.anaconda.org/conda-forge/noarch/mistune-3.0.0-pyhd8ed1ab_0.conda#c7d0ea64c37752ecbe6da458aee662d2 https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.0.5-py311ha3edf6b_0.conda#7415f24f8c44e44152623d93c5015000 https://conda.anaconda.org/conda-forge/linux-64/multidict-6.0.4-py311h2582759_0.conda#8f581c14b50f2df47a2c6bd8d230a579 https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyh9f0ad1d_0.tar.bz2#2ba8498c1018c1e9c61eb99b973dfe19 https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.0.0-pyha770c72_0.conda#4eccaeba205f0aed9ac3a9ea58568ca3 -https://conda.anaconda.org/conda-forge/noarch/natsort-8.3.1-pyhd8ed1ab_0.conda#8c53149aa69bfeb045f28c92a2b2ddc7 +https://conda.anaconda.org/conda-forge/noarch/natsort-8.4.0-pyhd8ed1ab_0.conda#70959cd1db3cf77b2a27a0836cfd08a7 https://conda.anaconda.org/conda-forge/noarch/networkx-3.1-pyhd8ed1ab_0.conda#254f787d5068bc89f578bf63893ce8b4 https://conda.anaconda.org/conda-forge/linux-64/numpy-1.24.2-py311h8e6699e_0.conda#90db8cc0dfa20853329bfc6642f887aa https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.0-hfec8fc6_2.conda#5ce6a42505c6e9e6151c54c3ec8d68ea @@ -257,7 +257,7 @@ https://conda.anaconda.org/conda-forge/noarch/pycodestyle-2.9.1-pyhd8ed1ab_0.tar https://conda.anaconda.org/conda-forge/noarch/pycparser-2.21-pyhd8ed1ab_0.tar.bz2#076becd9e05608f8dc72757d5f3a91ff https://conda.anaconda.org/conda-forge/noarch/pyflakes-2.5.0-pyhd8ed1ab_0.tar.bz2#1b3bef4313288ae8d35b1dfba4cd84a3 https://conda.anaconda.org/conda-forge/noarch/pygments-2.15.1-pyhd8ed1ab_0.conda#d316679235612869eba305aa7d41d9bf -https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.0.9-pyhd8ed1ab_0.tar.bz2#e8fbc1b54b25f4b08281467bc13b70cc +https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.1.0-pyhd8ed1ab_0.conda#d3ed087d1f7f8f5590e8e87b57a8ce64 https://conda.anaconda.org/conda-forge/linux-64/pyrsistent-0.19.3-py311h2582759_0.conda#e53876b66dcc4ba8a0afa63cd8502ac3 https://conda.anaconda.org/conda-forge/noarch/pyshp-2.3.1-pyhd8ed1ab_0.tar.bz2#92a889dc236a5197612bc85bee6d7174 https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2#2a7de29fb590ca14b5243c4c812c8025 @@ -268,7 +268,7 @@ https://conda.anaconda.org/conda-forge/noarch/pytz-2023.3-pyhd8ed1ab_0.conda#d30 https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0-py311hd4cff14_5.tar.bz2#da8769492e423103c59f469f4f17f8d9 https://conda.anaconda.org/conda-forge/linux-64/pyzmq-25.1.0-py311h75c88c4_0.conda#db94a7a9e865fbfde8c023b6e8958bb2 https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.7-py311h2582759_1.conda#5e997292429a22ad50c11af0a2cb0f08 -https://conda.anaconda.org/conda-forge/noarch/semver-3.0.0-pyhd8ed1ab_0.conda#4ed7f334acb2c73ff514e182f3d609fc +https://conda.anaconda.org/conda-forge/noarch/semver-3.0.1-pyhd8ed1ab_0.conda#ed90854ae56fb6edae1f13b4663b21b0 https://conda.anaconda.org/conda-forge/noarch/setoptconf-tmp-0.3.1-pyhd8ed1ab_0.tar.bz2#af3e36d4effb85b9b9f93cd1db0963df https://conda.anaconda.org/conda-forge/noarch/setuptools-67.7.2-pyhd8ed1ab_0.conda#3b68bc43ec6baa48f7354a446267eefe https://conda.anaconda.org/conda-forge/linux-64/simplejson-3.19.1-py311h2582759_0.conda#c58e325a8500b8755e95cf0622665840 @@ -315,8 +315,8 @@ https://conda.anaconda.org/conda-forge/noarch/accessible-pygments-0.0.4-pyhd8ed1 https://conda.anaconda.org/conda-forge/noarch/aiosignal-1.3.1-pyhd8ed1ab_0.tar.bz2#d1e1eb7e21a9e2c74279d87dafb68156 https://conda.anaconda.org/conda-forge/noarch/asgiref-3.7.2-pyhd8ed1ab_0.conda#596932155bf88bb6837141550cb721b0 https://conda.anaconda.org/conda-forge/linux-64/astroid-2.15.5-py311h38be061_0.conda#bc99014b1cb98221bc4a0f4dc889d26f -https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.6.27-he072965_1.conda#2c7406414796748e53bd7d7c6349711d -https://conda.anaconda.org/conda-forge/linux-64/aws-c-mqtt-0.8.11-h2282364_1.conda#11a4a996699d883ebda0894faa71bbfc +https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.6.28-hccec9ca_5.conda#6823948414b0fad4b07af9ead54f7cb5 +https://conda.anaconda.org/conda-forge/linux-64/aws-c-mqtt-0.8.13-ha5d9b87_2.conda#f9ce1f48f4f220f0da4e292c4c95bb61 https://conda.anaconda.org/conda-forge/noarch/babel-2.12.1-pyhd8ed1ab_1.conda#ac432e732804a81ddcf29c92ead57cde https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.2-pyha770c72_0.conda#a362ff7d976217f8fa78c0f1c4f59717 https://conda.anaconda.org/conda-forge/noarch/bleach-6.0.0-pyhd8ed1ab_0.conda#d48b143d01385872a88ef8417e96c30e @@ -329,7 +329,7 @@ https://conda.anaconda.org/conda-forge/linux-64/cftime-1.6.2-py311h4c7f6c3_1.tar https://conda.anaconda.org/conda-forge/noarch/click-plugins-1.1.1-py_0.tar.bz2#4fd2c6b53934bd7d96d1f3fdaf99b79f https://conda.anaconda.org/conda-forge/noarch/cligj-0.7.2-pyhd8ed1ab_1.tar.bz2#a29b7c141d6b2de4bb67788a5f107734 https://conda.anaconda.org/conda-forge/noarch/colorspacious-1.1.2-pyh24bf2e0_0.tar.bz2#b73afa0d009a51cabd3ec99c4d2ef4f3 -https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.0.7-py311ha3edf6b_0.conda#e7548e7f58965a2fe97a95950a5fedc6 +https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.1.0-py311h9547e67_0.conda#daf3f23397ab2265d0cdfa339f3627ba https://conda.anaconda.org/conda-forge/linux-64/coverage-7.2.7-py311h459d7ec_0.conda#3c2c65575c28b23afc5e4ff721a2fc9f https://conda.anaconda.org/conda-forge/linux-64/curl-8.1.2-h409715c_0.conda#9f88cfb15b7d08b25880b138f91e0eb4 https://conda.anaconda.org/conda-forge/linux-64/cytoolz-0.12.0-py311hd4cff14_1.tar.bz2#21523141b35484b1edafba962c6ea883 @@ -337,11 +337,11 @@ https://conda.anaconda.org/conda-forge/noarch/docformatter-1.7.2-pyhd8ed1ab_0.co https://conda.anaconda.org/conda-forge/noarch/docrep-0.3.2-pyh44b312d_0.tar.bz2#235523955bc1bfb019d7ec8a2bb58f9a https://conda.anaconda.org/conda-forge/noarch/eofs-1.4.0-py_0.tar.bz2#6e166cd37cfeadefcfca1ffe00f222bb https://conda.anaconda.org/conda-forge/noarch/fire-0.5.0-pyhd8ed1ab_0.conda#9fd22aae8d2f319e80f68b295ab91d64 -https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.39.4-py311h459d7ec_0.conda#ddd2cd004e10bc7a1e042283326cbf91 +https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.40.0-py311h459d7ec_0.conda#b19f671a6b221f922cf871d71a71c0fa https://conda.anaconda.org/conda-forge/noarch/geopy-2.3.0-pyhd8ed1ab_0.tar.bz2#529faeecd6eee3a3b782566ddf05ce92 https://conda.anaconda.org/conda-forge/noarch/gitdb-4.0.10-pyhd8ed1ab_0.conda#3706d2f3d7cb5dae600c833345a76132 https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.0-nompi_hb72d44e_103.conda#975973a4350ab45ff1981fe535a12af5 -https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-6.6.0-pyha770c72_0.conda#f91a5d5175fb7ff2a91952ec7da59cb9 +https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-6.7.0-pyha770c72_0.conda#ba3786c6846e46038fe60c785d46dc81 https://conda.anaconda.org/conda-forge/noarch/importlib_resources-5.12.0-pyhd8ed1ab_0.conda#e5fd2260a231ee63b6969f4801082f2b https://conda.anaconda.org/conda-forge/noarch/isodate-0.6.1-pyhd8ed1ab_0.tar.bz2#4a62c93c1b5c0b920508ae3fd285eaf5 https://conda.anaconda.org/conda-forge/noarch/isort-5.12.0-pyhd8ed1ab_1.conda#07ed3421bad60867234c7a9282ea39d4 @@ -356,22 +356,23 @@ https://conda.anaconda.org/conda-forge/noarch/magics-python-1.5.8-pyhd8ed1ab_1.c https://conda.anaconda.org/conda-forge/noarch/munch-3.0.0-pyhd8ed1ab_0.conda#3d5fa8396d78c916d51fb1c6cda24945 https://conda.anaconda.org/conda-forge/noarch/nested-lookup-0.2.25-pyhd8ed1ab_1.tar.bz2#2f59daeb14581d41b1e2dda0895933b2 https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.8.0-pyhd8ed1ab_0.conda#2a75b296096adabbabadd5e9782e5fcc -https://conda.anaconda.org/conda-forge/linux-64/numba-0.57.0-py311h96b013e_1.conda#85bb20481daadd8153e9d6366f1c0edc +https://conda.anaconda.org/conda-forge/linux-64/numba-0.57.0-py311h96b013e_2.conda#fcac7c14c50d55dfaaeaf31d82df3efb https://conda.anaconda.org/conda-forge/linux-64/numcodecs-0.11.0-py311hcafe171_1.conda#ecdaf0772e524ed51218f6d52ef74424 https://conda.anaconda.org/conda-forge/linux-64/openpyxl-3.1.2-py311h459d7ec_0.conda#3fd48307e8596409a2a55d516fa3ad1f https://conda.anaconda.org/conda-forge/noarch/partd-1.4.0-pyhd8ed1ab_0.conda#721dab5803ea92ce02ddc4ee50aa0c48 https://conda.anaconda.org/conda-forge/linux-64/pillow-9.5.0-py311h0b84326_1.conda#6be2190fdbf26a6c1d3356a54d955237 https://conda.anaconda.org/conda-forge/noarch/pip-23.1.2-pyhd8ed1ab_0.conda#7288da0d36821349cf1126e8670292df https://conda.anaconda.org/conda-forge/noarch/plotly-5.15.0-pyhd8ed1ab_0.conda#48573e7cca7860509648522a3b8507d7 -https://conda.anaconda.org/conda-forge/linux-64/postgresql-15.3-h814edd5_0.conda#c72622dbd4193522a0b568886b63048d -https://conda.anaconda.org/conda-forge/linux-64/proj-9.2.0-h8ffa02c_0.conda#8b9dcfabec5c6bcac98e89889fffa64e +https://conda.anaconda.org/conda-forge/linux-64/postgresql-15.3-hd458b1d_1.conda#4a4b5dede4d2e075e9aa5a44a9fd9f20 +https://conda.anaconda.org/conda-forge/linux-64/proj-9.2.1-ha643af7_0.conda#e992387307f4403ba0ec07d009032550 https://conda.anaconda.org/conda-forge/noarch/pydocstyle-6.3.0-pyhd8ed1ab_0.conda#7e23a61a7fbaedfef6eb0e1ac775c8e5 https://conda.anaconda.org/conda-forge/noarch/pyproject_hooks-1.0.0-pyhd8ed1ab_0.conda#21de50391d584eb7f4441b9de1ad773f +https://conda.anaconda.org/conda-forge/noarch/pytest-7.3.2-pyhd8ed1ab_1.conda#f2465696f4396245eca4613f6e924796 https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.8.2-pyhd8ed1ab_0.tar.bz2#dd999d1cc9f79e67dbb855c8924c7984 https://conda.anaconda.org/conda-forge/noarch/python-utils-3.6.0-pyhd8ed1ab_0.conda#64f841b5319404bbc5962fa8bd7b860a https://conda.anaconda.org/conda-forge/linux-64/pywavelets-1.4.1-py311hcb2cf0a_0.conda#272ca0c28df344037ba2c4982d4e4791 https://conda.anaconda.org/conda-forge/noarch/retrying-1.3.3-py_2.tar.bz2#a11f356d6f93b74b4a84e9501afd48b4 -https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.17.31-py311h459d7ec_0.conda#f0fc1409f49257fe5ec2d86d0595d9bc +https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.17.32-py311h459d7ec_0.conda#628868dc17f9bd39a2eb77846e35980c https://conda.anaconda.org/conda-forge/noarch/seawater-3.3.4-py_1.tar.bz2#a9e101e1601faf5e5a119ab2bd7617a4 https://conda.anaconda.org/conda-forge/linux-64/shapely-2.0.1-py311h54d622a_1.conda#a894c65b48676c4973e9ee8b59bceb9e https://conda.anaconda.org/conda-forge/noarch/snuggs-1.4.7-py_0.tar.bz2#cb83a3d6ecf73f50117635192414426a @@ -390,33 +391,37 @@ https://conda.anaconda.org/conda-forge/noarch/yamllint-1.32.0-pyhd8ed1ab_0.conda https://conda.anaconda.org/conda-forge/noarch/yapf-0.33.0-pyhd8ed1ab_1.conda#ea4867f364b3f7f48c67643028c7f4c6 https://conda.anaconda.org/conda-forge/linux-64/yarl-1.9.2-py311h459d7ec_0.conda#4d738187d20e0a3be66973860f134e0a https://conda.anaconda.org/conda-forge/noarch/async-timeout-4.0.2-pyhd8ed1ab_0.tar.bz2#25e79f9a1133556671becbd65a170c78 -https://conda.anaconda.org/conda-forge/linux-64/aws-c-s3-0.3.0-hcb5a9b2_2.conda#e32991aa713aafc13ae31869d44e04ad +https://conda.anaconda.org/conda-forge/linux-64/aws-c-s3-0.3.4-h95e21fb_5.conda#94bb6ed517ae8fdaf9ec78ec4e099e6a https://conda.anaconda.org/conda-forge/linux-64/cf-units-3.2.0-py311h1f0f07a_0.conda#43a71a823583d75308eaf3a06c8f150b https://conda.anaconda.org/conda-forge/linux-64/cryptography-41.0.1-py311h63ff55d_0.conda#69ad01f66b8efff535d341ba5b283c2c https://conda.anaconda.org/conda-forge/noarch/django-4.2.2-pyhd8ed1ab_0.conda#31af05cc9ec79e8eaa8c452a00fb33f7 https://conda.anaconda.org/conda-forge/noarch/flake8-5.0.4-pyhd8ed1ab_0.tar.bz2#8079ea7dec0a917dd0cb6c257f7ea9ea https://conda.anaconda.org/conda-forge/linux-64/freeglut-3.2.2-hac7e632_2.conda#6e553df297f6e64668efb54302e0f139 https://conda.anaconda.org/conda-forge/noarch/funcargparse-0.2.5-pyhd8ed1ab_0.tar.bz2#e557b70d736251fa0bbb7c4497852a92 -https://conda.anaconda.org/conda-forge/linux-64/geotiff-1.7.1-h480ec47_8.conda#7d750f8e82a1b626b383b5039a3de0c7 +https://conda.anaconda.org/conda-forge/linux-64/geotiff-1.7.1-h22adcc9_9.conda#bf62b64a9eb314458885e112e1233fb2 https://conda.anaconda.org/conda-forge/linux-64/git-2.41.0-pl5321h86e50cf_0.conda#14f8341e26b274362b026bbdc72b14fb https://conda.anaconda.org/conda-forge/noarch/gitpython-3.1.31-pyhd8ed1ab_0.conda#f6e6b482110246a81c3f03e81c68752d https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-7.3.0-hdb3a94d_0.conda#765bc76c0dfaf24ff9d8a2935b2510df https://conda.anaconda.org/conda-forge/linux-64/hdfeos5-5.1.16-h8b5b2df_13.conda#29a96d50cb53638a5b4806b5ca6e4b1d https://conda.anaconda.org/conda-forge/linux-64/imagecodecs-2023.1.23-py311hd374d05_2.conda#49daf4cf57e732fe804b5b63b60a65a6 -https://conda.anaconda.org/conda-forge/noarch/imageio-2.28.1-pyh24c5eb1_0.conda#ef3541a8cd9a55879932486a097b7fed -https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-6.6.0-hd8ed1ab_0.conda#3cbc9615f10a3d471532b83e4250b971 +https://conda.anaconda.org/conda-forge/noarch/imageio-2.31.1-pyh24c5eb1_0.conda#1051cc0376612ba101d4f59e954a1ff4 +https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-6.7.0-hd8ed1ab_0.conda#27a4cec373ec84d1c1aa02a1e37f8eaf https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.17.3-pyhd8ed1ab_0.conda#723268a468177cd44568eb8f794e0d80 https://conda.anaconda.org/conda-forge/linux-64/kealib-1.5.1-h3845be2_3.conda#f38e5e47f62d6633166040192ad420a1 -https://conda.anaconda.org/conda-forge/linux-64/libnetcdf-4.9.2-nompi_hdf9a29f_104.conda#283aeeef04e2a01445156c9c2d5c4fa0 -https://conda.anaconda.org/conda-forge/linux-64/libspatialite-5.0.1-h7d1ca68_25.conda#c5ff4b64ee24804cad5ddb4239267b09 +https://conda.anaconda.org/conda-forge/linux-64/libnetcdf-4.9.2-nompi_h0f3d0bb_105.conda#b5d412441b84305460e9df8a016a3392 +https://conda.anaconda.org/conda-forge/linux-64/libspatialite-5.0.1-hca56755_27.conda#918a735059cab21b96fc13a8d04fbcd8 https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.7.1-py311h8597a09_0.conda#70c3b734ffe82c16b6d121aaa11929a8 https://conda.anaconda.org/conda-forge/linux-64/pandas-2.0.2-py311h320fe9a_0.conda#509769b430266dc5c2f6a3eab0f23164 -https://conda.anaconda.org/conda-forge/noarch/platformdirs-3.5.3-pyhd8ed1ab_0.conda#c085a16ba3d0c9ee282c438308b57724 +https://conda.anaconda.org/conda-forge/noarch/platformdirs-3.6.0-pyhd8ed1ab_0.conda#741384b21c1b512617f4ee4ea8457c5d https://conda.anaconda.org/conda-forge/linux-64/poppler-23.05.0-hd18248d_1.conda#09e0de1aa7330fe697eed76eaeef666d https://conda.anaconda.org/conda-forge/noarch/progressbar2-4.2.0-pyhd8ed1ab_0.tar.bz2#d883564cf1e9ba190f6b285036c5f949 https://conda.anaconda.org/conda-forge/noarch/pybtex-0.24.0-pyhd8ed1ab_2.tar.bz2#2099b86a7399c44c0c61cdb6de6915ba -https://conda.anaconda.org/conda-forge/linux-64/pyproj-3.5.0-py311h1850bce_1.conda#572159a946b809df471b11db4995c708 -https://conda.anaconda.org/conda-forge/noarch/pytest-7.3.1-pyhd8ed1ab_0.conda#547c7de697ec99b494a28ddde185b5a4 +https://conda.anaconda.org/conda-forge/linux-64/pyproj-3.6.0-py311ha169711_1.conda#92633556d37e88ce45193374d408072c +https://conda.anaconda.org/conda-forge/noarch/pytest-cov-4.1.0-pyhd8ed1ab_0.conda#06eb685a3a0b146347a58dda979485da +https://conda.anaconda.org/conda-forge/noarch/pytest-env-0.8.2-pyhd8ed1ab_0.conda#cd20b56ff31042aad74d45e3f47eb5b2 +https://conda.anaconda.org/conda-forge/noarch/pytest-metadata-3.0.0-pyhd8ed1ab_1.conda#8bdcc0f401561213821bf67513abeeff +https://conda.anaconda.org/conda-forge/noarch/pytest-mock-3.11.1-pyhd8ed1ab_0.conda#fcd2531bc3e492657aeb042349aeaf8a +https://conda.anaconda.org/conda-forge/noarch/pytest-xdist-3.3.1-pyhd8ed1ab_0.conda#816073bb54ef59f33f0f26c14f88311b https://conda.anaconda.org/conda-forge/noarch/python-build-0.10.0-pyhd8ed1ab_1.conda#0ab47ce574f6a8bcb9f2076436e7fedb https://conda.anaconda.org/conda-forge/noarch/rdflib-6.3.2-pyhd8ed1ab_0.conda#ef37f754e65328229ecf4488b5909b8d https://conda.anaconda.org/conda-forge/noarch/requests-2.31.0-pyhd8ed1ab_0.conda#a30144e4156cdbb236f99ebb49828f8b @@ -424,9 +429,9 @@ https://conda.anaconda.org/conda-forge/noarch/requirements-detector-1.2.2-pyhd8e https://conda.anaconda.org/conda-forge/linux-64/tiledb-2.13.2-hd532e3d_0.conda#6d97164f19dbd27575ef1899b02dc1e0 https://conda.anaconda.org/conda-forge/linux-64/ukkonen-1.0.1-py311h4dd048b_3.tar.bz2#dbfea4376856bf7bd2121e719cf816e5 https://conda.anaconda.org/conda-forge/linux-64/xorg-libxaw-1.0.14-h7f98852_1.tar.bz2#45b68dc2fc7549c16044d533ceaf340e -https://conda.anaconda.org/conda-forge/noarch/zarr-2.14.2-pyhd8ed1ab_0.conda#0c5776fe65a12a421d7ddf90411a6c3f +https://conda.anaconda.org/conda-forge/noarch/zarr-2.15.0-pyhd8ed1ab_0.conda#2e6414d548b4433d564fed1177d30281 https://conda.anaconda.org/conda-forge/linux-64/aiohttp-3.8.4-py311h459d7ec_1.conda#649386bf24f512a0593a83f59d2b7172 -https://conda.anaconda.org/conda-forge/linux-64/aws-crt-cpp-0.20.2-he0fdcb3_0.conda#3d9577a30f0e61331216b381925aa3e3 +https://conda.anaconda.org/conda-forge/linux-64/aws-crt-cpp-0.20.2-h5289e1f_9.conda#ee251396cd9694d3b03f86adb3220d74 https://conda.anaconda.org/conda-forge/noarch/bokeh-3.1.1-pyhd8ed1ab_0.conda#07401431ba1c7fae695814ae3528312a https://conda.anaconda.org/conda-forge/noarch/cdsapi-0.6.1-pyhd8ed1ab_0.conda#454ed214cec806066097ae245a409171 https://conda.anaconda.org/conda-forge/noarch/chart-studio-1.1.0-pyh9f0ad1d_0.tar.bz2#acd9a12a35e5a0221bdf39eb6e4811dc @@ -436,8 +441,8 @@ https://conda.anaconda.org/conda-forge/noarch/flake8-polyfill-1.0.2-py_0.tar.bz2 https://conda.anaconda.org/conda-forge/noarch/identify-2.5.24-pyhd8ed1ab_0.conda#a4085ab0562d5081a9333435837b538a https://conda.anaconda.org/conda-forge/linux-64/jasper-4.0.0-h32699f2_1.conda#fdde5424ecef5f7ad310b4242229291c https://conda.anaconda.org/conda-forge/linux-64/julia-1.8.5-h783901f_0.conda#98c05ba7ca9c15d22216f730499e167a -https://conda.anaconda.org/conda-forge/linux-64/jupyter_core-5.3.0-py311h38be061_0.conda#1dd43a18a75d59206019e2a2a28555e5 -https://conda.anaconda.org/conda-forge/linux-64/libgdal-3.7.0-he76be6c_0.conda#2e2c887d9a55b287982c1bf3d7013fb1 +https://conda.anaconda.org/conda-forge/linux-64/jupyter_core-5.3.1-py311h38be061_0.conda#0cf8259b01ede82c76007996f73f89ed +https://conda.anaconda.org/conda-forge/linux-64/libgdal-3.7.0-h5418a03_2.conda#30ddbe080c260fb36da8509e3fd6c45f https://conda.anaconda.org/conda-forge/noarch/nc-time-axis-1.4.1-pyhd8ed1ab_0.tar.bz2#281b58948bf60a2582de9e548bcc5369 https://conda.anaconda.org/conda-forge/linux-64/netcdf-fortran-4.6.1-nompi_h4f3791c_100.conda#405c5b3ad4ef53eb0d93043b54206dd7 https://conda.anaconda.org/conda-forge/linux-64/netcdf4-1.6.4-nompi_py311h4d7c953_100.conda#c03492d0342e512e58aa2d6c5fdaaa91 @@ -446,49 +451,44 @@ https://conda.anaconda.org/conda-forge/noarch/pooch-1.7.0-pyha770c72_3.conda#593 https://conda.anaconda.org/conda-forge/noarch/pylint-2.17.4-pyhd8ed1ab_0.conda#a9d97fe4617aba393d90ea81576b6b46 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-23.2.0-pyhd8ed1ab_1.conda#34f7d568bf59d18e3fef8c405cbece21 https://conda.anaconda.org/conda-forge/noarch/pyroma-4.2-pyhd8ed1ab_0.conda#fe2aca9a5d4cb08105aefc451ef96950 -https://conda.anaconda.org/conda-forge/noarch/pytest-cov-4.1.0-pyhd8ed1ab_0.conda#06eb685a3a0b146347a58dda979485da -https://conda.anaconda.org/conda-forge/noarch/pytest-env-0.8.1-pyhd8ed1ab_0.conda#56466a4061d4c1150f6fe52235019bf8 -https://conda.anaconda.org/conda-forge/noarch/pytest-metadata-3.0.0-pyhd8ed1ab_1.conda#8bdcc0f401561213821bf67513abeeff -https://conda.anaconda.org/conda-forge/noarch/pytest-mock-3.10.0-pyhd8ed1ab_0.tar.bz2#db93caa9fe182f0cd20291aeb22f57ac -https://conda.anaconda.org/conda-forge/noarch/pytest-xdist-3.3.1-pyhd8ed1ab_0.conda#816073bb54ef59f33f0f26c14f88311b +https://conda.anaconda.org/conda-forge/noarch/pytest-html-3.2.0-pyhd8ed1ab_1.tar.bz2#d5c7a941dfbceaab4b172a56d7918eb0 https://conda.anaconda.org/conda-forge/noarch/requests-cache-1.0.1-pyhd8ed1ab_0.conda#43ec7b3627237e5fe23413e314e8ba4c https://conda.anaconda.org/conda-forge/noarch/sphinx-7.0.1-pyhd8ed1ab_0.conda#51a8d037b28276b4f68263e890e0f35b -https://conda.anaconda.org/conda-forge/linux-64/tempest-remap-2.1.6-hd5eb6f5_4.conda#57ce81f02413a1635553b5e4ab149d41 +https://conda.anaconda.org/conda-forge/linux-64/tempest-remap-2.2.0-h43474b4_0.conda#fd815765a86daf44db1e15c6f6edf5e6 https://conda.anaconda.org/conda-forge/noarch/tifffile-2023.4.12-pyhd8ed1ab_0.conda#b2ade33a630dada190c1220f3515fc5c -https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.23.0-pyhd8ed1ab_0.conda#a920e114c4c2ced2280e266da65ab5e6 +https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.23.1-pyhd8ed1ab_0.conda#838b85f656b078bdd882ef97978e7f40 https://conda.anaconda.org/conda-forge/noarch/xarray-2023.5.0-pyhd8ed1ab_0.conda#254b5553bed6adf404ac09fa07cb54da https://conda.anaconda.org/conda-forge/noarch/autodocsumm-0.2.6-pyhd8ed1ab_0.tar.bz2#4409dd7e06a62c3b2aa9e96782c49c6d -https://conda.anaconda.org/conda-forge/linux-64/aws-sdk-cpp-1.10.57-h059227d_13.conda#16eac1f53808f188a44cb0dcb59b109b +https://conda.anaconda.org/conda-forge/linux-64/aws-sdk-cpp-1.10.57-h8101662_14.conda#80fa7254dbb5f012c135b8ecd0f878ad https://conda.anaconda.org/conda-forge/noarch/cf_xarray-0.8.1-pyhd8ed1ab_0.conda#3c3cdc59ff9c8e1f1c9d6d3c362ce778 https://conda.anaconda.org/conda-forge/noarch/distributed-2023.6.0-pyhd8ed1ab_0.conda#4ec79a27574d70c947faf0a51bbe4079 https://conda.anaconda.org/conda-forge/linux-64/eccodes-2.30.2-h1f30a5c_0.conda#21ee8444a7f629924ea8cfe52a622cbd https://conda.anaconda.org/conda-forge/linux-64/esmf-8.4.2-nompi_h20110ff_0.conda#11f5169aeff54ad7277476be8ba19ff7 -https://conda.anaconda.org/conda-forge/linux-64/gdal-3.7.0-py311h6122507_0.conda#f45a9655a8fd47b8187ae00972f4b4e7 +https://conda.anaconda.org/conda-forge/linux-64/gdal-3.7.0-py311h281082f_2.conda#fde4fad3c517cc80f32995696f45198d https://conda.anaconda.org/conda-forge/linux-64/gtk2-2.24.33-h90689f9_2.tar.bz2#957a0255ab58aaf394a91725d73ab422 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.2.0-pyhd8ed1ab_0.conda#58ca2d50c3b27b86fd7df62eaadbf9a9 -https://conda.anaconda.org/conda-forge/linux-64/librsvg-2.56.0-h5cef280_0.conda#1ec4fab6eb4af1db9056b94265fe19cf +https://conda.anaconda.org/conda-forge/linux-64/librsvg-2.56.1-h98fae49_0.conda#4b827ee65a747c4a24f2a6ac7f3ff093 https://conda.anaconda.org/conda-forge/noarch/myproxyclient-2.1.0-pyhd8ed1ab_2.tar.bz2#363b0816e411feb0df925d4f224f026a https://conda.anaconda.org/conda-forge/noarch/nbformat-5.9.0-pyhd8ed1ab_0.conda#f525a01528c3eba1d381a232a6971c6a https://conda.anaconda.org/conda-forge/noarch/pep8-naming-0.10.0-pyh9f0ad1d_0.tar.bz2#b3c5536e4f9f58a4b16adb6f1e11732d -https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.3.2-pyha770c72_0.conda#dbb0111b18ea5c9983fb8db0aef6000b +https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.3.3-pyha770c72_0.conda#dd64a0e440754ed97610b3e6b502b6b1 https://conda.anaconda.org/conda-forge/linux-64/psyplot-1.4.3-py311h38be061_1.tar.bz2#f0c9a1067c03e8f05e53ef0c5ad5fab3 https://conda.anaconda.org/conda-forge/noarch/pydata-sphinx-theme-0.13.3-pyhd8ed1ab_0.conda#07aca5f2dea315dcc16680d6891e9056 https://conda.anaconda.org/conda-forge/noarch/pylint-plugin-utils-0.7-pyhd8ed1ab_0.tar.bz2#1657976383aee04dbb3ae3bdf654bb58 -https://conda.anaconda.org/conda-forge/noarch/pytest-html-3.2.0-pyhd8ed1ab_1.tar.bz2#d5c7a941dfbceaab4b172a56d7918eb0 -https://conda.anaconda.org/conda-forge/noarch/pytest-json-report-1.5.0-pyhd8ed1ab_0.tar.bz2#837e335fa428cf7c784ee2e80594506c https://conda.anaconda.org/conda-forge/linux-64/python-stratify-0.3.0-py311h1f0f07a_0.conda#3a00b1b08d8c01b1a3bfa686b9152df2 -https://conda.anaconda.org/conda-forge/linux-64/r-base-4.1.3-h0fc540b_8.conda#4c7a8c23a6be7cb6385ed2035fe147b8 -https://conda.anaconda.org/conda-forge/linux-64/rasterio-1.3.7-py311h138ec3c_1.conda#1baa5b82f2a746b7163a0b17e89439ff +https://conda.anaconda.org/conda-forge/linux-64/r-base-4.1.3-hfabd6f2_9.conda#0ab4cf54fbddc0cc9ff260c6f77f8c84 +https://conda.anaconda.org/conda-forge/linux-64/rasterio-1.3.7-py311h41e4db2_2.conda#0246fdb9441458b5dfd2e022c470598a https://conda.anaconda.org/conda-forge/linux-64/scipy-1.10.1-py311h64a7726_3.conda#a01a3a7428e770db5a0c8c7ab5fce7f7 https://conda.anaconda.org/conda-forge/linux-64/cartopy-0.21.1-py311hd88b842_1.conda#f19feb9440890ccb806a367ea9ae0654 +https://conda.anaconda.org/conda-forge/noarch/dask-jobqueue-0.8.2-pyhd8ed1ab_0.conda#cc344a296a41369bcb05f7216661cec8 https://conda.anaconda.org/conda-forge/noarch/esgf-pyclient-0.3.1-pyh1a96a4e_2.tar.bz2#64068564a9c2932bf30e9b4ec567927d https://conda.anaconda.org/conda-forge/noarch/esmpy-8.4.2-pyhc1e730c_1.conda#4067029ad6872d49f6d43c05dd1f51a9 https://conda.anaconda.org/conda-forge/linux-64/fiona-1.9.4-py311hbac4ec9_0.conda#1d3445f5f7fa002a1c149c405376f012 https://conda.anaconda.org/conda-forge/linux-64/graphviz-8.0.5-h28d9a01_0.conda#597e2d0e1c6bc2e4457714ff479fe142 -https://conda.anaconda.org/conda-forge/linux-64/libarrow-12.0.0-hed73b3e_7_cpu.conda#b7751e77fef9bec5135f4a6cb3ceb7b3 -https://conda.anaconda.org/conda-forge/linux-64/magics-4.13.0-h8ea9e15_4.conda#3f714a7ce0c1c9a6195d89d0792381a4 +https://conda.anaconda.org/conda-forge/linux-64/libarrow-12.0.0-hc00ebf5_8_cpu.conda#903e3d15dccebe87369a50d688865507 +https://conda.anaconda.org/conda-forge/linux-64/magics-4.13.0-hd3d5bb6_5.conda#07d85bdf4e29d9cda3a27206dce825e0 https://conda.anaconda.org/conda-forge/noarch/nbclient-0.8.0-pyhd8ed1ab_0.conda#e78da91cf428faaf05701ce8cc8f2f9b -https://conda.anaconda.org/conda-forge/linux-64/ncl-6.6.2-hcf71a85_46.conda#5b95cd07906b1eabe73058f69a1b7e16 +https://conda.anaconda.org/conda-forge/linux-64/ncl-6.6.2-hf70af60_47.conda#ee27133164cb9f5e74681bdb8839688f https://conda.anaconda.org/conda-forge/linux-64/nco-5.1.6-hd62b316_0.conda#af7780f76ee37325d264327e21a478f5 https://conda.anaconda.org/conda-forge/noarch/patsy-0.5.3-pyhd8ed1ab_0.tar.bz2#50ef6b29b1fb0768ca82c5aeb4fb2d96 https://conda.anaconda.org/conda-forge/linux-64/psy-simple-1.4.1-py311h38be061_2.tar.bz2#4c9101d329f6bc09c2617a80e3eb9c89 @@ -563,16 +563,16 @@ https://conda.anaconda.org/conda-forge/linux-64/scikit-image-0.20.0-py311h287217 https://conda.anaconda.org/conda-forge/linux-64/scikit-learn-1.2.2-py311hc009520_2.conda#538b903a5572cf48fb87c8d30fc06e0d https://conda.anaconda.org/conda-forge/noarch/seaborn-base-0.12.2-pyhd8ed1ab_0.conda#cf88f3a1c11536bc3c10c14ad00ccc42 https://conda.anaconda.org/conda-forge/noarch/sparse-0.14.0-pyhd8ed1ab_0.conda#ee01b310177a0612554b9d20e537fdbe -https://conda.anaconda.org/conda-forge/linux-64/cdo-2.2.0-h3667792_2.conda#9c6e6832df36787cac3675bbf1fd786b -https://conda.anaconda.org/conda-forge/linux-64/imagemagick-7.1.1_9-pl5321hfda792c_0.conda#9332cec0a5c049edb47dacc9a8b2f209 +https://conda.anaconda.org/conda-forge/linux-64/cdo-2.2.0-he026af2_4.conda#6c00b0a21b3de8a149eee137e83465d3 +https://conda.anaconda.org/conda-forge/linux-64/imagemagick-7.1.1_11-pl5321hf48ede7_0.conda#25fddd05bbbe24b2ca9024c30b05bd6d https://conda.anaconda.org/conda-forge/noarch/iris-3.6.0-pyha770c72_0.conda#a213bee1c2fab6f99c4f66ef5f0b34f9 https://conda.anaconda.org/conda-forge/noarch/lime-0.2.0.1-pyhd8ed1ab_1.tar.bz2#789ce01416721a5533fb74aa4361fd13 https://conda.anaconda.org/conda-forge/noarch/mapgenerator-1.0.7-pyhd8ed1ab_0.conda#d18db96ef2a920b0ecefe30282b0aecf -https://conda.anaconda.org/conda-forge/noarch/nbconvert-core-7.4.0-pyhd8ed1ab_0.conda#4456e6030a8309bdad57569b0170b6a3 +https://conda.anaconda.org/conda-forge/noarch/nbconvert-core-7.6.0-pyhd8ed1ab_0.conda#879782bde4bbdb4c7b5d4054504a20d5 https://conda.anaconda.org/conda-forge/noarch/prospector-1.10.2-pyhd8ed1ab_0.conda#2c536985982f7e531df8d640f554008a https://conda.anaconda.org/conda-forge/noarch/psy-maps-1.4.2-pyhd8ed1ab_0.tar.bz2#3ed13103dfd46f71dc870d188bd0b276 https://conda.anaconda.org/conda-forge/linux-64/py-xgboost-1.7.4-cuda111py311h82c1ec6_2.conda#15e4e8d751e4740367631c17f460ad58 -https://conda.anaconda.org/conda-forge/linux-64/pyarrow-12.0.0-py311hdf9aeb4_7_cpu.conda#280733071f7aadc4d6c8c77c22e2816d +https://conda.anaconda.org/conda-forge/linux-64/pyarrow-12.0.0-py311h39c9aba_8_cpu.conda#ecd8e4f35130ebd816f0ff806f645757 https://conda.anaconda.org/conda-forge/linux-64/pydot-1.4.2-py311h38be061_3.tar.bz2#64a77de29fde80aef5013ddf5e62a564 https://conda.anaconda.org/conda-forge/linux-64/r-askpass-1.1-r41h06615bd_3.tar.bz2#c8ec8683302ad9a2345cb31ab28e6c6b https://conda.anaconda.org/conda-forge/linux-64/r-bigmemory-4.6.1-r41h7525677_1.tar.bz2#6a956b57b027b49b7a9ca48031a8bbd6 @@ -598,12 +598,12 @@ https://conda.anaconda.org/conda-forge/noarch/r-rprojroot-2.0.3-r41hc72bb7e_1.ta https://conda.anaconda.org/conda-forge/linux-64/r-sp-1.6_1-r41h57805ef_0.conda#b7943adfe3494b4c4dc8e3b58fc6602d https://conda.anaconda.org/conda-forge/linux-64/r-spam-2.9_1-r41hb20cf53_1.conda#9eab4a6bfff4bddeee5ed946c47830fa https://conda.anaconda.org/conda-forge/linux-64/r-timechange-0.2.0-r41h38f115c_0.conda#04a4229419d779a1e27395d70d493571 -https://conda.anaconda.org/conda-forge/linux-64/r-xml2-1.3.4-r41h096396e_0.conda#8745024d295023466489aadcb3412a57 +https://conda.anaconda.org/conda-forge/linux-64/r-xml2-1.3.4-r41h1ad5fc0_1.conda#82c1446591783493d65273a158e8ce28 https://conda.anaconda.org/conda-forge/linux-64/r-zoo-1.8_12-r41h133d619_0.conda#1d432d2eba171727afd03507faa5e2f6 https://conda.anaconda.org/conda-forge/linux-64/statsmodels-0.14.0-py311h1f0f07a_1.conda#a1daa39fa0bfed4d91a3640c2274034a https://conda.anaconda.org/conda-forge/noarch/xesmf-0.7.1-pyhd8ed1ab_0.conda#3a9cc63d7bcbc8d738a0e92faf8b6c07 https://conda.anaconda.org/conda-forge/noarch/dask-2023.6.0-pyhd8ed1ab_0.conda#187668ed10c12ad03aded53bc8e7aee6 -https://conda.anaconda.org/conda-forge/noarch/nbconvert-pandoc-7.4.0-pyhd8ed1ab_0.conda#127c702e1b1eff595be82bc6a78cfce0 +https://conda.anaconda.org/conda-forge/noarch/nbconvert-pandoc-7.6.0-pyhd8ed1ab_0.conda#e8172ca42f2869bb90185c9356899e81 https://conda.anaconda.org/conda-forge/noarch/prov-2.0.0-pyhd3deb0d_0.tar.bz2#aa9b3ad140f6c0668c646f32e20ccf82 https://conda.anaconda.org/conda-forge/linux-64/psy-reg-1.4.0-py311h38be061_3.conda#6f7871722c07922028043144e8873b37 https://conda.anaconda.org/conda-forge/noarch/python-cdo-1.6.0-pyhd8ed1ab_0.conda#3fd1a0b063c1fbbe4b7bd5a5a7601e84 @@ -621,13 +621,13 @@ https://conda.anaconda.org/conda-forge/linux-64/r-openssl-2.0.6-r41habfbb5e_0.co https://conda.anaconda.org/conda-forge/noarch/r-r.utils-2.12.2-r41hc72bb7e_0.tar.bz2#302c316e29b7f426fa2de6f1f21dec75 https://conda.anaconda.org/conda-forge/linux-64/r-reshape-0.8.9-r41hc72bb7e_1.tar.bz2#acdda9b65715d9b2d7f928145605d283 https://conda.anaconda.org/conda-forge/noarch/r-scales-1.2.1-r41hc72bb7e_1.tar.bz2#2a557fcc9f60e56e788a6d1293bc8701 -https://conda.anaconda.org/conda-forge/linux-64/r-specsverification-0.5_3-r41h7525677_2.tar.bz2#4f29fc17a4ca578035f136f4724cfe46 +https://conda.anaconda.org/conda-forge/linux-64/r-specsverification-0.5_3-r41ha503ecb_3.conda#2bc51f0d44b98092ba57cf2f8671b490 https://conda.anaconda.org/conda-forge/linux-64/r-splancs-2.01_43-r41h8da6f51_1.tar.bz2#3a6aad0706541141d10e3b514467a080 https://conda.anaconda.org/conda-forge/linux-64/r-vctrs-0.6.2-r41ha503ecb_0.conda#1f7610a1863648cab254a9f85bd29dcd https://conda.anaconda.org/conda-forge/noarch/seaborn-0.12.2-hd8ed1ab_0.conda#50847a47c07812f88581081c620f5160 https://conda.anaconda.org/conda-forge/linux-64/xgboost-1.7.4-cuda111py311h569739f_2.conda#6c06902f15128dad7e0b26a3c83e6f43 https://conda.anaconda.org/conda-forge/noarch/iris-esmf-regrid-0.7.0-pyhd8ed1ab_0.conda#de82eb8d09362babacafe6b7e27752ac -https://conda.anaconda.org/conda-forge/noarch/nbconvert-7.4.0-pyhd8ed1ab_0.conda#a86727968b41c20dd3d73b91632e77dc +https://conda.anaconda.org/conda-forge/noarch/nbconvert-7.6.0-pyhd8ed1ab_0.conda#59976ee8df1c6f82c4aa94b5fd6b745e https://conda.anaconda.org/conda-forge/noarch/r-cyclocomp-1.1.0-r41hc72bb7e_1005.tar.bz2#800e1da5bf774be48934b8865dd78d33 https://conda.anaconda.org/conda-forge/noarch/r-gridextra-2.3-r41hc72bb7e_1004.tar.bz2#71ebed7e976df735ff3443bb88bd154f https://conda.anaconda.org/conda-forge/noarch/r-httr-1.4.6-r41hc72bb7e_0.conda#53dbb769c96782db54bf2d414fc9b239 @@ -637,7 +637,7 @@ https://conda.anaconda.org/conda-forge/noarch/r-pillar-1.9.0-r41hc72bb7e_0.conda https://conda.anaconda.org/conda-forge/noarch/r-pkgload-1.3.2-r41hc72bb7e_0.tar.bz2#e23a1a8420ab52056d86a6f9691d23fa https://conda.anaconda.org/conda-forge/linux-64/r-purrr-1.0.1-r41h133d619_0.conda#d7404238cac0da3c97dc08503d116a2f https://conda.anaconda.org/conda-forge/noarch/r-r.cache-0.16.0-r41hc72bb7e_1.tar.bz2#aef451160d655cc630d8038d934dced3 -https://conda.anaconda.org/conda-forge/noarch/esmvalcore-2.8.1-pyhd8ed1ab_0.conda#d3a13d0cb05e7e9a7ae03d8e54e4fc16 +https://conda.anaconda.org/conda-forge/label/esmvalcore_rc/noarch/esmvalcore-2.9.0rc1-pyh39db41b_0.conda#dcbff06e21971c0cdce69b77219b45f6 https://conda.anaconda.org/conda-forge/noarch/nbsphinx-0.9.2-pyhd8ed1ab_0.conda#d1212b423fdd10d2da59601385561ff7 https://conda.anaconda.org/conda-forge/noarch/r-climprojdiags-0.3.2-r41hc72bb7e_0.conda#9922b863cd10035cbb75e3c2edae64a7 https://conda.anaconda.org/conda-forge/linux-64/r-tibble-3.2.1-r41h133d619_1.conda#3ae9b78fb1d8a44deed24a27cce33ebf From da7f3dbe64ced5425dba05d4fe5ed20180cbaebe Mon Sep 17 00:00:00 2001 From: Valeriu Predoi Date: Tue, 27 Jun 2023 12:53:05 +0100 Subject: [PATCH 02/34] Remove jquery sphinx extension from docs config since new theme doesn't use it (#3251) --- doc/sphinx/source/conf.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/doc/sphinx/source/conf.py b/doc/sphinx/source/conf.py index 4606f1e359..6257289715 100644 --- a/doc/sphinx/source/conf.py +++ b/doc/sphinx/source/conf.py @@ -71,8 +71,6 @@ 'sphinx.ext.viewcode', 'sphinx.ext.napoleon', 'autodocsumm', - # github.com/readthedocs/sphinx_rtd_theme/issues/1451 - 'sphinxcontrib.jquery', ] autodoc_default_options = { From abaedeb9c6271477a91a7bd9d9270084dcaf0c03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Kazeroni?= Date: Wed, 28 Jun 2023 15:37:19 +0200 Subject: [PATCH 03/34] Fix gitter badge in README (#3258) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 13b0219965..069ce0a0c6 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![made-with-python](https://img.shields.io/badge/Made%20with-Python-1f425f.svg)](https://www.python.org/) [![Documentation Status](https://readthedocs.org/projects/esmvaltool/badge/?version=latest)](https://esmvaltool.readthedocs.io/en/latest/?badge=latest) [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3401363.svg)](https://doi.org/10.5281/zenodo.3401363) -[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/ESMValGroup?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) +[![Chat on Matrix](https://matrix.to/img/matrix-badge.svg)](https://matrix.to/#/#ESMValGroup_Lobby:gitter.im) [![CircleCI](https://circleci.com/gh/ESMValGroup/ESMValTool/tree/main.svg?style=svg)](https://circleci.com/gh/ESMValGroup/ESMValTool/tree/main) [![Test in Full Development Mode](https://github.com/ESMValGroup/ESMValTool/actions/workflows/test-development.yml/badge.svg)](https://github.com/ESMValGroup/ESMValTool/actions/workflows/test-development.yml) [![Codacy Badge](https://app.codacy.com/project/badge/Coverage/79bf6932c2e844eea15d0fb1ed7e415c)](https://www.codacy.com/gh/ESMValGroup/ESMValTool?utm_source=github.com&utm_medium=referral&utm_content=ESMValGroup/ESMValTool&utm_campaign=Badge_Coverage) From 776135a83ba8d52c495f26deaa057b40e06fc5fd Mon Sep 17 00:00:00 2001 From: Valeriu Predoi Date: Mon, 3 Jul 2023 09:34:02 +0200 Subject: [PATCH 04/34] Realize data for scalar cube in `recipe_carvalhais14nat` to avert issue from dask latest (2023.6.0) (#3265) --- .../diag_scripts/land_carbon_cycle/diag_global_turnover.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/esmvaltool/diag_scripts/land_carbon_cycle/diag_global_turnover.py b/esmvaltool/diag_scripts/land_carbon_cycle/diag_global_turnover.py index 0d8b95ff84..d703c87a24 100644 --- a/esmvaltool/diag_scripts/land_carbon_cycle/diag_global_turnover.py +++ b/esmvaltool/diag_scripts/land_carbon_cycle/diag_global_turnover.py @@ -737,7 +737,12 @@ def main(diag_config): tau_global = ctotal_global / gpp_global tau_global.convert_units('yr') - global_tau_mod['global'][model_name] = float(tau_global.core_data()) + # since dask=2023.3 there is an issue with converting the core_data() + # to float; I have not managed to pinpoint the issue neither in dask + # nor in iris, since minimal test cases are not reproducing it + # this is a scalar cube so no big mem issue by realizing the data + # global_tau_mod['global'][model_name] = float(tau_global.core_data()) + global_tau_mod['global'][model_name] = float(tau_global.data) base_name_mod = ( 'global_{title}_{source_label}_' From e1a06dd3e1d0c92789eb95ec517984708f8b6a58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Kazeroni?= Date: Tue, 4 Jul 2023 10:34:05 +0200 Subject: [PATCH 05/34] Fix failing `mlr` diagnostic test by adding new scikit-learn default tag (#3273) Co-authored-by: Bouwe Andela Co-authored-by: Valeriu Predoi --- esmvaltool/diag_scripts/mlr/custom_sklearn.py | 1 + 1 file changed, 1 insertion(+) diff --git a/esmvaltool/diag_scripts/mlr/custom_sklearn.py b/esmvaltool/diag_scripts/mlr/custom_sklearn.py index 2e403163cb..198cbdc376 100644 --- a/esmvaltool/diag_scripts/mlr/custom_sklearn.py +++ b/esmvaltool/diag_scripts/mlr/custom_sklearn.py @@ -86,6 +86,7 @@ _DEFAULT_TAGS = { + 'array_api_support': False, 'non_deterministic': False, 'requires_positive_X': False, 'requires_positive_y': False, From 28ad6b4a0d200187ec861b2f07a1f6c7a6fd6cb3 Mon Sep 17 00:00:00 2001 From: Bouwe Andela Date: Tue, 4 Jul 2023 12:30:21 +0200 Subject: [PATCH 06/34] Relax the pin on iris to allow the use of older versions for performance reasons (#3270) --- setup.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 497815cf7e..940cc5224f 100755 --- a/setup.py +++ b/setup.py @@ -60,7 +60,9 @@ 'scikit-image', 'scikit-learn', 'scipy', - 'scitools-iris>=3.6.0', + # See the following issue for info on the iris pin below: + # https://github.com/ESMValGroup/ESMValTool/issues/3239#issuecomment-1613298587 + 'scitools-iris>=3.4.0', 'seaborn', 'seawater', 'shapely', From 6454112f447e0ea27cfbbdf94f3e655029f7d37a Mon Sep 17 00:00:00 2001 From: Valeriu Predoi Date: Tue, 27 Jun 2023 12:53:05 +0100 Subject: [PATCH 07/34] Remove jquery sphinx extension from docs config since new theme doesn't use it (#3251) --- doc/sphinx/source/conf.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/doc/sphinx/source/conf.py b/doc/sphinx/source/conf.py index 4606f1e359..6257289715 100644 --- a/doc/sphinx/source/conf.py +++ b/doc/sphinx/source/conf.py @@ -71,8 +71,6 @@ 'sphinx.ext.viewcode', 'sphinx.ext.napoleon', 'autodocsumm', - # github.com/readthedocs/sphinx_rtd_theme/issues/1451 - 'sphinxcontrib.jquery', ] autodoc_default_options = { From 72c089d21377b0fb291640b3c4df8d4c906e97c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Kazeroni?= Date: Wed, 28 Jun 2023 15:37:19 +0200 Subject: [PATCH 08/34] Fix gitter badge in README (#3258) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 13b0219965..069ce0a0c6 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![made-with-python](https://img.shields.io/badge/Made%20with-Python-1f425f.svg)](https://www.python.org/) [![Documentation Status](https://readthedocs.org/projects/esmvaltool/badge/?version=latest)](https://esmvaltool.readthedocs.io/en/latest/?badge=latest) [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3401363.svg)](https://doi.org/10.5281/zenodo.3401363) -[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/ESMValGroup?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) +[![Chat on Matrix](https://matrix.to/img/matrix-badge.svg)](https://matrix.to/#/#ESMValGroup_Lobby:gitter.im) [![CircleCI](https://circleci.com/gh/ESMValGroup/ESMValTool/tree/main.svg?style=svg)](https://circleci.com/gh/ESMValGroup/ESMValTool/tree/main) [![Test in Full Development Mode](https://github.com/ESMValGroup/ESMValTool/actions/workflows/test-development.yml/badge.svg)](https://github.com/ESMValGroup/ESMValTool/actions/workflows/test-development.yml) [![Codacy Badge](https://app.codacy.com/project/badge/Coverage/79bf6932c2e844eea15d0fb1ed7e415c)](https://www.codacy.com/gh/ESMValGroup/ESMValTool?utm_source=github.com&utm_medium=referral&utm_content=ESMValGroup/ESMValTool&utm_campaign=Badge_Coverage) From 8778cb4d28790c61276215d49b8fb8d235a81643 Mon Sep 17 00:00:00 2001 From: Valeriu Predoi Date: Mon, 3 Jul 2023 09:34:02 +0200 Subject: [PATCH 09/34] Realize data for scalar cube in `recipe_carvalhais14nat` to avert issue from dask latest (2023.6.0) (#3265) --- .../diag_scripts/land_carbon_cycle/diag_global_turnover.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/esmvaltool/diag_scripts/land_carbon_cycle/diag_global_turnover.py b/esmvaltool/diag_scripts/land_carbon_cycle/diag_global_turnover.py index 0d8b95ff84..d703c87a24 100644 --- a/esmvaltool/diag_scripts/land_carbon_cycle/diag_global_turnover.py +++ b/esmvaltool/diag_scripts/land_carbon_cycle/diag_global_turnover.py @@ -737,7 +737,12 @@ def main(diag_config): tau_global = ctotal_global / gpp_global tau_global.convert_units('yr') - global_tau_mod['global'][model_name] = float(tau_global.core_data()) + # since dask=2023.3 there is an issue with converting the core_data() + # to float; I have not managed to pinpoint the issue neither in dask + # nor in iris, since minimal test cases are not reproducing it + # this is a scalar cube so no big mem issue by realizing the data + # global_tau_mod['global'][model_name] = float(tau_global.core_data()) + global_tau_mod['global'][model_name] = float(tau_global.data) base_name_mod = ( 'global_{title}_{source_label}_' From fb599303229ccabc18d66a552429e91c497700a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Kazeroni?= Date: Tue, 4 Jul 2023 10:34:05 +0200 Subject: [PATCH 10/34] Fix failing `mlr` diagnostic test by adding new scikit-learn default tag (#3273) Co-authored-by: Bouwe Andela Co-authored-by: Valeriu Predoi --- esmvaltool/diag_scripts/mlr/custom_sklearn.py | 1 + 1 file changed, 1 insertion(+) diff --git a/esmvaltool/diag_scripts/mlr/custom_sklearn.py b/esmvaltool/diag_scripts/mlr/custom_sklearn.py index 2e403163cb..198cbdc376 100644 --- a/esmvaltool/diag_scripts/mlr/custom_sklearn.py +++ b/esmvaltool/diag_scripts/mlr/custom_sklearn.py @@ -86,6 +86,7 @@ _DEFAULT_TAGS = { + 'array_api_support': False, 'non_deterministic': False, 'requires_positive_X': False, 'requires_positive_y': False, From 4fc4a3500460d15d4c0dbbd23a6fc501d0d3171f Mon Sep 17 00:00:00 2001 From: Bouwe Andela Date: Tue, 4 Jul 2023 12:30:21 +0200 Subject: [PATCH 11/34] Relax the pin on iris to allow the use of older versions for performance reasons (#3270) --- setup.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 497815cf7e..940cc5224f 100755 --- a/setup.py +++ b/setup.py @@ -60,7 +60,9 @@ 'scikit-image', 'scikit-learn', 'scipy', - 'scitools-iris>=3.6.0', + # See the following issue for info on the iris pin below: + # https://github.com/ESMValGroup/ESMValTool/issues/3239#issuecomment-1613298587 + 'scitools-iris>=3.4.0', 'seaborn', 'seawater', 'shapely', From c694d4c8e33c4f4af812df0b18186b44003d243a Mon Sep 17 00:00:00 2001 From: Bouwe Andela Date: Tue, 4 Jul 2023 14:32:49 +0200 Subject: [PATCH 12/34] Use ESMValCore v2.9.0 (#3274) --- environment.yml | 2 +- environment_osx.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/environment.yml b/environment.yml index 7f060c5437..33a556b7d9 100644 --- a/environment.yml +++ b/environment.yml @@ -4,7 +4,7 @@ channels: # The release candidate channel should only be activated # during the rc phase right before the next release of the # ESMValCore. - - conda-forge/label/esmvalcore_rc + # - conda-forge/label/esmvalcore_rc - conda-forge - nodefaults diff --git a/environment_osx.yml b/environment_osx.yml index 64d3a142b9..fac9409617 100644 --- a/environment_osx.yml +++ b/environment_osx.yml @@ -4,7 +4,7 @@ channels: # The release candidate channel should only be activated # during the rc phase right before the next release of the # ESMValCore. - - conda-forge/label/esmvalcore_rc + # - conda-forge/label/esmvalcore_rc - conda-forge - nodefaults From bd374852a623616aa97fe0f1b55c31c7da0d4343 Mon Sep 17 00:00:00 2001 From: Bouwe Andela Date: Tue, 4 Jul 2023 14:32:49 +0200 Subject: [PATCH 13/34] Use ESMValCore v2.9.0 (#3274) --- environment.yml | 2 +- environment_osx.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/environment.yml b/environment.yml index 7f060c5437..33a556b7d9 100644 --- a/environment.yml +++ b/environment.yml @@ -4,7 +4,7 @@ channels: # The release candidate channel should only be activated # during the rc phase right before the next release of the # ESMValCore. - - conda-forge/label/esmvalcore_rc + # - conda-forge/label/esmvalcore_rc - conda-forge - nodefaults diff --git a/environment_osx.yml b/environment_osx.yml index 64d3a142b9..fac9409617 100644 --- a/environment_osx.yml +++ b/environment_osx.yml @@ -4,7 +4,7 @@ channels: # The release candidate channel should only be activated # during the rc phase right before the next release of the # ESMValCore. - - conda-forge/label/esmvalcore_rc + # - conda-forge/label/esmvalcore_rc - conda-forge - nodefaults From dfc78841b0a0a87bde4b782645f6d1759fe54d1d Mon Sep 17 00:00:00 2001 From: Lisa Bock Date: Thu, 6 Jul 2023 10:39:24 +0200 Subject: [PATCH 14/34] Fix ordering of models in perfmetrics (#3275) --- esmvaltool/diag_scripts/perfmetrics/collect.ncl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/esmvaltool/diag_scripts/perfmetrics/collect.ncl b/esmvaltool/diag_scripts/perfmetrics/collect.ncl index 0fd2efe311..503a9c50d8 100644 --- a/esmvaltool/diag_scripts/perfmetrics/collect.ncl +++ b/esmvaltool/diag_scripts/perfmetrics/collect.ncl @@ -351,9 +351,9 @@ begin end if if (n_proj .gt. 1) then id2 = ind(projectnames.eq.diag_script_info@project_order(1)) - id2_mm = (/ind(data_all&models(id2) .eq. \ + id2_mm = (/ind(data_temp&models(id2) .eq. \ diag_script_info@project_order(1) + "_mean"), \ - ind(data_all&models(id2) .eq. \ + ind(data_temp&models(id2) .eq. \ diag_script_info@project_order(1) + "_median") /) if (any(ismissing(id2_mm))) then id2_mm = -1 @@ -368,9 +368,9 @@ begin end if if (n_proj .gt. 2) then id3 = ind(projectnames.eq.diag_script_info@project_order(2)) - id3_mm = (/ind(data_all&models(id3) .eq. \ + id3_mm = (/ind(data_temp&models(id3) .eq. \ diag_script_info@project_order(2) + "_mean"), \ - ind(data_all&models(id3) .eq. \ + ind(data_temp&models(id3) .eq. \ diag_script_info@project_order(2) + "_median") /) if (any(ismissing(id3_mm))) then id3_mm = -1 From 578421beb4663fe11f4e7bbc02e1e01d5ede39fb Mon Sep 17 00:00:00 2001 From: Lisa Bock Date: Thu, 6 Jul 2023 10:39:24 +0200 Subject: [PATCH 15/34] Fix ordering of models in perfmetrics (#3275) --- esmvaltool/diag_scripts/perfmetrics/collect.ncl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/esmvaltool/diag_scripts/perfmetrics/collect.ncl b/esmvaltool/diag_scripts/perfmetrics/collect.ncl index 0fd2efe311..503a9c50d8 100644 --- a/esmvaltool/diag_scripts/perfmetrics/collect.ncl +++ b/esmvaltool/diag_scripts/perfmetrics/collect.ncl @@ -351,9 +351,9 @@ begin end if if (n_proj .gt. 1) then id2 = ind(projectnames.eq.diag_script_info@project_order(1)) - id2_mm = (/ind(data_all&models(id2) .eq. \ + id2_mm = (/ind(data_temp&models(id2) .eq. \ diag_script_info@project_order(1) + "_mean"), \ - ind(data_all&models(id2) .eq. \ + ind(data_temp&models(id2) .eq. \ diag_script_info@project_order(1) + "_median") /) if (any(ismissing(id2_mm))) then id2_mm = -1 @@ -368,9 +368,9 @@ begin end if if (n_proj .gt. 2) then id3 = ind(projectnames.eq.diag_script_info@project_order(2)) - id3_mm = (/ind(data_all&models(id3) .eq. \ + id3_mm = (/ind(data_temp&models(id3) .eq. \ diag_script_info@project_order(2) + "_mean"), \ - ind(data_all&models(id3) .eq. \ + ind(data_temp&models(id3) .eq. \ diag_script_info@project_order(2) + "_median") /) if (any(ismissing(id3_mm))) then id3_mm = -1 From 7e0c5a5b630bc9f37e056ca064b4b627dde96cb1 Mon Sep 17 00:00:00 2001 From: Bouwe Andela Date: Thu, 6 Jul 2023 16:20:23 +0200 Subject: [PATCH 16/34] Add release notes for v2.9 (#3266) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Valeriu Predoi Co-authored-by: Rémi Kazeroni --- CITATION.cff | 4 +- doc/sphinx/source/changelog.rst | 117 ++++++++++++++++++++++++++++++-- 2 files changed, 114 insertions(+), 7 deletions(-) diff --git a/CITATION.cff b/CITATION.cff index f069250a3d..31404e4c7e 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -351,11 +351,11 @@ authors: orcid: "https://orcid.org/0000-0002-2406-4936" cff-version: 1.2.0 -date-released: 2023-03-28 +date-released: 2023-07-06 doi: "10.5281/zenodo.3401363" license: "Apache-2.0" message: "If you use this software, please cite it using these metadata." repository-code: "https://github.com/ESMValGroup/ESMValTool/" title: ESMValTool -version: "v2.8.0" +version: "v2.9.0" ... diff --git a/doc/sphinx/source/changelog.rst b/doc/sphinx/source/changelog.rst index e26ec7d26b..52c3aa3086 100644 --- a/doc/sphinx/source/changelog.rst +++ b/doc/sphinx/source/changelog.rst @@ -3,6 +3,113 @@ Changelog ========= +.. _changelog-v2-9-0: + +v2.9.0 +------ + +Highlights +~~~~~~~~~~ + +- A new :ref:`diagnostic ` has been + added to provide a high-level interface to + `seaborn `__, + a Python data visualization library based on + `matplotlib `__. + See the :ref:`recipe documentation ` for more + information. + +- We have included a new recipe and diagnostic that represent the major + physical processes that describe Arctic-midlatitude teleconnections and + provide the basis for the CMIP6 model evaluation for the further application + of causal discovery. + The results are discussed in the article + `"Causal model evaluation of Arctic-midlatitude teleconnections in CMIP6" `__ + by Galytska et al. (in review in Journal of Geophysical Research: Atmospheres). + +- It is now possible to use the + `Dask distributed scheduler `__, + which can + `significantly reduce the run-time of recipes `__. + Configuration examples and advice are available in the + :ref:`ESMValCore documentation `. + If configured, the Dask distributed scheduler will also be used by diagnostic + scripts written in Python, so make sure to use + `lazy data `__ + wherever it is possible in your (new) diagnostics. + More work on improving the computational performance is planned, so please + share your experiences, good and bad, with this new feature in + `ESMValGroup/ESMValCore#1763 `__. + +This release includes + +Bug fixes +~~~~~~~~~ + +- Fixed usage of ``work_dir`` in some CMORizer scripts (`#3192 `__) `Rémi Kazeroni `__ +- Realize data for scalar cube in `recipe_carvalhais14nat` to avert issue from dask latest (2023.6.0) (`#3265 `__) `Valeriu Predoi `__ +- Fix failing ``mlr`` diagnostic test by adding new scikit-learn default tag (`#3273 `__) `Rémi Kazeroni `__ +- Fix ordering of models in perfmetrics diagnostic script (`#3275 `__) `Lisa Bock `__ + +Documentation +~~~~~~~~~~~~~ + +- Update release schedule after v2.8.0 (`#3138 `__) `Rémi Kazeroni `__ +- Added reference entry for Winterstein (`#3154 `__) `FranziskaWinterstein `__ +- Show logo on PyPI (`#3185 `__) `Valeriu Predoi `__ +- Add Release Managers for v2.9.0 and v2.10.0 (`#3184 `__) `Rémi Kazeroni `__ +- Fix readthedocs build with esmpy>=8.4.0 and missing ESMFMKFILE variable (`#3205 `__) `Valeriu Predoi `__ +- Add ESMValCore release v2.8.1 into the documentation (`#3235 `__) `Rémi Kazeroni `__ +- Modified links to the tutorial (`#3236 `__) `Rémi Kazeroni `__ +- Fix gitter badge in README (`#3258 `__) `Rémi Kazeroni `__ +- Add release notes for v2.9.0 (`#3266 `__) `Bouwe Andela `__ + +Diagnostics +~~~~~~~~~~~ + +- New plot_type 1d_profile in monitor (`#3178 `__) `FranziskaWinterstein `__ +- Add Seaborn diagnostic (`#3155 `__) `Manuel Schlund `__ +- New recipe and diagnostic for Arctic-midlatitude research (`#3021 `__) `Evgenia Galytska `__ +- Generate climatology on the fly for AutoAssess soil moisture (`#3197 `__) `Alistair Sellar `__ +- Remove "fx_variables" from recipe_tebaldi21esd.yml (`#3211 `__) `Birgit Hassler `__ +- Remove "fx_variables" from ipccwg1ar5ch9 recipes (`#3215 `__) `katjaweigel `__ +- Remove "fx_variables" from recipe_wenzel14jgr.yml (`#3212 `__) `Birgit Hassler `__ +- Update obs4MIPs dataset to the current naming scheme in recipe_smpi.yml (`#2991 `__) `Bouwe Andela `__ +- Fixed pandas diagnostics for pandas>=2.0.0 (`#3209 `__) `Manuel Schlund `__ +- Update recipe_impact.yml to work with newer versions of `pandas` (`#3220 `__) `Bouwe Andela `__ +- Add variable long names to provenance record in monitoring diagnostics (`#3222 `__) `Brei Soliño `__ + +Observational and re-analysis dataset support +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- Add CMORizer for GPCP-SG (pr) (`#3150 `__) `FranziskaWinterstein `__ +- Extension of NASA MERRA2 CMORizer (cl, cli, clivi, clw, clwvi) (`#3167 `__) `Axel Lauer `__ + +Automatic testing +~~~~~~~~~~~~~~~~~ + +- Add a CircleCI-testing-specific ``recipe_python_for_CI.yml`` to avoid calling geolocator/Nominatim over CI (`#3159 `__) `Valeriu Predoi `__ +- Check if Python minor version changed after Julia install in development installation test (`#3213 `__) `Valeriu Predoi `__ +- Fix tests using deprecated ``esmvalcore._config`` module that has been removed in ESMValCore v2.9 (`#3204 `__) `Valeriu Predoi `__ + +Installation +~~~~~~~~~~~~ + +- Add support for Python=3.11 (`#3173 `__) `Valeriu Predoi `__ +- Drop python=3.8 support (`#3193 `__) `Valeriu Predoi `__ +- Repair generation of conda lock files (`#3148 `__) `Valeriu Predoi `__ +- Modernize lock creation script and repair lock generation (`#3174 `__) `Valeriu Predoi `__ +- Pin numpy !=1.24.3 due to severe masking bug (`#3182 `__) `Valeriu Predoi `__ +- Update xesmf to versions >= 0.4.0 (`#2728 `__) `Klaus Zimmermann `__ +- Update esmpy import for ESMF version 8.4.0 or larger (`#3188 `__) `Valeriu Predoi `__ +- Relax the pin on iris to allow the use of older versions for performance reasons (`#3270 `__) `Bouwe Andela `__ +- Use ESMValCore v2.9.0 (`#3274 `__) `Bouwe Andela `__ + +Improvements +~~~~~~~~~~~~ + +- Update pre-commit hooks (`#3189 `__) `Bouwe Andela `__ +- Add support for using a dask distributed scheduler (`#3151 `__) `Bouwe Andela `__ .. _changelog-v2-8-0: @@ -19,7 +126,7 @@ Highlights climatologies from CMIP models as used in `Lauer et al. (2023), J. Climate `__. See :ref:`recipe documentation ` about added recipes. -- Addition of a set of recipes for extreme events, regional and impact +- Addition of a set of recipes for extreme events, regional and impact evaluation as used in `Weigel et al. (2021), J. Climate `__ and in IPCC AR5. See :ref:`recipe documentation ` about added recipes. @@ -265,7 +372,7 @@ Documentation - Update documentation for the Landschuetzer 2016 recipe. (`#2801 `__) `Tomas Torsvik `__ - Fixed anaconda badge in README (`#2866 `__) `Valeriu Predoi `__ - Update release strategy notes (`#2734 `__) `sloosvel `__ -- Add documention on how to handle CMORizers for multiple dataset versions (`#2730 `__) `Rémi Kazeroni `__ +- Add documentation on how to handle CMORizers for multiple dataset versions (`#2730 `__) `Rémi Kazeroni `__ - Extending documentation: recipe maintainer + broken recipe policy (`#2719 `__) `Axel Lauer `__ Diagnostics @@ -310,8 +417,8 @@ Highlights ~~~~~~~~~~ - A new monitoring diagnostic has been added to allow the comparison of model runs against reference datasets. For details, see :ref:`Monitoring diagnostic to show multiple datasets in one plot (incl. biases) `. -- A tool has been developed to compare the output of recipe runs against previous runs, in order to detect in an automatized way breaking changes between releases. Find more information in :ref:`Comparing recipe runs `. -- The recipe :ref:`Climate Change Hotspot ` allows to compute hotspots in any rectangular region. +- A tool has been developed to compare the output of recipe runs against previous runs, in order to detect in an automated way breaking changes between releases. Find more information in :ref:`Comparing recipe runs `. +- The recipe :ref:`Climate Change Hotspot ` allows to compute hotspots in any rectangular region. Please also note the highlights from the corresponding ESMValCore release :ref:`here`. Thanks to that ESMValTool has gained the following features: @@ -418,7 +525,7 @@ Thanks to that ESMValTool has gained the following features: - The new preprocessor ``extract_location`` can extract arbitrary locations on the Earth. - Time ranges can now be extracted using the `ISO 8601 format `_. -- The new preprocessor ``ensemble_statistics`` can calculate arbitrary statitics over all ensemble members of a simulation. +- The new preprocessor ``ensemble_statistics`` can calculate arbitrary statistics over all ensemble members of a simulation. This release includes From 35c4fcfdceddf3c1dfbd1cf6004ab7bdeee7abc6 Mon Sep 17 00:00:00 2001 From: Bouwe Andela Date: Thu, 6 Jul 2023 16:20:23 +0200 Subject: [PATCH 17/34] Add release notes for v2.9 (#3266) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Valeriu Predoi Co-authored-by: Rémi Kazeroni --- CITATION.cff | 4 +- doc/sphinx/source/changelog.rst | 117 ++++++++++++++++++++++++++++++-- 2 files changed, 114 insertions(+), 7 deletions(-) diff --git a/CITATION.cff b/CITATION.cff index f069250a3d..31404e4c7e 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -351,11 +351,11 @@ authors: orcid: "https://orcid.org/0000-0002-2406-4936" cff-version: 1.2.0 -date-released: 2023-03-28 +date-released: 2023-07-06 doi: "10.5281/zenodo.3401363" license: "Apache-2.0" message: "If you use this software, please cite it using these metadata." repository-code: "https://github.com/ESMValGroup/ESMValTool/" title: ESMValTool -version: "v2.8.0" +version: "v2.9.0" ... diff --git a/doc/sphinx/source/changelog.rst b/doc/sphinx/source/changelog.rst index e26ec7d26b..52c3aa3086 100644 --- a/doc/sphinx/source/changelog.rst +++ b/doc/sphinx/source/changelog.rst @@ -3,6 +3,113 @@ Changelog ========= +.. _changelog-v2-9-0: + +v2.9.0 +------ + +Highlights +~~~~~~~~~~ + +- A new :ref:`diagnostic ` has been + added to provide a high-level interface to + `seaborn `__, + a Python data visualization library based on + `matplotlib `__. + See the :ref:`recipe documentation ` for more + information. + +- We have included a new recipe and diagnostic that represent the major + physical processes that describe Arctic-midlatitude teleconnections and + provide the basis for the CMIP6 model evaluation for the further application + of causal discovery. + The results are discussed in the article + `"Causal model evaluation of Arctic-midlatitude teleconnections in CMIP6" `__ + by Galytska et al. (in review in Journal of Geophysical Research: Atmospheres). + +- It is now possible to use the + `Dask distributed scheduler `__, + which can + `significantly reduce the run-time of recipes `__. + Configuration examples and advice are available in the + :ref:`ESMValCore documentation `. + If configured, the Dask distributed scheduler will also be used by diagnostic + scripts written in Python, so make sure to use + `lazy data `__ + wherever it is possible in your (new) diagnostics. + More work on improving the computational performance is planned, so please + share your experiences, good and bad, with this new feature in + `ESMValGroup/ESMValCore#1763 `__. + +This release includes + +Bug fixes +~~~~~~~~~ + +- Fixed usage of ``work_dir`` in some CMORizer scripts (`#3192 `__) `Rémi Kazeroni `__ +- Realize data for scalar cube in `recipe_carvalhais14nat` to avert issue from dask latest (2023.6.0) (`#3265 `__) `Valeriu Predoi `__ +- Fix failing ``mlr`` diagnostic test by adding new scikit-learn default tag (`#3273 `__) `Rémi Kazeroni `__ +- Fix ordering of models in perfmetrics diagnostic script (`#3275 `__) `Lisa Bock `__ + +Documentation +~~~~~~~~~~~~~ + +- Update release schedule after v2.8.0 (`#3138 `__) `Rémi Kazeroni `__ +- Added reference entry for Winterstein (`#3154 `__) `FranziskaWinterstein `__ +- Show logo on PyPI (`#3185 `__) `Valeriu Predoi `__ +- Add Release Managers for v2.9.0 and v2.10.0 (`#3184 `__) `Rémi Kazeroni `__ +- Fix readthedocs build with esmpy>=8.4.0 and missing ESMFMKFILE variable (`#3205 `__) `Valeriu Predoi `__ +- Add ESMValCore release v2.8.1 into the documentation (`#3235 `__) `Rémi Kazeroni `__ +- Modified links to the tutorial (`#3236 `__) `Rémi Kazeroni `__ +- Fix gitter badge in README (`#3258 `__) `Rémi Kazeroni `__ +- Add release notes for v2.9.0 (`#3266 `__) `Bouwe Andela `__ + +Diagnostics +~~~~~~~~~~~ + +- New plot_type 1d_profile in monitor (`#3178 `__) `FranziskaWinterstein `__ +- Add Seaborn diagnostic (`#3155 `__) `Manuel Schlund `__ +- New recipe and diagnostic for Arctic-midlatitude research (`#3021 `__) `Evgenia Galytska `__ +- Generate climatology on the fly for AutoAssess soil moisture (`#3197 `__) `Alistair Sellar `__ +- Remove "fx_variables" from recipe_tebaldi21esd.yml (`#3211 `__) `Birgit Hassler `__ +- Remove "fx_variables" from ipccwg1ar5ch9 recipes (`#3215 `__) `katjaweigel `__ +- Remove "fx_variables" from recipe_wenzel14jgr.yml (`#3212 `__) `Birgit Hassler `__ +- Update obs4MIPs dataset to the current naming scheme in recipe_smpi.yml (`#2991 `__) `Bouwe Andela `__ +- Fixed pandas diagnostics for pandas>=2.0.0 (`#3209 `__) `Manuel Schlund `__ +- Update recipe_impact.yml to work with newer versions of `pandas` (`#3220 `__) `Bouwe Andela `__ +- Add variable long names to provenance record in monitoring diagnostics (`#3222 `__) `Brei Soliño `__ + +Observational and re-analysis dataset support +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- Add CMORizer for GPCP-SG (pr) (`#3150 `__) `FranziskaWinterstein `__ +- Extension of NASA MERRA2 CMORizer (cl, cli, clivi, clw, clwvi) (`#3167 `__) `Axel Lauer `__ + +Automatic testing +~~~~~~~~~~~~~~~~~ + +- Add a CircleCI-testing-specific ``recipe_python_for_CI.yml`` to avoid calling geolocator/Nominatim over CI (`#3159 `__) `Valeriu Predoi `__ +- Check if Python minor version changed after Julia install in development installation test (`#3213 `__) `Valeriu Predoi `__ +- Fix tests using deprecated ``esmvalcore._config`` module that has been removed in ESMValCore v2.9 (`#3204 `__) `Valeriu Predoi `__ + +Installation +~~~~~~~~~~~~ + +- Add support for Python=3.11 (`#3173 `__) `Valeriu Predoi `__ +- Drop python=3.8 support (`#3193 `__) `Valeriu Predoi `__ +- Repair generation of conda lock files (`#3148 `__) `Valeriu Predoi `__ +- Modernize lock creation script and repair lock generation (`#3174 `__) `Valeriu Predoi `__ +- Pin numpy !=1.24.3 due to severe masking bug (`#3182 `__) `Valeriu Predoi `__ +- Update xesmf to versions >= 0.4.0 (`#2728 `__) `Klaus Zimmermann `__ +- Update esmpy import for ESMF version 8.4.0 or larger (`#3188 `__) `Valeriu Predoi `__ +- Relax the pin on iris to allow the use of older versions for performance reasons (`#3270 `__) `Bouwe Andela `__ +- Use ESMValCore v2.9.0 (`#3274 `__) `Bouwe Andela `__ + +Improvements +~~~~~~~~~~~~ + +- Update pre-commit hooks (`#3189 `__) `Bouwe Andela `__ +- Add support for using a dask distributed scheduler (`#3151 `__) `Bouwe Andela `__ .. _changelog-v2-8-0: @@ -19,7 +126,7 @@ Highlights climatologies from CMIP models as used in `Lauer et al. (2023), J. Climate `__. See :ref:`recipe documentation ` about added recipes. -- Addition of a set of recipes for extreme events, regional and impact +- Addition of a set of recipes for extreme events, regional and impact evaluation as used in `Weigel et al. (2021), J. Climate `__ and in IPCC AR5. See :ref:`recipe documentation ` about added recipes. @@ -265,7 +372,7 @@ Documentation - Update documentation for the Landschuetzer 2016 recipe. (`#2801 `__) `Tomas Torsvik `__ - Fixed anaconda badge in README (`#2866 `__) `Valeriu Predoi `__ - Update release strategy notes (`#2734 `__) `sloosvel `__ -- Add documention on how to handle CMORizers for multiple dataset versions (`#2730 `__) `Rémi Kazeroni `__ +- Add documentation on how to handle CMORizers for multiple dataset versions (`#2730 `__) `Rémi Kazeroni `__ - Extending documentation: recipe maintainer + broken recipe policy (`#2719 `__) `Axel Lauer `__ Diagnostics @@ -310,8 +417,8 @@ Highlights ~~~~~~~~~~ - A new monitoring diagnostic has been added to allow the comparison of model runs against reference datasets. For details, see :ref:`Monitoring diagnostic to show multiple datasets in one plot (incl. biases) `. -- A tool has been developed to compare the output of recipe runs against previous runs, in order to detect in an automatized way breaking changes between releases. Find more information in :ref:`Comparing recipe runs `. -- The recipe :ref:`Climate Change Hotspot ` allows to compute hotspots in any rectangular region. +- A tool has been developed to compare the output of recipe runs against previous runs, in order to detect in an automated way breaking changes between releases. Find more information in :ref:`Comparing recipe runs `. +- The recipe :ref:`Climate Change Hotspot ` allows to compute hotspots in any rectangular region. Please also note the highlights from the corresponding ESMValCore release :ref:`here`. Thanks to that ESMValTool has gained the following features: @@ -418,7 +525,7 @@ Thanks to that ESMValTool has gained the following features: - The new preprocessor ``extract_location`` can extract arbitrary locations on the Earth. - Time ranges can now be extracted using the `ISO 8601 format `_. -- The new preprocessor ``ensemble_statistics`` can calculate arbitrary statitics over all ensemble members of a simulation. +- The new preprocessor ``ensemble_statistics`` can calculate arbitrary statistics over all ensemble members of a simulation. This release includes From 197024d940179601363b5a619bd0e5d048901a7c Mon Sep 17 00:00:00 2001 From: Manuel Schlund <32543114+schlunma@users.noreply.github.com> Date: Wed, 12 Jul 2023 16:01:26 +0200 Subject: [PATCH 18/34] Made sklearn test backwards-compatible with sklearn < 1.3 (#3285) --- .../mlr/test_custom_sklearn_functions.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/tests/integration/diag_scripts/mlr/test_custom_sklearn_functions.py b/tests/integration/diag_scripts/mlr/test_custom_sklearn_functions.py index f14ccb3e2e..b058465188 100644 --- a/tests/integration/diag_scripts/mlr/test_custom_sklearn_functions.py +++ b/tests/integration/diag_scripts/mlr/test_custom_sklearn_functions.py @@ -459,10 +459,18 @@ def _more_tags(self): return {"allow_nan": True} +class MockBaseEstimator: + """Estimator with ``_get_tags``.""" + + def _get_tags(self): + """Return tags.""" + return _DEFAULT_TAGS + + @pytest.mark.parametrize( 'estimator,err_msg', [ - (BaseEstimator(), 'The key xxx is not defined in _get_tags'), + (MockBaseEstimator(), 'The key xxx is not defined in _get_tags'), (NoTagsEstimator(), 'The key xxx is not defined in _DEFAULT_TAGS'), ], ) @@ -480,9 +488,8 @@ def test_safe_tags_error(estimator, err_msg): (NoTagsEstimator(), 'allow_nan', _DEFAULT_TAGS['allow_nan']), (MoreTagsEstimator(), None, {**_DEFAULT_TAGS, **{'allow_nan': True}}), (MoreTagsEstimator(), 'allow_nan', True), - (BaseEstimator(), None, _DEFAULT_TAGS), - (BaseEstimator(), 'allow_nan', _DEFAULT_TAGS['allow_nan']), - (BaseEstimator(), 'allow_nan', _DEFAULT_TAGS['allow_nan']), + (MockBaseEstimator(), None, _DEFAULT_TAGS), + (MockBaseEstimator(), 'allow_nan', _DEFAULT_TAGS['allow_nan']), ], ) def test_safe_tags_no_get_tags(estimator, key, expected_results): From 4da5cd376035bfe61220791293cd520305dd6113 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Kazeroni?= Date: Thu, 13 Jul 2023 13:13:15 +0200 Subject: [PATCH 19/34] Add merge instructions to release instructions (#3292) --- .../release_strategy/release_strategy.rst | 36 +++++++++++++++++-- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/doc/sphinx/source/community/release_strategy/release_strategy.rst b/doc/sphinx/source/community/release_strategy/release_strategy.rst index 9843e52363..696dbfd997 100644 --- a/doc/sphinx/source/community/release_strategy/release_strategy.rst +++ b/doc/sphinx/source/community/release_strategy/release_strategy.rst @@ -462,7 +462,37 @@ and create the new release from the release branch (i.e. not from ``main``). The release tag always starts with the letter ``v`` followed by the version number, e.g. ``v2.1.0``. -6. Create and upload the PyPI package +6. Mark the release in the main branch +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +When the (pre-)release is tagged, it is time to merge the release branch back into `main`. +We do this for two reasons, namely, one, to mark the point up to which commits in `main` +have been considered for inclusion into the present release, and, two, to inform +setuptools-scm about the version number so that it creates the correct version number in +`main`. +However, unlike in a normal merge, we do not want to integrate any of the changes from the +release branch into main. +This is because all changes that should be in both branches, i.e. bug fixes, originate from +`main` anyway and the only other changes in the release branch relate to the release itself. +To take this into account, we perform the merge in this case on the command line using `the +ours merge strategy `__ +(``git merge -s ours``), not to be confused with the ``ours`` option to the ort merge strategy +(``git merge -X ours``). +For details about merge strategies, see the above-linked page. +To execute the merge use following sequence of steps + +.. code-block:: bash + + git fetch + git checkout main + git pull + git merge -s ours v2.1.x + git push + +Note that the release branch remains intact and you should continue any work on the release +on that branch. + +7. Create and upload the PyPI package ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The package is automatically uploaded to the @@ -493,7 +523,7 @@ Follow these steps to create a new Python package: You can read more about this in `Packaging Python Projects `__. -7. Create the Conda package +8. Create the Conda package ~~~~~~~~~~~~~~~~~~~~~~~~~~~ The ``esmvaltool`` package is published on the `conda-forge conda channel @@ -514,7 +544,7 @@ they will merge the pull request, which will in turn publish the package on conda-forge some time later. Contact the feedstock maintainers if you want to become a maintainer yourself. -8. Check the Docker images +9. Check the Docker images ~~~~~~~~~~~~~~~~~~~~~~~~~~ There are three main Docker container images available for ESMValTool on From 3fcece52b4cd2c8d4cd7739faab4f50bcdafb7ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Kazeroni?= Date: Fri, 14 Jul 2023 08:57:31 +0200 Subject: [PATCH 20/34] Update release schedule after release of v2.9.0 (#3289) --- .../release_strategy/release_strategy.rst | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/doc/sphinx/source/community/release_strategy/release_strategy.rst b/doc/sphinx/source/community/release_strategy/release_strategy.rst index 696dbfd997..9bd8d71e2d 100644 --- a/doc/sphinx/source/community/release_strategy/release_strategy.rst +++ b/doc/sphinx/source/community/release_strategy/release_strategy.rst @@ -54,18 +54,6 @@ With the following release schedule, we strive to have three releases per year a Upcoming releases ^^^^^^^^^^^^^^^^^ -- 2.9.0 (Release Manager: `Bouwe Andela`_) - -+------------+--------------------------+ -| 2023-06-05 |ESMValCore feature freeze | -+------------+--------------------------+ -| 2023-06-12 |ESMValCore release | -+------------+--------------------------+ -| 2023-06-19 |ESMValTool feature freeze | -+------------+--------------------------+ -| 2023-06-26 |ESMValTool release | -+------------+--------------------------+ - - 2.10.0 (Release Manager: `Klaus Zimmermann`_) +------------+--------------------------+ @@ -81,6 +69,20 @@ Upcoming releases Past releases ^^^^^^^^^^^^^ +- 2.9.0 (Release Manager: `Bouwe Andela`_) + ++------------+------------+---------------------------------------------------------------------------------------------+------------------------------------+ +| Planned | Done | Event | Changelog | ++============+============+=============================================================================================+====================================+ +| 2023-06-05 | | ESMValCore Feature Freeze | | ++------------+------------+---------------------------------------------------------------------------------------------+------------------------------------+ +| 2023-06-12 | 2023-07-04 | `ESMValCore Release 2.9.0 `_ | :ref:`esmvalcore:changelog-v2-9-0` | ++------------+------------+---------------------------------------------------------------------------------------------+------------------------------------+ +| 2023-06-19 | | ESMValTool Feature Freeze | | ++------------+------------+---------------------------------------------------------------------------------------------+------------------------------------+ +| 2023-06-26 | 2023-07-06 | `ESMValTool Release 2.9.0 `_ | :ref:`changelog-v2-9-0` | ++------------+------------+---------------------------------------------------------------------------------------------+------------------------------------+ + - 2.8.1 (Bugfix, Release Manager: `Valeriu Predoi`_) +------------+---------------------------------------------------------------------------------------------+------------------------------------+ From d87863682c0ef9725185d7b126dd56c64ea75ab0 Mon Sep 17 00:00:00 2001 From: Lukas Date: Mon, 17 Jul 2023 13:52:16 +0200 Subject: [PATCH 21/34] Update diag_shapeselect.py to work with shapely v2 (#3283) --- .../shapeselect/diag_shapeselect.py | 61 ++++++++++++------- esmvaltool/recipes/recipe_shapeselect.yml | 2 +- 2 files changed, 39 insertions(+), 24 deletions(-) diff --git a/esmvaltool/diag_scripts/shapeselect/diag_shapeselect.py b/esmvaltool/diag_scripts/shapeselect/diag_shapeselect.py index 403bc3e630..94ab3b14ec 100644 --- a/esmvaltool/diag_scripts/shapeselect/diag_shapeselect.py +++ b/esmvaltool/diag_scripts/shapeselect/diag_shapeselect.py @@ -11,8 +11,11 @@ from shapely.geometry import MultiPoint, shape from shapely.ops import nearest_points -from esmvaltool.diag_scripts.shared import (run_diagnostic, ProvenanceLogger, - get_diagnostic_filename) +from esmvaltool.diag_scripts.shared import ( + ProvenanceLogger, + get_diagnostic_filename, + run_diagnostic, +) logger = logging.getLogger(os.path.basename(__file__)) @@ -48,16 +51,22 @@ def main(cfg): xname = name + '_table' writexls(cfg, filename, ncts, nclon, nclat) caption = 'Selected gridpoints within shapefile.' - get_provenance_record( - cfg, xname, caption, 'xlsx', ancestor_files=[filename]) + get_provenance_record(cfg, + xname, + caption, + 'xlsx', + ancestor_files=[filename]) path = os.path.join( cfg['work_dir'], name + '.nc', ) write_netcdf(path, ncts, nclon, nclat, cube, cfg) caption = 'Selected gridpoints within shapefile.' - get_provenance_record( - cfg, name, caption, 'nc', ancestor_files=[filename]) + get_provenance_record(cfg, + name, + caption, + 'nc', + ancestor_files=[filename]) def write_keyvalue_toxlsx(worksheet, row, key, value): @@ -93,17 +102,16 @@ def writexls(cfg, filename, ncts, nclon1, nclat1): workbook = xlsxwriter.Workbook( os.path.join( cfg['work_dir'], - os.path.splitext(os.path.basename(filename))[0] + '_polygon_table' - + '.xlsx')) + os.path.splitext(os.path.basename(filename))[0] + + '_polygon_table' + '.xlsx')) worksheet = workbook.add_worksheet('Data') worksheet.write(0, 0, 'Date') worksheet.write(0, 1, 'Lon/Lat') worksheet.write_column(2, 0, wtime) for row in range(ncts.shape[1]): worksheet.write( - 1, row + 1, - str("%#.3f" % round(float(nclon1[row]), 3)) + '_' + str( - "%#.3f" % round(float(nclat1[row]), 3))) + 1, row + 1, f"{round(float(nclon1[row]), 3):.3f}_\ + {round(float(nclat1[row]), 3)}") worksheet.write_column(2, row + 1, np.around(np.squeeze(ncts[:, row]), decimals=8)) worksheet.set_column(0, row + 1, 20) @@ -135,7 +143,8 @@ def shapeselect(cfg, cube): coordpoints[i] = (coordpoints[i][0] - 360., coordpoints[i][1]) else: raise ValueError("Support for 2-d coords not implemented!") - points = MultiPoint(coordpoints) + multipoint = MultiPoint(coordpoints) + points = list(multipoint.geoms) with fiona.open(shppath) as shp: gpx = [] gpy = [] @@ -149,15 +158,16 @@ def shapeselect(cfg, cube): if wgtmet == 'mean_inside': gpx, gpy = mean_inside(gpx, gpy, points, multi, cube) if not gpx: - gpx, gpy = representative(gpx, gpy, points, multi, cube) + gpx, gpy = representative(gpx, gpy, multipoint, multi, + cube) elif wgtmet == 'representative': - gpx, gpy = representative(gpx, gpy, points, multi, cube) + gpx, gpy = representative(gpx, gpy, multipoint, multi, cube) if len(gpx) == 1: ncts[:, ishp] = np.reshape(cube.data[:, gpy, gpx], (cube.data.shape[0], )) else: ncts[:, ishp] = np.mean(cube.data[:, gpy, gpx], axis=1) - gxx, gyy = representative([], [], points, multi, cube) + gxx, gyy = representative([], [], multipoint, multi, cube) nclon[ishp] = cube.coord('longitude').points[gxx] nclat[ishp] = cube.coord('latitude').points[gyy] return ncts, nclon, nclat @@ -179,10 +189,10 @@ def mean_inside(gpx, gpy, points, multi, cube): return gpx, gpy -def representative(gpx, gpy, points, multi, cube): +def representative(gpx, gpy, multipoint, multi, cube): """Find representative point in shape.""" reprpoint = multi.representative_point() - nearest = nearest_points(reprpoint, points) + nearest = nearest_points(reprpoint, multipoint) npx = nearest[1].coords[0][0] npy = nearest[1].coords[0][1] if npx < 0: @@ -235,19 +245,24 @@ def write_netcdf(path, var, plon, plat, cube, cfg): polys.setncattr_string('standard_name', 'polygon') polys.setncattr_string('long_name', 'polygon') polys.setncattr_string('shapefile', cfg['shapefile']) - lon = ncout.createVariable( - cube.coord('longitude').var_name, 'f8', 'polygon', zlib=True) + lon = ncout.createVariable(cube.coord('longitude').var_name, + 'f8', + 'polygon', + zlib=True) lon.setncattr_string('standard_name', cube.coord('longitude').standard_name) lon.setncattr_string('long_name', cube.coord('longitude').long_name) lon.setncattr_string('units', cube.coord('longitude').units.origin) - lat = ncout.createVariable( - cube.coord('latitude').var_name, 'f8', 'polygon', zlib=True) + lat = ncout.createVariable(cube.coord('latitude').var_name, + 'f8', + 'polygon', + zlib=True) lat.setncattr_string('standard_name', cube.coord('latitude').standard_name) lat.setncattr_string('long_name', cube.coord('latitude').long_name) lat.setncattr_string('units', cube.coord('latitude').units.origin) - data = ncout.createVariable( - cube.var_name, 'f4', ('time', 'polygon'), zlib=True) + data = ncout.createVariable(cube.var_name, + 'f4', ('time', 'polygon'), + zlib=True) data.setncattr_string('standard_name', cube.standard_name) data.setncattr_string('long_name', cube.long_name) data.setncattr_string('units', cube.units.origin) diff --git a/esmvaltool/recipes/recipe_shapeselect.yml b/esmvaltool/recipes/recipe_shapeselect.yml index f37a302dff..0fb22c0d5d 100644 --- a/esmvaltool/recipes/recipe_shapeselect.yml +++ b/esmvaltool/recipes/recipe_shapeselect.yml @@ -11,7 +11,7 @@ documentation: - berg_peter maintainer: - - unmaintained + - ruhe_lukas projects: - c3s-magic From dcb2f043cff895a2bd4a385e5fb86e145119efd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Kazeroni?= Date: Mon, 17 Jul 2023 15:13:31 +0200 Subject: [PATCH 22/34] Add list of failing recipes for v2.9.0 release (#3294) --- doc/sphinx/source/recipes/broken_recipe_list.rst | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/doc/sphinx/source/recipes/broken_recipe_list.rst b/doc/sphinx/source/recipes/broken_recipe_list.rst index 5720261827..64f4437a96 100644 --- a/doc/sphinx/source/recipes/broken_recipe_list.rst +++ b/doc/sphinx/source/recipes/broken_recipe_list.rst @@ -15,8 +15,16 @@ More details can be found in the :ref:`broken recipe policy * - Broken recipe - Affected diagnostics - Problem - - GitHub issue + - GitHub issue + * - :ref:`recipe_carvalhais14nat.yml ` + - `global_turnover_time` + - ``cartopy`` issue + - `#3281 `_ * - `recipe_check_obs.yml` - `ERA5_native6` - Derivation of custom variables `rlus` and `rsus` - `#1388 `_ + * - :ref:`recipe_seaice_drift.yml ` + - `sea_ice_drift_SCICEX` + - ``shapely`` issue + - `#3243 `_ From f3ad0a0b7628032cb86719bcccfe1029d6857168 Mon Sep 17 00:00:00 2001 From: Manuel Schlund <32543114+schlunma@users.noreply.github.com> Date: Mon, 31 Jul 2023 08:50:09 +0200 Subject: [PATCH 23/34] Allow NCL unit conversion `kg s-1` -> `GtC y-1` (#3300) --- esmvaltool/diag_scripts/shared/scaling.ncl | 9 +++++++++ esmvaltool/recipes/recipe_wenzel14jgr.yml | 16 ++++++++-------- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/esmvaltool/diag_scripts/shared/scaling.ncl b/esmvaltool/diag_scripts/shared/scaling.ncl index 986398746d..a2ef8f185d 100644 --- a/esmvaltool/diag_scripts/shared/scaling.ncl +++ b/esmvaltool/diag_scripts/shared/scaling.ncl @@ -169,6 +169,15 @@ begin end if end if + if (units_from.eq."kg.s-1") then + if (any(units_to.eq.(/"PgC y-1", "GtC y-1"/))) then + out = out * 3600. * 24. * 365 / 1.e12 + out@units = units_to + leave_msg(scriptname, funcname) + return(out) + end if + end if + if (units_from.eq."kg m-2 s-1") then if (any(units_to.eq.(/"PgC y-1", "GtC y-1"/))) then out = out * 3600. * 24. * 365 / 1.e12 diff --git a/esmvaltool/recipes/recipe_wenzel14jgr.yml b/esmvaltool/recipes/recipe_wenzel14jgr.yml index cd66bfc64c..814da02a18 100644 --- a/esmvaltool/recipes/recipe_wenzel14jgr.yml +++ b/esmvaltool/recipes/recipe_wenzel14jgr.yml @@ -26,14 +26,14 @@ preprocessors: area_type: land exclude: [ 'GCP2018', - ] + ] sea_fraction_weighting: weighting_landsea_fraction: area_type: sea exclude: [ 'GCP2018', 'HadGEM2-ES', 'CanESM2', 'IPSL-CM5A-LR', 'GFDL-ESM2M', 'MPI-ESM-LR', 'CESM1-BGC', 'NorESM1-ME', - ] + ] regrid: target_grid: CanESM2 scheme: area_weighted @@ -43,30 +43,30 @@ preprocessors: area_type: land exclude: [ 'GCP2018', 'HadGEM2-ES', 'CanESM2', 'IPSL-CM5A-LR', 'GFDL-ESM2M', 'MPI-ESM-LR', 'CESM1-BGC', 'NorESM1-ME', - ] + ] area_statistics: - operator: sum + operator: sum tropical_land: weighting_landsea_fraction: area_type: land exclude: [ 'GCP2018', 'HadGEM2-ES', 'CanESM2', 'IPSL-CM5A-LR', 'GFDL-ESM2M', 'MPI-ESM-LR', 'CESM1-BGC', 'NorESM1-ME', - ] + ] extract_region: start_longitude: 0. end_longitude: 360. start_latitude: -30. end_latitude: 30. area_statistics: - operator: sum + operator: sum global_ocean: weighting_landsea_fraction: area_type: sea exclude: [ 'GCP2018', 'HadGEM2-ES', 'CanESM2', 'IPSL-CM5A-LR', 'GFDL-ESM2M', 'MPI-ESM-LR', 'CESM1-BGC', 'NorESM1-ME', - ] + ] area_statistics: operator: sum @@ -77,7 +77,7 @@ preprocessors: start_latitude: -30. end_latitude: 30. area_statistics: - operator: mean + operator: mean diagnostics: From 9485a64e590809368184b05047d14b098b61b9af Mon Sep 17 00:00:00 2001 From: Valeriu Predoi Date: Wed, 2 Aug 2023 12:49:12 +0100 Subject: [PATCH 24/34] [condalock] update conda lock creation Github Action workflow and ship updated (bot-generated) conda-lock file (#3307) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: valeriupredoi --- .github/workflows/create-condalock-file.yml | 54 +++-- conda-linux-64.lock | 243 ++++++++++---------- 2 files changed, 152 insertions(+), 145 deletions(-) diff --git a/.github/workflows/create-condalock-file.yml b/.github/workflows/create-condalock-file.yml index 34ec0aada7..9ab4443cd7 100644 --- a/.github/workflows/create-condalock-file.yml +++ b/.github/workflows/create-condalock-file.yml @@ -6,10 +6,15 @@ on: # and hence lots of automated PRs # push: # branches: - # - condalock-update + # - main schedule: - cron: '0 4 */10 * *' +# Required shell entrypoint to have properly configured bash shell +defaults: + run: + shell: bash -l {0} + jobs: create-lock-file: name: Create conda lock file for latest Python @@ -27,50 +32,49 @@ jobs: miniforge-variant: Mambaforge use-mamba: true - name: Show conda config - shell: bash -l {0} run: | conda update -n base -c conda-forge conda - conda info - conda list + conda --version + # setup-miniconda@v2 installs an old conda and mamba + # forcing a modern mamba updates both mamba and conda + conda install -c conda-forge "mamba>=1.4.8" conda config --show-sources conda config --show + conda --version + mamba --version - name: Python info - shell: bash -l {0} run: | which python python --version - name: Install conda-lock - shell: bash -l {0} - run: mamba install -y conda-lock + run: mamba install -y -c conda-forge conda-lock - name: Check version of conda-lock - shell: bash -l {0} run: conda-lock --version - name: Create conda lock file for linux-64 - shell: bash -l {0} run: conda-lock lock --platform linux-64 -f environment.yml --mamba --kind explicit - - shell: bash -l {0} + - name: Show conda version again run: conda --version - - shell: bash -l {0} - run: which python - - shell: bash -l {0} - run: python -V - - shell: bash -l {0} + - name: Show Python exec and version again + run: | + which python + python -V + - name: Create conda-lock environment run: conda create --name esmvaltool-fromlock --file conda-linux-64.lock - - shell: bash -l {0} + - name: Install pip run: mamba install -y pip - - shell: bash -l {0} - run: which python - - shell: bash -l {0} - run: pip --version - - shell: bash -l {0} + - name: Check Python and pip versions post pip-install + run: | + which python + pip --version + - name: Install ESMValTool run: pip install -e .[develop] - - shell: bash -l {0} + - name: Check ESMValTool version run: esmvaltool --help - - shell: bash -l {0} + - name: Check ESMValTool help run: esmvaltool version - - shell: bash -l {0} + - name: Run flake8 run: flake8 - - shell: bash -l {0} + - name: Run tests run: pytest -n 2 -m "not installation" # Automated PR # see https://github.com/marketplace/actions/create-pull-request diff --git a/conda-linux-64.lock b/conda-linux-64.lock index c41403d662..39331facf0 100644 --- a/conda-linux-64.lock +++ b/conda-linux-64.lock @@ -1,17 +1,17 @@ # Generated by conda-lock. # platform: linux-64 -# input_hash: 7d637eea13b048450933417ec5ec069834faf2d132e6ccfa960adbe351ac0b19 +# input_hash: f47d35f9d83344217c0911cc8cede368892e578ba25206f3c774436c197445b3 @EXPLICIT https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2#d7c89558ba9fa0495403155b64376d81 https://conda.anaconda.org/conda-forge/linux-64/_py-xgboost-mutex-2.0-gpu_0.tar.bz2#7702188077361f43a4d61e64c694f850 https://conda.anaconda.org/conda-forge/noarch/_r-mutex-1.0.1-anacondar_1.tar.bz2#19f9db5f4f1b7f5ef5f6d67207f25f38 -https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2023.5.7-hbcca054_0.conda#f5c65075fc34438d5b456c7f3f5ab695 -https://conda.anaconda.org/conda-forge/noarch/cuda-version-11.1-hdbd7af8_2.conda#54dfb03757dc2bcf80740a29f76894f4 +https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2023.7.22-hbcca054_0.conda#a73ecd2988327ad4c8f2c331482917f2 +https://conda.anaconda.org/conda-forge/noarch/cuda-version-11.8-h70ddcb2_2.conda#601900ec9ff06f62f76a247148e52c04 https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2#0c96522c6bdaed4b1566d11387caaf45 https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2#34893075a5c9e55cdafac56607368fc6 https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2#4d59c254e01d9cde7957100457e2d5fb https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-hab24e00_0.tar.bz2#19410c3df09dfb12d1206132a1d357c5 -https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-2.6.32-he073ed8_15.tar.bz2#5dd5127afd710f91f6a75821bac0a4f0 +https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-2.6.32-he073ed8_16.conda#7ca122655873935e02c91279c5b03c8c https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.40-h41732ed_0.conda#7aca3059a1729aa76c597603f10b0dd3 https://conda.anaconda.org/conda-forge/linux-64/libgcc-devel_linux-64-13.1.0-he3cc6c4_0.conda#5ec50dcd74ba7461709c4ac9c4cc4190 https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-13.1.0-h15d22d2_0.conda#afb656a334c409dd9805508af1c89c7a @@ -24,17 +24,17 @@ https://conda.anaconda.org/conda-forge/linux-64/xorg-imake-1.0.7-0.tar.bz2#23acf https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2#f766549260d6815b0c52253f1fb1bb29 https://conda.anaconda.org/conda-forge/linux-64/libgfortran-ng-13.1.0-h69a702a_0.conda#506dc07710dd5b0ba63cbf134897fc10 https://conda.anaconda.org/conda-forge/linux-64/libgomp-13.1.0-he5830b7_0.conda#56ca14d57ac29a75d23a39eb3ee0ddeb -https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.12-he073ed8_15.tar.bz2#66c192522eacf5bb763568b4e415d133 +https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.12-he073ed8_16.conda#071ea8dceff4d30ac511f4a2f8437cd1 https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2#73aaf86a425cc6e73fcf236a5a46396d https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.40-hf600244_0.conda#33084421a8c0af6aef1b439707f7662a https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2#fee5683a3f04bd15cbd8318b096a27ab https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-13.1.0-he5830b7_0.conda#cd93f779ff018dd85c7544c015c9db3c https://conda.anaconda.org/conda-forge/linux-64/aom-3.5.0-h27087fc_0.tar.bz2#a08150fd2298460cd1fcccf626305642 -https://conda.anaconda.org/conda-forge/linux-64/aws-c-common-0.8.20-hd590300_0.conda#8717fccceb6a9394d86f37f3b663b4e9 +https://conda.anaconda.org/conda-forge/linux-64/aws-c-common-0.8.23-hd590300_0.conda#cc4f06f7eedb1523f3b83fd0fb3942ff https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h7f98852_4.tar.bz2#a1fd65c7ccbf10880423d82bca54eb54 https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.19.1-hd590300_0.conda#e8c18d865be43e2fb3f7a145b6adf1f5 https://conda.anaconda.org/conda-forge/linux-64/charls-2.4.2-h59595ed_0.conda#4336bd67920dd504cd8c6761d6a99645 -https://conda.anaconda.org/conda-forge/linux-64/cudatoolkit-11.1.1-ha002fc5_11.conda#2b11133c35a4899a29fc5109d8f95d2e +https://conda.anaconda.org/conda-forge/linux-64/cudatoolkit-11.8.0-h37601d7_11.conda#9d166760c8cfa83e2fc989928312da3d https://conda.anaconda.org/conda-forge/linux-64/dav1d-1.2.1-hd590300_0.conda#418c6ca5929a611cbd69204907a83995 https://conda.anaconda.org/conda-forge/linux-64/fftw-3.3.10-nompi_hc118613_108.conda#6fa90698000b05dfe8ce6515794fe71a https://conda.anaconda.org/conda-forge/linux-64/freexl-1.0.6-h166bdaf_1.tar.bz2#897e772a157faf3330d72dd291486f62 @@ -52,9 +52,9 @@ https://conda.anaconda.org/conda-forge/linux-64/json-c-0.16-hc379101_0.tar.bz2#0 https://conda.anaconda.org/conda-forge/linux-64/jxrlib-1.1-h7f98852_2.tar.bz2#8e787b08fe19986d99d034b839df2961 https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.1-h166bdaf_0.tar.bz2#30186d27e2c9fa62b45fb1476b7200e3 https://conda.anaconda.org/conda-forge/linux-64/lerc-4.0.0-h27087fc_0.tar.bz2#76bbff344f0134279f225174e9064c8f -https://conda.anaconda.org/conda-forge/linux-64/libabseil-20230125.2-cxx17_h59595ed_2.conda#f67106643beadfc737b94ca0bfd6d8e3 +https://conda.anaconda.org/conda-forge/linux-64/libabseil-20230125.3-cxx17_h59595ed_0.conda#d1db1b8be7c3a8983dcbbbfe4f0765de https://conda.anaconda.org/conda-forge/linux-64/libaec-1.0.6-hcb278e6_1.conda#0f683578378cddb223e7fd24f785ab2a -https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.0.9-h166bdaf_8.tar.bz2#9194c9bf9428035a05352d031462eae4 +https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.0.9-h166bdaf_9.conda#61641e239f96eae2b8492dc7e755828c https://conda.anaconda.org/conda-forge/linux-64/libcrc32c-1.1.2-h9c3ff4c_0.tar.bz2#c965a5aa0d5c1c37ffc62dff36e28400 https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.18-h0b41bf4_0.conda#6aa9c9de5542ecb07fdda9ca626252d8 https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-h516909a_1.tar.bz2#6f8720dff19e17ce5d48cfe7f3d2f0a3 @@ -72,14 +72,14 @@ https://conda.anaconda.org/conda-forge/linux-64/libtool-2.4.7-h27087fc_0.conda#f https://conda.anaconda.org/conda-forge/linux-64/libunwind-1.6.2-h9c3ff4c_0.tar.bz2#a730b2badd586580c5752cc73842e068 https://conda.anaconda.org/conda-forge/linux-64/libutf8proc-2.8.0-h166bdaf_0.tar.bz2#ede4266dc02e875fe1ea77b25dd43747 https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda#40b61aab5c7ba9ff276c41cfffe6b80b -https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.3.0-h0b41bf4_0.conda#0d4a7508d8c6c65314f2b9c1f56ad408 +https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.3.1-hd590300_0.conda#82bf6f63eb15ef719b556b63feec3a77 https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.2.13-hd590300_5.conda#f36c115f1ee199da648e0597ec2047ad https://conda.anaconda.org/conda-forge/linux-64/libzopfli-1.0.3-h9c3ff4c_0.tar.bz2#c66fe2d123249af7651ebde8984c51c2 https://conda.anaconda.org/conda-forge/linux-64/lz4-c-1.9.4-hcb278e6_0.conda#318b08df404f9c9be5712aaa5a6f0bb0 https://conda.anaconda.org/conda-forge/linux-64/lzo-2.10-h516909a_1000.tar.bz2#bb14fcb13341b81d5eb386423b9d2bac https://conda.anaconda.org/conda-forge/linux-64/make-4.3-hd18ef5c_1.tar.bz2#4049ebfd3190b580dffe76daed26155a https://conda.anaconda.org/conda-forge/linux-64/mbedtls-3.3.0-hcb278e6_0.conda#cc1213f464c357b647cc5dde5cfca881 -https://conda.anaconda.org/conda-forge/linux-64/metis-5.1.0-h58526e2_1006.tar.bz2#d099b812378b1e133c12e3b75167d83a +https://conda.anaconda.org/conda-forge/linux-64/metis-5.1.1-h59595ed_0.conda#9c9e667050d3e258d321e63a0989ebb1 https://conda.anaconda.org/conda-forge/linux-64/nccl-2.18.3.1-h12f7317_0.conda#c0041b39fc72c1d12139b45363c8a510 https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.4-hcb278e6_0.conda#681105bccc2a3f7f1a837d47d39c9179 https://conda.anaconda.org/conda-forge/linux-64/nspr-4.35-h27087fc_0.conda#da0ec11a6454ae19bff5b02ed881a2b1 @@ -108,50 +108,50 @@ https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2#2161 https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h7f98852_2.tar.bz2#4cb3ad778ec2d5a7acbdf254eb1c42ae https://conda.anaconda.org/conda-forge/linux-64/zfp-1.0.0-h27087fc_3.tar.bz2#0428af0510c3fafedf1c66b43102a34b https://conda.anaconda.org/conda-forge/linux-64/zlib-ng-2.0.7-h0b41bf4_0.conda#49e8329110001f04923fe7e864990b0c -https://conda.anaconda.org/conda-forge/linux-64/aws-c-cal-0.5.27-hf85dbcb_0.conda#d067fbf673901a6e0fd323da1eeafe10 -https://conda.anaconda.org/conda-forge/linux-64/aws-c-compression-0.2.17-h4b87b72_0.conda#183be3df566bc1c143d5d7e0fc60ed8b -https://conda.anaconda.org/conda-forge/linux-64/aws-c-sdkutils-0.1.10-h4b87b72_0.conda#613b0910286d4feba563ad657ac93372 -https://conda.anaconda.org/conda-forge/linux-64/aws-checksums-0.1.16-h4b87b72_0.conda#c2a56432ce6009419442dd78e4d63829 +https://conda.anaconda.org/conda-forge/linux-64/aws-c-cal-0.6.0-h93469e0_0.conda#580a52a05f5be28ce00764149017c6d4 +https://conda.anaconda.org/conda-forge/linux-64/aws-c-compression-0.2.17-h862ab75_1.conda#0013fcee7acb3cfc801c5929824feb3c +https://conda.anaconda.org/conda-forge/linux-64/aws-c-sdkutils-0.1.11-h862ab75_1.conda#6fbc9bd49434eb36d3a59c5020f4af95 +https://conda.anaconda.org/conda-forge/linux-64/aws-checksums-0.1.16-h862ab75_1.conda#f883d61afbc95c50f7b3f62546da4235 https://conda.anaconda.org/conda-forge/linux-64/expat-2.5.0-hcb278e6_1.conda#8b9b5aca60558d02ddaa09d599e55920 https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-13.1.0-hc4be1a9_0.conda#99d1a8a8ee1665ee9435f8d160df69fe https://conda.anaconda.org/conda-forge/linux-64/glog-0.6.0-h6f12383_0.tar.bz2#b31f3565cb84435407594e548a2fb7b2 https://conda.anaconda.org/conda-forge/linux-64/hdf4-4.2.15-h501b40f_6.conda#c3e9338e15d90106f467377017352b97 https://conda.anaconda.org/conda-forge/linux-64/libavif-0.11.1-h8182462_2.conda#41c399ed4c439e37b844c24ab5621b5a https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-17_linux64_openblas.conda#57fb44770b1bc832fb2dbefa1bd502de -https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.0.9-h166bdaf_8.tar.bz2#4ae4d7795d33e02bd20f6b23d91caf82 -https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.0.9-h166bdaf_8.tar.bz2#04bac51ba35ea023dc48af73c1c88c25 +https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.0.9-h166bdaf_9.conda#081aa22f4581c08e4372b0b6c2f8478e +https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.0.9-h166bdaf_9.conda#1f0a03af852a9659ed2bf08f2f1704fd https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20191231-he28a2e2_2.tar.bz2#4d331e44109e3f0e19b4cb8f9b82f3e1 https://conda.anaconda.org/conda-forge/linux-64/libevent-2.1.12-hf998b51_1.conda#a1cfcc585f0c42bf8d5546bb1dfb668d https://conda.anaconda.org/conda-forge/linux-64/libllvm14-14.0.6-hcd5def8_3.conda#5c159aa79cab06c55aabcecdd9117f31 https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.52.0-h61bc06f_0.conda#613955a50485812985c059e7b269f42e https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.39-h753d276_0.conda#e1c890aebdebbfbf87e2c917187b4416 -https://conda.anaconda.org/conda-forge/linux-64/libprotobuf-3.21.12-h3eb15da_0.conda#4b36c68184c6c85d88c6e595a32a1ede +https://conda.anaconda.org/conda-forge/linux-64/libprotobuf-4.23.3-hd1fb520_0.conda#c8da7f04073ed0fabcb60885a4c1a722 https://conda.anaconda.org/conda-forge/linux-64/librttopo-1.1.0-h0d5128d_13.conda#e1d6139ff0500977a760567a4bec1ce9 https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.42.0-h2797004_0.conda#fdaae20a1cf7cd62130a0973190a31b7 https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.0-h0841786_0.conda#1f5a58e686b13bcfde88b93f547d23fe https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.15-h0b41bf4_0.conda#33277193f5b92bad9fdd230eb700929c -https://conda.anaconda.org/conda-forge/linux-64/libxgboost-1.7.4-cuda111ha8527ea_2.conda#c3d7574f9f6f4066c05eb935f3d96672 +https://conda.anaconda.org/conda-forge/linux-64/libxgboost-1.7.4-cuda112h1eddcb4_2.conda#37137a5e7d819fc19c52b0087e9be5db https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.11.4-h0d562d8_0.conda#e46fad17d5fb57316b956f88dca765e4 https://conda.anaconda.org/conda-forge/linux-64/libzip-1.9.2-hc929e4a_1.tar.bz2#5b122b50e738c4be5c3f2899f010d7cf https://conda.anaconda.org/conda-forge/linux-64/mpfr-4.2.0-hb012696_0.conda#14d87bdff2cbd3b1179a29fb316ed743 https://conda.anaconda.org/conda-forge/linux-64/openblas-ilp64-0.3.23-pthreads_h3d04fff_0.conda#9787e8492f0a51a6b0498dc86f3864f9 https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.40-hc3806b6_0.tar.bz2#69e2c796349cd9b273890bee0febfe1b -https://conda.anaconda.org/conda-forge/linux-64/perl-5.32.1-2_h7f98852_perl5.tar.bz2#09ba115862623f00962e9809ea248f1a +https://conda.anaconda.org/conda-forge/linux-64/perl-5.32.1-4_hd590300_perl5.conda#3e785bff761095eb7f8676f4694bd1b1 https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda#47d31b792659ce70f470b5c82fdfb7a4 -https://conda.anaconda.org/conda-forge/linux-64/s2n-1.3.45-h06160fa_0.conda#5b78d77397d75049c433eb7b17a9bca8 +https://conda.anaconda.org/conda-forge/linux-64/s2n-1.3.46-h06160fa_0.conda#413d96a0b655c8f8aacc36473a2dbb04 https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.12-h27826a3_0.tar.bz2#5b8c42eb62e9fc961af70bdd6a26e168 -https://conda.anaconda.org/conda-forge/linux-64/ucx-1.14.1-h78ab4a6_2.conda#afb7b0b482fe84c26a8940876b41c2dc +https://conda.anaconda.org/conda-forge/linux-64/ucx-1.14.1-h4a2ce2d_2.conda#9ad153019bdfd939b235825eddea53bc https://conda.anaconda.org/conda-forge/linux-64/xorg-fixesproto-5.0-h7f98852_1002.tar.bz2#65ad6e1eb4aed2b0611855aff05e04f6 https://conda.anaconda.org/conda-forge/linux-64/xorg-libsm-1.2.3-hd9c2040_1000.tar.bz2#9e856f78d5c80d5a78f61e72d1d473a3 https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.4-h9c3ff4c_1.tar.bz2#21743a8d2ea0c8cfbbf8fe489b0347df https://conda.anaconda.org/conda-forge/linux-64/zlib-1.2.13-hd590300_5.conda#68c34ec6149623be41a1933ab996a209 -https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.2-h3eb15da_6.conda#6b63daed8feeca47be78f323e793d555 -https://conda.anaconda.org/conda-forge/linux-64/aws-c-io-0.13.26-h0d05201_0.conda#2b8feff4f71c70e9ca0f7ac66b464e8a +https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.2-hfc55251_7.conda#32ae18eb2a687912fc9e92a501c0a11b +https://conda.anaconda.org/conda-forge/linux-64/aws-c-io-0.13.28-h3870b5a_0.conda#b775667301ab249f94ad2bea91fc4223 https://conda.anaconda.org/conda-forge/linux-64/blosc-1.21.4-h0f2a231_0.conda#876286b5941933a0f558777e57d883cc https://conda.anaconda.org/conda-forge/linux-64/boost-cpp-1.78.0-h6582d0a_3.conda#d3c3c7698d0b878aab1b86db95407c8e -https://conda.anaconda.org/conda-forge/linux-64/brotli-bin-1.0.9-h166bdaf_8.tar.bz2#e5613f2bc717e9945840ff474419b8e4 +https://conda.anaconda.org/conda-forge/linux-64/brotli-bin-1.0.9-h166bdaf_9.conda#d47dee1856d9cb955b8076eeff304a5b https://conda.anaconda.org/conda-forge/linux-64/bwidget-1.9.14-ha770c72_1.tar.bz2#5746d6202ba2abad4a4707f2a2462795 -https://conda.anaconda.org/conda-forge/linux-64/c-blosc2-2.9.2-hb4ffafa_0.conda#e029f773ae3355c8a05ad7c3db2f8a4b +https://conda.anaconda.org/conda-forge/linux-64/c-blosc2-2.10.0-hb4ffafa_0.conda#63b397207c1e039b3373dd45af045d8b https://conda.anaconda.org/conda-forge/linux-64/freetype-2.12.1-hca18f0e_1.conda#e1232042de76d24539a436d37597eb06 https://conda.anaconda.org/conda-forge/linux-64/gfortran_impl_linux-64-13.1.0-hd511a9b_0.conda#e0dead77d88f1bcc59c0e0c2f8975af1 https://conda.anaconda.org/conda-forge/linux-64/gxx_impl_linux-64-13.1.0-hc4be1a9_0.conda#e6591b3c81fc5fb83e342b20a2506e80 @@ -160,16 +160,16 @@ https://conda.anaconda.org/conda-forge/linux-64/krb5-1.20.1-h81ceb04_0.conda#89a https://conda.anaconda.org/conda-forge/linux-64/libarchive-3.6.2-h039dbb9_1.conda#29cf970521d30d113f3425b84cb250f6 https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-17_linux64_openblas.conda#7ef0969b00fe3d6eef56a8151d3afb29 https://conda.anaconda.org/conda-forge/linux-64/libgit2-1.5.1-h1f77430_0.conda#16802fd0c80290248ea79a570bd83b95 -https://conda.anaconda.org/conda-forge/linux-64/libglib-2.76.3-hebfc3b9_0.conda#a64f11b244b2c112cd3fa1cbe9493999 +https://conda.anaconda.org/conda-forge/linux-64/libglib-2.76.4-hebfc3b9_0.conda#c6f951789c888f7bbd2dd6858eab69de https://conda.anaconda.org/conda-forge/linux-64/libglu-9.0.0-hac7e632_1002.conda#4c4dce87e96b321308f81ba2c10d2897 -https://conda.anaconda.org/conda-forge/linux-64/libgrpc-1.54.2-hb20ce57_2.conda#2d6c2c90dd7805816bd78d80977b61d6 +https://conda.anaconda.org/conda-forge/linux-64/libgrpc-1.56.2-h3905398_0.conda#a87e780f3d9cc7cf432e47ced83a67ce https://conda.anaconda.org/conda-forge/linux-64/libhwloc-2.9.1-nocuda_h7313eea_6.conda#cd72a08ef4e84dea4c67edde33eb3191 https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-17_linux64_openblas.conda#a2103882c46492e26500fcb56c03de8b https://conda.anaconda.org/conda-forge/linux-64/libthrift-0.18.1-h8fd135c_2.conda#bbf65f7688512872f063810623b755dc https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.5.1-h8b53f26_0.conda#8ad377fb60abab446a9f02c62b3c2190 https://conda.anaconda.org/conda-forge/linux-64/libxslt-1.1.37-h0054252_1.conda#f27960e8873abb5476e96ef33bdbdccd https://conda.anaconda.org/conda-forge/linux-64/nss-3.89-he45b914_0.conda#2745719a58eeaab6657256a3f142f099 -https://conda.anaconda.org/conda-forge/linux-64/orc-1.8.4-h2f23424_0.conda#4bb92585a250e67d49b46c073d29f9dd +https://conda.anaconda.org/conda-forge/linux-64/orc-1.9.0-h385abfd_1.conda#2cd5aac7ef1b4c6ac51bf521251a89b3 https://conda.anaconda.org/conda-forge/linux-64/pandoc-3.1.3-h32600fe_0.conda#8287aeb8462e2d4b235eff788e75919d https://conda.anaconda.org/conda-forge/linux-64/python-3.11.4-hab00c5b_0_cpython.conda#1c628861a2a126b9fc9363ca1b7d014e https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.42.0-h2c6b66d_0.conda#1192f6ec654a5bc4ee1d64bdc4a3e5cc @@ -183,36 +183,37 @@ https://conda.anaconda.org/conda-forge/linux-64/arpack-3.7.0-hdefa2d7_2.tar.bz2# https://conda.anaconda.org/conda-forge/noarch/asciitree-0.3.3-py_2.tar.bz2#c0481c9de49f040272556e2cedf42816 https://conda.anaconda.org/conda-forge/linux-64/atk-1.0-2.38.0-hd4edc92_1.tar.bz2#6c72ec3e660a51736913ef6ea68c454b https://conda.anaconda.org/conda-forge/noarch/attrs-23.1.0-pyh71513ae_1.conda#3edfead7cedd1ab4400a6c588f3e75f8 -https://conda.anaconda.org/conda-forge/linux-64/aws-c-event-stream-0.3.0-hc5de78f_6.conda#11a833cfa28e5132331443fd2e4e4b30 -https://conda.anaconda.org/conda-forge/linux-64/aws-c-http-0.7.8-h412fb1b_4.conda#ab2cf24045e164be40b4f50f8045f31d +https://conda.anaconda.org/conda-forge/linux-64/aws-c-event-stream-0.3.1-h9599702_1.conda#a8820ce2dbe6f7d54f6540d9a3a0028a +https://conda.anaconda.org/conda-forge/linux-64/aws-c-http-0.7.11-hbe98c3e_0.conda#067641478d8f706b80a5a434a22b82be https://conda.anaconda.org/conda-forge/linux-64/backports.zoneinfo-0.2.1-py311h38be061_7.tar.bz2#ec62b3c5b953cb610f5e2b09cd776caf -https://conda.anaconda.org/conda-forge/linux-64/brotli-1.0.9-h166bdaf_8.tar.bz2#2ff08978892a3e8b954397c461f18418 -https://conda.anaconda.org/conda-forge/noarch/certifi-2023.5.7-pyhd8ed1ab_0.conda#5d1b71c942b8421285934dad1d891ebc +https://conda.anaconda.org/conda-forge/linux-64/brotli-1.0.9-h166bdaf_9.conda#4601544b4982ba1861fa9b9c607b2c06 +https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.0.9-py311ha362b79_9.conda#ced5340f5dc6cff43a80deac8d0e398f +https://conda.anaconda.org/conda-forge/noarch/certifi-2023.7.22-pyhd8ed1ab_0.conda#7f3dbc9179b4dde7da98dfb151d0ad22 https://conda.anaconda.org/conda-forge/noarch/cfgv-3.3.1-pyhd8ed1ab_0.tar.bz2#ebb5f5f7dc4f1a3780ef7ea7738db08c -https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.1.0-pyhd8ed1ab_0.conda#7fcff9f6f123696e940bda77bd4d6551 -https://conda.anaconda.org/conda-forge/noarch/click-8.1.3-unix_pyhd8ed1ab_2.tar.bz2#20e4087407c7cb04a40817114b333dbf +https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.2.0-pyhd8ed1ab_0.conda#313516e9a4b08b12dfb1e1cd390a96e3 +https://conda.anaconda.org/conda-forge/noarch/click-8.1.6-unix_pyh707e725_0.conda#64dbb3b205546691a61204d1cfb208e3 https://conda.anaconda.org/conda-forge/noarch/cloudpickle-2.2.1-pyhd8ed1ab_0.conda#b325bfc4cff7d7f8a868f1f7ecc4ed16 https://conda.anaconda.org/conda-forge/noarch/codespell-2.2.5-pyhd8ed1ab_0.conda#c73551c990f6e7e9c83cdb8bdbafdeb8 https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2#3faab06a954c2a04039983f2c4a50d99 https://conda.anaconda.org/conda-forge/noarch/config-0.5.1-pyhd8ed1ab_0.tar.bz2#97275d4898af65967b1ad57923cef770 -https://conda.anaconda.org/conda-forge/noarch/configargparse-1.5.3-pyhd8ed1ab_0.tar.bz2#318b72c3c2dfca9aebdbaf258609d02d +https://conda.anaconda.org/conda-forge/noarch/configargparse-1.7-pyhd8ed1ab_0.conda#0d07dc29b1c1cc973f76b74beb44915f https://conda.anaconda.org/conda-forge/noarch/cycler-0.11.0-pyhd8ed1ab_0.tar.bz2#a50559fad0affdbb33729a68669ca1cb -https://conda.anaconda.org/conda-forge/linux-64/cython-0.29.35-py311hb755f60_0.conda#17f4738a1ca6155a63d2a0cbd3e4a8b1 +https://conda.anaconda.org/conda-forge/linux-64/cython-3.0.0-py311hb755f60_0.conda#257dfede48699e2e6372528d08399e5a https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2#961b3a227b437d82ad7054484cfa71b2 -https://conda.anaconda.org/conda-forge/noarch/dill-0.3.6-pyhd8ed1ab_1.tar.bz2#88c82ca702197fff8a5e87619707556b -https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.6-pyhd8ed1ab_0.tar.bz2#b65b4d50dbd2d50fa0aeac367ec9eed7 +https://conda.anaconda.org/conda-forge/noarch/dill-0.3.7-pyhd8ed1ab_0.conda#5e4f3466526c52bc9af2d2353a1460bd +https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.7-pyhd8ed1ab_0.conda#12d8aae6994f342618443a8f05c652a0 https://conda.anaconda.org/conda-forge/linux-64/docutils-0.20.1-py311h38be061_0.conda#207175b7d514d42f977ec505800d6824 https://conda.anaconda.org/conda-forge/noarch/dodgy-0.2.1-py_0.tar.bz2#62a69d073f7446c90f417b0787122f5b https://conda.anaconda.org/conda-forge/noarch/ecmwf-api-client-1.6.3-pyhd8ed1ab_0.tar.bz2#15621abf59053e184114d3e1d4f9d01e https://conda.anaconda.org/conda-forge/noarch/entrypoints-0.4-pyhd8ed1ab_0.tar.bz2#3cf04868fee0a029769bd41f4b2fbf2d https://conda.anaconda.org/conda-forge/noarch/et_xmlfile-1.1.0-pyhd8ed1ab_0.conda#a2f2138597905eaa72e561d8efb42cf3 -https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.1.1-pyhd8ed1ab_0.conda#7312299d7a0ea4993159229b7d2dceb2 -https://conda.anaconda.org/conda-forge/noarch/execnet-1.9.0-pyhd8ed1ab_0.tar.bz2#0e521f7a5e60d508b121d38b04874fb2 +https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.1.2-pyhd8ed1ab_0.conda#de4cb3384374e1411f0454edcf546cdb +https://conda.anaconda.org/conda-forge/noarch/execnet-2.0.2-pyhd8ed1ab_0.conda#67de0d8241e1060a479e3c37793e26f9 https://conda.anaconda.org/conda-forge/noarch/fasteners-0.17.3-pyhd8ed1ab_0.tar.bz2#348e27e78a5e39090031448c72f66d5e https://conda.anaconda.org/conda-forge/noarch/filelock-3.12.2-pyhd8ed1ab_0.conda#53522ec72e6adae42bd373ef58357230 https://conda.anaconda.org/conda-forge/noarch/findlibs-0.0.5-pyhd8ed1ab_0.conda#8f325f63020af6f7acbe2c4cb4c920db https://conda.anaconda.org/conda-forge/linux-64/fontconfig-2.14.2-h14ed4e7_0.conda#0f69b688f52ff6da70bccb7ff7001d1d -https://conda.anaconda.org/conda-forge/linux-64/frozenlist-1.3.3-py311hd4cff14_0.tar.bz2#b81ebef162551d6cf909263695fd6d6b +https://conda.anaconda.org/conda-forge/linux-64/frozenlist-1.4.0-py311h459d7ec_0.conda#54bd8f0776418b17a8eccd6f10181f95 https://conda.anaconda.org/conda-forge/noarch/fsspec-2023.6.0-pyh1a96a4e_0.conda#50ea2067ec92dfcc38b4f07992d7e235 https://conda.anaconda.org/conda-forge/linux-64/gdk-pixbuf-2.42.10-h6b639ba_2.conda#ee8220db21db8094998005990418fe5b https://conda.anaconda.org/conda-forge/noarch/geographiclib-1.52-pyhd8ed1ab_0.tar.bz2#6880e7100ebae550a33ce26663316d85 @@ -230,47 +231,48 @@ https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.15-haa2dc70_1.conda#980d https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.1.2-h409715c_0.conda#50c873c9660ed116707ae15b663928d8 https://conda.anaconda.org/conda-forge/linux-64/libkml-1.3.0-h37653c0_1015.tar.bz2#37d3747dd24d604f63d2610910576e63 https://conda.anaconda.org/conda-forge/linux-64/libpq-15.3-hbcd7760_1.conda#8afb2a97d256ffde95b91a6283bc598c -https://conda.anaconda.org/conda-forge/linux-64/libwebp-1.3.0-hb47c5f0_0.conda#9cfd7ad6e1539ca1ad172083586b3301 -https://conda.anaconda.org/conda-forge/linux-64/llvmlite-0.40.0-py311ha6695c7_0.conda#4524604af5d8545cdef802c3a4c3951d +https://conda.anaconda.org/conda-forge/linux-64/libwebp-1.3.1-hbf2b3c1_0.conda#4963f3f12db45a576f2b8fbe9a0b8569 +https://conda.anaconda.org/conda-forge/linux-64/llvmlite-0.40.1-py311ha6695c7_0.conda#7a2b62d839516ba0cf56717e902229f4 https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2#91e27ef3d05cc772ce627e51cff111c4 -https://conda.anaconda.org/conda-forge/linux-64/lxml-4.9.2-py311h1a07684_1.conda#22b4fb083a8262c0b4e135c86a2c0c99 +https://conda.anaconda.org/conda-forge/linux-64/lxml-4.9.3-py311h1a07684_0.conda#59a580306d62ef144c9dd592b5120f36 https://conda.anaconda.org/conda-forge/linux-64/lz4-4.3.2-py311h9f220a4_0.conda#b8aad2507303e04037e8d02d8ac54217 https://conda.anaconda.org/conda-forge/linux-64/markupsafe-2.1.3-py311h459d7ec_0.conda#9904dc4adb5d547cb21e136f98cb24b0 https://conda.anaconda.org/conda-forge/noarch/mccabe-0.7.0-pyhd8ed1ab_0.tar.bz2#34fc335fc50eef0b5ea708f2b5f54e0c https://conda.anaconda.org/conda-forge/noarch/mistune-3.0.0-pyhd8ed1ab_0.conda#c7d0ea64c37752ecbe6da458aee662d2 https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.0.5-py311ha3edf6b_0.conda#7415f24f8c44e44152623d93c5015000 https://conda.anaconda.org/conda-forge/linux-64/multidict-6.0.4-py311h2582759_0.conda#8f581c14b50f2df47a2c6bd8d230a579 +https://conda.anaconda.org/conda-forge/noarch/munch-4.0.0-pyhd8ed1ab_0.conda#376b32e8f9d3eacbd625f37d39bd507d https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyh9f0ad1d_0.tar.bz2#2ba8498c1018c1e9c61eb99b973dfe19 https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.0.0-pyha770c72_0.conda#4eccaeba205f0aed9ac3a9ea58568ca3 https://conda.anaconda.org/conda-forge/noarch/natsort-8.4.0-pyhd8ed1ab_0.conda#70959cd1db3cf77b2a27a0836cfd08a7 https://conda.anaconda.org/conda-forge/noarch/networkx-3.1-pyhd8ed1ab_0.conda#254f787d5068bc89f578bf63893ce8b4 -https://conda.anaconda.org/conda-forge/linux-64/numpy-1.24.2-py311h8e6699e_0.conda#90db8cc0dfa20853329bfc6642f887aa +https://conda.anaconda.org/conda-forge/linux-64/numpy-1.24.4-py311h64a7726_0.conda#5a03d7c75dd4a9ae9a58850860eca468 https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.0-hfec8fc6_2.conda#5ce6a42505c6e9e6151c54c3ec8d68ea https://conda.anaconda.org/conda-forge/noarch/packaging-23.1-pyhd8ed1ab_0.conda#91cda59e66e1e4afe9476f8ef98f5c30 https://conda.anaconda.org/conda-forge/noarch/pandocfilters-1.5.0-pyhd8ed1ab_0.tar.bz2#457c2c8c08e54905d6954e79cb5b5db9 https://conda.anaconda.org/conda-forge/noarch/pathspec-0.11.1-pyhd8ed1ab_0.conda#dbb80d1e8dc2dba5c8b106dc0768ad45 https://conda.anaconda.org/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_0.tar.bz2#89e3c7cdde7d3aaa2aee933b604dd07f -https://conda.anaconda.org/conda-forge/noarch/pluggy-1.0.0-pyhd8ed1ab_5.tar.bz2#7d301a0d25f424d96175f810935f0da9 +https://conda.anaconda.org/conda-forge/noarch/pluggy-1.2.0-pyhd8ed1ab_0.conda#7263924c642d22e311d9e59b839f1b33 https://conda.anaconda.org/conda-forge/linux-64/psutil-5.9.5-py311h2582759_0.conda#a90f8e278c1cd7064b2713e6b7db87e6 https://conda.anaconda.org/conda-forge/noarch/py-1.11.0-pyh6c4a22f_0.tar.bz2#b4613d7e7a493916d867842a6a148054 https://conda.anaconda.org/conda-forge/noarch/pycodestyle-2.9.1-pyhd8ed1ab_0.tar.bz2#0191dd7efe1a94262812770183b68892 https://conda.anaconda.org/conda-forge/noarch/pycparser-2.21-pyhd8ed1ab_0.tar.bz2#076becd9e05608f8dc72757d5f3a91ff https://conda.anaconda.org/conda-forge/noarch/pyflakes-2.5.0-pyhd8ed1ab_0.tar.bz2#1b3bef4313288ae8d35b1dfba4cd84a3 https://conda.anaconda.org/conda-forge/noarch/pygments-2.15.1-pyhd8ed1ab_0.conda#d316679235612869eba305aa7d41d9bf -https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.1.0-pyhd8ed1ab_0.conda#d3ed087d1f7f8f5590e8e87b57a8ce64 -https://conda.anaconda.org/conda-forge/linux-64/pyrsistent-0.19.3-py311h2582759_0.conda#e53876b66dcc4ba8a0afa63cd8502ac3 +https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.0.9-pyhd8ed1ab_0.tar.bz2#e8fbc1b54b25f4b08281467bc13b70cc https://conda.anaconda.org/conda-forge/noarch/pyshp-2.3.1-pyhd8ed1ab_0.tar.bz2#92a889dc236a5197612bc85bee6d7174 https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2#2a7de29fb590ca14b5243c4c812c8025 -https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.17.1-pyhd8ed1ab_0.conda#dd4f393d857e9283eef2442234bd05e3 +https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.18.0-pyhd8ed1ab_0.conda#3be9466311564f80f8056c0851fc5bb7 https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2023.3-pyhd8ed1ab_0.conda#2590495f608a63625e165915fb4e2e34 https://conda.anaconda.org/conda-forge/linux-64/python-xxhash-3.2.0-py311h2582759_0.conda#dfcc3e6e30d6ec2b2bb416fcd8ff4dc1 https://conda.anaconda.org/conda-forge/noarch/pytz-2023.3-pyhd8ed1ab_0.conda#d3076b483092a435832603243567bc31 https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0-py311hd4cff14_5.tar.bz2#da8769492e423103c59f469f4f17f8d9 https://conda.anaconda.org/conda-forge/linux-64/pyzmq-25.1.0-py311h75c88c4_0.conda#db94a7a9e865fbfde8c023b6e8958bb2 +https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.9.2-py311h46250e7_0.conda#bcf66b5abaec47198b42cdd0bb968540 https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.7-py311h2582759_1.conda#5e997292429a22ad50c11af0a2cb0f08 https://conda.anaconda.org/conda-forge/noarch/semver-3.0.1-pyhd8ed1ab_0.conda#ed90854ae56fb6edae1f13b4663b21b0 https://conda.anaconda.org/conda-forge/noarch/setoptconf-tmp-0.3.1-pyhd8ed1ab_0.tar.bz2#af3e36d4effb85b9b9f93cd1db0963df -https://conda.anaconda.org/conda-forge/noarch/setuptools-67.7.2-pyhd8ed1ab_0.conda#3b68bc43ec6baa48f7354a446267eefe +https://conda.anaconda.org/conda-forge/noarch/setuptools-68.0.0-pyhd8ed1ab_0.conda#5a7739d0f57ee64133c9d32e6507c46d https://conda.anaconda.org/conda-forge/linux-64/simplejson-3.19.1-py311h2582759_0.conda#c58e325a8500b8755e95cf0622665840 https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2#e5f25f8dbc060e9a8d912e432202afc2 https://conda.anaconda.org/conda-forge/noarch/smmap-3.0.5-pyh44b312d_0.tar.bz2#3a8dc70789709aa315325d5df06fb7e4 @@ -288,35 +290,35 @@ https://conda.anaconda.org/conda-forge/linux-64/tbb-2021.9.0-hf52228f_0.conda#f4 https://conda.anaconda.org/conda-forge/noarch/tblib-1.7.0-pyhd8ed1ab_0.tar.bz2#3d4afc31302aa7be471feb6be048ed76 https://conda.anaconda.org/conda-forge/noarch/tenacity-8.2.2-pyhd8ed1ab_0.conda#7b39e842b52966a99e229739cd4dc36e https://conda.anaconda.org/conda-forge/noarch/termcolor-2.3.0-pyhd8ed1ab_0.conda#440d508f025b1692168caaf436504af3 -https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.1.0-pyh8a188c0_0.tar.bz2#a2995ee828f65687ac5b1e71a2ab1e0c +https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.2.0-pyha21a80b_0.conda#978d03388b62173b8e6f79162cf52b86 https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_0.tar.bz2#f832c45a477c78bebd107098db465095 https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2#5844808ffab9ebdb694585b50ba02a96 https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.11.8-pyha770c72_0.conda#75838e8556166263a82038b51d01d5f1 https://conda.anaconda.org/conda-forge/noarch/toolz-0.12.0-pyhd8ed1ab_0.tar.bz2#92facfec94bc02d6ccf42e7173831a36 https://conda.anaconda.org/conda-forge/linux-64/tornado-6.3.2-py311h459d7ec_0.conda#12b1c374ee90a1aa11ea921858394dc8 https://conda.anaconda.org/conda-forge/noarch/traitlets-5.9.0-pyhd8ed1ab_0.conda#d0b4f5c87cd35ac3fb3d47b223263a64 -https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2023.5.24-pyhd8ed1ab_0.conda#4580a4f27cad1c3b275f6f6ad310abae -https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.6.3-pyha770c72_0.conda#4a3014a4d107d15475d106b751c4e352 +https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2023.7.6-pyhd8ed1ab_0.conda#c9918f6a3973e28a792e747289734cd3 +https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.7.1-pyha770c72_0.conda#c39d6a09fe819de4951c2642629d9115 https://conda.anaconda.org/conda-forge/linux-64/ujson-5.7.0-py311hcafe171_0.conda#ec3960b6d13bb60aad9c67f42a801720 https://conda.anaconda.org/conda-forge/noarch/untokenize-0.1.1-py_0.tar.bz2#1447ead40f2a01733a9c8dfc32988375 https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-py_1.tar.bz2#3563be4c5611a44210d9ba0c16113136 https://conda.anaconda.org/conda-forge/noarch/webob-1.8.7-pyhd8ed1ab_0.tar.bz2#a8192f3585f341ea66c60c189580ac67 -https://conda.anaconda.org/conda-forge/noarch/wheel-0.40.0-pyhd8ed1ab_0.conda#49bb0d9e60ce1db25e151780331bb5f3 +https://conda.anaconda.org/conda-forge/noarch/wheel-0.41.0-pyhd8ed1ab_0.conda#66beb36a1fa7e0dc9d9bf843a80eb82c https://conda.anaconda.org/conda-forge/linux-64/wrapt-1.15.0-py311h2582759_0.conda#15565d8602a78c6a994e4d9fcb391920 https://conda.anaconda.org/conda-forge/noarch/xlsxwriter-3.1.2-pyhd8ed1ab_0.conda#e0593431fd5e9c12824b9bfa989c9ed0 https://conda.anaconda.org/conda-forge/linux-64/xorg-libxext-1.3.4-h0b41bf4_2.conda#82b6df12252e6f32402b96dacc656fec https://conda.anaconda.org/conda-forge/linux-64/xorg-libxfixes-5.0.3-h7f98852_1004.tar.bz2#e9a21aa4d5e3e5f1aed71e8cefd46b6a -https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrender-0.9.10-h7f98852_1003.tar.bz2#f59c1242cc1dd93e72c2ee2b360979eb +https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrender-0.9.11-hd590300_0.conda#ed67c36f215b310412b2af935bf3e530 https://conda.anaconda.org/conda-forge/linux-64/xorg-libxt-1.3.0-hd590300_0.conda#ab2044e8d87dda9f74652e8e084a5569 -https://conda.anaconda.org/conda-forge/noarch/xyzservices-2023.5.0-pyhd8ed1ab_1.conda#232ea5ed580a598cdf887a890c29b629 +https://conda.anaconda.org/conda-forge/noarch/xyzservices-2023.7.0-pyhd8ed1ab_0.conda#aacae3c0eaba0204dc6c5497c93c7992 https://conda.anaconda.org/conda-forge/noarch/zict-3.0.0-pyhd8ed1ab_0.conda#cf30c2c15b82aacb07f9c09e28ff2275 -https://conda.anaconda.org/conda-forge/noarch/zipp-3.15.0-pyhd8ed1ab_0.conda#13018819ca8f5b7cc675a8faf1f5fedf +https://conda.anaconda.org/conda-forge/noarch/zipp-3.16.2-pyhd8ed1ab_0.conda#2da0451b54c4563c32490cb1b7cf68a1 https://conda.anaconda.org/conda-forge/noarch/accessible-pygments-0.0.4-pyhd8ed1ab_0.conda#46a2e6e3dfa718ce3492018d5a110dd6 https://conda.anaconda.org/conda-forge/noarch/aiosignal-1.3.1-pyhd8ed1ab_0.tar.bz2#d1e1eb7e21a9e2c74279d87dafb68156 https://conda.anaconda.org/conda-forge/noarch/asgiref-3.7.2-pyhd8ed1ab_0.conda#596932155bf88bb6837141550cb721b0 -https://conda.anaconda.org/conda-forge/linux-64/astroid-2.15.5-py311h38be061_0.conda#bc99014b1cb98221bc4a0f4dc889d26f -https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.6.28-hccec9ca_5.conda#6823948414b0fad4b07af9ead54f7cb5 -https://conda.anaconda.org/conda-forge/linux-64/aws-c-mqtt-0.8.13-ha5d9b87_2.conda#f9ce1f48f4f220f0da4e292c4c95bb61 +https://conda.anaconda.org/conda-forge/linux-64/astroid-2.15.6-py311h38be061_0.conda#28b1d4a493fb6acd24cc299d77fed871 +https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.7.0-hf8751d9_2.conda#deb12196f0c64c441bb3d083d06d0cf8 +https://conda.anaconda.org/conda-forge/linux-64/aws-c-mqtt-0.8.14-h2e270ba_2.conda#58bbee5fd6cf2d4fffbead1bc33a5d3b https://conda.anaconda.org/conda-forge/noarch/babel-2.12.1-pyhd8ed1ab_1.conda#ac432e732804a81ddcf29c92ead57cde https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.2-pyha770c72_0.conda#a362ff7d976217f8fa78c0f1c4f59717 https://conda.anaconda.org/conda-forge/noarch/bleach-6.0.0-pyhd8ed1ab_0.conda#d48b143d01385872a88ef8417e96c30e @@ -332,45 +334,45 @@ https://conda.anaconda.org/conda-forge/noarch/colorspacious-1.1.2-pyh24bf2e0_0.t https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.1.0-py311h9547e67_0.conda#daf3f23397ab2265d0cdfa339f3627ba https://conda.anaconda.org/conda-forge/linux-64/coverage-7.2.7-py311h459d7ec_0.conda#3c2c65575c28b23afc5e4ff721a2fc9f https://conda.anaconda.org/conda-forge/linux-64/curl-8.1.2-h409715c_0.conda#9f88cfb15b7d08b25880b138f91e0eb4 -https://conda.anaconda.org/conda-forge/linux-64/cytoolz-0.12.0-py311hd4cff14_1.tar.bz2#21523141b35484b1edafba962c6ea883 -https://conda.anaconda.org/conda-forge/noarch/docformatter-1.7.2-pyhd8ed1ab_0.conda#e8cba6eadd087d154ddcf494718f9f99 +https://conda.anaconda.org/conda-forge/linux-64/cytoolz-0.12.2-py311h459d7ec_0.conda#5c416db47b7816e437eaf0d46e5c3a3d +https://conda.anaconda.org/conda-forge/noarch/docformatter-1.7.5-pyhd8ed1ab_0.conda#3a941b6083e945aa87e739a9b85c82e9 https://conda.anaconda.org/conda-forge/noarch/docrep-0.3.2-pyh44b312d_0.tar.bz2#235523955bc1bfb019d7ec8a2bb58f9a https://conda.anaconda.org/conda-forge/noarch/eofs-1.4.0-py_0.tar.bz2#6e166cd37cfeadefcfca1ffe00f222bb https://conda.anaconda.org/conda-forge/noarch/fire-0.5.0-pyhd8ed1ab_0.conda#9fd22aae8d2f319e80f68b295ab91d64 -https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.40.0-py311h459d7ec_0.conda#b19f671a6b221f922cf871d71a71c0fa +https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.41.1-py311h459d7ec_0.conda#343fff1650d07ab6956dbb35a124f89d https://conda.anaconda.org/conda-forge/noarch/geopy-2.3.0-pyhd8ed1ab_0.tar.bz2#529faeecd6eee3a3b782566ddf05ce92 https://conda.anaconda.org/conda-forge/noarch/gitdb-4.0.10-pyhd8ed1ab_0.conda#3706d2f3d7cb5dae600c833345a76132 https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.0-nompi_hb72d44e_103.conda#975973a4350ab45ff1981fe535a12af5 -https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-6.7.0-pyha770c72_0.conda#ba3786c6846e46038fe60c785d46dc81 -https://conda.anaconda.org/conda-forge/noarch/importlib_resources-5.12.0-pyhd8ed1ab_0.conda#e5fd2260a231ee63b6969f4801082f2b +https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-6.8.0-pyha770c72_0.conda#4e9f59a060c3be52bc4ddc46ee9b6946 +https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.0.0-pyhd8ed1ab_1.conda#a08b6be5bf18b9d2a927d3457750f82e https://conda.anaconda.org/conda-forge/noarch/isodate-0.6.1-pyhd8ed1ab_0.tar.bz2#4a62c93c1b5c0b920508ae3fd285eaf5 https://conda.anaconda.org/conda-forge/noarch/isort-5.12.0-pyhd8ed1ab_1.conda#07ed3421bad60867234c7a9282ea39d4 https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.2-pyhd8ed1ab_1.tar.bz2#c8490ed5c70966d232fdd389d0dbed37 -https://conda.anaconda.org/conda-forge/noarch/joblib-1.2.0-pyhd8ed1ab_0.tar.bz2#7583652522d71ad78ba536bba06940eb +https://conda.anaconda.org/conda-forge/noarch/joblib-1.3.0-pyhd8ed1ab_1.conda#fb4caf6da228ccc487350eade569abae https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.2.2-pyhd8ed1ab_0.tar.bz2#243f63592c8e449f40cd42eb5cf32f40 https://conda.anaconda.org/conda-forge/noarch/latexcodec-2.0.1-pyh9f0ad1d_0.tar.bz2#8d67904973263afd2985ba56aa2d6bb4 https://conda.anaconda.org/conda-forge/linux-64/libgd-2.3.3-hfa28ad5_6.conda#ef06bee47510a7f5db3c2297a51d6ce2 -https://conda.anaconda.org/conda-forge/linux-64/libgoogle-cloud-2.11.0-hac9eb74_1.conda#f463669862853ddbb192c810aac4390e +https://conda.anaconda.org/conda-forge/linux-64/libgoogle-cloud-2.12.0-h840a212_1.conda#03c225a73835f5aa68c13e62eb360406 https://conda.anaconda.org/conda-forge/noarch/logilab-common-1.7.3-py_0.tar.bz2#6eafcdf39a7eb90b6d951cfff59e8d3b https://conda.anaconda.org/conda-forge/noarch/magics-python-1.5.8-pyhd8ed1ab_1.conda#3fd7e3db129f12362642108f23fde521 -https://conda.anaconda.org/conda-forge/noarch/munch-3.0.0-pyhd8ed1ab_0.conda#3d5fa8396d78c916d51fb1c6cda24945 https://conda.anaconda.org/conda-forge/noarch/nested-lookup-0.2.25-pyhd8ed1ab_1.tar.bz2#2f59daeb14581d41b1e2dda0895933b2 https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.8.0-pyhd8ed1ab_0.conda#2a75b296096adabbabadd5e9782e5fcc -https://conda.anaconda.org/conda-forge/linux-64/numba-0.57.0-py311h96b013e_2.conda#fcac7c14c50d55dfaaeaf31d82df3efb +https://conda.anaconda.org/conda-forge/linux-64/numba-0.57.1-py311h96b013e_0.conda#618010d18c4a38073a7f51d9dd3fd8a8 https://conda.anaconda.org/conda-forge/linux-64/numcodecs-0.11.0-py311hcafe171_1.conda#ecdaf0772e524ed51218f6d52ef74424 https://conda.anaconda.org/conda-forge/linux-64/openpyxl-3.1.2-py311h459d7ec_0.conda#3fd48307e8596409a2a55d516fa3ad1f https://conda.anaconda.org/conda-forge/noarch/partd-1.4.0-pyhd8ed1ab_0.conda#721dab5803ea92ce02ddc4ee50aa0c48 -https://conda.anaconda.org/conda-forge/linux-64/pillow-9.5.0-py311h0b84326_1.conda#6be2190fdbf26a6c1d3356a54d955237 -https://conda.anaconda.org/conda-forge/noarch/pip-23.1.2-pyhd8ed1ab_0.conda#7288da0d36821349cf1126e8670292df +https://conda.anaconda.org/conda-forge/linux-64/pillow-10.0.0-py311h0b84326_0.conda#4b24acdc1fbbae9da03147e7d2cf8c8a +https://conda.anaconda.org/conda-forge/noarch/pip-23.2.1-pyhd8ed1ab_0.conda#e2783aa3f9235225eec92f9081c5b801 https://conda.anaconda.org/conda-forge/noarch/plotly-5.15.0-pyhd8ed1ab_0.conda#48573e7cca7860509648522a3b8507d7 https://conda.anaconda.org/conda-forge/linux-64/postgresql-15.3-hd458b1d_1.conda#4a4b5dede4d2e075e9aa5a44a9fd9f20 https://conda.anaconda.org/conda-forge/linux-64/proj-9.2.1-ha643af7_0.conda#e992387307f4403ba0ec07d009032550 https://conda.anaconda.org/conda-forge/noarch/pydocstyle-6.3.0-pyhd8ed1ab_0.conda#7e23a61a7fbaedfef6eb0e1ac775c8e5 https://conda.anaconda.org/conda-forge/noarch/pyproject_hooks-1.0.0-pyhd8ed1ab_0.conda#21de50391d584eb7f4441b9de1ad773f -https://conda.anaconda.org/conda-forge/noarch/pytest-7.3.2-pyhd8ed1ab_1.conda#f2465696f4396245eca4613f6e924796 +https://conda.anaconda.org/conda-forge/noarch/pytest-7.4.0-pyhd8ed1ab_0.conda#3cfe9b9e958e7238a386933c75d190db https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.8.2-pyhd8ed1ab_0.tar.bz2#dd999d1cc9f79e67dbb855c8924c7984 -https://conda.anaconda.org/conda-forge/noarch/python-utils-3.6.0-pyhd8ed1ab_0.conda#64f841b5319404bbc5962fa8bd7b860a +https://conda.anaconda.org/conda-forge/noarch/python-utils-3.7.0-pyhd8ed1ab_0.conda#e1a5b65e1bd22107473475ded86a6141 https://conda.anaconda.org/conda-forge/linux-64/pywavelets-1.4.1-py311hcb2cf0a_0.conda#272ca0c28df344037ba2c4982d4e4791 +https://conda.anaconda.org/conda-forge/noarch/referencing-0.30.0-pyhd8ed1ab_0.conda#13bf095e3ecd18999d65b4d3ac5b15d5 https://conda.anaconda.org/conda-forge/noarch/retrying-1.3.3-py_2.tar.bz2#a11f356d6f93b74b4a84e9501afd48b4 https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.17.32-py311h459d7ec_0.conda#628868dc17f9bd39a2eb77846e35980c https://conda.anaconda.org/conda-forge/noarch/seawater-3.3.4-py_1.tar.bz2#a9e101e1601faf5e5a119ab2bd7617a4 @@ -379,9 +381,9 @@ https://conda.anaconda.org/conda-forge/noarch/snuggs-1.4.7-py_0.tar.bz2#cb83a3d6 https://conda.anaconda.org/conda-forge/linux-64/suitesparse-5.10.1-h9e50725_1.tar.bz2#a3a685b5f9aeb890ed874502fe56accf https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.2.1-pyhd8ed1ab_0.tar.bz2#7234c9eefff659501cd2fe0d2ede4d48 https://conda.anaconda.org/conda-forge/noarch/tqdm-4.65.0-pyhd8ed1ab_1.conda#ed792aff3acb977d09c7013358097f83 -https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.6.3-hd8ed1ab_0.conda#3876f650ed7d0f95d70fa4b647621909 +https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.7.1-hd8ed1ab_0.conda#f96688577f1faa58096d06a45136afa2 https://conda.anaconda.org/conda-forge/noarch/url-normalize-1.4.3-pyhd8ed1ab_0.tar.bz2#7c4076e494f0efe76705154ac9302ba6 -https://conda.anaconda.org/conda-forge/noarch/urllib3-2.0.3-pyhd8ed1ab_0.conda#ae465d0fbf9f1979cb2d8d4043d885e2 +https://conda.anaconda.org/conda-forge/noarch/urllib3-2.0.4-pyhd8ed1ab_0.conda#18badd8fa3648d1beb1fcc7f2e0f756e https://conda.anaconda.org/conda-forge/linux-64/xerces-c-3.2.4-h8d71039_2.conda#6d5edbe22b07abae2ea0a9065ef6be12 https://conda.anaconda.org/conda-forge/linux-64/xorg-libxi-1.7.10-h7f98852_0.tar.bz2#e77615e5141cad5a2acaa043d1cf0ca5 https://conda.anaconda.org/conda-forge/linux-64/xorg-libxmu-1.1.3-h7f98852_0.tar.bz2#3cdb89236358326adfce12be820a8af3 @@ -391,28 +393,28 @@ https://conda.anaconda.org/conda-forge/noarch/yamllint-1.32.0-pyhd8ed1ab_0.conda https://conda.anaconda.org/conda-forge/noarch/yapf-0.33.0-pyhd8ed1ab_1.conda#ea4867f364b3f7f48c67643028c7f4c6 https://conda.anaconda.org/conda-forge/linux-64/yarl-1.9.2-py311h459d7ec_0.conda#4d738187d20e0a3be66973860f134e0a https://conda.anaconda.org/conda-forge/noarch/async-timeout-4.0.2-pyhd8ed1ab_0.tar.bz2#25e79f9a1133556671becbd65a170c78 -https://conda.anaconda.org/conda-forge/linux-64/aws-c-s3-0.3.4-h95e21fb_5.conda#94bb6ed517ae8fdaf9ec78ec4e099e6a +https://conda.anaconda.org/conda-forge/linux-64/aws-c-s3-0.3.13-heb0bb06_2.conda#c0866da05d5e7bb3a3f6b68bcbf7537b https://conda.anaconda.org/conda-forge/linux-64/cf-units-3.2.0-py311h1f0f07a_0.conda#43a71a823583d75308eaf3a06c8f150b -https://conda.anaconda.org/conda-forge/linux-64/cryptography-41.0.1-py311h63ff55d_0.conda#69ad01f66b8efff535d341ba5b283c2c -https://conda.anaconda.org/conda-forge/noarch/django-4.2.2-pyhd8ed1ab_0.conda#31af05cc9ec79e8eaa8c452a00fb33f7 +https://conda.anaconda.org/conda-forge/linux-64/cryptography-41.0.2-py311h63ff55d_0.conda#90e9e96dd807c2613a163c197192da6c +https://conda.anaconda.org/conda-forge/noarch/django-4.2.3-pyhd8ed1ab_0.conda#00a369ccfec9deaa325eabd749bfae28 https://conda.anaconda.org/conda-forge/noarch/flake8-5.0.4-pyhd8ed1ab_0.tar.bz2#8079ea7dec0a917dd0cb6c257f7ea9ea https://conda.anaconda.org/conda-forge/linux-64/freeglut-3.2.2-hac7e632_2.conda#6e553df297f6e64668efb54302e0f139 https://conda.anaconda.org/conda-forge/noarch/funcargparse-0.2.5-pyhd8ed1ab_0.tar.bz2#e557b70d736251fa0bbb7c4497852a92 -https://conda.anaconda.org/conda-forge/linux-64/geotiff-1.7.1-h22adcc9_9.conda#bf62b64a9eb314458885e112e1233fb2 +https://conda.anaconda.org/conda-forge/linux-64/geotiff-1.7.1-h22adcc9_11.conda#514167b60f598eaed3f7a60e1dceb9ee https://conda.anaconda.org/conda-forge/linux-64/git-2.41.0-pl5321h86e50cf_0.conda#14f8341e26b274362b026bbdc72b14fb -https://conda.anaconda.org/conda-forge/noarch/gitpython-3.1.31-pyhd8ed1ab_0.conda#f6e6b482110246a81c3f03e81c68752d +https://conda.anaconda.org/conda-forge/noarch/gitpython-3.1.32-pyhd8ed1ab_0.conda#5809a12901d57388444c3293c975d0bb https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-7.3.0-hdb3a94d_0.conda#765bc76c0dfaf24ff9d8a2935b2510df https://conda.anaconda.org/conda-forge/linux-64/hdfeos5-5.1.16-h8b5b2df_13.conda#29a96d50cb53638a5b4806b5ca6e4b1d -https://conda.anaconda.org/conda-forge/linux-64/imagecodecs-2023.1.23-py311hd374d05_2.conda#49daf4cf57e732fe804b5b63b60a65a6 +https://conda.anaconda.org/conda-forge/linux-64/imagecodecs-2023.7.10-py311h25e0658_0.conda#a08abd74a3a9640fa5cfe2317544ea08 https://conda.anaconda.org/conda-forge/noarch/imageio-2.31.1-pyh24c5eb1_0.conda#1051cc0376612ba101d4f59e954a1ff4 -https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-6.7.0-hd8ed1ab_0.conda#27a4cec373ec84d1c1aa02a1e37f8eaf -https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.17.3-pyhd8ed1ab_0.conda#723268a468177cd44568eb8f794e0d80 +https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-6.8.0-hd8ed1ab_0.conda#b279b07ce18058034e5b3606ba103a8b +https://conda.anaconda.org/conda-forge/noarch/jsonschema-specifications-2023.7.1-pyhd8ed1ab_0.conda#7c27ea1bdbe520bb830dcadd59f55cbf https://conda.anaconda.org/conda-forge/linux-64/kealib-1.5.1-h3845be2_3.conda#f38e5e47f62d6633166040192ad420a1 https://conda.anaconda.org/conda-forge/linux-64/libnetcdf-4.9.2-nompi_h0f3d0bb_105.conda#b5d412441b84305460e9df8a016a3392 https://conda.anaconda.org/conda-forge/linux-64/libspatialite-5.0.1-hca56755_27.conda#918a735059cab21b96fc13a8d04fbcd8 -https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.7.1-py311h8597a09_0.conda#70c3b734ffe82c16b6d121aaa11929a8 -https://conda.anaconda.org/conda-forge/linux-64/pandas-2.0.2-py311h320fe9a_0.conda#509769b430266dc5c2f6a3eab0f23164 -https://conda.anaconda.org/conda-forge/noarch/platformdirs-3.6.0-pyhd8ed1ab_0.conda#741384b21c1b512617f4ee4ea8457c5d +https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.7.2-py311h54ef318_0.conda#2631a9e423855fb586c05f8a5ee8b177 +https://conda.anaconda.org/conda-forge/linux-64/pandas-2.0.3-py311h320fe9a_1.conda#5f92f46bd33917832a99d1660b4075ac +https://conda.anaconda.org/conda-forge/noarch/platformdirs-3.9.1-pyhd8ed1ab_0.conda#044e7a1e0ad42c4e67110bd078150a63 https://conda.anaconda.org/conda-forge/linux-64/poppler-23.05.0-hd18248d_1.conda#09e0de1aa7330fe697eed76eaeef666d https://conda.anaconda.org/conda-forge/noarch/progressbar2-4.2.0-pyhd8ed1ab_0.tar.bz2#d883564cf1e9ba190f6b285036c5f949 https://conda.anaconda.org/conda-forge/noarch/pybtex-0.24.0-pyhd8ed1ab_2.tar.bz2#2099b86a7399c44c0c61cdb6de6915ba @@ -429,17 +431,18 @@ https://conda.anaconda.org/conda-forge/noarch/requirements-detector-1.2.2-pyhd8e https://conda.anaconda.org/conda-forge/linux-64/tiledb-2.13.2-hd532e3d_0.conda#6d97164f19dbd27575ef1899b02dc1e0 https://conda.anaconda.org/conda-forge/linux-64/ukkonen-1.0.1-py311h4dd048b_3.tar.bz2#dbfea4376856bf7bd2121e719cf816e5 https://conda.anaconda.org/conda-forge/linux-64/xorg-libxaw-1.0.14-h7f98852_1.tar.bz2#45b68dc2fc7549c16044d533ceaf340e -https://conda.anaconda.org/conda-forge/noarch/zarr-2.15.0-pyhd8ed1ab_0.conda#2e6414d548b4433d564fed1177d30281 -https://conda.anaconda.org/conda-forge/linux-64/aiohttp-3.8.4-py311h459d7ec_1.conda#649386bf24f512a0593a83f59d2b7172 -https://conda.anaconda.org/conda-forge/linux-64/aws-crt-cpp-0.20.2-h5289e1f_9.conda#ee251396cd9694d3b03f86adb3220d74 -https://conda.anaconda.org/conda-forge/noarch/bokeh-3.1.1-pyhd8ed1ab_0.conda#07401431ba1c7fae695814ae3528312a +https://conda.anaconda.org/conda-forge/noarch/zarr-2.16.0-pyhd8ed1ab_0.conda#40a116bf021c83da8b1cf226de0dabe4 +https://conda.anaconda.org/conda-forge/linux-64/aiohttp-3.8.5-py311h459d7ec_0.conda#82a817c46ac339c0166f043f56492f33 +https://conda.anaconda.org/conda-forge/linux-64/aws-crt-cpp-0.20.3-he9c0e7f_4.conda#7695770e1d722ce9029a2ea30c060a3d +https://conda.anaconda.org/conda-forge/noarch/bokeh-3.2.1-pyhd8ed1ab_0.conda#1f6a50747c4e69d181f3a2ca739d1fe3 https://conda.anaconda.org/conda-forge/noarch/cdsapi-0.6.1-pyhd8ed1ab_0.conda#454ed214cec806066097ae245a409171 https://conda.anaconda.org/conda-forge/noarch/chart-studio-1.1.0-pyh9f0ad1d_0.tar.bz2#acd9a12a35e5a0221bdf39eb6e4811dc https://conda.anaconda.org/conda-forge/noarch/cmocean-3.0.3-pyhd8ed1ab_0.conda#eec7df83d725696d32c7bf99aff21d82 -https://conda.anaconda.org/conda-forge/noarch/dask-core-2023.6.0-pyhd8ed1ab_0.conda#e2c66ccd8a5eedaddcb23739ed38ed27 +https://conda.anaconda.org/conda-forge/noarch/dask-core-2023.7.1-pyhd8ed1ab_0.conda#c680b05515f9692a3ba253dfa7d85465 https://conda.anaconda.org/conda-forge/noarch/flake8-polyfill-1.0.2-py_0.tar.bz2#a53db35e3d07f0af2eccd59c2a00bffe -https://conda.anaconda.org/conda-forge/noarch/identify-2.5.24-pyhd8ed1ab_0.conda#a4085ab0562d5081a9333435837b538a +https://conda.anaconda.org/conda-forge/noarch/identify-2.5.26-pyhd8ed1ab_0.conda#1ca86f154e13f4aa20b48e20d6bbf924 https://conda.anaconda.org/conda-forge/linux-64/jasper-4.0.0-h32699f2_1.conda#fdde5424ecef5f7ad310b4242229291c +https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.18.4-pyhd8ed1ab_0.conda#7356151a32ebd9a20158d2f26d224bfa https://conda.anaconda.org/conda-forge/linux-64/julia-1.8.5-h783901f_0.conda#98c05ba7ca9c15d22216f730499e167a https://conda.anaconda.org/conda-forge/linux-64/jupyter_core-5.3.1-py311h38be061_0.conda#0cf8259b01ede82c76007996f73f89ed https://conda.anaconda.org/conda-forge/linux-64/libgdal-3.7.0-h5418a03_2.conda#30ddbe080c260fb36da8509e3fd6c45f @@ -452,24 +455,24 @@ https://conda.anaconda.org/conda-forge/noarch/pylint-2.17.4-pyhd8ed1ab_0.conda#a https://conda.anaconda.org/conda-forge/noarch/pyopenssl-23.2.0-pyhd8ed1ab_1.conda#34f7d568bf59d18e3fef8c405cbece21 https://conda.anaconda.org/conda-forge/noarch/pyroma-4.2-pyhd8ed1ab_0.conda#fe2aca9a5d4cb08105aefc451ef96950 https://conda.anaconda.org/conda-forge/noarch/pytest-html-3.2.0-pyhd8ed1ab_1.tar.bz2#d5c7a941dfbceaab4b172a56d7918eb0 -https://conda.anaconda.org/conda-forge/noarch/requests-cache-1.0.1-pyhd8ed1ab_0.conda#43ec7b3627237e5fe23413e314e8ba4c +https://conda.anaconda.org/conda-forge/noarch/requests-cache-1.1.0-pyhd8ed1ab_0.conda#57b89064c125bb9d0e533e018c3eb17a https://conda.anaconda.org/conda-forge/noarch/sphinx-7.0.1-pyhd8ed1ab_0.conda#51a8d037b28276b4f68263e890e0f35b https://conda.anaconda.org/conda-forge/linux-64/tempest-remap-2.2.0-h43474b4_0.conda#fd815765a86daf44db1e15c6f6edf5e6 -https://conda.anaconda.org/conda-forge/noarch/tifffile-2023.4.12-pyhd8ed1ab_0.conda#b2ade33a630dada190c1220f3515fc5c -https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.23.1-pyhd8ed1ab_0.conda#838b85f656b078bdd882ef97978e7f40 -https://conda.anaconda.org/conda-forge/noarch/xarray-2023.5.0-pyhd8ed1ab_0.conda#254b5553bed6adf404ac09fa07cb54da +https://conda.anaconda.org/conda-forge/noarch/tifffile-2023.7.18-pyhd8ed1ab_0.conda#34c210cbc9b4c4458d4eba5ee7726fcd +https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.24.1-pyhd8ed1ab_0.conda#428f6c7385636d72191cb4fa0e489503 +https://conda.anaconda.org/conda-forge/noarch/xarray-2023.7.0-pyhd8ed1ab_0.conda#2f18700699e1ea19aa1634ed57711677 https://conda.anaconda.org/conda-forge/noarch/autodocsumm-0.2.6-pyhd8ed1ab_0.tar.bz2#4409dd7e06a62c3b2aa9e96782c49c6d -https://conda.anaconda.org/conda-forge/linux-64/aws-sdk-cpp-1.10.57-h8101662_14.conda#80fa7254dbb5f012c135b8ecd0f878ad -https://conda.anaconda.org/conda-forge/noarch/cf_xarray-0.8.1-pyhd8ed1ab_0.conda#3c3cdc59ff9c8e1f1c9d6d3c362ce778 -https://conda.anaconda.org/conda-forge/noarch/distributed-2023.6.0-pyhd8ed1ab_0.conda#4ec79a27574d70c947faf0a51bbe4079 +https://conda.anaconda.org/conda-forge/linux-64/aws-sdk-cpp-1.10.57-hbc2ea52_17.conda#452c7b08c21eea2ef01f4fd364d6affc +https://conda.anaconda.org/conda-forge/noarch/cf_xarray-0.8.4-pyhd8ed1ab_0.conda#18472f8f9452f962fe0bcb1b8134b494 +https://conda.anaconda.org/conda-forge/noarch/distributed-2023.7.1-pyhd8ed1ab_0.conda#c97773468da04fa2d57ebc9dde59fbe3 https://conda.anaconda.org/conda-forge/linux-64/eccodes-2.30.2-h1f30a5c_0.conda#21ee8444a7f629924ea8cfe52a622cbd https://conda.anaconda.org/conda-forge/linux-64/esmf-8.4.2-nompi_h20110ff_0.conda#11f5169aeff54ad7277476be8ba19ff7 https://conda.anaconda.org/conda-forge/linux-64/gdal-3.7.0-py311h281082f_2.conda#fde4fad3c517cc80f32995696f45198d https://conda.anaconda.org/conda-forge/linux-64/gtk2-2.24.33-h90689f9_2.tar.bz2#957a0255ab58aaf394a91725d73ab422 -https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.2.0-pyhd8ed1ab_0.conda#58ca2d50c3b27b86fd7df62eaadbf9a9 +https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.3.0-pyhd8ed1ab_0.conda#1d018ee4ab13217e2544f795eb0a6798 https://conda.anaconda.org/conda-forge/linux-64/librsvg-2.56.1-h98fae49_0.conda#4b827ee65a747c4a24f2a6ac7f3ff093 https://conda.anaconda.org/conda-forge/noarch/myproxyclient-2.1.0-pyhd8ed1ab_2.tar.bz2#363b0816e411feb0df925d4f224f026a -https://conda.anaconda.org/conda-forge/noarch/nbformat-5.9.0-pyhd8ed1ab_0.conda#f525a01528c3eba1d381a232a6971c6a +https://conda.anaconda.org/conda-forge/noarch/nbformat-5.9.1-pyhd8ed1ab_0.conda#3ec35d84fc1775215061517eb4660693 https://conda.anaconda.org/conda-forge/noarch/pep8-naming-0.10.0-pyh9f0ad1d_0.tar.bz2#b3c5536e4f9f58a4b16adb6f1e11732d https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.3.3-pyha770c72_0.conda#dd64a0e440754ed97610b3e6b502b6b1 https://conda.anaconda.org/conda-forge/linux-64/psyplot-1.4.3-py311h38be061_1.tar.bz2#f0c9a1067c03e8f05e53ef0c5ad5fab3 @@ -477,22 +480,22 @@ https://conda.anaconda.org/conda-forge/noarch/pydata-sphinx-theme-0.13.3-pyhd8ed https://conda.anaconda.org/conda-forge/noarch/pylint-plugin-utils-0.7-pyhd8ed1ab_0.tar.bz2#1657976383aee04dbb3ae3bdf654bb58 https://conda.anaconda.org/conda-forge/linux-64/python-stratify-0.3.0-py311h1f0f07a_0.conda#3a00b1b08d8c01b1a3bfa686b9152df2 https://conda.anaconda.org/conda-forge/linux-64/r-base-4.1.3-hfabd6f2_9.conda#0ab4cf54fbddc0cc9ff260c6f77f8c84 -https://conda.anaconda.org/conda-forge/linux-64/rasterio-1.3.7-py311h41e4db2_2.conda#0246fdb9441458b5dfd2e022c470598a -https://conda.anaconda.org/conda-forge/linux-64/scipy-1.10.1-py311h64a7726_3.conda#a01a3a7428e770db5a0c8c7ab5fce7f7 +https://conda.anaconda.org/conda-forge/linux-64/rasterio-1.3.8-py311h41e4db2_0.conda#b35deb26af1d7e0d98438c8ac5c6b7b2 +https://conda.anaconda.org/conda-forge/linux-64/scipy-1.11.1-py311h64a7726_0.conda#356da36102fc1eeb8a81e6d79e53bc7e https://conda.anaconda.org/conda-forge/linux-64/cartopy-0.21.1-py311hd88b842_1.conda#f19feb9440890ccb806a367ea9ae0654 https://conda.anaconda.org/conda-forge/noarch/dask-jobqueue-0.8.2-pyhd8ed1ab_0.conda#cc344a296a41369bcb05f7216661cec8 https://conda.anaconda.org/conda-forge/noarch/esgf-pyclient-0.3.1-pyh1a96a4e_2.tar.bz2#64068564a9c2932bf30e9b4ec567927d https://conda.anaconda.org/conda-forge/noarch/esmpy-8.4.2-pyhc1e730c_1.conda#4067029ad6872d49f6d43c05dd1f51a9 https://conda.anaconda.org/conda-forge/linux-64/fiona-1.9.4-py311hbac4ec9_0.conda#1d3445f5f7fa002a1c149c405376f012 -https://conda.anaconda.org/conda-forge/linux-64/graphviz-8.0.5-h28d9a01_0.conda#597e2d0e1c6bc2e4457714ff479fe142 -https://conda.anaconda.org/conda-forge/linux-64/libarrow-12.0.0-hc00ebf5_8_cpu.conda#903e3d15dccebe87369a50d688865507 -https://conda.anaconda.org/conda-forge/linux-64/magics-4.13.0-hd3d5bb6_5.conda#07d85bdf4e29d9cda3a27206dce825e0 +https://conda.anaconda.org/conda-forge/linux-64/graphviz-8.1.0-h28d9a01_0.conda#33628e0e3de7afd2c8172f76439894cb +https://conda.anaconda.org/conda-forge/linux-64/libarrow-12.0.1-h657c46f_5_cpu.conda#34918a92fb942394a7e4274a6a78990d +https://conda.anaconda.org/conda-forge/linux-64/magics-4.14.1-hd3d5bb6_0.conda#2b5173bcc90fb9a5d7f1bf1be7028402 https://conda.anaconda.org/conda-forge/noarch/nbclient-0.8.0-pyhd8ed1ab_0.conda#e78da91cf428faaf05701ce8cc8f2f9b https://conda.anaconda.org/conda-forge/linux-64/ncl-6.6.2-hf70af60_47.conda#ee27133164cb9f5e74681bdb8839688f https://conda.anaconda.org/conda-forge/linux-64/nco-5.1.6-hd62b316_0.conda#af7780f76ee37325d264327e21a478f5 https://conda.anaconda.org/conda-forge/noarch/patsy-0.5.3-pyhd8ed1ab_0.tar.bz2#50ef6b29b1fb0768ca82c5aeb4fb2d96 https://conda.anaconda.org/conda-forge/linux-64/psy-simple-1.4.1-py311h38be061_2.tar.bz2#4c9101d329f6bc09c2617a80e3eb9c89 -https://conda.anaconda.org/conda-forge/noarch/py-cordex-0.5.2-pyhd8ed1ab_0.conda#1de2b64c99d5b4e8413823047c0dbf7c +https://conda.anaconda.org/conda-forge/noarch/py-cordex-0.6.2-pyhd8ed1ab_0.conda#457fae5edf0703054b78f6bfb200e855 https://conda.anaconda.org/conda-forge/noarch/pylint-celery-0.3-py_1.tar.bz2#e29456a611a62d3f26105a2f9c68f759 https://conda.anaconda.org/conda-forge/noarch/pylint-django-2.5.3-pyhd8ed1ab_0.tar.bz2#00d8853fb1f87195722ea6a582cc9b56 https://conda.anaconda.org/conda-forge/noarch/pylint-flask-0.6-py_0.tar.bz2#5a9afd3d0a61b08d59eed70fab859c1b @@ -559,20 +562,20 @@ https://conda.anaconda.org/conda-forge/noarch/r-withr-2.5.0-r41hc72bb7e_1.tar.bz https://conda.anaconda.org/conda-forge/linux-64/r-xfun-0.39-r41ha503ecb_0.conda#555ee06849209b9471946da6f09bb98b https://conda.anaconda.org/conda-forge/noarch/r-xmlparsedata-1.0.5-r41hc72bb7e_1.tar.bz2#921c0ef7104d8df0ab506f1bb81a062c https://conda.anaconda.org/conda-forge/linux-64/r-yaml-2.3.7-r41h133d619_0.conda#4af88071a607237aa73a3cbd51788a39 -https://conda.anaconda.org/conda-forge/linux-64/scikit-image-0.20.0-py311h2872171_1.conda#24fca64735554fdf2794c69f5b3d9a06 -https://conda.anaconda.org/conda-forge/linux-64/scikit-learn-1.2.2-py311hc009520_2.conda#538b903a5572cf48fb87c8d30fc06e0d +https://conda.anaconda.org/conda-forge/linux-64/scikit-image-0.21.0-py311hb755f60_0.conda#0a8cbf18f7e57e43b8e106630a0ca7df +https://conda.anaconda.org/conda-forge/linux-64/scikit-learn-1.3.0-py311hc009520_0.conda#847797c4a9c0c3363ffcfe7571dedfee https://conda.anaconda.org/conda-forge/noarch/seaborn-base-0.12.2-pyhd8ed1ab_0.conda#cf88f3a1c11536bc3c10c14ad00ccc42 https://conda.anaconda.org/conda-forge/noarch/sparse-0.14.0-pyhd8ed1ab_0.conda#ee01b310177a0612554b9d20e537fdbe https://conda.anaconda.org/conda-forge/linux-64/cdo-2.2.0-he026af2_4.conda#6c00b0a21b3de8a149eee137e83465d3 -https://conda.anaconda.org/conda-forge/linux-64/imagemagick-7.1.1_11-pl5321hf48ede7_0.conda#25fddd05bbbe24b2ca9024c30b05bd6d -https://conda.anaconda.org/conda-forge/noarch/iris-3.6.0-pyha770c72_0.conda#a213bee1c2fab6f99c4f66ef5f0b34f9 +https://conda.anaconda.org/conda-forge/linux-64/imagemagick-7.1.1_14-pl5321hf48ede7_0.conda#5ad1a13e7d4bc4e32c7f9c66680a7bfc +https://conda.anaconda.org/conda-forge/noarch/iris-3.6.1-pyha770c72_0.conda#36d615b339058273520990fc78239116 https://conda.anaconda.org/conda-forge/noarch/lime-0.2.0.1-pyhd8ed1ab_1.tar.bz2#789ce01416721a5533fb74aa4361fd13 https://conda.anaconda.org/conda-forge/noarch/mapgenerator-1.0.7-pyhd8ed1ab_0.conda#d18db96ef2a920b0ecefe30282b0aecf -https://conda.anaconda.org/conda-forge/noarch/nbconvert-core-7.6.0-pyhd8ed1ab_0.conda#879782bde4bbdb4c7b5d4054504a20d5 +https://conda.anaconda.org/conda-forge/noarch/nbconvert-core-7.7.2-pyhd8ed1ab_0.conda#0cda9f218d791ed71c639c1e6cc52c92 https://conda.anaconda.org/conda-forge/noarch/prospector-1.10.2-pyhd8ed1ab_0.conda#2c536985982f7e531df8d640f554008a https://conda.anaconda.org/conda-forge/noarch/psy-maps-1.4.2-pyhd8ed1ab_0.tar.bz2#3ed13103dfd46f71dc870d188bd0b276 -https://conda.anaconda.org/conda-forge/linux-64/py-xgboost-1.7.4-cuda111py311h82c1ec6_2.conda#15e4e8d751e4740367631c17f460ad58 -https://conda.anaconda.org/conda-forge/linux-64/pyarrow-12.0.0-py311h39c9aba_8_cpu.conda#ecd8e4f35130ebd816f0ff806f645757 +https://conda.anaconda.org/conda-forge/linux-64/py-xgboost-1.7.4-cuda112py311h63ba870_2.conda#ee148e9b5a8bb1842fd936b65d79ef6a +https://conda.anaconda.org/conda-forge/linux-64/pyarrow-12.0.1-py311h39c9aba_5_cpu.conda#a0d6807551f44743f84ab6c87be191c4 https://conda.anaconda.org/conda-forge/linux-64/pydot-1.4.2-py311h38be061_3.tar.bz2#64a77de29fde80aef5013ddf5e62a564 https://conda.anaconda.org/conda-forge/linux-64/r-askpass-1.1-r41h06615bd_3.tar.bz2#c8ec8683302ad9a2345cb31ab28e6c6b https://conda.anaconda.org/conda-forge/linux-64/r-bigmemory-4.6.1-r41h7525677_1.tar.bz2#6a956b57b027b49b7a9ca48031a8bbd6 @@ -602,8 +605,8 @@ https://conda.anaconda.org/conda-forge/linux-64/r-xml2-1.3.4-r41h1ad5fc0_1.conda https://conda.anaconda.org/conda-forge/linux-64/r-zoo-1.8_12-r41h133d619_0.conda#1d432d2eba171727afd03507faa5e2f6 https://conda.anaconda.org/conda-forge/linux-64/statsmodels-0.14.0-py311h1f0f07a_1.conda#a1daa39fa0bfed4d91a3640c2274034a https://conda.anaconda.org/conda-forge/noarch/xesmf-0.7.1-pyhd8ed1ab_0.conda#3a9cc63d7bcbc8d738a0e92faf8b6c07 -https://conda.anaconda.org/conda-forge/noarch/dask-2023.6.0-pyhd8ed1ab_0.conda#187668ed10c12ad03aded53bc8e7aee6 -https://conda.anaconda.org/conda-forge/noarch/nbconvert-pandoc-7.6.0-pyhd8ed1ab_0.conda#e8172ca42f2869bb90185c9356899e81 +https://conda.anaconda.org/conda-forge/noarch/dask-2023.7.1-pyhd8ed1ab_0.conda#6cf42e7860cf46630fd5faf83386ff5d +https://conda.anaconda.org/conda-forge/noarch/nbconvert-pandoc-7.7.2-pyhd8ed1ab_0.conda#00a7300181018085bab62b6ffa630ac4 https://conda.anaconda.org/conda-forge/noarch/prov-2.0.0-pyhd3deb0d_0.tar.bz2#aa9b3ad140f6c0668c646f32e20ccf82 https://conda.anaconda.org/conda-forge/linux-64/psy-reg-1.4.0-py311h38be061_3.conda#6f7871722c07922028043144e8873b37 https://conda.anaconda.org/conda-forge/noarch/python-cdo-1.6.0-pyhd8ed1ab_0.conda#3fd1a0b063c1fbbe4b7bd5a5a7601e84 @@ -625,9 +628,9 @@ https://conda.anaconda.org/conda-forge/linux-64/r-specsverification-0.5_3-r41ha5 https://conda.anaconda.org/conda-forge/linux-64/r-splancs-2.01_43-r41h8da6f51_1.tar.bz2#3a6aad0706541141d10e3b514467a080 https://conda.anaconda.org/conda-forge/linux-64/r-vctrs-0.6.2-r41ha503ecb_0.conda#1f7610a1863648cab254a9f85bd29dcd https://conda.anaconda.org/conda-forge/noarch/seaborn-0.12.2-hd8ed1ab_0.conda#50847a47c07812f88581081c620f5160 -https://conda.anaconda.org/conda-forge/linux-64/xgboost-1.7.4-cuda111py311h569739f_2.conda#6c06902f15128dad7e0b26a3c83e6f43 +https://conda.anaconda.org/conda-forge/linux-64/xgboost-1.7.4-cuda112py311haec1985_2.conda#67811285755f2380562b3318e049a7b0 https://conda.anaconda.org/conda-forge/noarch/iris-esmf-regrid-0.7.0-pyhd8ed1ab_0.conda#de82eb8d09362babacafe6b7e27752ac -https://conda.anaconda.org/conda-forge/noarch/nbconvert-7.6.0-pyhd8ed1ab_0.conda#59976ee8df1c6f82c4aa94b5fd6b745e +https://conda.anaconda.org/conda-forge/noarch/nbconvert-7.7.2-pyhd8ed1ab_0.conda#6f119203c5648ed2b0c36e4fa8b6b504 https://conda.anaconda.org/conda-forge/noarch/r-cyclocomp-1.1.0-r41hc72bb7e_1005.tar.bz2#800e1da5bf774be48934b8865dd78d33 https://conda.anaconda.org/conda-forge/noarch/r-gridextra-2.3-r41hc72bb7e_1004.tar.bz2#71ebed7e976df735ff3443bb88bd154f https://conda.anaconda.org/conda-forge/noarch/r-httr-1.4.6-r41hc72bb7e_0.conda#53dbb769c96782db54bf2d414fc9b239 @@ -637,7 +640,7 @@ https://conda.anaconda.org/conda-forge/noarch/r-pillar-1.9.0-r41hc72bb7e_0.conda https://conda.anaconda.org/conda-forge/noarch/r-pkgload-1.3.2-r41hc72bb7e_0.tar.bz2#e23a1a8420ab52056d86a6f9691d23fa https://conda.anaconda.org/conda-forge/linux-64/r-purrr-1.0.1-r41h133d619_0.conda#d7404238cac0da3c97dc08503d116a2f https://conda.anaconda.org/conda-forge/noarch/r-r.cache-0.16.0-r41hc72bb7e_1.tar.bz2#aef451160d655cc630d8038d934dced3 -https://conda.anaconda.org/conda-forge/label/esmvalcore_rc/noarch/esmvalcore-2.9.0rc1-pyh39db41b_0.conda#dcbff06e21971c0cdce69b77219b45f6 +https://conda.anaconda.org/conda-forge/noarch/esmvalcore-2.9.0-pyhd8ed1ab_0.conda#1f80c9bce2737630da4e71332c9d39c1 https://conda.anaconda.org/conda-forge/noarch/nbsphinx-0.9.2-pyhd8ed1ab_0.conda#d1212b423fdd10d2da59601385561ff7 https://conda.anaconda.org/conda-forge/noarch/r-climprojdiags-0.3.2-r41hc72bb7e_0.conda#9922b863cd10035cbb75e3c2edae64a7 https://conda.anaconda.org/conda-forge/linux-64/r-tibble-3.2.1-r41h133d619_1.conda#3ae9b78fb1d8a44deed24a27cce33ebf From 430ee452f56d60ebcefaaf51e3a2230d5d730be2 Mon Sep 17 00:00:00 2001 From: Valeriu Predoi Date: Tue, 8 Aug 2023 12:32:58 +0100 Subject: [PATCH 25/34] [Github Actions] Compress all bash shell setters into one default option per workflow (#3315) --- .github/workflows/install-from-conda.yml | 46 +++++------ .../workflows/install-from-condalock-file.yml | 76 +++++-------------- .github/workflows/install-from-source.yml | 29 +++---- .github/workflows/run-tests-monitor.yml | 22 ++---- .github/workflows/test-development.yml | 14 ++-- .github/workflows/test.yml | 22 ++---- 6 files changed, 67 insertions(+), 142 deletions(-) diff --git a/.github/workflows/install-from-conda.yml b/.github/workflows/install-from-conda.yml index 3696d34e86..55897e7fe4 100644 --- a/.github/workflows/install-from-conda.yml +++ b/.github/workflows/install-from-conda.yml @@ -9,6 +9,11 @@ on: schedule: - cron: '0 4 * * *' +# Required shell entrypoint to have properly configured bash shell +defaults: + run: + shell: bash -l {0} + jobs: linux: runs-on: "ubuntu-latest" @@ -24,20 +29,16 @@ jobs: miniforge-version: "latest" miniforge-variant: Mambaforge use-mamba: true - - shell: bash -l {0} - run: mkdir -p conda_install_linux_artifacts_python_${{ matrix.python-version }} + - run: mkdir -p conda_install_linux_artifacts_python_${{ matrix.python-version }} - name: Record versions - shell: bash -l {0} run: | mamba --version 2>&1 | tee conda_install_linux_artifacts_python_${{ matrix.python-version }}/conda_version.txt which conda 2>&1 | tee conda_install_linux_artifacts_python_${{ matrix.python-version }}/conda_path.txt which mamba 2>&1 | tee -a conda_install_linux_artifacts_python_${{ matrix.python-version }}/conda_path.txt python -V 2>&1 | tee conda_install_linux_artifacts_python_${{ matrix.python-version }}/python_version.txt - name: Install ESMValTool - shell: bash -l {0} run: mamba install esmvaltool 2>&1 | tee conda_install_linux_artifacts_python_${{ matrix.python-version }}/install.txt - name: Verify installation - shell: bash -l {0} run: | esmvaltool --help esmvaltool version 2>&1 | tee conda_install_linux_artifacts_python_${{ matrix.python-version }}/version.txt @@ -65,31 +66,20 @@ jobs: # python-version: ${{ matrix.python-version }} # miniconda-version: "latest" # channels: conda-forge -# - shell: bash -l {0} -# run: mkdir -p conda_install_osx_artifacts_python_${{ matrix.python-version }} -# - shell: bash -l {0} -# run: conda --version 2>&1 | tee conda_install_osx_artifacts_python_${{ matrix.python-version }}/conda_version.txt -# - shell: bash -l {0} -# run: which conda 2>&1 | tee conda_install_osx_artifacts_python_${{ matrix.python-version }}/conda_path.txt -# - shell: bash -l {0} -# run: python -V 2>&1 | tee conda_install_osx_artifacts_python_${{ matrix.python-version }}/python_version.txt +# - run: mkdir -p conda_install_osx_artifacts_python_${{ matrix.python-version }} +# - run: conda --version 2>&1 | tee conda_install_osx_artifacts_python_${{ matrix.python-version }}/conda_version.txt +# - run: which conda 2>&1 | tee conda_install_osx_artifacts_python_${{ matrix.python-version }}/conda_path.txt +# - run: python -V 2>&1 | tee conda_install_osx_artifacts_python_${{ matrix.python-version }}/python_version.txt # # ncurses needs to be from conda-forge and not main channel # # for now it's turned off since we're not testing R/Julia installs -# # - shell: bash -l {0} -# # run: conda uninstall -y ncurses -# # - shell: bash -l {0} -# # run: conda list ncurses -# # - shell: bash -l {0} -# # run: conda install -y conda-forge::ncurses -# # - shell: bash -l {0} -# # run: conda list ncurses -# - shell: bash -l {0} -# #run: conda install esmvaltool --no-update-deps 2>&1 | tee conda_install_osx_artifacts_python_${{ matrix.python-version }}/install.txt -# run: conda install esmvaltool-python esmvaltool-ncl 2>&1 | tee conda_install_osx_artifacts_python_${{ matrix.python-version }}/install.txt -# - shell: bash -l {0} -# run: esmvaltool --help -# - shell: bash -l {0} -# run: esmvaltool version 2>&1 | tee conda_install_osx_artifacts_python_${{ matrix.python-version }}/version.txt +# # - run: conda uninstall -y ncurses +# # - run: conda list ncurses +# # - run: conda install -y conda-forge::ncurses +# # - run: conda list ncurses +# - run: conda install esmvaltool --no-update-deps 2>&1 | tee conda_install_osx_artifacts_python_${{ matrix.python-version }}/install.txt +# - run: conda install esmvaltool-python esmvaltool-ncl 2>&1 | tee conda_install_osx_artifacts_python_${{ matrix.python-version }}/install.txt +# - run: esmvaltool --help +# - run: esmvaltool version 2>&1 | tee conda_install_osx_artifacts_python_${{ matrix.python-version }}/version.txt # - name: Upload artifacts # if: ${{ always() }} # upload artifacts even if fail # uses: actions/upload-artifact@v2 diff --git a/.github/workflows/install-from-condalock-file.yml b/.github/workflows/install-from-condalock-file.yml index 99092069d8..a209c06f32 100644 --- a/.github/workflows/install-from-condalock-file.yml +++ b/.github/workflows/install-from-condalock-file.yml @@ -20,6 +20,11 @@ on: schedule: - cron: '0 0 * * *' +# Required shell entrypoint to have properly configured bash shell +defaults: + run: + shell: bash -l {0} + jobs: linux: runs-on: "ubuntu-latest" @@ -38,68 +43,21 @@ jobs: python-version: ${{ matrix.python-version }} miniconda-version: "latest" channels: conda-forge - - shell: bash -l {0} - run: mkdir -p source_install_linux_artifacts_python_${{ matrix.python-version }} - - shell: bash -l {0} - run: conda --version 2>&1 | tee source_install_linux_artifacts_python_${{ matrix.python-version }}/conda_version.txt - - shell: bash -l {0} - run: which python - - shell: bash -l {0} - run: python -V 2>&1 | tee source_install_linux_artifacts_python_${{ matrix.python-version }}/python_version.txt - - shell: bash -l {0} - run: conda create --name esmvaltool-fromlock --file conda-linux-64.lock - - shell: bash -l {0} - run: which python - - shell: bash -l {0} - run: pip --version - - shell: bash -l {0} - run: pip install -e .[develop] - - shell: bash -l {0} - run: esmvaltool --help - - shell: bash -l {0} - run: esmvaltool version 2>&1 | tee source_install_linux_artifacts_python_${{ matrix.python-version }}/version.txt - - shell: bash -l {0} - run: flake8 - - shell: bash -l {0} - run: pytest -n 2 -m "not installation" + - run: mkdir -p source_install_linux_artifacts_python_${{ matrix.python-version }} + - run: conda --version 2>&1 | tee source_install_linux_artifacts_python_${{ matrix.python-version }}/conda_version.txt + - run: which python + - run: python -V 2>&1 | tee source_install_linux_artifacts_python_${{ matrix.python-version }}/python_version.txt + - run: conda create --name esmvaltool-fromlock --file conda-linux-64.lock + - run: which python + - run: pip --version + - run: pip install -e .[develop] + - run: esmvaltool --help + - run: esmvaltool version 2>&1 | tee source_install_linux_artifacts_python_${{ matrix.python-version }}/version.txt + - run: flake8 + - run: pytest -n 2 -m "not installation" - name: Upload artifacts if: ${{ always() }} # upload artifacts even if fail uses: actions/upload-artifact@v2 with: name: Source_Install_Linux_python_${{ matrix.python-version }} path: source_install_linux_artifacts_python_${{ matrix.python-version }} - -# osx: -# runs-on: "macos-latest" -# strategy: -# matrix: -# python-version: ["3.9", "3.10", "3.11"] -# fail-fast: false -# name: OSX Python ${{ matrix.python-version }} -# steps: -# - uses: actions/checkout@v2 -# - uses: conda-incubator/setup-miniconda@v2 -# with: -# activate-environment: esmvaltool -# environment-file: environment.yml -# python-version: ${{ matrix.python-version }} -# miniconda-version: "latest" -# channels: conda-forge -# - shell: bash -l {0} -# run: mkdir -p source_install_osx_artifacts_python_${{ matrix.python-version }} -# - shell: bash -l {0} -# run: conda --version 2>&1 | tee source_install_osx_artifacts_python_${{ matrix.python-version }}/conda_version.txt -# - shell: bash -l {0} -# run: python -V 2>&1 | tee source_install_osx_artifacts_python_${{ matrix.python-version }}/python_version.txt -# - shell: bash -l {0} -# run: pip install -e .[develop] 2>&1 | tee source_install_osx_artifacts_python_${{ matrix.python-version }}/install.txt -# - shell: bash -l {0} -# run: esmvaltool --help -# - shell: bash -l {0} -# run: esmvaltool version 2>&1 | tee source_install_osx_artifacts_python_${{ matrix.python-version }}/version.txt -# - name: Upload artifacts -# if: ${{ always() }} # upload artifacts even if fail -# uses: actions/upload-artifact@v2 -# with: -# name: Source_Install_OSX_python_${{ matrix.python-version }} -# path: source_install_osx_artifacts_python_${{ matrix.python-version }} diff --git a/.github/workflows/install-from-source.yml b/.github/workflows/install-from-source.yml index 8c86e273ac..2e24b8f049 100644 --- a/.github/workflows/install-from-source.yml +++ b/.github/workflows/install-from-source.yml @@ -9,6 +9,11 @@ on: schedule: - cron: '0 0 * * *' +# Required shell entrypoint to have properly configured bash shell +defaults: + run: + shell: bash -l {0} + jobs: linux: runs-on: "ubuntu-latest" @@ -29,18 +34,14 @@ jobs: miniforge-version: "latest" miniforge-variant: Mambaforge use-mamba: true - - shell: bash -l {0} - run: mkdir -p source_install_linux_artifacts_python_${{ matrix.python-version }} + - run: mkdir -p source_install_linux_artifacts_python_${{ matrix.python-version }} - name: Record versions - shell: bash -l {0} run: | mamba --version 2>&1 | tee source_install_linux_artifacts_python_${{ matrix.python-version }}/conda_version.txt python -V 2>&1 | tee source_install_linux_artifacts_python_${{ matrix.python-version }}/python_version.txt - name: Install - shell: bash -l {0} run: pip install -e .[develop] 2>&1 | tee source_install_linux_artifacts_python_${{ matrix.python-version }}/install.txt - name: Verify installation - shell: bash -l {0} run: | esmvaltool --help esmvaltool version 2>&1 | tee source_install_linux_artifacts_python_${{ matrix.python-version }}/version.txt @@ -70,18 +71,12 @@ jobs: # python-version: ${{ matrix.python-version }} # miniconda-version: "latest" # channels: conda-forge -# - shell: bash -l {0} -# run: mkdir -p source_install_osx_artifacts_python_${{ matrix.python-version }} -# - shell: bash -l {0} -# run: conda --version 2>&1 | tee source_install_osx_artifacts_python_${{ matrix.python-version }}/conda_version.txt -# - shell: bash -l {0} -# run: python -V 2>&1 | tee source_install_osx_artifacts_python_${{ matrix.python-version }}/python_version.txt -# - shell: bash -l {0} -# run: pip install -e .[develop] 2>&1 | tee source_install_osx_artifacts_python_${{ matrix.python-version }}/install.txt -# - shell: bash -l {0} -# run: esmvaltool --help -# - shell: bash -l {0} -# run: esmvaltool version 2>&1 | tee source_install_osx_artifacts_python_${{ matrix.python-version }}/version.txt +# - run: mkdir -p source_install_osx_artifacts_python_${{ matrix.python-version }} +# - run: conda --version 2>&1 | tee source_install_osx_artifacts_python_${{ matrix.python-version }}/conda_version.txt +# - run: python -V 2>&1 | tee source_install_osx_artifacts_python_${{ matrix.python-version }}/python_version.txt +# - run: pip install -e .[develop] 2>&1 | tee source_install_osx_artifacts_python_${{ matrix.python-version }}/install.txt +# - run: esmvaltool --help +# - run: esmvaltool version 2>&1 | tee source_install_osx_artifacts_python_${{ matrix.python-version }}/version.txt # - name: Upload artifacts # if: ${{ always() }} # upload artifacts even if fail # uses: actions/upload-artifact@v2 diff --git a/.github/workflows/run-tests-monitor.yml b/.github/workflows/run-tests-monitor.yml index e23c7c0daf..1efe54a66a 100644 --- a/.github/workflows/run-tests-monitor.yml +++ b/.github/workflows/run-tests-monitor.yml @@ -12,6 +12,11 @@ on: schedule: - cron: '0 0 * * *' # nightly +# Required shell entrypoint to have properly configured bash shell +defaults: + run: + shell: bash -l {0} + jobs: linux: runs-on: "ubuntu-latest" @@ -32,29 +37,22 @@ jobs: miniforge-version: "latest" miniforge-variant: Mambaforge use-mamba: true - - shell: bash -l {0} - run: mkdir -p test_linux_artifacts_python_${{ matrix.python-version }} + - run: mkdir -p test_linux_artifacts_python_${{ matrix.python-version }} - name: Record versions - shell: bash -l {0} run: | mamba --version 2>&1 | tee test_linux_artifacts_python_${{ matrix.python-version }}/conda_version.txt python -V 2>&1 | tee test_linux_artifacts_python_${{ matrix.python-version }}/python_version.txt - name: Install pytest-monitor - shell: bash -l {0} run: pip install pytest-monitor - name: Install ESMValTool - shell: bash -l {0} run: pip install -e .[develop] 2>&1 | tee test_linux_artifacts_python_${{ matrix.python-version }}/install.txt - name: Install Julia dependencies - shell: bash -l {0} run: esmvaltool install Julia - name: Run tests - shell: bash -l {0} run: > pytest -n 2 -m "not installation" --db ../.pymon 2>&1 | tee test_linux_artifacts_python_${{ matrix.python-version }}/test_report.txt - name: Parse monitor information - shell: bash -l {0} run: python tests/parse_pymon.py - name: Upload artifacts if: ${{ always() }} # upload artifacts even if fail @@ -84,28 +82,22 @@ jobs: use-mamba: true # - name: Install libomp with homebrew # run: brew install libomp - - shell: bash -l {0} - run: mkdir -p test_osx_artifacts_python_${{ matrix.python-version }} + - run: mkdir -p test_osx_artifacts_python_${{ matrix.python-version }} - name: Record versions - shell: bash -l {0} run: | mamba --version 2>&1 | tee test_osx_artifacts_python_${{ matrix.python-version }}/conda_version.txt python -V 2>&1 | tee test_osx_artifacts_python_${{ matrix.python-version }}/python_version.txt - name: Install pytest-monitor - shell: bash -l {0} run: pip install pytest-monitor - name: Install ESMValTool - shell: bash -l {0} run: > pip install -e .[develop] 2>&1 | tee test_osx_artifacts_python_${{ matrix.python-version }}/install.txt - name: Run tests - shell: bash -l {0} run: > pytest -n 2 -m "not installation" --db ../.pymon 2>&1 | tee test_osx_artifacts_python_${{ matrix.python-version }}/test_report.txt - name: Parse monitor information - shell: bash -l {0} run: python tests/parse_pymon.py - name: Upload artifacts if: ${{ always() }} # upload artifacts even if fail diff --git a/.github/workflows/test-development.yml b/.github/workflows/test-development.yml index 2f115ed46e..dfede54280 100644 --- a/.github/workflows/test-development.yml +++ b/.github/workflows/test-development.yml @@ -15,6 +15,11 @@ on: schedule: - cron: '0 0 * * *' +# Required shell entrypoint to have properly configured bash shell +defaults: + run: + shell: bash -l {0} + jobs: linux: runs-on: "ubuntu-latest" @@ -35,31 +40,24 @@ jobs: miniforge-version: "latest" miniforge-variant: Mambaforge use-mamba: true - - shell: bash -l {0} - run: mkdir -p develop_test_linux_artifacts_python_${{ matrix.python-version }} + - run: mkdir -p develop_test_linux_artifacts_python_${{ matrix.python-version }} - name: Record versions - shell: bash -l {0} run: | mamba --version 2>&1 | tee develop_test_linux_artifacts_python_${{ matrix.python-version }}/conda_version.txt python -V 2>&1 | tee develop_test_linux_artifacts_python_${{ matrix.python-version }}/python_version.txt - name: Install ESMValTool - shell: bash -l {0} run: pip install -e .[develop] 2>&1 | tee develop_test_linux_artifacts_python_${{ matrix.python-version }}/install.txt - name: Install Julia dependencies - shell: bash -l {0} run: esmvaltool install Julia - name: Install development version of ESMValCore - shell: bash -l {0} run: | cd .. git clone https://github.com/ESMValGroup/ESMValCore.git cd ESMValCore pip install -e .[develop] - name: Run flake8 - shell: bash -l {0} run: flake8 - name: Run tests - shell: bash -l {0} run: pytest -n 2 -m "not installation" 2>&1 | tee develop_test_linux_artifacts_python_${{ matrix.python-version }}/test_report.txt - name: Upload artifacts if: ${{ always() }} # upload artifacts even if fail diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 9cb266eaed..4e2698454f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -9,6 +9,11 @@ on: schedule: - cron: '0 0 * * *' +# Required shell entrypoint to have properly configured bash shell +defaults: + run: + shell: bash -l {0} + jobs: linux: runs-on: "ubuntu-latest" @@ -29,36 +34,28 @@ jobs: miniforge-version: "latest" miniforge-variant: Mambaforge use-mamba: true - - shell: bash -l {0} - run: mkdir -p test_linux_artifacts_python_${{ matrix.python-version }} + - run: mkdir -p test_linux_artifacts_python_${{ matrix.python-version }} - name: Record versions - shell: bash -l {0} run: | mamba --version 2>&1 | tee test_linux_artifacts_python_${{ matrix.python-version }}/conda_version.txt python -V 2>&1 | tee test_linux_artifacts_python_${{ matrix.python-version }}/python_version.txt # this is how to export variables to the GITHUB var environment echo "pver0=$(python -V)" >> $GITHUB_ENV - name: Install ESMValTool - shell: bash -l {0} run: pip install -e .[develop] 2>&1 | tee test_linux_artifacts_python_${{ matrix.python-version }}/install.txt - name: Install Julia dependencies - shell: bash -l {0} run: esmvaltool install Julia - name: Export Python minor version - shell: bash -l {0} run: echo "pver1=$(python -V)" >> $GITHUB_ENV - name: Exit if Python minor version changed - shell: bash -l {0} if: ${{ env.pver1 != env.pver0}} run: | echo "Python minor version changed after Julia install" python -V exit 1 - name: Run flake8 - shell: bash -l {0} run: flake8 - name: Run tests - shell: bash -l {0} run: pytest -n 2 -m "not installation" 2>&1 | tee test_linux_artifacts_python_${{ matrix.python-version }}/test_report.txt - name: Upload artifacts if: ${{ always() }} # upload artifacts even if fail @@ -88,21 +85,16 @@ jobs: use-mamba: true # - name: Install libomp with homebrew # run: brew install libomp - - shell: bash -l {0} - run: mkdir -p test_osx_artifacts_python_${{ matrix.python-version }} + - run: mkdir -p test_osx_artifacts_python_${{ matrix.python-version }} - name: Record versions - shell: bash -l {0} run: | mamba --version 2>&1 | tee test_osx_artifacts_python_${{ matrix.python-version }}/conda_version.txt python -V 2>&1 | tee test_osx_artifacts_python_${{ matrix.python-version }}/python_version.txt - name: Install ESMValTool - shell: bash -l {0} run: pip install -e .[develop] 2>&1 | tee test_osx_artifacts_python_${{ matrix.python-version }}/install.txt - name: Run flake8 - shell: bash -l {0} run: flake8 - name: Run tests - shell: bash -l {0} run: pytest -n 2 -m "not installation" 2>&1 | tee test_osx_artifacts_python_${{ matrix.python-version }}/test_report.txt - name: Upload artifacts if: ${{ always() }} # upload artifacts even if fail From 324648139fee953fc12a273b4a1e43a4d807cef8 Mon Sep 17 00:00:00 2001 From: Valeriu Predoi Date: Tue, 8 Aug 2023 12:33:55 +0100 Subject: [PATCH 26/34] update `mamba` version in readthedocs configuration docs builds (#3310) --- .readthedocs.yaml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 68b849dac3..07a53170b7 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -9,10 +9,16 @@ version: 2 build: os: ubuntu-22.04 tools: - python: "mambaforge-4.10" + # updated and deployed from Aug 1, 2023 + python: "mambaforge-22.9" jobs: + pre_create_environment: + # update mamba just in case + - mamba update --yes --quiet --name=base mamba + - mamba --version post_create_environment: # use conda run executable wrapper to have all env variables + - conda run -n ${CONDA_DEFAULT_ENV} mamba --version - conda run -n ${CONDA_DEFAULT_ENV} pip install . --no-deps # Declare the requirements required to build your docs From 653638d9651360006eb8d41c9d2e7c8e66bb1036 Mon Sep 17 00:00:00 2001 From: Valeriu Predoi Date: Thu, 10 Aug 2023 09:48:06 +0100 Subject: [PATCH 27/34] add Romain Beucher to CITATION as contributor (#3318) --- CITATION.cff | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CITATION.cff b/CITATION.cff index 31404e4c7e..49226a7fda 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -349,6 +349,11 @@ authors: family-names: Winterstein given-names: Franziska orcid: "https://orcid.org/0000-0002-2406-4936" + - + affiliation: "ACCESS-NRI, Australia" + family-names: Beucher + given-names: Romain + orcid: "https://orcid.org/0000-0003-3891-5444" cff-version: 1.2.0 date-released: 2023-07-06 From 6747e63b931d084df99011146487f2ebaef90832 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Kazeroni?= Date: Fri, 11 Aug 2023 09:25:45 +0200 Subject: [PATCH 28/34] Removed recipe_carvalhais14nat from list of broken recipes (#3319) --- doc/sphinx/source/recipes/broken_recipe_list.rst | 4 ---- 1 file changed, 4 deletions(-) diff --git a/doc/sphinx/source/recipes/broken_recipe_list.rst b/doc/sphinx/source/recipes/broken_recipe_list.rst index 64f4437a96..18471b2382 100644 --- a/doc/sphinx/source/recipes/broken_recipe_list.rst +++ b/doc/sphinx/source/recipes/broken_recipe_list.rst @@ -16,10 +16,6 @@ More details can be found in the :ref:`broken recipe policy - Affected diagnostics - Problem - GitHub issue - * - :ref:`recipe_carvalhais14nat.yml ` - - `global_turnover_time` - - ``cartopy`` issue - - `#3281 `_ * - `recipe_check_obs.yml` - `ERA5_native6` - Derivation of custom variables `rlus` and `rsus` From a8186dd04d445439ee1fac81a8b537277d085dd5 Mon Sep 17 00:00:00 2001 From: Valeriu Predoi Date: Fri, 11 Aug 2023 11:37:31 +0100 Subject: [PATCH 29/34] Slight refactoring of diag `galytska23/select_variables_for_tigramite.py` for generality and portability (for Changelog v2.10: authors: @valeriupredoi and @egalytska) (#3298) Co-authored-by: Evgenia Galytska --- .../select_variables_for_tigramite.py | 203 ++++++++++++------ 1 file changed, 132 insertions(+), 71 deletions(-) diff --git a/esmvaltool/diag_scripts/galytska23/select_variables_for_tigramite.py b/esmvaltool/diag_scripts/galytska23/select_variables_for_tigramite.py index 2ceba18b21..424f089d69 100644 --- a/esmvaltool/diag_scripts/galytska23/select_variables_for_tigramite.py +++ b/esmvaltool/diag_scripts/galytska23/select_variables_for_tigramite.py @@ -45,11 +45,27 @@ save_data, ) from esmvaltool.diag_scripts.shared._base import ( - get_plot_filename, -) + get_plot_filename, ) logger = logging.getLogger(Path(__file__).stem) +# Fixed parameters +# list of variables to be ignored per model +ignored_variables = {"HadISST": ["heat_flux"]} + +# list of variables per dataset that will be processed +proc_vars = { + "ERA5": [ + 'PV', 'Arctic_temperature', 'Psl_Ural', 'Psl_Sib', 'Psl_Aleut', + 'heat_flux' + ], + "HadISST": ['BK_sic', 'Ok_sic'], + "all_other_datasets": [ + 'PV', 'Arctic_temperature', 'Psl_Ural', 'Psl_Sib', 'Psl_Aleut', + 'heat_flux', 'BK_sic', 'Ok_sic' + ], +} + def get_provenance_record(ancestor_files): """Create a provenance record describing the diagnostic data and plot.""" @@ -124,55 +140,68 @@ def calculate_heat_flux(list_va_ta): return hf_anom_zm -def variable_cases(var, item): +def variable_cases(var_name, var): """Match preprocessor name and corresponding calculations.""" - if var == 'pv': - out_var = calculate_polar_vortex(item) - elif var == 'pre_tas': - out_var = calculate_arctic_tas(item) - elif var == 'pressure_ural': - out_var = calculate_slp(item) + if var_name == 'pv': + out_var = calculate_polar_vortex(var) + elif var_name == 'pre_tas': + out_var = calculate_arctic_tas(var) + elif var_name == 'pressure_ural': + out_var = calculate_slp(var) out_var.var_name = 'Psl_Ural' - elif var == 'pressure_sib': - out_var = calculate_slp(item) + elif var_name == 'pressure_sib': + out_var = calculate_slp(var) out_var.var_name = 'Psl_Sib' - elif var == 'pressure_aleut': - out_var = calculate_slp(item) + elif var_name == 'pressure_aleut': + out_var = calculate_slp(var) out_var.var_name = 'Psl_Aleut' - elif var == 'bk_ice': - out_var = finalize_bk_ice(item) - elif var == 'ok_ice': - out_var = finalize_ok_ice(item) - elif var == 'heat_flux': - out_var = prepare_heat_flux(item) + elif var_name == 'bk_ice': + out_var = finalize_bk_ice(var) + elif var_name == 'ok_ice': + out_var = finalize_ok_ice(var) + elif var_name == 'heat_flux': + out_var = prepare_heat_flux(var) else: - raise NotImplementedError(f"Variable '{var}' not supported") + raise NotImplementedError(f"Variable '{var_name}' not yet supported.") return out_var -def calculate_variables(input_dict): +def calculate_variables(dataset_dict): """Calculate all necessary variables.""" logger.debug("Variables are calculated for the following datasources:%s", - input_dict.keys()) - dictionary = {} - for key, value in input_dict.items(): - logger.debug("Calculating final variables for %s dataset", key) - dictionary.setdefault(key, {}) - tmp_list = [] - for item in value: - if item['preprocessor'] == "heat_flux": - tmp_list.append(variable_cases(item['preprocessor'], item)) - else: - dictionary[key].setdefault( - variable_cases(item['preprocessor'], item).var_name, - variable_cases(item['preprocessor'], item) - ) - - if key != "HadISST": - # Calculate heat flux for all data sources except HadISST + dataset_dict.keys()) + processed_vars = {} + for dataset, variables in dataset_dict.items(): + processed_vars[dataset] = {} + + logger.debug("Calculating final variables %s for %s dataset", + variables, dataset) + + if dataset in ignored_variables: + to_ignore_vars = ignored_variables.get(dataset, None) + for var in variables: + var_name = var['preprocessor'] + if var_name not in to_ignore_vars: + new_var = variable_cases(var_name, var) + new_var_name = new_var.var_name + processed_vars[dataset][new_var_name] = new_var + else: + tmp_list = [] + for var in variables: + var_name = var['preprocessor'] + if var_name == "heat_flux": + tmp_list.append(variable_cases(var_name, var)) + else: + new_var = variable_cases(var_name, var) + new_var_name = new_var.var_name + processed_vars[dataset][new_var_name] = new_var + if len(tmp_list) != 2: + raise IndexError("The preprocessor heat flux requests two \ + variables in the recipe: va and ta") heat_flux = calculate_heat_flux(tmp_list) - dictionary[key].setdefault(heat_flux.var_name, heat_flux) - return dictionary + processed_vars[dataset][heat_flux.var_name] = heat_flux + + return processed_vars def plotting_support(cube, key, **kwargs): @@ -193,52 +222,84 @@ def plot_timeseries(dictionary, var, cfg): colors = plt.cm.viridis(np.linspace(0, 1, len(dictionary.keys()))) baseplotname = f"Timeseries_{var}_anomalies" filename = get_plot_filename(baseplotname, cfg) - for i, key in enumerate(dictionary.keys()): - if var not in ('BK_sic', 'Ok_sic'): - if key == "HadISST": + for idx, dataset in enumerate(dictionary.keys()): + if var not in proc_vars["HadISST"]: + if dataset == "HadISST": continue - if key != 'ERA5': - plotting_support(dictionary[key][var], key, - color=colors[i]) + if dataset != 'ERA5': + plotting_support(dictionary[dataset][var], + dataset, color=colors[idx]) else: - plotting_support(dictionary[key][var], key, - color='k', linewidth=2) + plotting_support(dictionary[dataset][var], + dataset, + color='k', + linewidth=2) else: - if key == "ERA5": + if dataset == "ERA5": continue - if key != 'HadISST': - plotting_support(dictionary[key][var], key, color=colors[i]) + if dataset != 'HadISST': + plotting_support(dictionary[dataset][var], + dataset, color=colors[idx]) else: - plotting_support(dictionary[key][var], key, color='blue', + plotting_support(dictionary[dataset][var], + dataset, + color='blue', linewidth=2) fig.savefig(filename, bbox_inches='tight') +def assemble_cube_list(dataset, var, special_datasets): + """ + Assemble a list of processed vars cubes. + + Depending on what vars are needed per dataset, + variables list differs per analyzed dataset. Dict holding the + needed variables per dataset needs updating everytime a new dataset + or variable gets included. + + Parameters + ---------- + dataset: str + dataset name. + var: dict + variable dictionary. + special_datasets: list + list of datasets to be treated separately, + with restricted variables. + type: list of datasets (list of strings). + + Returns + ------- + iris.cube.CubeList + list of cubes. + """ + if dataset not in special_datasets: + cube_list = iris.cube.CubeList( + [var[proc_var] for proc_var in proc_vars["all_other_datasets"]]) + else: + cube_list = iris.cube.CubeList( + [var[proc_var] for proc_var in proc_vars[dataset]]) + + return cube_list + + def main(cfg): """Calculate and save final variables into .nc files.""" + special_datasets = ["ERA5", "HadISST"] + my_files_dict = group_metadata(cfg['input_data'].values(), 'dataset') all_variables = calculate_variables(my_files_dict) + # Check is timeseries should be plotted - if cfg['plot_timeseries'] is True: + if cfg['plot_timeseries']: plot_timeseries(all_variables, cfg['variable_to_plot'], cfg) - for key in my_files_dict: - logger.info("Processing final calculations in dataset %s", key) - prov_record = get_provenance_record([key]) - var = all_variables[key] - if key == "ERA5": - cube_list = iris.cube.CubeList([ - var['PV'], var['Arctic_temperature'], var['Psl_Ural'], - var['Psl_Sib'], var['Psl_Aleut'], var['heat_flux']]) - elif key == "HadISST": - cube_list = iris.cube.CubeList([ - var['BK_sic'], var['Ok_sic']]) - else: - cube_list = iris.cube.CubeList([ - var['PV'], var['Arctic_temperature'], var['Psl_Ural'], - var['Psl_Sib'], var['Psl_Aleut'], var['heat_flux'], - var['BK_sic'], var['Ok_sic']]) - save_data(key, prov_record, cfg, cube_list) - logger.info("%s data is saved in .nc", key) + for dataset in my_files_dict: + logger.info("Processing final calculations in dataset %s", dataset) + prov_record = get_provenance_record([dataset]) + var = all_variables[dataset] + cube_list = assemble_cube_list(dataset, var, special_datasets) + save_data(dataset, prov_record, cfg, cube_list) + logger.info("%s data is saved in .nc", dataset) logger.info("Done.") From 7031ca0781d858af2f953c08465a9562f67df3a0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 11 Aug 2023 11:38:29 +0100 Subject: [PATCH 30/34] [Condalock] Update Linux condalock file (#3321) Co-authored-by: valeriupredoi --- conda-linux-64.lock | 114 ++++++++++++++++++++++---------------------- 1 file changed, 57 insertions(+), 57 deletions(-) diff --git a/conda-linux-64.lock b/conda-linux-64.lock index 39331facf0..c7e91c6a20 100644 --- a/conda-linux-64.lock +++ b/conda-linux-64.lock @@ -34,7 +34,6 @@ https://conda.anaconda.org/conda-forge/linux-64/aws-c-common-0.8.23-hd590300_0.c https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h7f98852_4.tar.bz2#a1fd65c7ccbf10880423d82bca54eb54 https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.19.1-hd590300_0.conda#e8c18d865be43e2fb3f7a145b6adf1f5 https://conda.anaconda.org/conda-forge/linux-64/charls-2.4.2-h59595ed_0.conda#4336bd67920dd504cd8c6761d6a99645 -https://conda.anaconda.org/conda-forge/linux-64/cudatoolkit-11.8.0-h37601d7_11.conda#9d166760c8cfa83e2fc989928312da3d https://conda.anaconda.org/conda-forge/linux-64/dav1d-1.2.1-hd590300_0.conda#418c6ca5929a611cbd69204907a83995 https://conda.anaconda.org/conda-forge/linux-64/fftw-3.3.10-nompi_hc118613_108.conda#6fa90698000b05dfe8ce6515794fe71a https://conda.anaconda.org/conda-forge/linux-64/freexl-1.0.6-h166bdaf_1.tar.bz2#897e772a157faf3330d72dd291486f62 @@ -84,19 +83,20 @@ https://conda.anaconda.org/conda-forge/linux-64/nccl-2.18.3.1-h12f7317_0.conda#c https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.4-hcb278e6_0.conda#681105bccc2a3f7f1a837d47d39c9179 https://conda.anaconda.org/conda-forge/linux-64/nspr-4.35-h27087fc_0.conda#da0ec11a6454ae19bff5b02ed881a2b1 https://conda.anaconda.org/conda-forge/linux-64/openlibm-0.8.1-h7f98852_0.tar.bz2#ba0c56761f2380babaa783b2a37b4d08 -https://conda.anaconda.org/conda-forge/linux-64/openssl-3.1.1-hd590300_1.conda#2e1d7b458ac8f1e3ca4e18b77add6277 +https://conda.anaconda.org/conda-forge/linux-64/openssl-3.1.2-hd590300_0.conda#e5ac5227582d6c83ccf247288c0eb095 https://conda.anaconda.org/conda-forge/linux-64/p7zip-16.02-h9c3ff4c_1001.tar.bz2#941066943c0cac69d5aa52189451aa5f https://conda.anaconda.org/conda-forge/linux-64/pixman-0.40.0-h36c2ea0_0.tar.bz2#660e72c82f2e75a6b3fe6a6e75c79f19 https://conda.anaconda.org/conda-forge/linux-64/pkg-config-0.29.2-h36c2ea0_1008.tar.bz2#fbef41ff6a4c8140c30057466a1cdd47 https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-h36c2ea0_1001.tar.bz2#22dad4df6e8630e8dff2428f6f6a7036 https://conda.anaconda.org/conda-forge/linux-64/rdma-core-28.9-h59595ed_1.conda#aeffb7c06b5f65e55e6c637408dc4100 https://conda.anaconda.org/conda-forge/linux-64/re2-2023.03.02-h8c504da_0.conda#206f8fa808748f6e90599c3368a1114e +https://conda.anaconda.org/conda-forge/linux-64/rocm-smi-5.6.0-h59595ed_1.conda#2980fb3b7777f495dacd46d5cc5d74bb https://conda.anaconda.org/conda-forge/linux-64/sed-4.8-he412f7d_0.tar.bz2#7362f0042e95681f5d371c46c83ebd08 https://conda.anaconda.org/conda-forge/linux-64/snappy-1.1.10-h9fff704_0.conda#e6d228cd0bb74a51dd18f5bfce0b4115 https://conda.anaconda.org/conda-forge/linux-64/tzcode-2023c-h0b41bf4_0.conda#0c0533894f21c3d35697cb8378d390e2 https://conda.anaconda.org/conda-forge/linux-64/xorg-inputproto-2.3.2-h7f98852_1002.tar.bz2#bcd1b3396ec6960cbc1d2855a9e60b2b https://conda.anaconda.org/conda-forge/linux-64/xorg-kbproto-1.0.7-h7f98852_1002.tar.bz2#4b230e8381279d76131116660f5a241a -https://conda.anaconda.org/conda-forge/linux-64/xorg-libice-1.0.10-h7f98852_0.tar.bz2#d6b0b50b49eccfe0be0373be628be0f3 +https://conda.anaconda.org/conda-forge/linux-64/xorg-libice-1.1.1-hd590300_0.conda#b462a33c0be1421532f28bfe8f4a7514 https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.11-hd590300_0.conda#2c80dc38fface310c9bd81b17037fee5 https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.3-h7f98852_0.tar.bz2#be93aabceefa2fac576e971aef407908 https://conda.anaconda.org/conda-forge/linux-64/xorg-makedepend-1.0.8-h59595ed_0.conda#eb9b80b3efdb29ad359dc0438e6755fa @@ -122,7 +122,7 @@ https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.0.9-h166bdaf_9.co https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.0.9-h166bdaf_9.conda#1f0a03af852a9659ed2bf08f2f1704fd https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20191231-he28a2e2_2.tar.bz2#4d331e44109e3f0e19b4cb8f9b82f3e1 https://conda.anaconda.org/conda-forge/linux-64/libevent-2.1.12-hf998b51_1.conda#a1cfcc585f0c42bf8d5546bb1dfb668d -https://conda.anaconda.org/conda-forge/linux-64/libllvm14-14.0.6-hcd5def8_3.conda#5c159aa79cab06c55aabcecdd9117f31 +https://conda.anaconda.org/conda-forge/linux-64/libllvm14-14.0.6-hcd5def8_4.conda#73301c133ded2bf71906aa2104edae8b https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.52.0-h61bc06f_0.conda#613955a50485812985c059e7b269f42e https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.39-h753d276_0.conda#e1c890aebdebbfbf87e2c917187b4416 https://conda.anaconda.org/conda-forge/linux-64/libprotobuf-4.23.3-hd1fb520_0.conda#c8da7f04073ed0fabcb60885a4c1a722 @@ -130,8 +130,8 @@ https://conda.anaconda.org/conda-forge/linux-64/librttopo-1.1.0-h0d5128d_13.cond https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.42.0-h2797004_0.conda#fdaae20a1cf7cd62130a0973190a31b7 https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.0-h0841786_0.conda#1f5a58e686b13bcfde88b93f547d23fe https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.15-h0b41bf4_0.conda#33277193f5b92bad9fdd230eb700929c -https://conda.anaconda.org/conda-forge/linux-64/libxgboost-1.7.4-cuda112h1eddcb4_2.conda#37137a5e7d819fc19c52b0087e9be5db -https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.11.4-h0d562d8_0.conda#e46fad17d5fb57316b956f88dca765e4 +https://conda.anaconda.org/conda-forge/linux-64/libxgboost-1.7.6-cuda112h7a395e5_0.conda#8f5e1a6eb68812ed72cb7992f1db537d +https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.11.5-h0d562d8_0.conda#558ab736404275d7df61c473c1af35aa https://conda.anaconda.org/conda-forge/linux-64/libzip-1.9.2-hc929e4a_1.tar.bz2#5b122b50e738c4be5c3f2899f010d7cf https://conda.anaconda.org/conda-forge/linux-64/mpfr-4.2.0-hb012696_0.conda#14d87bdff2cbd3b1179a29fb316ed743 https://conda.anaconda.org/conda-forge/linux-64/openblas-ilp64-0.3.23-pthreads_h3d04fff_0.conda#9787e8492f0a51a6b0498dc86f3864f9 @@ -142,7 +142,7 @@ https://conda.anaconda.org/conda-forge/linux-64/s2n-1.3.46-h06160fa_0.conda#413d https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.12-h27826a3_0.tar.bz2#5b8c42eb62e9fc961af70bdd6a26e168 https://conda.anaconda.org/conda-forge/linux-64/ucx-1.14.1-h4a2ce2d_2.conda#9ad153019bdfd939b235825eddea53bc https://conda.anaconda.org/conda-forge/linux-64/xorg-fixesproto-5.0-h7f98852_1002.tar.bz2#65ad6e1eb4aed2b0611855aff05e04f6 -https://conda.anaconda.org/conda-forge/linux-64/xorg-libsm-1.2.3-hd9c2040_1000.tar.bz2#9e856f78d5c80d5a78f61e72d1d473a3 +https://conda.anaconda.org/conda-forge/linux-64/xorg-libsm-1.2.4-h7391055_0.conda#93ee23f12bc2e684548181256edd2cf6 https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.4-h9c3ff4c_1.tar.bz2#21743a8d2ea0c8cfbbf8fe489b0347df https://conda.anaconda.org/conda-forge/linux-64/zlib-1.2.13-hd590300_5.conda#68c34ec6149623be41a1933ab996a209 https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.2-hfc55251_7.conda#32ae18eb2a687912fc9e92a501c0a11b @@ -163,7 +163,7 @@ https://conda.anaconda.org/conda-forge/linux-64/libgit2-1.5.1-h1f77430_0.conda#1 https://conda.anaconda.org/conda-forge/linux-64/libglib-2.76.4-hebfc3b9_0.conda#c6f951789c888f7bbd2dd6858eab69de https://conda.anaconda.org/conda-forge/linux-64/libglu-9.0.0-hac7e632_1002.conda#4c4dce87e96b321308f81ba2c10d2897 https://conda.anaconda.org/conda-forge/linux-64/libgrpc-1.56.2-h3905398_0.conda#a87e780f3d9cc7cf432e47ced83a67ce -https://conda.anaconda.org/conda-forge/linux-64/libhwloc-2.9.1-nocuda_h7313eea_6.conda#cd72a08ef4e84dea4c67edde33eb3191 +https://conda.anaconda.org/conda-forge/linux-64/libhwloc-2.9.2-nocuda_h7313eea_1008.conda#3b4cad0666b5a8ec5eaf2de0ef41d6c9 https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-17_linux64_openblas.conda#a2103882c46492e26500fcb56c03de8b https://conda.anaconda.org/conda-forge/linux-64/libthrift-0.18.1-h8fd135c_2.conda#bbf65f7688512872f063810623b755dc https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.5.1-h8b53f26_0.conda#8ad377fb60abab446a9f02c62b3c2190 @@ -250,7 +250,7 @@ https://conda.anaconda.org/conda-forge/linux-64/numpy-1.24.4-py311h64a7726_0.con https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.0-hfec8fc6_2.conda#5ce6a42505c6e9e6151c54c3ec8d68ea https://conda.anaconda.org/conda-forge/noarch/packaging-23.1-pyhd8ed1ab_0.conda#91cda59e66e1e4afe9476f8ef98f5c30 https://conda.anaconda.org/conda-forge/noarch/pandocfilters-1.5.0-pyhd8ed1ab_0.tar.bz2#457c2c8c08e54905d6954e79cb5b5db9 -https://conda.anaconda.org/conda-forge/noarch/pathspec-0.11.1-pyhd8ed1ab_0.conda#dbb80d1e8dc2dba5c8b106dc0768ad45 +https://conda.anaconda.org/conda-forge/noarch/pathspec-0.11.2-pyhd8ed1ab_0.conda#e41debb259e68490e3ab81e46b639ab6 https://conda.anaconda.org/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_0.tar.bz2#89e3c7cdde7d3aaa2aee933b604dd07f https://conda.anaconda.org/conda-forge/noarch/pluggy-1.2.0-pyhd8ed1ab_0.conda#7263924c642d22e311d9e59b839f1b33 https://conda.anaconda.org/conda-forge/linux-64/psutil-5.9.5-py311h2582759_0.conda#a90f8e278c1cd7064b2713e6b7db87e6 @@ -258,7 +258,7 @@ https://conda.anaconda.org/conda-forge/noarch/py-1.11.0-pyh6c4a22f_0.tar.bz2#b46 https://conda.anaconda.org/conda-forge/noarch/pycodestyle-2.9.1-pyhd8ed1ab_0.tar.bz2#0191dd7efe1a94262812770183b68892 https://conda.anaconda.org/conda-forge/noarch/pycparser-2.21-pyhd8ed1ab_0.tar.bz2#076becd9e05608f8dc72757d5f3a91ff https://conda.anaconda.org/conda-forge/noarch/pyflakes-2.5.0-pyhd8ed1ab_0.tar.bz2#1b3bef4313288ae8d35b1dfba4cd84a3 -https://conda.anaconda.org/conda-forge/noarch/pygments-2.15.1-pyhd8ed1ab_0.conda#d316679235612869eba305aa7d41d9bf +https://conda.anaconda.org/conda-forge/noarch/pygments-2.16.1-pyhd8ed1ab_0.conda#40e5cb18165466773619e5c963f00a7b https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.0.9-pyhd8ed1ab_0.tar.bz2#e8fbc1b54b25f4b08281467bc13b70cc https://conda.anaconda.org/conda-forge/noarch/pyshp-2.3.1-pyhd8ed1ab_0.tar.bz2#92a889dc236a5197612bc85bee6d7174 https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2#2a7de29fb590ca14b5243c4c812c8025 @@ -267,7 +267,7 @@ https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2023.3-pyhd8ed1ab_0. https://conda.anaconda.org/conda-forge/linux-64/python-xxhash-3.2.0-py311h2582759_0.conda#dfcc3e6e30d6ec2b2bb416fcd8ff4dc1 https://conda.anaconda.org/conda-forge/noarch/pytz-2023.3-pyhd8ed1ab_0.conda#d3076b483092a435832603243567bc31 https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0-py311hd4cff14_5.tar.bz2#da8769492e423103c59f469f4f17f8d9 -https://conda.anaconda.org/conda-forge/linux-64/pyzmq-25.1.0-py311h75c88c4_0.conda#db94a7a9e865fbfde8c023b6e8958bb2 +https://conda.anaconda.org/conda-forge/linux-64/pyzmq-25.1.1-py311h75c88c4_0.conda#af6d43afe0d179ac83b7e0c16b2caaad https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.9.2-py311h46250e7_0.conda#bcf66b5abaec47198b42cdd0bb968540 https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.7-py311h2582759_1.conda#5e997292429a22ad50c11af0a2cb0f08 https://conda.anaconda.org/conda-forge/noarch/semver-3.0.1-pyhd8ed1ab_0.conda#ed90854ae56fb6edae1f13b4663b21b0 @@ -279,37 +279,32 @@ https://conda.anaconda.org/conda-forge/noarch/smmap-3.0.5-pyh44b312d_0.tar.bz2#3 https://conda.anaconda.org/conda-forge/noarch/snowballstemmer-2.2.0-pyhd8ed1ab_0.tar.bz2#4d22a9315e78c6827f806065957d566e https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_0.tar.bz2#6d6552722448103793743dabfbda532d https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.3.2.post1-pyhd8ed1ab_0.tar.bz2#146f4541d643d48fc8a75cacf69f03ae -https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-applehelp-1.0.4-pyhd8ed1ab_0.conda#5a31a7d564f551d0e6dff52fd8cb5b16 -https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-devhelp-1.0.2-py_0.tar.bz2#68e01cac9d38d0e717cd5c87bc3d2cc9 -https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-htmlhelp-2.0.1-pyhd8ed1ab_0.conda#6c8c4d6eb2325e59290ac6dbbeacd5f0 -https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-jsmath-1.0.1-py_0.tar.bz2#67cd9d9c0382d37479b4d306c369a2d4 -https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-qthelp-1.0.3-py_0.tar.bz2#d01180388e6d1838c3e1ad029590aa7a -https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-serializinghtml-1.1.5-pyhd8ed1ab_2.tar.bz2#9ff55a0901cf952f05c654394de76bf7 +https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-jsmath-1.0.1-pyhd8ed1ab_0.conda#da1d979339e2714c30a8e806a33ec087 https://conda.anaconda.org/conda-forge/noarch/sqlparse-0.4.4-pyhd8ed1ab_0.conda#2e2f31b3b1c866c29636377e14f8c4c6 -https://conda.anaconda.org/conda-forge/linux-64/tbb-2021.9.0-hf52228f_0.conda#f495e42d3d2020b025705625edf35490 +https://conda.anaconda.org/conda-forge/linux-64/tbb-2021.10.0-h00ab1b0_0.conda#9c82b1b389e46b64ec685ec487043e70 https://conda.anaconda.org/conda-forge/noarch/tblib-1.7.0-pyhd8ed1ab_0.tar.bz2#3d4afc31302aa7be471feb6be048ed76 https://conda.anaconda.org/conda-forge/noarch/tenacity-8.2.2-pyhd8ed1ab_0.conda#7b39e842b52966a99e229739cd4dc36e https://conda.anaconda.org/conda-forge/noarch/termcolor-2.3.0-pyhd8ed1ab_0.conda#440d508f025b1692168caaf436504af3 https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.2.0-pyha21a80b_0.conda#978d03388b62173b8e6f79162cf52b86 https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_0.tar.bz2#f832c45a477c78bebd107098db465095 https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2#5844808ffab9ebdb694585b50ba02a96 -https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.11.8-pyha770c72_0.conda#75838e8556166263a82038b51d01d5f1 +https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.12.1-pyha770c72_0.conda#62f5b331c53d73e2f6c4c130b53518a0 https://conda.anaconda.org/conda-forge/noarch/toolz-0.12.0-pyhd8ed1ab_0.tar.bz2#92facfec94bc02d6ccf42e7173831a36 https://conda.anaconda.org/conda-forge/linux-64/tornado-6.3.2-py311h459d7ec_0.conda#12b1c374ee90a1aa11ea921858394dc8 https://conda.anaconda.org/conda-forge/noarch/traitlets-5.9.0-pyhd8ed1ab_0.conda#d0b4f5c87cd35ac3fb3d47b223263a64 -https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2023.7.6-pyhd8ed1ab_0.conda#c9918f6a3973e28a792e747289734cd3 +https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2023.8.7-pyhd8ed1ab_0.conda#347293fe36843c704818dcec8364409a https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.7.1-pyha770c72_0.conda#c39d6a09fe819de4951c2642629d9115 https://conda.anaconda.org/conda-forge/linux-64/ujson-5.7.0-py311hcafe171_0.conda#ec3960b6d13bb60aad9c67f42a801720 https://conda.anaconda.org/conda-forge/noarch/untokenize-0.1.1-py_0.tar.bz2#1447ead40f2a01733a9c8dfc32988375 https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-py_1.tar.bz2#3563be4c5611a44210d9ba0c16113136 https://conda.anaconda.org/conda-forge/noarch/webob-1.8.7-pyhd8ed1ab_0.tar.bz2#a8192f3585f341ea66c60c189580ac67 -https://conda.anaconda.org/conda-forge/noarch/wheel-0.41.0-pyhd8ed1ab_0.conda#66beb36a1fa7e0dc9d9bf843a80eb82c +https://conda.anaconda.org/conda-forge/noarch/wheel-0.41.1-pyhd8ed1ab_0.conda#8f467ba2db2b5470d297953d9c1f9c7d https://conda.anaconda.org/conda-forge/linux-64/wrapt-1.15.0-py311h2582759_0.conda#15565d8602a78c6a994e4d9fcb391920 https://conda.anaconda.org/conda-forge/noarch/xlsxwriter-3.1.2-pyhd8ed1ab_0.conda#e0593431fd5e9c12824b9bfa989c9ed0 https://conda.anaconda.org/conda-forge/linux-64/xorg-libxext-1.3.4-h0b41bf4_2.conda#82b6df12252e6f32402b96dacc656fec https://conda.anaconda.org/conda-forge/linux-64/xorg-libxfixes-5.0.3-h7f98852_1004.tar.bz2#e9a21aa4d5e3e5f1aed71e8cefd46b6a https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrender-0.9.11-hd590300_0.conda#ed67c36f215b310412b2af935bf3e530 -https://conda.anaconda.org/conda-forge/linux-64/xorg-libxt-1.3.0-hd590300_0.conda#ab2044e8d87dda9f74652e8e084a5569 +https://conda.anaconda.org/conda-forge/linux-64/xorg-libxt-1.3.0-hd590300_1.conda#ae92aab42726eb29d16488924f7312cb https://conda.anaconda.org/conda-forge/noarch/xyzservices-2023.7.0-pyhd8ed1ab_0.conda#aacae3c0eaba0204dc6c5497c93c7992 https://conda.anaconda.org/conda-forge/noarch/zict-3.0.0-pyhd8ed1ab_0.conda#cf30c2c15b82aacb07f9c09e28ff2275 https://conda.anaconda.org/conda-forge/noarch/zipp-3.16.2-pyhd8ed1ab_0.conda#2da0451b54c4563c32490cb1b7cf68a1 @@ -339,16 +334,16 @@ https://conda.anaconda.org/conda-forge/noarch/docformatter-1.7.5-pyhd8ed1ab_0.co https://conda.anaconda.org/conda-forge/noarch/docrep-0.3.2-pyh44b312d_0.tar.bz2#235523955bc1bfb019d7ec8a2bb58f9a https://conda.anaconda.org/conda-forge/noarch/eofs-1.4.0-py_0.tar.bz2#6e166cd37cfeadefcfca1ffe00f222bb https://conda.anaconda.org/conda-forge/noarch/fire-0.5.0-pyhd8ed1ab_0.conda#9fd22aae8d2f319e80f68b295ab91d64 -https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.41.1-py311h459d7ec_0.conda#343fff1650d07ab6956dbb35a124f89d +https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.42.0-py311h459d7ec_0.conda#8c1ac2c00995248898220c4c1a9d81ab https://conda.anaconda.org/conda-forge/noarch/geopy-2.3.0-pyhd8ed1ab_0.tar.bz2#529faeecd6eee3a3b782566ddf05ce92 https://conda.anaconda.org/conda-forge/noarch/gitdb-4.0.10-pyhd8ed1ab_0.conda#3706d2f3d7cb5dae600c833345a76132 https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.0-nompi_hb72d44e_103.conda#975973a4350ab45ff1981fe535a12af5 https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-6.8.0-pyha770c72_0.conda#4e9f59a060c3be52bc4ddc46ee9b6946 -https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.0.0-pyhd8ed1ab_1.conda#a08b6be5bf18b9d2a927d3457750f82e +https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.0.1-pyhd8ed1ab_0.conda#d978c61aa5fc2c69380d53ad56b5ae86 https://conda.anaconda.org/conda-forge/noarch/isodate-0.6.1-pyhd8ed1ab_0.tar.bz2#4a62c93c1b5c0b920508ae3fd285eaf5 https://conda.anaconda.org/conda-forge/noarch/isort-5.12.0-pyhd8ed1ab_1.conda#07ed3421bad60867234c7a9282ea39d4 https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.2-pyhd8ed1ab_1.tar.bz2#c8490ed5c70966d232fdd389d0dbed37 -https://conda.anaconda.org/conda-forge/noarch/joblib-1.3.0-pyhd8ed1ab_1.conda#fb4caf6da228ccc487350eade569abae +https://conda.anaconda.org/conda-forge/noarch/joblib-1.3.2-pyhd8ed1ab_0.conda#4da50d410f553db77e62ab62ffaa1abc https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.2.2-pyhd8ed1ab_0.tar.bz2#243f63592c8e449f40cd42eb5cf32f40 https://conda.anaconda.org/conda-forge/noarch/latexcodec-2.0.1-pyh9f0ad1d_0.tar.bz2#8d67904973263afd2985ba56aa2d6bb4 https://conda.anaconda.org/conda-forge/linux-64/libgd-2.3.3-hfa28ad5_6.conda#ef06bee47510a7f5db3c2297a51d6ce2 @@ -370,9 +365,9 @@ https://conda.anaconda.org/conda-forge/noarch/pydocstyle-6.3.0-pyhd8ed1ab_0.cond https://conda.anaconda.org/conda-forge/noarch/pyproject_hooks-1.0.0-pyhd8ed1ab_0.conda#21de50391d584eb7f4441b9de1ad773f https://conda.anaconda.org/conda-forge/noarch/pytest-7.4.0-pyhd8ed1ab_0.conda#3cfe9b9e958e7238a386933c75d190db https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.8.2-pyhd8ed1ab_0.tar.bz2#dd999d1cc9f79e67dbb855c8924c7984 -https://conda.anaconda.org/conda-forge/noarch/python-utils-3.7.0-pyhd8ed1ab_0.conda#e1a5b65e1bd22107473475ded86a6141 +https://conda.anaconda.org/conda-forge/noarch/python-utils-3.7.0-pyhd8ed1ab_1.conda#d3e9c0f7bf300ddc51a363a8183b3abd https://conda.anaconda.org/conda-forge/linux-64/pywavelets-1.4.1-py311hcb2cf0a_0.conda#272ca0c28df344037ba2c4982d4e4791 -https://conda.anaconda.org/conda-forge/noarch/referencing-0.30.0-pyhd8ed1ab_0.conda#13bf095e3ecd18999d65b4d3ac5b15d5 +https://conda.anaconda.org/conda-forge/noarch/referencing-0.30.2-pyhd8ed1ab_0.conda#a33161b983172ba6ef69d5fc850650cd https://conda.anaconda.org/conda-forge/noarch/retrying-1.3.3-py_2.tar.bz2#a11f356d6f93b74b4a84e9501afd48b4 https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.17.32-py311h459d7ec_0.conda#628868dc17f9bd39a2eb77846e35980c https://conda.anaconda.org/conda-forge/noarch/seawater-3.3.4-py_1.tar.bz2#a9e101e1601faf5e5a119ab2bd7617a4 @@ -380,7 +375,7 @@ https://conda.anaconda.org/conda-forge/linux-64/shapely-2.0.1-py311h54d622a_1.co https://conda.anaconda.org/conda-forge/noarch/snuggs-1.4.7-py_0.tar.bz2#cb83a3d6ecf73f50117635192414426a https://conda.anaconda.org/conda-forge/linux-64/suitesparse-5.10.1-h9e50725_1.tar.bz2#a3a685b5f9aeb890ed874502fe56accf https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.2.1-pyhd8ed1ab_0.tar.bz2#7234c9eefff659501cd2fe0d2ede4d48 -https://conda.anaconda.org/conda-forge/noarch/tqdm-4.65.0-pyhd8ed1ab_1.conda#ed792aff3acb977d09c7013358097f83 +https://conda.anaconda.org/conda-forge/noarch/tqdm-4.66.1-pyhd8ed1ab_0.conda#03c97908b976498dcae97eb4e4f3149c https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.7.1-hd8ed1ab_0.conda#f96688577f1faa58096d06a45136afa2 https://conda.anaconda.org/conda-forge/noarch/url-normalize-1.4.3-pyhd8ed1ab_0.tar.bz2#7c4076e494f0efe76705154ac9302ba6 https://conda.anaconda.org/conda-forge/noarch/urllib3-2.0.4-pyhd8ed1ab_0.conda#18badd8fa3648d1beb1fcc7f2e0f756e @@ -390,12 +385,11 @@ https://conda.anaconda.org/conda-forge/linux-64/xorg-libxmu-1.1.3-h7f98852_0.tar https://conda.anaconda.org/conda-forge/linux-64/xorg-libxpm-3.5.16-hd590300_0.conda#7a2672267d49208afe2df6cbef8a6a79 https://conda.anaconda.org/conda-forge/noarch/yamale-4.0.4-pyh6c4a22f_0.tar.bz2#cc9f59f147740d88679bf1bd94dbe588 https://conda.anaconda.org/conda-forge/noarch/yamllint-1.32.0-pyhd8ed1ab_0.conda#6d2425548b0293a225ca4febd80feaa3 -https://conda.anaconda.org/conda-forge/noarch/yapf-0.33.0-pyhd8ed1ab_1.conda#ea4867f364b3f7f48c67643028c7f4c6 https://conda.anaconda.org/conda-forge/linux-64/yarl-1.9.2-py311h459d7ec_0.conda#4d738187d20e0a3be66973860f134e0a https://conda.anaconda.org/conda-forge/noarch/async-timeout-4.0.2-pyhd8ed1ab_0.tar.bz2#25e79f9a1133556671becbd65a170c78 https://conda.anaconda.org/conda-forge/linux-64/aws-c-s3-0.3.13-heb0bb06_2.conda#c0866da05d5e7bb3a3f6b68bcbf7537b https://conda.anaconda.org/conda-forge/linux-64/cf-units-3.2.0-py311h1f0f07a_0.conda#43a71a823583d75308eaf3a06c8f150b -https://conda.anaconda.org/conda-forge/linux-64/cryptography-41.0.2-py311h63ff55d_0.conda#90e9e96dd807c2613a163c197192da6c +https://conda.anaconda.org/conda-forge/linux-64/cryptography-41.0.3-py311h63ff55d_0.conda#cc8ad641cab65dfe59caddbc23a1aeca https://conda.anaconda.org/conda-forge/noarch/django-4.2.3-pyhd8ed1ab_0.conda#00a369ccfec9deaa325eabd749bfae28 https://conda.anaconda.org/conda-forge/noarch/flake8-5.0.4-pyhd8ed1ab_0.tar.bz2#8079ea7dec0a917dd0cb6c257f7ea9ea https://conda.anaconda.org/conda-forge/linux-64/freeglut-3.2.2-hac7e632_2.conda#6e553df297f6e64668efb54302e0f139 @@ -405,7 +399,7 @@ https://conda.anaconda.org/conda-forge/linux-64/git-2.41.0-pl5321h86e50cf_0.cond https://conda.anaconda.org/conda-forge/noarch/gitpython-3.1.32-pyhd8ed1ab_0.conda#5809a12901d57388444c3293c975d0bb https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-7.3.0-hdb3a94d_0.conda#765bc76c0dfaf24ff9d8a2935b2510df https://conda.anaconda.org/conda-forge/linux-64/hdfeos5-5.1.16-h8b5b2df_13.conda#29a96d50cb53638a5b4806b5ca6e4b1d -https://conda.anaconda.org/conda-forge/linux-64/imagecodecs-2023.7.10-py311h25e0658_0.conda#a08abd74a3a9640fa5cfe2317544ea08 +https://conda.anaconda.org/conda-forge/linux-64/imagecodecs-2023.7.10-py311h67b54e4_2.conda#ac734963735ededab90c6991d1d4edff https://conda.anaconda.org/conda-forge/noarch/imageio-2.31.1-pyh24c5eb1_0.conda#1051cc0376612ba101d4f59e954a1ff4 https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-6.8.0-hd8ed1ab_0.conda#b279b07ce18058034e5b3606ba103a8b https://conda.anaconda.org/conda-forge/noarch/jsonschema-specifications-2023.7.1-pyhd8ed1ab_0.conda#7c27ea1bdbe520bb830dcadd59f55cbf @@ -414,7 +408,7 @@ https://conda.anaconda.org/conda-forge/linux-64/libnetcdf-4.9.2-nompi_h0f3d0bb_1 https://conda.anaconda.org/conda-forge/linux-64/libspatialite-5.0.1-hca56755_27.conda#918a735059cab21b96fc13a8d04fbcd8 https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.7.2-py311h54ef318_0.conda#2631a9e423855fb586c05f8a5ee8b177 https://conda.anaconda.org/conda-forge/linux-64/pandas-2.0.3-py311h320fe9a_1.conda#5f92f46bd33917832a99d1660b4075ac -https://conda.anaconda.org/conda-forge/noarch/platformdirs-3.9.1-pyhd8ed1ab_0.conda#044e7a1e0ad42c4e67110bd078150a63 +https://conda.anaconda.org/conda-forge/noarch/platformdirs-3.10.0-pyhd8ed1ab_0.conda#0809187ef9b89a3d94a5c24d13936236 https://conda.anaconda.org/conda-forge/linux-64/poppler-23.05.0-hd18248d_1.conda#09e0de1aa7330fe697eed76eaeef666d https://conda.anaconda.org/conda-forge/noarch/progressbar2-4.2.0-pyhd8ed1ab_0.tar.bz2#d883564cf1e9ba190f6b285036c5f949 https://conda.anaconda.org/conda-forge/noarch/pybtex-0.24.0-pyhd8ed1ab_2.tar.bz2#2099b86a7399c44c0c61cdb6de6915ba @@ -425,7 +419,7 @@ https://conda.anaconda.org/conda-forge/noarch/pytest-metadata-3.0.0-pyhd8ed1ab_1 https://conda.anaconda.org/conda-forge/noarch/pytest-mock-3.11.1-pyhd8ed1ab_0.conda#fcd2531bc3e492657aeb042349aeaf8a https://conda.anaconda.org/conda-forge/noarch/pytest-xdist-3.3.1-pyhd8ed1ab_0.conda#816073bb54ef59f33f0f26c14f88311b https://conda.anaconda.org/conda-forge/noarch/python-build-0.10.0-pyhd8ed1ab_1.conda#0ab47ce574f6a8bcb9f2076436e7fedb -https://conda.anaconda.org/conda-forge/noarch/rdflib-6.3.2-pyhd8ed1ab_0.conda#ef37f754e65328229ecf4488b5909b8d +https://conda.anaconda.org/conda-forge/noarch/rdflib-7.0.0-pyhd8ed1ab_0.conda#44d14ef95495b3d4438f28998e0296a9 https://conda.anaconda.org/conda-forge/noarch/requests-2.31.0-pyhd8ed1ab_0.conda#a30144e4156cdbb236f99ebb49828f8b https://conda.anaconda.org/conda-forge/noarch/requirements-detector-1.2.2-pyhd8ed1ab_0.conda#6626918380d99292df110f3c91b6e5ec https://conda.anaconda.org/conda-forge/linux-64/tiledb-2.13.2-hd532e3d_0.conda#6d97164f19dbd27575ef1899b02dc1e0 @@ -435,14 +429,15 @@ https://conda.anaconda.org/conda-forge/noarch/zarr-2.16.0-pyhd8ed1ab_0.conda#40a https://conda.anaconda.org/conda-forge/linux-64/aiohttp-3.8.5-py311h459d7ec_0.conda#82a817c46ac339c0166f043f56492f33 https://conda.anaconda.org/conda-forge/linux-64/aws-crt-cpp-0.20.3-he9c0e7f_4.conda#7695770e1d722ce9029a2ea30c060a3d https://conda.anaconda.org/conda-forge/noarch/bokeh-3.2.1-pyhd8ed1ab_0.conda#1f6a50747c4e69d181f3a2ca739d1fe3 +https://conda.anaconda.org/conda-forge/linux-64/cartopy-0.22.0-py311h320fe9a_0.conda#1271b2375735e2aaa6d6770dbe2ad087 https://conda.anaconda.org/conda-forge/noarch/cdsapi-0.6.1-pyhd8ed1ab_0.conda#454ed214cec806066097ae245a409171 https://conda.anaconda.org/conda-forge/noarch/chart-studio-1.1.0-pyh9f0ad1d_0.tar.bz2#acd9a12a35e5a0221bdf39eb6e4811dc https://conda.anaconda.org/conda-forge/noarch/cmocean-3.0.3-pyhd8ed1ab_0.conda#eec7df83d725696d32c7bf99aff21d82 -https://conda.anaconda.org/conda-forge/noarch/dask-core-2023.7.1-pyhd8ed1ab_0.conda#c680b05515f9692a3ba253dfa7d85465 +https://conda.anaconda.org/conda-forge/noarch/dask-core-2023.8.0-pyhd8ed1ab_0.conda#160a92928fc4a0ca40a64b586a2cf671 https://conda.anaconda.org/conda-forge/noarch/flake8-polyfill-1.0.2-py_0.tar.bz2#a53db35e3d07f0af2eccd59c2a00bffe https://conda.anaconda.org/conda-forge/noarch/identify-2.5.26-pyhd8ed1ab_0.conda#1ca86f154e13f4aa20b48e20d6bbf924 https://conda.anaconda.org/conda-forge/linux-64/jasper-4.0.0-h32699f2_1.conda#fdde5424ecef5f7ad310b4242229291c -https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.18.4-pyhd8ed1ab_0.conda#7356151a32ebd9a20158d2f26d224bfa +https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.19.0-pyhd8ed1ab_0.conda#989d1df249e1fce06fa1435548eef68a https://conda.anaconda.org/conda-forge/linux-64/julia-1.8.5-h783901f_0.conda#98c05ba7ca9c15d22216f730499e167a https://conda.anaconda.org/conda-forge/linux-64/jupyter_core-5.3.1-py311h38be061_0.conda#0cf8259b01ede82c76007996f73f89ed https://conda.anaconda.org/conda-forge/linux-64/libgdal-3.7.0-h5418a03_2.conda#30ddbe080c260fb36da8509e3fd6c45f @@ -451,45 +446,44 @@ https://conda.anaconda.org/conda-forge/linux-64/netcdf-fortran-4.6.1-nompi_h4f37 https://conda.anaconda.org/conda-forge/linux-64/netcdf4-1.6.4-nompi_py311h4d7c953_100.conda#c03492d0342e512e58aa2d6c5fdaaa91 https://conda.anaconda.org/conda-forge/linux-64/pango-1.50.14-heaa33ce_1.conda#cde553e0e32389e26595db4eacf859eb https://conda.anaconda.org/conda-forge/noarch/pooch-1.7.0-pyha770c72_3.conda#5936894aade8240c867d292aa0d980c6 -https://conda.anaconda.org/conda-forge/noarch/pylint-2.17.4-pyhd8ed1ab_0.conda#a9d97fe4617aba393d90ea81576b6b46 +https://conda.anaconda.org/conda-forge/noarch/pylint-2.17.5-pyhd8ed1ab_0.conda#30dc94b05de470e3b579d73d64127656 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-23.2.0-pyhd8ed1ab_1.conda#34f7d568bf59d18e3fef8c405cbece21 https://conda.anaconda.org/conda-forge/noarch/pyroma-4.2-pyhd8ed1ab_0.conda#fe2aca9a5d4cb08105aefc451ef96950 https://conda.anaconda.org/conda-forge/noarch/pytest-html-3.2.0-pyhd8ed1ab_1.tar.bz2#d5c7a941dfbceaab4b172a56d7918eb0 https://conda.anaconda.org/conda-forge/noarch/requests-cache-1.1.0-pyhd8ed1ab_0.conda#57b89064c125bb9d0e533e018c3eb17a -https://conda.anaconda.org/conda-forge/noarch/sphinx-7.0.1-pyhd8ed1ab_0.conda#51a8d037b28276b4f68263e890e0f35b https://conda.anaconda.org/conda-forge/linux-64/tempest-remap-2.2.0-h43474b4_0.conda#fd815765a86daf44db1e15c6f6edf5e6 https://conda.anaconda.org/conda-forge/noarch/tifffile-2023.7.18-pyhd8ed1ab_0.conda#34c210cbc9b4c4458d4eba5ee7726fcd -https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.24.1-pyhd8ed1ab_0.conda#428f6c7385636d72191cb4fa0e489503 +https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.24.2-pyhd8ed1ab_0.conda#a218f3be8ab6185a475c8168a86e18ae https://conda.anaconda.org/conda-forge/noarch/xarray-2023.7.0-pyhd8ed1ab_0.conda#2f18700699e1ea19aa1634ed57711677 -https://conda.anaconda.org/conda-forge/noarch/autodocsumm-0.2.6-pyhd8ed1ab_0.tar.bz2#4409dd7e06a62c3b2aa9e96782c49c6d +https://conda.anaconda.org/conda-forge/noarch/yapf-0.40.1-pyhd8ed1ab_0.conda#f269942e802d5e148632143d4c37acc9 https://conda.anaconda.org/conda-forge/linux-64/aws-sdk-cpp-1.10.57-hbc2ea52_17.conda#452c7b08c21eea2ef01f4fd364d6affc https://conda.anaconda.org/conda-forge/noarch/cf_xarray-0.8.4-pyhd8ed1ab_0.conda#18472f8f9452f962fe0bcb1b8134b494 -https://conda.anaconda.org/conda-forge/noarch/distributed-2023.7.1-pyhd8ed1ab_0.conda#c97773468da04fa2d57ebc9dde59fbe3 +https://conda.anaconda.org/conda-forge/noarch/distributed-2023.8.0-pyhd8ed1ab_0.conda#974b4a00b0e100e341cd9f179b05f574 https://conda.anaconda.org/conda-forge/linux-64/eccodes-2.30.2-h1f30a5c_0.conda#21ee8444a7f629924ea8cfe52a622cbd https://conda.anaconda.org/conda-forge/linux-64/esmf-8.4.2-nompi_h20110ff_0.conda#11f5169aeff54ad7277476be8ba19ff7 https://conda.anaconda.org/conda-forge/linux-64/gdal-3.7.0-py311h281082f_2.conda#fde4fad3c517cc80f32995696f45198d https://conda.anaconda.org/conda-forge/linux-64/gtk2-2.24.33-h90689f9_2.tar.bz2#957a0255ab58aaf394a91725d73ab422 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.3.0-pyhd8ed1ab_0.conda#1d018ee4ab13217e2544f795eb0a6798 -https://conda.anaconda.org/conda-forge/linux-64/librsvg-2.56.1-h98fae49_0.conda#4b827ee65a747c4a24f2a6ac7f3ff093 +https://conda.anaconda.org/conda-forge/linux-64/librsvg-2.56.3-h98fae49_0.conda#620e754f4344f4c27259ff460a2b9c50 +https://conda.anaconda.org/conda-forge/noarch/mapgenerator-1.0.7-pyhd8ed1ab_0.conda#d18db96ef2a920b0ecefe30282b0aecf https://conda.anaconda.org/conda-forge/noarch/myproxyclient-2.1.0-pyhd8ed1ab_2.tar.bz2#363b0816e411feb0df925d4f224f026a -https://conda.anaconda.org/conda-forge/noarch/nbformat-5.9.1-pyhd8ed1ab_0.conda#3ec35d84fc1775215061517eb4660693 +https://conda.anaconda.org/conda-forge/noarch/nbformat-5.9.2-pyhd8ed1ab_0.conda#61ba076de6530d9301a0053b02f093d2 https://conda.anaconda.org/conda-forge/noarch/pep8-naming-0.10.0-pyh9f0ad1d_0.tar.bz2#b3c5536e4f9f58a4b16adb6f1e11732d https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.3.3-pyha770c72_0.conda#dd64a0e440754ed97610b3e6b502b6b1 https://conda.anaconda.org/conda-forge/linux-64/psyplot-1.4.3-py311h38be061_1.tar.bz2#f0c9a1067c03e8f05e53ef0c5ad5fab3 -https://conda.anaconda.org/conda-forge/noarch/pydata-sphinx-theme-0.13.3-pyhd8ed1ab_0.conda#07aca5f2dea315dcc16680d6891e9056 https://conda.anaconda.org/conda-forge/noarch/pylint-plugin-utils-0.7-pyhd8ed1ab_0.tar.bz2#1657976383aee04dbb3ae3bdf654bb58 https://conda.anaconda.org/conda-forge/linux-64/python-stratify-0.3.0-py311h1f0f07a_0.conda#3a00b1b08d8c01b1a3bfa686b9152df2 https://conda.anaconda.org/conda-forge/linux-64/r-base-4.1.3-hfabd6f2_9.conda#0ab4cf54fbddc0cc9ff260c6f77f8c84 https://conda.anaconda.org/conda-forge/linux-64/rasterio-1.3.8-py311h41e4db2_0.conda#b35deb26af1d7e0d98438c8ac5c6b7b2 https://conda.anaconda.org/conda-forge/linux-64/scipy-1.11.1-py311h64a7726_0.conda#356da36102fc1eeb8a81e6d79e53bc7e -https://conda.anaconda.org/conda-forge/linux-64/cartopy-0.21.1-py311hd88b842_1.conda#f19feb9440890ccb806a367ea9ae0654 https://conda.anaconda.org/conda-forge/noarch/dask-jobqueue-0.8.2-pyhd8ed1ab_0.conda#cc344a296a41369bcb05f7216661cec8 https://conda.anaconda.org/conda-forge/noarch/esgf-pyclient-0.3.1-pyh1a96a4e_2.tar.bz2#64068564a9c2932bf30e9b4ec567927d https://conda.anaconda.org/conda-forge/noarch/esmpy-8.4.2-pyhc1e730c_1.conda#4067029ad6872d49f6d43c05dd1f51a9 https://conda.anaconda.org/conda-forge/linux-64/fiona-1.9.4-py311hbac4ec9_0.conda#1d3445f5f7fa002a1c149c405376f012 https://conda.anaconda.org/conda-forge/linux-64/graphviz-8.1.0-h28d9a01_0.conda#33628e0e3de7afd2c8172f76439894cb -https://conda.anaconda.org/conda-forge/linux-64/libarrow-12.0.1-h657c46f_5_cpu.conda#34918a92fb942394a7e4274a6a78990d -https://conda.anaconda.org/conda-forge/linux-64/magics-4.14.1-hd3d5bb6_0.conda#2b5173bcc90fb9a5d7f1bf1be7028402 +https://conda.anaconda.org/conda-forge/noarch/iris-3.6.1-pyha770c72_0.conda#36d615b339058273520990fc78239116 +https://conda.anaconda.org/conda-forge/linux-64/libarrow-12.0.1-h657c46f_7_cpu.conda#4de6e12428b7018f1f8a1e8dda555243 +https://conda.anaconda.org/conda-forge/linux-64/magics-4.14.2-hd3d5bb6_0.conda#3c571b994b6ce2b4d2c7b98be77a8ebe https://conda.anaconda.org/conda-forge/noarch/nbclient-0.8.0-pyhd8ed1ab_0.conda#e78da91cf428faaf05701ce8cc8f2f9b https://conda.anaconda.org/conda-forge/linux-64/ncl-6.6.2-hf70af60_47.conda#ee27133164cb9f5e74681bdb8839688f https://conda.anaconda.org/conda-forge/linux-64/nco-5.1.6-hd62b316_0.conda#af7780f76ee37325d264327e21a478f5 @@ -567,15 +561,13 @@ https://conda.anaconda.org/conda-forge/linux-64/scikit-learn-1.3.0-py311hc009520 https://conda.anaconda.org/conda-forge/noarch/seaborn-base-0.12.2-pyhd8ed1ab_0.conda#cf88f3a1c11536bc3c10c14ad00ccc42 https://conda.anaconda.org/conda-forge/noarch/sparse-0.14.0-pyhd8ed1ab_0.conda#ee01b310177a0612554b9d20e537fdbe https://conda.anaconda.org/conda-forge/linux-64/cdo-2.2.0-he026af2_4.conda#6c00b0a21b3de8a149eee137e83465d3 -https://conda.anaconda.org/conda-forge/linux-64/imagemagick-7.1.1_14-pl5321hf48ede7_0.conda#5ad1a13e7d4bc4e32c7f9c66680a7bfc -https://conda.anaconda.org/conda-forge/noarch/iris-3.6.1-pyha770c72_0.conda#36d615b339058273520990fc78239116 +https://conda.anaconda.org/conda-forge/linux-64/imagemagick-7.1.1_15-pl5321hf48ede7_0.conda#53c9f7169b61e615d5f41c8d70a72c00 https://conda.anaconda.org/conda-forge/noarch/lime-0.2.0.1-pyhd8ed1ab_1.tar.bz2#789ce01416721a5533fb74aa4361fd13 -https://conda.anaconda.org/conda-forge/noarch/mapgenerator-1.0.7-pyhd8ed1ab_0.conda#d18db96ef2a920b0ecefe30282b0aecf -https://conda.anaconda.org/conda-forge/noarch/nbconvert-core-7.7.2-pyhd8ed1ab_0.conda#0cda9f218d791ed71c639c1e6cc52c92 +https://conda.anaconda.org/conda-forge/noarch/nbconvert-core-7.7.3-pyhd8ed1ab_0.conda#063c1fda5480050b8d989478c97a4c55 https://conda.anaconda.org/conda-forge/noarch/prospector-1.10.2-pyhd8ed1ab_0.conda#2c536985982f7e531df8d640f554008a https://conda.anaconda.org/conda-forge/noarch/psy-maps-1.4.2-pyhd8ed1ab_0.tar.bz2#3ed13103dfd46f71dc870d188bd0b276 -https://conda.anaconda.org/conda-forge/linux-64/py-xgboost-1.7.4-cuda112py311h63ba870_2.conda#ee148e9b5a8bb1842fd936b65d79ef6a -https://conda.anaconda.org/conda-forge/linux-64/pyarrow-12.0.1-py311h39c9aba_5_cpu.conda#a0d6807551f44743f84ab6c87be191c4 +https://conda.anaconda.org/conda-forge/linux-64/py-xgboost-1.7.6-cuda112py311h2344cce_0.conda#262d5d7254fd6e10e63170c4eb8d6ac0 +https://conda.anaconda.org/conda-forge/linux-64/pyarrow-12.0.1-py311h39c9aba_7_cpu.conda#d513ab8d10ec5f3ee45b419c836195ec https://conda.anaconda.org/conda-forge/linux-64/pydot-1.4.2-py311h38be061_3.tar.bz2#64a77de29fde80aef5013ddf5e62a564 https://conda.anaconda.org/conda-forge/linux-64/r-askpass-1.1-r41h06615bd_3.tar.bz2#c8ec8683302ad9a2345cb31ab28e6c6b https://conda.anaconda.org/conda-forge/linux-64/r-bigmemory-4.6.1-r41h7525677_1.tar.bz2#6a956b57b027b49b7a9ca48031a8bbd6 @@ -605,8 +597,8 @@ https://conda.anaconda.org/conda-forge/linux-64/r-xml2-1.3.4-r41h1ad5fc0_1.conda https://conda.anaconda.org/conda-forge/linux-64/r-zoo-1.8_12-r41h133d619_0.conda#1d432d2eba171727afd03507faa5e2f6 https://conda.anaconda.org/conda-forge/linux-64/statsmodels-0.14.0-py311h1f0f07a_1.conda#a1daa39fa0bfed4d91a3640c2274034a https://conda.anaconda.org/conda-forge/noarch/xesmf-0.7.1-pyhd8ed1ab_0.conda#3a9cc63d7bcbc8d738a0e92faf8b6c07 -https://conda.anaconda.org/conda-forge/noarch/dask-2023.7.1-pyhd8ed1ab_0.conda#6cf42e7860cf46630fd5faf83386ff5d -https://conda.anaconda.org/conda-forge/noarch/nbconvert-pandoc-7.7.2-pyhd8ed1ab_0.conda#00a7300181018085bab62b6ffa630ac4 +https://conda.anaconda.org/conda-forge/noarch/dask-2023.8.0-pyhd8ed1ab_0.conda#0cd5f8a91edc681f4b87e8a0ce33a591 +https://conda.anaconda.org/conda-forge/noarch/nbconvert-pandoc-7.7.3-pyhd8ed1ab_0.conda#f44109e52a40b8149156f5ddd9c11b26 https://conda.anaconda.org/conda-forge/noarch/prov-2.0.0-pyhd3deb0d_0.tar.bz2#aa9b3ad140f6c0668c646f32e20ccf82 https://conda.anaconda.org/conda-forge/linux-64/psy-reg-1.4.0-py311h38be061_3.conda#6f7871722c07922028043144e8873b37 https://conda.anaconda.org/conda-forge/noarch/python-cdo-1.6.0-pyhd8ed1ab_0.conda#3fd1a0b063c1fbbe4b7bd5a5a7601e84 @@ -628,9 +620,9 @@ https://conda.anaconda.org/conda-forge/linux-64/r-specsverification-0.5_3-r41ha5 https://conda.anaconda.org/conda-forge/linux-64/r-splancs-2.01_43-r41h8da6f51_1.tar.bz2#3a6aad0706541141d10e3b514467a080 https://conda.anaconda.org/conda-forge/linux-64/r-vctrs-0.6.2-r41ha503ecb_0.conda#1f7610a1863648cab254a9f85bd29dcd https://conda.anaconda.org/conda-forge/noarch/seaborn-0.12.2-hd8ed1ab_0.conda#50847a47c07812f88581081c620f5160 -https://conda.anaconda.org/conda-forge/linux-64/xgboost-1.7.4-cuda112py311haec1985_2.conda#67811285755f2380562b3318e049a7b0 +https://conda.anaconda.org/conda-forge/linux-64/xgboost-1.7.6-cuda112py311h2344cce_0.conda#bfa2be4c1df9bf875896b40b1735e6c2 https://conda.anaconda.org/conda-forge/noarch/iris-esmf-regrid-0.7.0-pyhd8ed1ab_0.conda#de82eb8d09362babacafe6b7e27752ac -https://conda.anaconda.org/conda-forge/noarch/nbconvert-7.7.2-pyhd8ed1ab_0.conda#6f119203c5648ed2b0c36e4fa8b6b504 +https://conda.anaconda.org/conda-forge/noarch/nbconvert-7.7.3-pyhd8ed1ab_0.conda#f53d92ecd7d8563b006107f6a33e55c6 https://conda.anaconda.org/conda-forge/noarch/r-cyclocomp-1.1.0-r41hc72bb7e_1005.tar.bz2#800e1da5bf774be48934b8865dd78d33 https://conda.anaconda.org/conda-forge/noarch/r-gridextra-2.3-r41hc72bb7e_1004.tar.bz2#71ebed7e976df735ff3443bb88bd154f https://conda.anaconda.org/conda-forge/noarch/r-httr-1.4.6-r41hc72bb7e_0.conda#53dbb769c96782db54bf2d414fc9b239 @@ -641,7 +633,6 @@ https://conda.anaconda.org/conda-forge/noarch/r-pkgload-1.3.2-r41hc72bb7e_0.tar. https://conda.anaconda.org/conda-forge/linux-64/r-purrr-1.0.1-r41h133d619_0.conda#d7404238cac0da3c97dc08503d116a2f https://conda.anaconda.org/conda-forge/noarch/r-r.cache-0.16.0-r41hc72bb7e_1.tar.bz2#aef451160d655cc630d8038d934dced3 https://conda.anaconda.org/conda-forge/noarch/esmvalcore-2.9.0-pyhd8ed1ab_0.conda#1f80c9bce2737630da4e71332c9d39c1 -https://conda.anaconda.org/conda-forge/noarch/nbsphinx-0.9.2-pyhd8ed1ab_0.conda#d1212b423fdd10d2da59601385561ff7 https://conda.anaconda.org/conda-forge/noarch/r-climprojdiags-0.3.2-r41hc72bb7e_0.conda#9922b863cd10035cbb75e3c2edae64a7 https://conda.anaconda.org/conda-forge/linux-64/r-tibble-3.2.1-r41h133d619_1.conda#3ae9b78fb1d8a44deed24a27cce33ebf https://conda.anaconda.org/conda-forge/noarch/r-ggplot2-3.4.2-r41hc72bb7e_0.conda#c2b04f4ff351d84bf51fd5a77b5c9b6c @@ -656,3 +647,12 @@ https://conda.anaconda.org/conda-forge/linux-64/r-testthat-3.1.8-r41ha503ecb_0.c https://conda.anaconda.org/conda-forge/linux-64/r-geomap-2.5_0-r41h06615bd_1.tar.bz2#dabe8f942d619075cbd13c1481c8b538 https://conda.anaconda.org/conda-forge/noarch/r-lintr-3.0.2-r41hc72bb7e_0.tar.bz2#769c2305486b74fd61d85bfef2296f27 https://conda.anaconda.org/conda-forge/noarch/r-s2dverification-2.10.3-r41hc72bb7e_1.tar.bz2#2253f130c8dab435824d6ddb10a41c73 +https://conda.anaconda.org/conda-forge/noarch/autodocsumm-0.2.6-pyhd8ed1ab_0.tar.bz2#4409dd7e06a62c3b2aa9e96782c49c6d +https://conda.anaconda.org/conda-forge/noarch/nbsphinx-0.9.2-pyhd8ed1ab_0.conda#d1212b423fdd10d2da59601385561ff7 +https://conda.anaconda.org/conda-forge/noarch/pydata-sphinx-theme-0.13.3-pyhd8ed1ab_0.conda#07aca5f2dea315dcc16680d6891e9056 +https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-applehelp-1.0.6-pyhd8ed1ab_0.conda#5bba7b5823474cb3fcd4e4cbf942da61 +https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-devhelp-1.0.4-pyhd8ed1ab_0.conda#73dcd0eb2252cbd1530fd1e6e3cbbb03 +https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-htmlhelp-2.0.3-pyhd8ed1ab_0.conda#fb4d6329a57e20e03d7aecd18c7ca918 +https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-qthelp-1.0.5-pyhd8ed1ab_0.conda#85466265b76473cc1d02420056cbc4e3 +https://conda.anaconda.org/conda-forge/noarch/sphinx-7.1.2-pyhd8ed1ab_0.conda#d02bfa35cd4f2cd624289f64911cae9d +https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-serializinghtml-1.1.7-pyhd8ed1ab_0.conda#01e35beea8aff61cdb445b90a7adf7d4 From fd2bee7de8c9933ef4ed86cc162d87849847ff95 Mon Sep 17 00:00:00 2001 From: Lisa Bock Date: Mon, 14 Aug 2023 16:54:42 +0200 Subject: [PATCH 31/34] Cmorizer for NOAA-CIRES-20CR v3 reanalysis (clt, clwvi, hus, prw, rlut, rlutcs, rsut, rsutcs) (#3137) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Rémi Kazeroni --- doc/sphinx/source/input.rst | 4 +- ...-CIRES-20CR.yml => NOAA-CIRES-20CR-V2.yml} | 4 +- .../data/cmor_config/NOAA-CIRES-20CR-V3.yml | 56 +++++++++++++++++++ esmvaltool/cmorizers/data/datasets.yml | 17 +++++- ...aa_cires_20cr.py => noaa_cires_20cr_v2.py} | 2 +- .../datasets/noaa_cires_20cr_v3.py | 53 ++++++++++++++++++ ...aa_cires_20cr.py => noaa_cires_20cr_v2.py} | 2 +- .../formatters/datasets/noaa_cires_20cr_v3.py | 32 +++++++++++ .../recipes/examples/recipe_check_obs.yml | 25 +++++++-- ...-20cr.bibtex => noaa-cires-20cr-v2.bibtex} | 10 ++-- .../references/noaa-cires-20cr-v3.bibtex | 11 ++++ 11 files changed, 202 insertions(+), 14 deletions(-) rename esmvaltool/cmorizers/data/cmor_config/{NOAA-CIRES-20CR.yml => NOAA-CIRES-20CR-V2.yml} (88%) create mode 100644 esmvaltool/cmorizers/data/cmor_config/NOAA-CIRES-20CR-V3.yml rename esmvaltool/cmorizers/data/downloaders/datasets/{noaa_cires_20cr.py => noaa_cires_20cr_v2.py} (97%) create mode 100644 esmvaltool/cmorizers/data/downloaders/datasets/noaa_cires_20cr_v3.py rename esmvaltool/cmorizers/data/formatters/datasets/{noaa_cires_20cr.py => noaa_cires_20cr_v2.py} (92%) create mode 100644 esmvaltool/cmorizers/data/formatters/datasets/noaa_cires_20cr_v3.py rename esmvaltool/references/{noaa-cires-20cr.bibtex => noaa-cires-20cr-v2.bibtex} (62%) create mode 100644 esmvaltool/references/noaa-cires-20cr-v3.bibtex diff --git a/doc/sphinx/source/input.rst b/doc/sphinx/source/input.rst index 8bd0d5afd0..c453a0569e 100644 --- a/doc/sphinx/source/input.rst +++ b/doc/sphinx/source/input.rst @@ -380,7 +380,9 @@ A list of the datasets for which a CMORizers is available is provided in the fol +------------------------------+------------------------------------------------------------------------------------------------------+------+-----------------+ | NIWA-BS | toz, tozStderr (Amon) | 3 | NCL | +------------------------------+------------------------------------------------------------------------------------------------------+------+-----------------+ -| NOAA-CIRES-20CR | clt, clwvi, hus, prw, rlut, rsut (Amon) | 2 | Python | +| NOAA-CIRES-20CR-V2 | clt, clwvi, hus, prw, rlut, rsut (Amon) | 2 | Python | ++------------------------------+------------------------------------------------------------------------------------------------------+------+-----------------+ +| NOAA-CIRES-20CR-V3 | clt, clwvi, hus, prw, rlut, rlutcs, rsut, rsutcs (Amon) | 2 | Python | +------------------------------+------------------------------------------------------------------------------------------------------+------+-----------------+ | NOAAGlobalTemp | tasa (Amon) | 2 | Python | +------------------------------+------------------------------------------------------------------------------------------------------+------+-----------------+ diff --git a/esmvaltool/cmorizers/data/cmor_config/NOAA-CIRES-20CR.yml b/esmvaltool/cmorizers/data/cmor_config/NOAA-CIRES-20CR-V2.yml similarity index 88% rename from esmvaltool/cmorizers/data/cmor_config/NOAA-CIRES-20CR.yml rename to esmvaltool/cmorizers/data/cmor_config/NOAA-CIRES-20CR-V2.yml index cb3ccb38a8..7591e99257 100644 --- a/esmvaltool/cmorizers/data/cmor_config/NOAA-CIRES-20CR.yml +++ b/esmvaltool/cmorizers/data/cmor_config/NOAA-CIRES-20CR-V2.yml @@ -1,13 +1,13 @@ --- # Global attributes of NetCDF file attributes: - dataset_id: NOAA-CIRES-20CR + dataset_id: NOAA-CIRES-20CR-V2 project_id: OBS6 tier: 2 version: 'v2' modeling_realm: reanaly source: 'https://psl.noaa.gov/data/gridded/data.20thC_ReanV2.html' - reference: 'noaa-cires-20cr' + reference: 'noaa-cires-20cr-v2' comment: | '' diff --git a/esmvaltool/cmorizers/data/cmor_config/NOAA-CIRES-20CR-V3.yml b/esmvaltool/cmorizers/data/cmor_config/NOAA-CIRES-20CR-V3.yml new file mode 100644 index 0000000000..d16d5265e0 --- /dev/null +++ b/esmvaltool/cmorizers/data/cmor_config/NOAA-CIRES-20CR-V3.yml @@ -0,0 +1,56 @@ +--- +# Global attributes of NetCDF file +attributes: + dataset_id: NOAA-CIRES-20CR-V3 + project_id: OBS6 + tier: 2 + version: 'v3' + modeling_realm: reanaly + source: 'https://psl.noaa.gov/data/gridded/data.20thC_ReanV3.html' + reference: 'noaa-cires-20cr-v3' + comment: | + '' + +# Variables to CMORize +variables: + # monthly frequency + clt_month: + short_name: clt + mip: Amon + raw: tcdc + file: 'tcdc.eatm.mon.mean.nc' + clwvi_month: + short_name: clwvi + mip: Amon + raw: cldwtr + file: 'cldwtr.eatm.mon.mean.nc' + prw_month: + short_name: prw + mip: Amon + raw: pr_wtr + file: 'pr_wtr.eatm.mon.mean.nc' + hus_month: + short_name: hus + mip: Amon + raw: shum + file: 'shum.mon.mean.nc' + rlut_month: + short_name: rlut + mip: Amon + raw: ulwrf + file: 'ulwrf.ntat.mon.mean.nc' + rsut_month: + short_name: rsut + mip: Amon + raw: uswrf + file: 'uswrf.ntat.mon.mean.nc' + rlutcs_month: + short_name: rlutcs + mip: Amon + raw: csulf + file: 'csulf.ntat.mon.mean.nc' + rsutcs_month: + short_name: rsutcs + mip: Amon + raw: csusf + file: 'csusf.ntat.mon.mean.nc' diff --git a/esmvaltool/cmorizers/data/datasets.yml b/esmvaltool/cmorizers/data/datasets.yml index 61b56e7f8f..d40de3988c 100644 --- a/esmvaltool/cmorizers/data/datasets.yml +++ b/esmvaltool/cmorizers/data/datasets.yml @@ -985,7 +985,7 @@ datasets: https://nsidc.org/data/NSIDC-0116 Login required for download, and also requires citation only to use - NOAA-CIRES-20CR: + NOAA-CIRES-20CR-V2: tier: 2 source: ftp.cdc.noaa.gov/Projects/20thC_ReanV2/Monthlies/ last_access: 2022-11-17 @@ -998,6 +998,21 @@ datasets: gaussian/monolevel/ulwrf.ntat.mon.mean.nc gaussian/monolevel/uswrf.ntat.mon.mean.nc + NOAA-CIRES-20CR-V3: + tier: 2 + source: ftp.cdc.noaa.gov/Projects/20thC_ReanV3/Monthlies/ + last_access: 2023-03-27 + info: | + Download the following files: + miscSI-MO/cldwtr.eatm.mon.mean.nc + miscSI-MO/pr_wtr.eatm.mon.mean.nc + prsSI-MO/shum.mon.mean.nc + miscMO/tcdc.eatm.mon.mean.nc + ntatFlxSI-MO/ulwrf.ntat.mon.mean.nc + ntatFlxSI-MO/uswrf.ntat.mon.mean.nc + ntatFlxSI-MO/csulf.ntat.mon.mean.nc + ntatFlxSI-MO/csusf.ntat.mon.mean.nc + NOAAGlobalTemp: tier: 2 source: https://www.ncei.noaa.gov/data/noaa-global-surface-temperature/v5/access/ diff --git a/esmvaltool/cmorizers/data/downloaders/datasets/noaa_cires_20cr.py b/esmvaltool/cmorizers/data/downloaders/datasets/noaa_cires_20cr_v2.py similarity index 97% rename from esmvaltool/cmorizers/data/downloaders/datasets/noaa_cires_20cr.py rename to esmvaltool/cmorizers/data/downloaders/datasets/noaa_cires_20cr_v2.py index 836cfe8391..fb2d733f06 100644 --- a/esmvaltool/cmorizers/data/downloaders/datasets/noaa_cires_20cr.py +++ b/esmvaltool/cmorizers/data/downloaders/datasets/noaa_cires_20cr_v2.py @@ -1,4 +1,4 @@ -"""Script to download NOAA-CIRES-20CR.""" +"""Script to download NOAA-CIRES-20CR-V2.""" import logging from esmvaltool.cmorizers.data.downloaders.ftp import FTPDownloader diff --git a/esmvaltool/cmorizers/data/downloaders/datasets/noaa_cires_20cr_v3.py b/esmvaltool/cmorizers/data/downloaders/datasets/noaa_cires_20cr_v3.py new file mode 100644 index 0000000000..67f1a38f33 --- /dev/null +++ b/esmvaltool/cmorizers/data/downloaders/datasets/noaa_cires_20cr_v3.py @@ -0,0 +1,53 @@ +"""Script to download NOAA-CIRES-20CR-V3.""" +import logging + +from esmvaltool.cmorizers.data.downloaders.ftp import FTPDownloader + +logger = logging.getLogger(__name__) + + +def download_dataset(config, dataset, dataset_info, start_date, end_date, + overwrite): + """Download dataset. + + Parameters + ---------- + config : dict + ESMValTool's user configuration + dataset : str + Name of the dataset + dataset_info : dict + Dataset information from the datasets.yml file + start_date : datetime + Start of the interval to download + end_date : datetime + End of the interval to download + overwrite : bool + Overwrite already downloaded files + """ + downloader = FTPDownloader( + config=config, + server='ftp.cdc.noaa.gov', + dataset=dataset, + dataset_info=dataset_info, + overwrite=overwrite, + ) + downloader.connect() + + downloader.set_cwd("Datasets/20thC_ReanV3/Monthlies/") + downloader.download_file("miscSI-MO/cldwtr.eatm.mon.mean.nc", + sub_folder='surface') + downloader.download_file("miscSI-MO/pr_wtr.eatm.mon.mean.nc", + sub_folder='surface') + downloader.download_file("prsSI-MO/shum.mon.mean.nc", + sub_folder='pressure') + downloader.download_file("miscMO/tcdc.eatm.mon.mean.nc", + sub_folder='surface') + downloader.download_file("ntatFlxSI-MO/ulwrf.ntat.mon.mean.nc", + sub_folder='surface') + downloader.download_file("ntatFlxSI-MO/uswrf.ntat.mon.mean.nc", + sub_folder='surface') + downloader.download_file("ntatFlxSI-MO/csulf.ntat.mon.mean.nc", + sub_folder='surface') + downloader.download_file("ntatFlxSI-MO/csusf.ntat.mon.mean.nc", + sub_folder='surface') diff --git a/esmvaltool/cmorizers/data/formatters/datasets/noaa_cires_20cr.py b/esmvaltool/cmorizers/data/formatters/datasets/noaa_cires_20cr_v2.py similarity index 92% rename from esmvaltool/cmorizers/data/formatters/datasets/noaa_cires_20cr.py rename to esmvaltool/cmorizers/data/formatters/datasets/noaa_cires_20cr_v2.py index cdc5efbd40..3744cdce67 100644 --- a/esmvaltool/cmorizers/data/formatters/datasets/noaa_cires_20cr.py +++ b/esmvaltool/cmorizers/data/formatters/datasets/noaa_cires_20cr_v2.py @@ -1,4 +1,4 @@ -"""ESMValTool CMORizer for NOAA-CIRES-20CR data. +"""ESMValTool CMORizer for NOAA-CIRES-20CR-V2 data. Tier Tier 2: other freely-available dataset. diff --git a/esmvaltool/cmorizers/data/formatters/datasets/noaa_cires_20cr_v3.py b/esmvaltool/cmorizers/data/formatters/datasets/noaa_cires_20cr_v3.py new file mode 100644 index 0000000000..9405473931 --- /dev/null +++ b/esmvaltool/cmorizers/data/formatters/datasets/noaa_cires_20cr_v3.py @@ -0,0 +1,32 @@ +"""ESMValTool CMORizer for NOAA-CIRES-20CR-V3 data. + +Tier + Tier 2: other freely-available dataset. + +Source + https://psl.noaa.gov/data/gridded/data.ncep.reanalysis2.html + +Last access + 20230327 + +Download and processing instructions + To facilitate the download, the links to the ftp server are provided. + + ftp://ftp.cdc.noaa.gov/Datasets/20thC_ReanV3/Monthlies/ + + pr_wtr.eatm.mon.mean.nc + cldwtr.eatm.mon.mean.nc + tcdc.eatm.mon.mean.nc + ulwrf.ntat.mon.mean.nc + uswrf.ntat.mon.mean.nc + csulf.ntat.mon.mean.nc + csusf.ntat.mon.mean.nc + shum.mon.mean.nc + +Caveats + +""" +from .ncep_ncar_r1 import cmorization + +# The following line makes it clear that the above import is not an error +cmorization diff --git a/esmvaltool/recipes/examples/recipe_check_obs.yml b/esmvaltool/recipes/examples/recipe_check_obs.yml index 1bccda03b1..83ccc55607 100644 --- a/esmvaltool/recipes/examples/recipe_check_obs.yml +++ b/esmvaltool/recipes/examples/recipe_check_obs.yml @@ -632,21 +632,38 @@ diagnostics: scripts: null - NOAA-CIRES-20CR: - description: NOAA-CIRES-20CR check + NOAA-CIRES-20CR-V2: + description: NOAA-CIRES-20CR-V2 check variables: clt: clwvi: hus: prw: - rsut: rlut: + rsut: additional_datasets: - - {dataset: NOAA-CIRES-20CR, project: OBS6, mip: Amon, tier: 2, + - {dataset: NOAA-CIRES-20CR-V2, project: OBS6, mip: Amon, tier: 2, type: reanaly, version: v2, start_year: 1871, end_year: 2012} scripts: null + NOAA-CIRES-20CR-V3: + description: NOAA-CIRES-20CR-V3 check + variables: + clt: + clwvi: + hus: + prw: + rlut: + rlutcs: + rsut: + rsutcs: + additional_datasets: + - {dataset: NOAA-CIRES-20CR-V3, project: OBS6, mip: Amon, tier: 2, + type: reanaly, version: v3, start_year: 1836, end_year: 2015} + scripts: null + + NOAAGlobalTemp: description: NOAAGlobalTemp check variables: diff --git a/esmvaltool/references/noaa-cires-20cr.bibtex b/esmvaltool/references/noaa-cires-20cr-v2.bibtex similarity index 62% rename from esmvaltool/references/noaa-cires-20cr.bibtex rename to esmvaltool/references/noaa-cires-20cr-v2.bibtex index 54d67ea7f3..79314b1d4b 100644 --- a/esmvaltool/references/noaa-cires-20cr.bibtex +++ b/esmvaltool/references/noaa-cires-20cr-v2.bibtex @@ -1,9 +1,11 @@ -@article{noaa-cire-20cr, +@article{noaa-cires-20cr-v2, doi = {10.1002/qj.776}, url = {https://doi.org/10.1002/qj.776}, - publisher = {Royal Meteorological Society}, - author = {Compo, G.P., Whitaker, J.S., Sardeshmukh, P.D., Matsui, N., Allan, R.J., Yin, X., Gleason, B.E., Vose, R.S., Rutledge, G., Bessemoulin, P., Brönnimann, S., Brunet, M., Crouthamel, R.I., Grant, A.N., Groisman, P.Y., Jones, P.D., Kruk, M.C., Kruger, A.C., Marshall, G.J., Maugeri, M., Mok, H.Y., Nordli, Ø., Ross, T.F., Trigo, R.M., Wang, X.L., Woodruff, S.D. and Worley, S.J.}, + author = {Compo, G.P., Whitaker, J.S., Sardeshmukh, P.D., Matsui, N., Allan, R.J., Yin, X., Gleason, B.E., Vose, R.S., Rutledge, G., Bessemoulin, P., Brönnimann, S., Brunet, M., Crouthamel, R.I., Grant, A.N., Groisman, P.Y., Jones, P.D., Kruk, M.C., Kruger, A.C., Marshall, G.J., Maugeri, M., Mok, H.Y., Nordli, O., Ross, T.F., Trigo, R.M., Wang, X.L., Woodruff, S.D. and Worley, S.J.}, title = {The Twentieth Century Reanalysis Project}, - year = {2011} + year = {2011}, journal = {Quarterly J. Roy. Meteorol. Soc.} + volume = {137}, + number = {654}, + pages = {1-28}, } diff --git a/esmvaltool/references/noaa-cires-20cr-v3.bibtex b/esmvaltool/references/noaa-cires-20cr-v3.bibtex new file mode 100644 index 0000000000..d1bf482e9d --- /dev/null +++ b/esmvaltool/references/noaa-cires-20cr-v3.bibtex @@ -0,0 +1,11 @@ +@article{noaa-cires-20cr-v3, + journal = {Quarterly J. Roy. Meteorol. Soc.} + author = {Slivinski, Laura C. and Compo, Gilbert P. and Whitaker, Jeffrey S. and Sardeshmukh, Prashant D. and Giese, Benjamin S. and McColl, Chesley and Allan, Rob and Yin, Xungang and Vose, Russell and Titchner, Holly and Kennedy, John and Spencer, Lawrence J. and Ashcroft, Linden and Brönnimann, Stefan and Brunet, Manola and Camuffo, Dario and Cornes, Richard and Cram, Thomas A. and Crouthamel, Richard and Domínguez-Castro, Fernando and Freeman, J. Eric and Gergis, Joëlle and Hawkins, Ed and Jones, Philip D. and Jourdain, Sylvie and Kaplan, Alexey and Kubota, Hisayuki and Blancq, Frank Le and Lee, Tsz-Cheung and Lorrey, Andrew and Luterbacher, Jürg and Maugeri, Maurizio and Mock, Cary J. and Moore, G.W. Kent and Przybylak, Rajmund and Pudmenzky, Christa and Reason, Chris and Slonosky, Victoria C. and Smith, Catherine A. and Tinz, Birger and Trewin, Blair and Valente, Maria Antónia and Wang, Xiaolan L. and Wilkinson, Clive and Wood, Kevin and Wyszynski, Przemysxslaw}, + title = {Towards a more reliable historical reanalysis: Improvements for version 3 of the Twentieth Century Reanalysis system}, + volume = {145}, + number = {724}, + pages = {2876-2908}, + doi = {https://doi.org/10.1002/qj.3598}, + url = {https://rmets.onlinelibrary.wiley.com/doi/abs/10.1002/qj.3598}, + year = {2019} +} From d0624505fb2b063adfddb13b7538dafc1347d963 Mon Sep 17 00:00:00 2001 From: Manuel Schlund <32543114+schlunma@users.noreply.github.com> Date: Fri, 18 Aug 2023 08:54:19 +0200 Subject: [PATCH 32/34] Fixed provenance tracking for NCL multipanel PNGs (#3332) Co-authored-by: Axel Lauer --- esmvaltool/diag_scripts/clouds/clouds.ncl | 19 ---------- .../diag_scripts/clouds/clouds_dyn_matrix.ncl | 9 ----- .../clouds/clouds_interannual.ncl | 8 ----- .../clouds/clouds_lifrac_scatter.ncl | 15 -------- esmvaltool/diag_scripts/clouds/clouds_pdf.ncl | 8 ----- .../diag_scripts/clouds/clouds_scatter.ncl | 9 ----- .../clouds/clouds_seasonal_cycle.ncl | 10 ------ .../diag_scripts/clouds/clouds_zonal.ncl | 17 --------- esmvaltool/interface_scripts/logging.ncl | 35 +++++++++++++++++-- 9 files changed, 32 insertions(+), 98 deletions(-) diff --git a/esmvaltool/diag_scripts/clouds/clouds.ncl b/esmvaltool/diag_scripts/clouds/clouds.ncl index 928d7cc96d..c05c091cf4 100644 --- a/esmvaltool/diag_scripts/clouds/clouds.ncl +++ b/esmvaltool/diag_scripts/clouds/clouds.ncl @@ -688,7 +688,6 @@ begin ; function in aux_plotting.ncl if (ii.eq.0) then - nframe = 0 ndframe = 0 ; note: an array of workspaces (i.e. wks(numseas)) does not work as ; attributes cannot be assigned to each array element @@ -768,8 +767,6 @@ begin maps(imod, 0) = gsn_csm_contour_map(wks0, data1, res) end if - nframe = nframe + 1 - ; mandatory netcdf output data1@var = var0 + "_mean_" + names(imod) @@ -1310,19 +1307,10 @@ begin end if end if ; if embracesetup - nframe = nframe + 1 - do is = 0, numseas - 1 log_info("Wrote " + outfile(is)) end do - do is = 0, numseas - 1 - suffix = get_file_suffix(outfile(is), 0) - if (suffix .eq. ".png") then - outfile(is) = suffix@fBase + "." + sprinti("%0.6i", nframe) + suffix - end if - end do - ; ------------------------------------------------------------------------ ; write provenance to netcdf output and plot file(s) (mean) ; ------------------------------------------------------------------------ @@ -1482,13 +1470,6 @@ begin end if end if ; end if embracesetup - do is = 0, numseas - 1 - suffix = get_file_suffix(outfile_d(is), 0) - if (suffix .eq. ".png") then - outfile_d(is) = suffix@fBase + "." + sprinti("%0.6i", ndframe) + suffix - end if - end do - do is = 0, numseas - 1 log_info(" Wrote " + outfile(is)) diff --git a/esmvaltool/diag_scripts/clouds/clouds_dyn_matrix.ncl b/esmvaltool/diag_scripts/clouds/clouds_dyn_matrix.ncl index 9fcfadebbb..c18da6fe23 100644 --- a/esmvaltool/diag_scripts/clouds/clouds_dyn_matrix.ncl +++ b/esmvaltool/diag_scripts/clouds/clouds_dyn_matrix.ncl @@ -681,8 +681,6 @@ begin xyres2@tmXTLabelsOn = True xyres2@tmXBLabelsOn = False - nframe = 0 - do ii = 0, nplots - 1 if (ii .lt. dim_MOD) then plotdata = result(ii, :, :) @@ -775,8 +773,6 @@ begin delete(plotdata) delete(countdata) - - nframe = nframe + 1 end do ; pres = True ; needed to override @@ -799,11 +795,6 @@ begin log_info("Wrote " + doutfile) log_info("Wrote " + coutfile) - suffix = get_file_suffix(outfile, 0) - if (suffix .eq. ".png") then - outfile = suffix@fBase + "." + sprinti("%0.6i", nframe) + suffix - end if - ; ========================================================================== ; ---------------------------------------------------------------------- diff --git a/esmvaltool/diag_scripts/clouds/clouds_interannual.ncl b/esmvaltool/diag_scripts/clouds/clouds_interannual.ncl index e27984a822..a3e318c556 100644 --- a/esmvaltool/diag_scripts/clouds/clouds_interannual.ncl +++ b/esmvaltool/diag_scripts/clouds/clouds_interannual.ncl @@ -445,11 +445,9 @@ begin if (ii.eq.0) then wks = get_wks("dummy_for_wks", DIAG_SCRIPT, "clouds_interannual_" \ + var0 + filename_add) - nframe = 0 end if maps(ii) = gsn_csm_contour_map(wks, data1, res) - nframe = nframe + 1 ; ######################################### ; # output all datasets to common netCDF # @@ -478,7 +476,6 @@ begin pres@pmLabelBarOrthogonalPosF = -0.01 ; shift label bar a bit to ; the bottom outfile = panelling(wks, maps, (dim_MOD + 3) / 4, 4, pres) - nframe = nframe + 1 ; plot multi-obs and multi-model average (if requested) @@ -535,11 +532,6 @@ begin log_info(" Wrote " + outfile) - suffix = get_file_suffix(outfile, 0) - if (suffix .eq. ".png") then - outfile = suffix@fBase + "." + sprinti("%0.6i", nframe) + suffix - end if - ; ------------------------------------------------------------------------ ; write provenance to common netcdf and plot file ; ------------------------------------------------------------------------ diff --git a/esmvaltool/diag_scripts/clouds/clouds_lifrac_scatter.ncl b/esmvaltool/diag_scripts/clouds/clouds_lifrac_scatter.ncl index f9bf33f30d..b383753c90 100644 --- a/esmvaltool/diag_scripts/clouds/clouds_lifrac_scatter.ncl +++ b/esmvaltool/diag_scripts/clouds/clouds_lifrac_scatter.ncl @@ -652,8 +652,6 @@ begin data_l(0, :) = data@_FillValue end if - nframe = 0 - do ii = 0, dim_MOD + add_dim_MOD - 1 if (ii .eq. refidx_ta) then continue @@ -724,8 +722,6 @@ begin frame(wks_i) draw(plots_l(ii)) frame(wks_l) - - nframe = nframe + 1 end do pres = True ; needed to override @@ -747,17 +743,6 @@ begin log_info("Wrote " + outfile_l) delete(idx0) - nframe = nframe + 1 - - suffix = get_file_suffix(outfile_i, 0) - if (suffix .eq. ".png") then - outfile_i = suffix@fBase + "." + sprinti("%0.6i", nframe) + suffix - end if - suffix = get_file_suffix(outfile_l, 0) - if (suffix .eq. ".png") then - outfile_l = suffix@fBase + "." + sprinti("%0.6i", nframe) + suffix - end if - ; ========================================================================== ; ---------------------------------------------------------------------- diff --git a/esmvaltool/diag_scripts/clouds/clouds_pdf.ncl b/esmvaltool/diag_scripts/clouds/clouds_pdf.ncl index 36f9f6fbef..bc94f08fc2 100644 --- a/esmvaltool/diag_scripts/clouds/clouds_pdf.ncl +++ b/esmvaltool/diag_scripts/clouds/clouds_pdf.ncl @@ -220,7 +220,6 @@ begin ; function in aux_plotting.ncl if (ii.eq.0) then - nframe = 0 wks = get_wks("dummy_for_wks", DIAG_SCRIPT, "clouds_pdf_" + var0 \ + filename_add) wks_line = get_wks("dummy_for_wks", DIAG_SCRIPT, "clouds_pdf_" + var0 \ @@ -235,7 +234,6 @@ begin res@tiMainString = names(imod) plot(ii) = gsn_histogram(wks, ndtooned(data1), res) - nframe = nframe + 1 ; mandatory netcdf output @@ -364,12 +362,6 @@ begin gsn_panel(wks, plot(plotind), plotsperline, pres) outfile = wks@fullname - nframe = nframe + 1 - - suffix = get_file_suffix(outfile, 0) - if (suffix .eq. ".png") then - outfile = suffix@fBase + "." + sprinti("%0.6i", nframe) + suffix - end if ; ======================================================================== diff --git a/esmvaltool/diag_scripts/clouds/clouds_scatter.ncl b/esmvaltool/diag_scripts/clouds/clouds_scatter.ncl index 35e217613b..996fcd7121 100644 --- a/esmvaltool/diag_scripts/clouds/clouds_scatter.ncl +++ b/esmvaltool/diag_scripts/clouds/clouds_scatter.ncl @@ -434,8 +434,6 @@ begin data(0, :) = data@_FillValue end if - nframe = 0 - do ii = 0, dim_MOD - 1 if (ii .eq. refidx_x) then continue @@ -485,7 +483,6 @@ begin res@tiMainString = names(ii) plots(ii) = gsn_csm_xy(wks, result_avg&bin, data, res) - nframe = nframe + 1 if (ii .eq. mm_ind) then res_std = True @@ -554,16 +551,10 @@ begin pres@lbLabelFontHeightF = min((/0.01, 0.01 * 6.0 \ / tofloat((dim_MOD + 1) / 2)/)) outfile = panelling(wks, plots(idx0), (n + 3) / 4, 4, pres) - nframe = nframe + 1 delete(idx0) log_info("Wrote " + outfile) - suffix = get_file_suffix(outfile, 0) - if (suffix .eq. ".png") then - outfile = suffix@fBase + "." + sprinti("%0.6i", nframe) + suffix - end if - ; ========================================================================== ; ---------------------------------------------------------------------- diff --git a/esmvaltool/diag_scripts/clouds/clouds_seasonal_cycle.ncl b/esmvaltool/diag_scripts/clouds/clouds_seasonal_cycle.ncl index d918e9eccb..1b6ae7fdad 100644 --- a/esmvaltool/diag_scripts/clouds/clouds_seasonal_cycle.ncl +++ b/esmvaltool/diag_scripts/clouds/clouds_seasonal_cycle.ncl @@ -405,11 +405,9 @@ begin if (ii.eq.0) then wks = get_wks("dummy_for_wks", DIAG_SCRIPT, "clouds_seasonal_cycle_" \ + var0 + filename_add) - nframe = 0 end if maps(ii) = gsn_csm_contour_map(wks, data1, res) - nframe = nframe + 1 ; ######################################### ; # output all datasets to common netCDF # @@ -438,12 +436,6 @@ begin pres@pmLabelBarOrthogonalPosF = -0.01 ; shift label bar a bit to ; the bottom outfile = panelling(wks, maps, (dim_MOD + 3) / 4, 4, pres) - nframe = nframe + 1 - - suffix = get_file_suffix(outfile, 0) - if (suffix .eq. ".png") then - outfile = suffix@fBase + "." + sprinti("%0.6i", nframe) + suffix - end if ; plot multi-obs and multi-model average (if requested) @@ -455,7 +447,6 @@ begin res@gsnLeftString = "mean = " + sprintf("%6.3f", gavg) res@tiMainString = "Multi-obs average" map_multiobs = gsn_csm_contour_map(wks, multiobs, res) - nframe = nframe + 1 end if if (flag_multimod) then @@ -488,7 +479,6 @@ begin res@gsnRightString = "rmsd = " + sprintf("%6.3f", rmsd) res@tiMainString = "Multi-model average" map_multimod = gsn_csm_contour_map(wks, multimod, res) - nframe = nframe + 1 end if log_info(" Wrote " + outfile) diff --git a/esmvaltool/diag_scripts/clouds/clouds_zonal.ncl b/esmvaltool/diag_scripts/clouds/clouds_zonal.ncl index 32b7befb7f..a9ab9848c4 100644 --- a/esmvaltool/diag_scripts/clouds/clouds_zonal.ncl +++ b/esmvaltool/diag_scripts/clouds/clouds_zonal.ncl @@ -483,7 +483,6 @@ begin ; individually wks0 = get_wks("dummy_for_wks", DIAG_SCRIPT, "clouds_zonal_" + var0 + \ "_" + season(0) + filename_add) - nframe = 0 ; difference plots will be saved to a different file if (flag_diff) then wks0d = get_wks("dummy_for_wks", DIAG_SCRIPT, "clouds_zonal_" + \ @@ -575,7 +574,6 @@ begin maps(imod, 0) = gsn_csm_contour(wks0, data1, res) end if end if - nframe = nframe + 1 ; mandatory netcdf output @@ -1121,19 +1119,11 @@ begin 4, pres) end if end if ; if embracesetup - nframe = nframe + 1 do is = 0, numseas - 1 log_info("Wrote " + outfile(is)) end do - do is = 0, numseas - 1 - suffix = get_file_suffix(outfile(is), 0) - if (suffix .eq. ".png") then - outfile(is) = suffix@fBase + "." + sprinti("%0.6i", nframe) + suffix - end if - end do - ; ------------------------------------------------------------------------ ; write provenance to netcdf output and plot file(s) (mean) ; ------------------------------------------------------------------------ @@ -1290,13 +1280,6 @@ begin end if ; end if embracesetup ndframe = ndframe + 1 - do is = 0, numseas - 1 - suffix = get_file_suffix(outfile_d(is), 0) - if (suffix .eq. ".png") then - outfile_d(is) = suffix@fBase + "." + sprinti("%0.6i", ndframe) + suffix - end if - end do - do is = 0, numseas - 1 log_info(" Wrote " + outfile(is)) diff --git a/esmvaltool/interface_scripts/logging.ncl b/esmvaltool/interface_scripts/logging.ncl index 8db7d8fe09..3e1b10b0b2 100644 --- a/esmvaltool/interface_scripts/logging.ncl +++ b/esmvaltool/interface_scripts/logging.ncl @@ -334,9 +334,38 @@ begin ; Save entries for outfile if not "n/a" if (outfile .ne. "n/a") then - outstring2 = outstring - outstring2(0) = "? " + outfile - outstring := array_append_record(outstring, outstring2, 0) + suffix = get_file_suffix(outfile, 0) + + ; For PNGs, additionally check for existence of files like + ; "plot_file.000001.png", "plot_file.000002.png", etc. and save + ; provenance record for each of them + if ((suffix .eq. ".png") .and. (.not. fileexists(outfile))) then + do file_idx = 1, 999999 + potential_outfile = suffix@fBase + "." + sprinti("%0.6i", file_idx) + \ + suffix + if (fileexists(potential_outfile)) then + if (.not. isvar("all_outfiles")) then + all_outfiles = potential_outfile + else + all_outfiles := array_append_record(all_outfiles, \ + potential_outfile, 0) + end if + else + break + end if + end do + else + all_outfiles = outfile + end if + + ; Save provenance record of all files + original_entry = outstring + do outfile_idx = 0, dimsizes(all_outfiles) - 1 + file_to_add := all_outfiles(outfile_idx) + new_entry = (/original_entry/) + new_entry(0) = "? " + file_to_add + outstring := array_append_record(outstring, new_entry, 0) + end do end if ; Save existing information to avoid overwriting From 9c0d9d48614f368b373102fac51c22c6a277ef01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Kazeroni?= Date: Fri, 18 Aug 2023 15:28:59 +0200 Subject: [PATCH 33/34] Add `OBS-maintainers` team to documentation on OBS data maintenance and CMORizer reviews (#3335) --- .github/CODEOWNERS | 2 +- .github/pull_request_template.md | 1 + doc/sphinx/source/community/dataset.rst | 10 +++++----- doc/sphinx/source/community/review.rst | 4 ++-- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index e1aaa42272..2086d60173 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,2 +1,2 @@ -esmvaltool/cmorizers @remi-kazeroni +esmvaltool/cmorizers @ESMValGroup/obs-maintainers .github/workflows @valeriupredoi diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 83cf97eb4c..5041b22420 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -62,6 +62,7 @@ It is the responsibility of the author to make sure the pull request is ready to - [ ] [🛠][1] [Documentation](https://docs.esmvaltool.org/en/latest/community/dataset.html#dataset-documentation) is available - [ ] [🛠][1] The dataset has been [added to the CMOR check recipe](https://docs.esmvaltool.org/en/latest/community/dataset.html#testing) +- [ ] [🛠][1] The dataset has been added to the shared [data pools](https://docs.esmvaltool.org/en/latest/community/dataset.html#cmorized-data) of DKRZ and Jasmin by the @ESMValGroup/OBS-maintainers team - [ ] [🧪][2] Numbers and units of the data look [physically meaningful](https://docs.esmvaltool.org/en/latest/community/dataset.html#scientific-sanity-check) *** diff --git a/doc/sphinx/source/community/dataset.rst b/doc/sphinx/source/community/dataset.rst index d70438d9bc..424d4d4694 100644 --- a/doc/sphinx/source/community/dataset.rst +++ b/doc/sphinx/source/community/dataset.rst @@ -65,10 +65,10 @@ The scientific reviewer needs to check this. Data availability ================= -Once your pull request has been approved by the reviewers, ask -`@remi-kazeroni `_ +Once your pull request has been approved by the reviewers, ask a member of +`@OBS-maintainers `_ to add the new dataset to the data pool at DKRZ and CEDA-Jasmin. -He is also the person in charge of merging CMORizer pull requests. +This team is in charge of merging CMORizer pull requests. .. _dataset_checklist: @@ -165,14 +165,14 @@ Run ``esmvaltool/recipes/examples/recipe_check_obs.yml`` for new dataset. RAW data -------- -Contact person in charge of ESMValTool data pool (`@remi-kazeroni`_) and +Contact the team in charge of ESMValTool data pool (`@OBS-maintainers`_) and request to copy RAW data to RAWOBS/Tier2 (Tier3). CMORized data ------------- -Contact person in charge of ESMValTool data pool (`@remi-kazeroni`_) and +Contact the team in charge of ESMValTool data pool (`@OBS-maintainers`_) and request to * Merge the pull request diff --git a/doc/sphinx/source/community/review.rst b/doc/sphinx/source/community/review.rst index 41e596dda9..3429c0ef7a 100644 --- a/doc/sphinx/source/community/review.rst +++ b/doc/sphinx/source/community/review.rst @@ -69,7 +69,7 @@ GitHub. Pull requests are merged by the `@ESMValGroup/esmvaltool-coreteam`_. Specifically, pull requests containing a :ref:`CMORizer script` can only be merged by -`@remi-kazeroni`_, who will then add the CMORized data to the OBS data pool at +a member of `@OBS-maintainers`_, who will then add the CMORized data to the OBS data pool at DKRZ and CEDA-Jasmin. The team member who does the merge first checks that both the technical and scientific reviewer approved the pull request and that the reviews were @@ -215,7 +215,7 @@ their opinion and try to find a solution. .. _`@ESMValGroup/tech-reviewers`: https://github.com/orgs/ESMValGroup/teams/tech-reviewers .. _`@ESMValGroup/science-reviewers`: https://github.com/orgs/ESMValGroup/teams/science-reviewers .. _`@ESMValGroup/esmvaltool-coreteam`: https://github.com/orgs/ESMValGroup/teams/esmvaltool-coreteam -.. _`@remi-kazeroni`: https://github.com/remi-kazeroni +.. _`@OBS-maintainers`: https://github.com/orgs/ESMValGroup/teams/obs-maintainers .. _`pull request template`: https://raw.githubusercontent.com/ESMValGroup/ESMValTool/main/.github/pull_request_template.md .. _`Google meet`: https://meet.google.com .. _`Jitsi meet`: https://meet.jit.si From b244fef254dd282e7fc9e34dbe355b77eb9e9025 Mon Sep 17 00:00:00 2001 From: Axel Lauer Date: Fri, 18 Aug 2023 16:03:47 +0200 Subject: [PATCH 34/34] CMORizer for NASA MERRA reanalysis (#3039) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Rémi Kazeroni --- doc/sphinx/source/input.rst | 3 + esmvaltool/cmorizers/data/datasets.yml | 7 + .../data/downloaders/datasets/merra.py | 57 ++++ esmvaltool/cmorizers/data/downloaders/wget.py | 4 +- .../data/formatters/datasets/merra.ncl | 315 ++++++++++++++++++ .../cmorizers/data/formatters/utilities.ncl | 6 +- .../recipes/examples/recipe_check_obs.yml | 32 ++ esmvaltool/references/merra.bibtex | 13 + 8 files changed, 432 insertions(+), 5 deletions(-) create mode 100644 esmvaltool/cmorizers/data/downloaders/datasets/merra.py create mode 100644 esmvaltool/cmorizers/data/formatters/datasets/merra.ncl create mode 100644 esmvaltool/references/merra.bibtex diff --git a/doc/sphinx/source/input.rst b/doc/sphinx/source/input.rst index c453a0569e..fa6b9b00e4 100644 --- a/doc/sphinx/source/input.rst +++ b/doc/sphinx/source/input.rst @@ -355,6 +355,9 @@ A list of the datasets for which a CMORizers is available is provided in the fol +------------------------------+------------------------------------------------------------------------------------------------------+------+-----------------+ | MAC-LWP | lwp, lwpStderr (Amon) | 3 | NCL | +------------------------------+------------------------------------------------------------------------------------------------------+------+-----------------+ +| MERRA | cli, clivi, clt, clw, clwvi, hur, hus, lwp, pr, prw, ps, psl, rlut, rlutcs, rsdt, rsut, rsutcs, ta, | 3 | NCL | +| | tas, ts, ua, va, wap, zg (Amon) | | | ++------------------------------+------------------------------------------------------------------------------------------------------+------+-----------------+ | MERRA2 | sm (Lmon) | 3 | Python | | | clt, pr, evspsbl, hfss, hfls, huss, prc, prsn, prw, ps, psl, rlds, rldscs, rlus, rlut, rlutcs, rsds, | | | | | rsdscs, rsdt, tas, tasmin, tasmax, tauu, tauv, ts, uas, vas, rsus, rsuscs, rsut, rsutcs, ta, ua, va, | | | diff --git a/esmvaltool/cmorizers/data/datasets.yml b/esmvaltool/cmorizers/data/datasets.yml index d40de3988c..57fa7076ba 100644 --- a/esmvaltool/cmorizers/data/datasets.yml +++ b/esmvaltool/cmorizers/data/datasets.yml @@ -836,6 +836,13 @@ datasets: individually or by using the option "download all". Data is freely available, but a registration is required. + MERRA: + tier: 3 + source: https://goldsmr3.gesdisc.eosdis.nasa.gov/data/MERRA_MONTHLY/ + last_access: 2023-02-01 + info: | + Use automatic download. That will download monthly data. + MERRA2: tier: 3 source: https://goldsmr4.gesdisc.eosdis.nasa.gov/data/MERRA2_MONTHLY/ https://goldsmr5.gesdisc.eosdis.nasa.gov/data/MERRA2_MONTHLY/ diff --git a/esmvaltool/cmorizers/data/downloaders/datasets/merra.py b/esmvaltool/cmorizers/data/downloaders/datasets/merra.py new file mode 100644 index 0000000000..df1d0ff7e9 --- /dev/null +++ b/esmvaltool/cmorizers/data/downloaders/datasets/merra.py @@ -0,0 +1,57 @@ +"""Script to download MERRA.""" + +from datetime import datetime + +from dateutil import relativedelta + +from esmvaltool.cmorizers.data.downloaders.wget import NASADownloader + + +def download_dataset(config, dataset, dataset_info, start_date, end_date, + overwrite): + """Download dataset. + + Parameters + ---------- + config : dict + ESMValTool's user configuration + dataset : str + Name of the dataset + dataset_info : dict + Dataset information from the datasets.yml file + start_date : datetime + Start of the interval to download + end_date : datetime + End of the interval to download + overwrite : bool + Overwrite already downloaded files + """ + if not start_date: + start_date = datetime(1979, 1, 1) + if not end_date: + end_date = datetime(2015, 12, 31) + loop_date = start_date + + downloader = NASADownloader( + config=config, + dataset=dataset, + dataset_info=dataset_info, + overwrite=overwrite, + ) + + while loop_date <= end_date: + year = loop_date.year + downloader.download_folder( + "https://goldsmr3.gesdisc.eosdis.nasa.gov/data/MERRA_MONTHLY/" + f"MAIMNXINT.5.2.0/{year}/") + downloader.download_folder( + "https://goldsmr3.gesdisc.eosdis.nasa.gov/data/MERRA_MONTHLY/" + f"MAIMCPASM.5.2.0/{year}/") + downloader.download_folder( + "https://goldsmr3.gesdisc.eosdis.nasa.gov/data/MERRA_MONTHLY/" + f"MATMNXRAD.5.2.0/{year}/") + downloader.download_folder( + "https://goldsmr3.gesdisc.eosdis.nasa.gov/data/MERRA_MONTHLY/" + f"MATMFXCHM.5.2.0/{year}/") + + loop_date += relativedelta.relativedelta(years=1) diff --git a/esmvaltool/cmorizers/data/downloaders/wget.py b/esmvaltool/cmorizers/data/downloaders/wget.py index 9db7afc478..8544e1d727 100644 --- a/esmvaltool/cmorizers/data/downloaders/wget.py +++ b/esmvaltool/cmorizers/data/downloaders/wget.py @@ -89,8 +89,8 @@ def download_folder(self, server_path, wget_options=None): """ if wget_options is None: wget_options = [] - wget_options = self._wget_common_options + ["-np", "--accept=nc,nc4" - ] + wget_options + wget_options = self._wget_common_options + [ + "-np", "--accept=nc,nc4,hdf"] + wget_options super().download_folder(server_path, wget_options) def download_file(self, server_path, wget_options=None): diff --git a/esmvaltool/cmorizers/data/formatters/datasets/merra.ncl b/esmvaltool/cmorizers/data/formatters/datasets/merra.ncl new file mode 100644 index 0000000000..b57bca6a09 --- /dev/null +++ b/esmvaltool/cmorizers/data/formatters/datasets/merra.ncl @@ -0,0 +1,315 @@ +; ############################################################################# +; ESMValTool CMORizer for NASA MERRA reanalysis v5.2.0 +; ############################################################################# +; +; Tier +; Tier 3: restricted dataset (registration required). +; +; Source +; EarthData via https://goldsmr3.gesdisc.eosdis.nasa.gov/data/MERRA_MONTHLY/ +; +; Last access +; 20230201 +; +; Download and processing instructions +; (requires EarthData login; see https://urs.earthdata.nasa.gov/) +; Use ESMValTool automatic download: +; esmvaltool data download --config_file MERRA +; +; Modification history +; 20230818-lauer_axel: added output of clwvi (iwp + lwp) +; 20230201-lauer_axel: written +; +; ############################################################################# +loadscript(getenv("esmvaltool_root") + \ + "/data/formatters/interface.ncl") + +begin + + ; Script name (for logger) + DIAG_SCRIPT = "merra.ncl" + + ; Source name + OBSNAME = "MERRA" + + ; Tier + TIER = 3 + + ; Period (complete years only) + YEAR1 = get_year(start_year, 1979) + YEAR2 = get_year(end_year, 2015) + + ; Selected variable (standard name) + VAR = (/"zg", "wap", "cli", "clw", "hus", "hur", "ta", "ua", "va", \ + "ps", "psl", \ + "clivi", "clwvi", "lwp", "prw", \ + "clt", "rlut", "rlutcs", "rsdt", "rsut", "rsutcs", "ts", \ + "tas", "pr"/) + + ; Name in the raw data + NAME = (/"H", "OMEGA", "QI", "QL", "QV", "RH", "T", "U", "V", \ ; 3d asm + "PS", "SLP", \ + "TQI", "TQI", "TQL", "TQV", \ ; 2d int + "CLDTOT", "LWTUP", "LWTUPCLR", "SWTDN", "SWTNT", \ ; 2d rad + "SWTNTCLR", "TS", \ + "T2M", "PRECLSC"/) ; 2d chm + + ; unit conversion factor + CONVFAC = (/1.0, 1.0, 1.0, 1.0, 1.0, 100.0, 1.0, 1.0, 1.0, \ ; 3d asm + 1.0, 1.0, \ + 1.0, 1.0, 1.0, 1.0, \ ; 2d int + 100.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, \ ; 2d rad + 1.0, 1.0/) ; 2d chm + + ; additional attribute "positive" (for radiative fluxes) + POSITIVE = (/"", "", "", "", "", "", "", "", "", "", "", \ ; 3d asm + "", "", "", "", \ ; 2d int + "", "up", "up", "down", "up", "up", "", \ ; 2d rad + "", ""/) ; 2d chm + + ; names source files + SOURCEFILE = (/"instM_3d_asm_Cp.", "instM_3d_asm_Cp.", \ ; 3d asm + "instM_3d_asm_Cp.", "instM_3d_asm_Cp.", \ + "instM_3d_asm_Cp.", "instM_3d_asm_Cp.", \ + "instM_3d_asm_Cp.", "instM_3d_asm_Cp.", \ + "instM_3d_asm_Cp.", "instM_3d_asm_Cp.", \ + "instM_3d_asm_Cp.", \ + "instM_2d_int_Nx.", "instM_2d_int_Nx.", \ ; 2d int + "instM_2d_int_Nx.", "instM_2d_int_Nx.", \ + "tavgM_2d_rad_Nx.", "tavgM_2d_rad_Nx.", \ ; 2d rad + "tavgM_2d_rad_Nx.", "tavgM_2d_rad_Nx.", \ + "tavgM_2d_rad_Nx.", "tavgM_2d_rad_Nx.", \ + "tavgM_2d_rad_Nx.", \ + "tavgM_2d_chm_Fx.", "tavgM_2d_chm_Fx."/) ; 2d chm + + ; dataset doi numbers + DOI = (/"10.5067/YX0AVASQRTNW", "10.5067/YX0AVASQRTNW", \ ; 3d asm + "10.5067/YX0AVASQRTNW", "10.5067/YX0AVASQRTNW", \ + "10.5067/YX0AVASQRTNW", "10.5067/YX0AVASQRTNW", \ + "10.5067/YX0AVASQRTNW", "10.5067/YX0AVASQRTNW", \ + "10.5067/YX0AVASQRTNW", "10.5067/YX0AVASQRTNW", \ + "10.5067/YX0AVASQRTNW", \ + "10.5067/QL0PGBK2CYJS", "10.5067/QL0PGBK2CYJS", \ ; 2d int + "10.5067/QL0PGBK2CYJS", "10.5067/QL0PGBK2CYJS", \ + "10.5067/6UX3EDUNVUFK", "10.5067/6UX3EDUNVUFK", \ ; 2d rad + "10.5067/6UX3EDUNVUFK", "10.5067/6UX3EDUNVUFK", \ + "10.5067/6UX3EDUNVUFK", "10.5067/6UX3EDUNVUFK", \ + "10.5067/6UX3EDUNVUFK", \ + "10.5067/IYDN3LNZ63UE", "10.5067/IYDN3LNZ63UE"/) ; 2d chm + + ; MIP + MIP = "Amon" + + ; Frequency + FREQ = "mon" + + ; CMOR table + CMOR_TABLE = getenv("cmor_tables") + \ + (/"/cmip5/Tables/CMIP5_" + MIP, "/cmip5/Tables/CMIP5_" + MIP, \ ; 3d asm + "/cmip5/Tables/CMIP5_" + MIP, "/cmip5/Tables/CMIP5_" + MIP, \ + "/cmip5/Tables/CMIP5_" + MIP, "/cmip5/Tables/CMIP5_" + MIP, \ + "/cmip5/Tables/CMIP5_" + MIP, "/cmip5/Tables/CMIP5_" + MIP, \ + "/cmip5/Tables/CMIP5_" + MIP, "/cmip5/Tables/CMIP5_" + MIP, \ + "/cmip5/Tables/CMIP5_" + MIP, \ + "/cmip5/Tables/CMIP5_" + MIP, "/cmip5/Tables/CMIP5_" + MIP, \ ; 2d int + "/custom/CMOR_lwp.dat", "/cmip5/Tables/CMIP5_" + MIP, \ + "/cmip5/Tables/CMIP5_" + MIP, "/cmip5/Tables/CMIP5_" + MIP, \ ; 2d rad + "/cmip5/Tables/CMIP5_" + MIP, "/cmip5/Tables/CMIP5_" + MIP, \ + "/cmip5/Tables/CMIP5_" + MIP, "/cmip5/Tables/CMIP5_" + MIP, \ + "/cmip5/Tables/CMIP5_" + MIP, \ + "/cmip5/Tables/CMIP5_" + MIP, "/cmip5/Tables/CMIP5_" + MIP/) ; 2d chm + + ; Type + TYPE = "reanaly" + + ; Version + VERSION = "5.2.0" + + ; Global attributes + SOURCE = "https://goldsmr3.gesdisc.eosdis.nasa.gov/data/MERRA_MONTHLY/" + COMMENT = "Goddard Earth Sciences Data and Information Services Center " + \ + "(GES DISC)" + +end + +begin + + ; Loop over variables + do vv = 0, dimsizes(VAR) - 1 + + log_info("Processing " + VAR(vv) + " (" + MIP + ")") + if (isvar("output")) then + delete(output) + end if + + do yy = YEAR1, YEAR2 + do mm = 1, 12 + + datestr = tostring(yy) + if (mm .lt. 10) then + datestr = datestr + "0" + end if + datestr = datestr + tostring(mm) + + fname = systemfunc("ls " + input_dir_path + "MERRA???.prod.assim." + \ + SOURCEFILE(vv) + datestr + ".hdf") + + f = addfile(fname, "r") + tmp = f->$NAME(vv)$ + + ; Extract time range + tmp&TIME_EOSGRID@calendar = "standard" + date = cd_calendar(tmp&TIME_EOSGRID, 0) + if ((date(0, 0) .ne. yy) .or. (date(0, 1) .ne. mm)) then + error_msg("f", DIAG_SCRIPT, "", \ + "date in input file does not match date in filename: " + \ + fname) + end if + + delete(date) + + if (.not.isvar("output")) then + dims = dimsizes(tmp) + ; overwrite time dimension + dims(0) = 12 + output = new(dims, float) + delete(dims) + rank = dimsizes(dimsizes(output)) + + output!0 = "time" + if (rank.eq.4) then + output!1 = "plev" + output!2 = "lat" + output!3 = "lon" + output&plev = tmp&Height_EOSGRID * 100. ; [hPa] --> [Pa] + elseif (rank.eq.3) + output!1 = "lat" + output!2 = "lon" + end if + + output&time = fspan(1, 12, 12) + output&time@calendar = "standard" + output&time@units = "days since 1950-01-01 00:00:00" + + output&lat = tmp&YDim_EOSGRID + output&lon = tmp&XDim_EOSGRID + + end if + + ; Unpack variable according to metadata information + if (isatt(tmp, "scale_factor") .or. isatt(tmp, "add_offset")) then + tmp = tmp * tmp@scale_factor + tmp@add_offset + end if + + if (rank.eq.4) then + output(mm - 1, :, :, :) = (/ tmp(0, :, :, :) /) + else + output(mm - 1, :, :) = (/ tmp(0, :, :) /) + end if + + delete(tmp) + + ; calcuation of outgoing fluxes: out = in - net + if ((VAR(vv) .eq. "rsut") .or. (VAR(vv) .eq. "rsutcs")) then + tmp = f->SWTDN + if (isatt(tmp, "scale_factor") .or. isatt(tmp, "add_offset")) then + tmp = tmp * tmp@scale_factor + tmp@add_offset + end if + output(mm - 1, :, :) = (/ tmp(0, :, :) /) - output(mm - 1, :, :) + + delete(tmp) + end if + + ; calcuation of total precipitation flux = large-scale+convective+anvil + if (VAR(vv) .eq. "pr") then + tmp = f->PRECCON ; surface precipitation flux from convection + if (isatt(tmp, "scale_factor") .or. isatt(tmp, "add_offset")) then + tmp = tmp * tmp@scale_factor + tmp@add_offset + end if + output(mm - 1, :, :) = output(mm - 1, :, :) + tmp(0, :, :) + delete(tmp) + tmp = f->PRECANV ; surface precipitation flux from anvils + if (isatt(tmp, "scale_factor") .or. isatt(tmp, "add_offset")) then + tmp = tmp * tmp@scale_factor + tmp@add_offset + end if + output(mm - 1, :, :) = output(mm - 1, :, :) + tmp(0, :, :) + delete(tmp) + end if + + ; calculation of clwvi + if (VAR(vv) .eq. "clwvi") then + tmp = f->TQL + if (isatt(tmp, "scale_factor") .or. isatt(tmp, "add_offset")) then + tmp = tmp * tmp@scale_factor + tmp@add_offset + end if + output(mm - 1, :, :) = output(mm - 1, :, :) + tmp(0, :, :) + delete(tmp) + end if + + delete(f) + + end do ; loop over months (mm) + + ; Convert units + if (CONVFAC(vv) .ne. 1.0) then + output = output * CONVFAC(vv) + end if + + ; Format coordinates + format_coords(output, yy + "0101", yy + "1231", FREQ) + + ; Set variable attributes + tmp = format_variable(output, VAR(vv), CMOR_TABLE(vv)) + delete(output) + output = tmp + delete(tmp) + + ; set additional attribute "positive" for radiative fluxes + if (POSITIVE(vv) .ne. "") then + output@positive = POSITIVE(vv) + end if + + ; Calculate coordinate bounds + bounds = guess_coord_bounds(output, FREQ) + + ; Set global attributes + REF = "doi: " + DOI(vv) + gAtt = set_global_atts(OBSNAME, TIER, SOURCE, REF, COMMENT) + + ; Output file + DATESTR = yy + "01-" + yy + "12" + fout = output_dir_path + \ + str_join((/"OBS", OBSNAME, TYPE, VERSION, \ + MIP, VAR(vv), DATESTR/), "_") + ".nc" + + ; Add height coordinate to tas variable (required by the new backend) + if (VAR(vv).eq."tas") then + output@coordinates = "height" + end if + + ; Write variable + write_nc(fout, VAR(vv), output, bounds, gAtt) + delete(gAtt) + delete(output) + delete(bounds) + + ; Add height coordinate to tas variable (required by CMOR checker) + if (VAR(vv).eq."tas") then + height = 2.d + height!0 = "ncl_scalar" + height@units = "m" + height@axis = "Z" + height@positive = "up" + height@long_name = "height" + height@standard_name = "height" + w = addfile(fout, "w") + w->height = height + delete(w) + end if + + ; --------------------------------------------------------------------- + + end do ; loop over years (yy) + end do ; loop over variables (vv) + +end diff --git a/esmvaltool/cmorizers/data/formatters/utilities.ncl b/esmvaltool/cmorizers/data/formatters/utilities.ncl index 42632889ef..4c8cf6444e 100644 --- a/esmvaltool/cmorizers/data/formatters/utilities.ncl +++ b/esmvaltool/cmorizers/data/formatters/utilities.ncl @@ -209,11 +209,11 @@ begin ; Reset date (middle of the month) tt = 0 do yy = year1, year2 - date(tt, 0) = yy yy@calendar = calendar m1 = where(yy.eq.year1, month1, 1) m2 = where(yy.eq.year2, month2, 12) do mm = m1, m2 + date(tt, 0) = yy date(tt, 1) = mm dm = days_in_month(yy, mm) / 2. + 1 date(tt, 2) = toint(dm) @@ -245,14 +245,14 @@ begin ; Reset date (middle of the day) tt = 0 do yy = year1, year2 - date(tt, 0) = yy m1 = where(yy.eq.year1, month1, 1) m2 = where(yy.eq.year2, month2, 12) do mm = m1, m2 - date(tt, 1) = mm d1 = where(yy.eq.year1 .and. mm.eq.m1, day1, 1) d2 = where(yy.eq.year2 .and. mm.eq.m2, day2, days_in_month(yy, mm)) do dd = d1, d2 + date(tt, 0) = yy + date(tt, 1) = mm date(tt, 2) = dd tt = tt + 1 end do diff --git a/esmvaltool/recipes/examples/recipe_check_obs.yml b/esmvaltool/recipes/examples/recipe_check_obs.yml index 83ccc55607..414b9e5b79 100644 --- a/esmvaltool/recipes/examples/recipe_check_obs.yml +++ b/esmvaltool/recipes/examples/recipe_check_obs.yml @@ -1612,6 +1612,38 @@ diagnostics: type: sat, version: v1, start_year: 1988, end_year: 2016} scripts: null + MERRA: + description: MERRA check + variables: + cli: + clivi: + clt: + clw: + clwvi: + hur: + hus: + lwp: + pr: + prw: + ps: + psl: + rlut: + rlutcs: + rsdt: + rsut: + rsutcs: + ta: + tas: + ts: + ua: + va: + wap: + zg: + additional_datasets: + - {dataset: MERRA, project: OBS, tier: 3, mip: Amon, + type: reanaly, version: 5.2.0, start_year: 1979, end_year: 2015} + scripts: null + MERRA2: description: MERRA2 check diff --git a/esmvaltool/references/merra.bibtex b/esmvaltool/references/merra.bibtex new file mode 100644 index 0000000000..aa1df2c53d --- /dev/null +++ b/esmvaltool/references/merra.bibtex @@ -0,0 +1,13 @@ +@article{merra, + doi = {10.1175/JCLI-D-11-00015.1}, + url = {https://journals.ametsoc.org/view/journals/clim/24/14/jcli-d-11-00015.1.xml}, + year = 2011, + month = {jul}, + publisher = {American Meteorological Society}, + volume = {24}, + number = {14}, + pages = {3624--3648}, + author = {Michele M. Rienecker and Max J. Suarez and Ronald Gelaro and Ricardo Todling and Julio Bacmeister and Emily Liu and Michael G. Bosilovich and Siegfried D. Schubert and Lawrence Takacs and Gi-Kong Kim and Stephen Bloom and Junye Chen and Douglas Collins and Austin Conaty and Arlindo da Silva and Wei Gu and Joanna Joiner and Randal D. Koster and Robert Lucchesi and Andrea Molod and Tommy Owens and Steven Pawson and Philip Pegion and Christopher R. Redder and Rolf Reichle and Franklin R. Robertson and Albert G. Ruddick and Meta Sienkiewicz and Jack Woollen}, + title = {{MERRA}: {NASA}’s Modern-Era Retrospective Analysis for Research and Applications}, + journal = {Journal of Climate} +}