diff --git a/README.md b/README.md index a71280e865d5d721b63d0d0fcf2d007c778dc5f2..7deacaf2abfe56348e87b4ce3f8befbc7f27ab1c 100644 --- a/README.md +++ b/README.md @@ -3,13 +3,12 @@ Collection of scripts and figures for cloud-radiative heating rates derived from satellite observations. To download the CloudSat/Calipso heating rates of 2B-FLXHR-LIDAR via sftp, first follow the instructions at -[https://www.cloudsat.cira.colostate.edu/order/sftp-access](https://www.cloudsat.cira.colostate.edu/order/sftp-access) to upload your ssh key and the IP address -of the machine that you use for download. I found that to download the data using IMG Jet, I need to use SRVX1 as a jump server (maybe because of some UNIVIE-IMG firewall?): +[https://www.cloudsat.cira.colostate.edu/order/sftp-access](https://www.cloudsat.cira.colostate.edu/order/sftp-access) to upload your ssh key and the IP address of the machine that you use for download. I found that to download the data using IMG Jet, I need to use SRVX1 as a jump server (maybe because of some UNIVIE-IMG firewall?): ``sftp -r -i ~/.ssh/id_rsa_cloudsat -J avoigt@srvx1.img.univie.ac.at aiko.voigtATunivie.ac.at@www.cloudsat.cira.colostate.edu:Data/2B-FLXHR-LIDAR.P2_R05/* .`` -``~/.ssh/id_rsa_cloudsat`` is the private key that I generated on SRVX1 and made available on both SRVX1 and Jet. Note that I submitted both the SRVX1 and the JEt ssh-keys and IP addresses -to the Cloudsat website. +``~/.ssh/id_rsa_cloudsat`` is the private key that I generated on SRVX1 and made available on both SRVX1 and Jet (this implies that I do not need to provide my password for SRVX1 but the passphrase of the key). Note that I submitted both the SRVX1 and the Jet ssh-keys and IP addresses +to the Cloudsat website, though I tend to think that only the IP address of SRVX1 is needed. Information on the dataset is available diff --git a/pythonenv/env.txt b/pythonenv/env.txt index 0106588a221d7459c71a8a28d24f02b7dfd08bfd..4a3e96742db5f60b5a12c7d785c5ac8cff12b18b 100644 --- a/pythonenv/env.txt +++ b/pythonenv/env.txt @@ -3,48 +3,71 @@ channels: - https://conda.anaconda.org/conda-forge dependencies: - poppler=24.03.0=h590f24d_0 +- pure_eval=0.2.2=pyhd8ed1ab_0 - proj=9.3.1=h1d62c97_0 - font-ttf-dejavu-sans-mono=2.37=hab24e00_0 - rioxarray=0.15.1=pyhd8ed1ab_0 - libcups=2.3.3=h4637d8d_4 - libopenblas=0.3.26=pthreads_h413a1c8_0 - libarchive=3.7.2=h2aa1ff5_1 +- debugpy=1.8.1=py312h30efb56_0 - six=1.16.0=pyh6c4a22f_0 - kealib=1.5.3=h2f55d51_0 - distributed=2024.3.1=pyhd8ed1ab_0 - python=3.12.2=hab00c5b_0_cpython -- aws-c-s3=0.5.3=h4893938_0 -- libclang13=18.1.2=default_h5d6823c_1 -- libgfortran-ng=13.2.0=h69a702a_5 -- lcms2=2.16=hb7c19ff_0 -- libnetcdf=4.9.2=nompi_h9612171_113 +- stack_data=0.6.2=pyhd8ed1ab_0 +- libcblas=3.9.0=21_linux64_openblas +- libgomp=13.2.0=h807b86a_5 +- giflib=5.2.1=h0b41bf4_3 +- sqlite=3.45.2=h2c6b66d_0 +- fonts-conda-ecosystem=1=0 +- lerc=4.0.0=h27087fc_0 +- libarrow-flight=15.0.2=hc6145d9_1_cpu +- pulseaudio-client=17.0=hb77b528_0 +- xyzservices=2023.10.1=pyhd8ed1ab_0 +- cycler=0.12.1=pyhd8ed1ab_0 +- libllvm16=16.0.6=hb3ce162_3 +- libre2-11=2023.09.01=h5a48ba9_2 +- tblib=3.0.0=pyhd8ed1ab_0 +- pyshp=2.3.1=pyhd8ed1ab_0 +- libgpg-error=1.48=h71f35ed_0 +- libxcb=1.15=h0b41bf4_0 +- python-tzdata=2024.1=pyhd8ed1ab_0 +- ncurses=6.4.20240210=h59595ed_0 +- lame=3.100=h166bdaf_1003 +- aws-c-s3=0.5.4=h4893938_0 - libabseil=20240116.1=cxx17_h59595ed_2 - shapely=2.0.3=py312h9e6bd2c_0 - libthrift=0.19.0=hb90f79a_1 - certifi=2024.2.2=pyhd8ed1ab_0 - aws-c-sdkutils=0.1.15=h4466546_2 - mysql-common=8.3.0=hf1915f5_4 +- libcurl=8.7.1=hca28451_0 +- aws-c-common=0.9.14=hd590300_0 +- libutf8proc=2.8.0=h166bdaf_0 - openssl=3.2.1=hd590300_1 -- readline=8.2=h8228510_1 -- lz4-c=1.9.4=hcb278e6_0 -- harfbuzz=8.3.0=h3d44ed6_0 -- llvmlite=0.42.0=py312hb06c811_1 -- gstreamer=1.22.9=h98fc4e7_1 -- pthread-stubs=0.4=h36c2ea0_1001 -- fonttools=4.50.0=py312h98912ed_0 -- libuuid=2.38.1=h0b41bf4_0 +- typing_extensions=4.10.0=pyha770c72_0 +- ipykernel=6.29.3=pyhd33586a_0 - libvorbis=1.3.7=h9c3ff4c_0 +- azure-storage-blobs-cpp=12.10.0=h00ab1b0_1 +- libboost-headers=1.84.0=ha770c72_2 +- pygments=2.17.2=pyhd8ed1ab_0 - pyproj=3.6.1=py312h38f1c37_5 +- libnghttp2=1.58.0=h47da74e_1 +- affine=2.4.0=pyhd8ed1ab_0 +- libglib=2.80.0=hf2295e7_1 - xcb-util-image=0.4.0=h8ee46fc_1 -- libparquet=15.0.2=h352af49_1_cpu -- mpg123=1.32.4=h59595ed_0 -- libgcrypt=1.10.3=hd590300_0 -- geos=3.12.1=h59595ed_0 -- libxml2=2.12.6=h232c23b_1 - brotli=1.1.0=hd590300_1 - rdma-core=50.0=hd3aeb46_1 -- font-ttf-ubuntu=0.83=h77eed37_1 -- uriparser=0.9.7=h59595ed_1 +- graphite2=1.3.13=h59595ed_1002 +- liblapack=3.9.0=21_linux64_openblas +- libuuid=2.38.1=h0b41bf4_0 +- fonttools=4.50.0=py312h98912ed_0 +- gstreamer=1.22.9=h98fc4e7_1 +- pthread-stubs=0.4=h36c2ea0_1001 +- libexpat=2.6.2=h59595ed_0 +- pyyaml=6.0.1=py312h98912ed_1 +- font-ttf-source-code-pro=2.038=h77eed37_0 - numpy=1.26.4=py312heda63a1_0 - fasteners=0.17.3=pyhd8ed1ab_0 - tornado=6.4=py312h98912ed_0 @@ -52,48 +75,47 @@ dependencies: - _openmp_mutex=4.5=2_gnu - pysocks=1.7.1=pyha2e5f31_6 - libffi=3.4.2=h7f98852_5 -- urllib3=2.2.1=pyhd8ed1ab_0 -- dask-core=2024.3.1=pyhd8ed1ab_0 - libxcrypt=4.4.36=hd590300_1 -- xorg-libice=1.1.1=hd590300_0 +- numba=0.59.1=py312hacefee8_0 - libarrow=15.0.2=hb86450c_1_cpu - rasterio=1.3.9=py312h26ef92c_2 - bokeh=3.4.0=pyhd8ed1ab_0 -- numba=0.59.0=py312hacefee8_1 -- libsystemd0=255=h3516f8a_1 -- orc=2.0.0=h1e5e2c1_0 - libprotobuf=4.25.3=h08a7969_0 -- azure-storage-blobs-cpp=12.10.0=h00ab1b0_1 -- libboost-headers=1.84.0=ha770c72_2 -- ucx=1.15.0=h11edf95_7 -- pyqt=5.15.9=py312h949fe66_5 - libzlib=1.2.13=hd590300_5 - libssh2=1.11.0=h0841786_0 -- ncurses=6.4.20240210=h59595ed_0 +- lz4-c=1.9.4=hcb278e6_0 +- readline=8.2=h8228510_1 +- harfbuzz=8.3.0=h3d44ed6_0 +- pexpect=4.9.0=pyhd8ed1ab_0 - libarrow-gandiva=15.0.2=hb016d2e_1_cpu -- xorg-xproto=7.0.31=h7f98852_1007 +- pyerfa=2.0.1.1=py312hc7c0aa3_0 - libarrow-substrait=15.0.2=h757c851_1_cpu -- c-ares=1.27.0=hd590300_0 +- geotiff=1.7.1=h6b2125f_15 +- xorg-xproto=7.0.31=h7f98852_1007 +- nest-asyncio=1.6.0=pyhd8ed1ab_0 +- locket=1.0.0=pyhd8ed1ab_0 +- cytoolz=0.12.3=py312h98912ed_0 +- uriparser=0.9.7=h59595ed_1 +- font-ttf-ubuntu=0.83=h77eed37_1 - s2n=1.4.8=h06160fa_0 - snuggs=1.4.7=py_0 - fmt=10.2.1=h00ab1b0_0 - toml=0.10.2=pyhd8ed1ab_0 - click=8.1.7=unix_pyh707e725_0 -- libcblas=3.9.0=21_linux64_openblas -- libgomp=13.2.0=h807b86a_5 - glib-tools=2.80.0=hde27a5a_1 - libedit=3.1.20191231=he28a2e2_2 +- msgpack-python=1.0.7=py312h8572e83_0 +- python-dateutil=2.9.0=pyhd8ed1ab_0 - openjpeg=2.5.2=h488ebb8_0 - icu=73.2=h59595ed_0 +- jupyter_core=5.7.2=py312h7900ff3_0 - pcre2=10.43=hcad00b1_0 - aws-c-auth=0.7.16=haed3651_8 +- fonts-conda-forge=1=0 +- aws-c-event-stream=0.4.2=he635cd5_6 +- pip=24.0=pyhd8ed1ab_0 - re2=2023.09.01=h7f4b329_2 - xorg-libxdmcp=1.1.3=h7f98852_0 -- aws-c-common=0.9.14=hd590300_0 -- libutf8proc=2.8.0=h166bdaf_0 -- libcurl=8.6.0=hca28451_0 -- libbrotlicommon=1.1.0=hd590300_1 -- xorg-xf86vidmodeproto=2.3.1=h7f98852_1002 - pillow=10.2.0=py312hf3581a9_0 - libbrotlidec=1.1.0=hd590300_1 - libtiff=4.6.0=h1dd3fc0_3 @@ -102,75 +124,106 @@ dependencies: - azure-core-cpp=1.11.1=h91d86a7_1 - libcrc32c=1.1.2=h9c3ff4c_0 - pyparsing=3.1.2=pyhd8ed1ab_0 +- orc=2.0.0=h1e5e2c1_0 +- libsystemd0=255=h3516f8a_1 +- libgcrypt=1.10.3=hd590300_0 +- libsqlite=3.45.2=h2797004_0 +- libaec=1.1.3=h59595ed_0 - kiwisolver=1.4.5=py312h8572e83_1 - xorg-libsm=1.2.4=h7391055_0 +- jupyter_client=8.6.1=pyhd8ed1ab_0 - pyarrow=15.0.2=py312h176e3d2_1_cpu - tiledb=2.21.1=ha9641ad_1 +- jinja2=3.1.3=pyhd8ed1ab_0 +- libflac=1.4.3=h59595ed_0 - aws-checksums=0.1.18=h4466546_2 +- pickleshare=0.7.5=py_1003 - packaging=24.0=pyhd8ed1ab_0 -- xkeyboard-config=2.41=hd590300_0 -- xorg-libxrender=0.9.11=hd590300_0 - partd=1.4.1=pyhd8ed1ab_0 - aws-c-io=0.14.6=h96cd748_2 +- exceptiongroup=1.2.0=pyhd8ed1ab_2 +- geos=3.12.1=h59595ed_0 +- libxml2=2.12.6=h232c23b_1 - libspatialite=5.1.0=h7bd4643_4 -- keyutils=1.6.1=h166bdaf_0 - font-ttf-inconsolata=3.000=h77eed37_0 - gflags=2.2.2=he1b5a44_1004 +- mpg123=1.32.4=h59595ed_0 +- libparquet=15.0.2=h352af49_1_cpu - lz4=4.3.3=py312h03f37cb_0 -- libgoogle-cloud=2.22.0=h9be4e54_1 -- libbrotlienc=1.1.0=hd590300_1 - xorg-libxau=1.0.11=hd590300_0 - libllvm15=15.0.7=hb3ce162_4 - pytz=2024.1=pyhd8ed1ab_0 - psutil=5.9.8=py312h98912ed_0 +- pyzmq=25.1.2=py312h886d080_0 - xorg-kbproto=1.0.7=h7f98852_1002 - aws-sdk-cpp=1.11.267=hb1af6a8_4 - fsspec=2024.3.1=pyhca7485f_0 - librttopo=1.1.0=h8917695_15 - libsndfile=1.2.2=hc60ed4a_1 - ld_impl_linux-64=2.40=h41732ed_0 +- c-ares=1.27.0=hd590300_0 - yaml=0.2.5=h7f98852_2 - libpq=16.2=h33b98f1_1 - xcb-util=0.4.0=hd590300_1 -- libev=4.33=hd590300_2 -- _libgcc_mutex=0.1=conda_forge - attrs=23.2.0=pyh71513ae_0 -- numcodecs=0.12.1=py312h30efb56_0 -- pandas=2.2.1=py312hfb8ada1_0 - xorg-renderproto=0.11.1=h7f98852_1002 - xorg-xextproto=7.3.0=h0b41bf4_1003 - gst-plugins-base=1.22.9=hfa15dee_1 - libgcc-ng=13.2.0=h807b86a_5 - tomli=2.0.1=pyhd8ed1ab_0 +- parso=0.8.3=pyhd8ed1ab_0 +- keyutils=1.6.1=h166bdaf_0 +- ipython=8.22.2=pyh707e725_0 - toolz=0.12.1=pyhd8ed1ab_0 - libjpeg-turbo=3.0.0=hd590300_1 -- libre2-11=2023.09.01=h5a48ba9_2 +- libclang13=18.1.2=default_h5d6823c_1 - matplotlib-base=3.8.3=py312he5832f3_0 - cloudpickle=3.0.0=pyhd8ed1ab_0 +- alsa-lib=1.2.11=hd590300_1 +- click-plugins=1.1.1=py_0 +- aws-crt-cpp=0.26.4=hba3594f_2 - libpng=1.6.43=h2797004_0 - dask-expr=1.0.5=pyhd8ed1ab_0 - pyarrow-hotfix=0.6=pyhd8ed1ab_0 +- executing=2.0.1=pyhd8ed1ab_0 - cligj=0.7.2=pyhd8ed1ab_1 - pyqt5-sip=12.12.2=py312h30efb56_5 - libarrow-dataset=15.0.2=h59595ed_1_cpu -- libflac=1.4.3=h59595ed_0 -- jinja2=3.1.3=pyhd8ed1ab_0 - mysql-libs=8.3.0=hca2cd23_4 +- zeromq=4.3.5=h59595ed_1 +- spdlog=1.12.0=hd2e6256_2 +- markupsafe=2.1.5=py312h98912ed_0 +- matplotlib-inline=0.1.6=pyhd8ed1ab_0 - libgoogle-cloud-storage=2.22.0=hc7a4891_1 - expat=2.6.2=h59595ed_0 - tzcode=2024a=h3f72095_0 - libiconv=1.17=hd590300_2 - hdf4=4.2.15=h2a13503_7 +- asttokens=2.4.1=pyhd8ed1ab_0 - aws-c-http=0.8.1=hbfc29b2_7 - setuptools=69.2.0=pyhd8ed1ab_0 -- markupsafe=2.1.5=py312h98912ed_0 -- spdlog=1.12.0=hd2e6256_2 -- geotiff=1.7.1=h6b2125f_15 -- locket=1.0.0=pyhd8ed1ab_0 -- fonts-conda-forge=1=0 -- pip=24.0=pyhd8ed1ab_0 -- aws-c-event-stream=0.4.2=he635cd5_6 -- cytoolz=0.12.3=py312h98912ed_0 +- libnetcdf=4.9.2=nompi_h9612171_113 +- urllib3=2.2.1=pyhd8ed1ab_0 +- dask-core=2024.3.1=pyhd8ed1ab_0 +- libbrotlienc=1.1.0=hd590300_1 +- libgoogle-cloud=2.22.0=h9be4e54_1 +- traitlets=5.14.2=pyhd8ed1ab_0 +- _libgcc_mutex=0.1=conda_forge +- libev=4.33=hd590300_2 +- libgfortran-ng=13.2.0=h69a702a_5 +- lcms2=2.16=hb7c19ff_0 +- wheel=0.43.0=pyhd8ed1ab_0 +- decorator=5.1.1=pyhd8ed1ab_0 +- jedi=0.19.1=pyhd8ed1ab_0 +- xorg-libice=1.1.1=hd590300_0 +- libbrotlicommon=1.1.0=hd590300_1 +- platformdirs=4.2.0=pyhd8ed1ab_0 +- xorg-xf86vidmodeproto=2.3.1=h7f98852_1002 +- pyqt=5.15.9=py312h949fe66_5 +- ucx=1.15.0=h11edf95_7 +- llvmlite=0.42.0=py312hb06c811_1 +- xkeyboard-config=2.41=hd590300_0 +- xorg-libxrender=0.9.11=hd590300_0 - brotli-python=1.1.0=py312h30efb56_1 - krb5=1.21.2=h659d440_0 - ply=3.11=py_1 @@ -182,9 +235,8 @@ dependencies: - minizip=4.0.5=h0ab5242_0 - cftime=1.6.3=py312hc7c0aa3_0 - libopus=1.3.1=h7f98852_1 +- wcwidth=0.2.13=pyhd8ed1ab_0 - libwebp-base=1.3.2=hd590300_0 -- click-plugins=1.1.1=py_0 -- alsa-lib=1.2.11=hd590300_1 - nspr=4.35=h27087fc_0 - xarray=2024.2.0=pyhd8ed1ab_0 - libgdal=3.8.4=h7c88fdf_5 @@ -192,21 +244,21 @@ dependencies: - libclang-cpp15=15.0.7=default_h127d8a8_5 - ca-certificates=2024.2.2=hbcca054_0 - freexl=2.0.0=h743c826_0 -- pyshp=2.3.1=pyhd8ed1ab_0 - libllvm18=18.1.2=h2448989_0 - hdf5=1.14.3=nompi_h4f84152_100 - glog=0.7.0=hed5481d_0 - libxkbcommon=1.7.0=h662e7e4_0 - cartopy=0.22.0=py312hfb8ada1_1 +- astropy-iers-data=0.2024.3.25.0.29.50=pyhd8ed1ab_0 - libllvm14=14.0.6=hcd5def8_4 -- libxcb=1.15=h0b41bf4_0 -- libexpat=2.6.2=h59595ed_0 -- pyyaml=6.0.1=py312h98912ed_1 -- font-ttf-source-code-pro=2.038=h77eed37_0 - attr=2.5.1=h166bdaf_1 - sortedcontainers=2.4.0=pyhd8ed1ab_0 - cairo=1.18.0=h3faef2a_0 - tk=8.6.13=noxft_h4845f30_101 +- comm=0.2.2=pyhd8ed1ab_0 +- postgresql=16.2=h82ecc9d_1 +- dask=2024.3.1=pyhd8ed1ab_0 +- libsodium=1.0.18=h36c2ea0_1 - xz=5.2.6=h166bdaf_0 - scipy=1.12.0=py312heda63a1_2 - matplotlib=3.8.3=py312h7900ff3_0 @@ -221,20 +273,21 @@ dependencies: - qt-main=5.15.8=h112747c_20 - xorg-libxext=1.3.4=h0b41bf4_2 - poppler-data=0.4.12=hd8ed1ab_0 -- libgpg-error=1.48=h71f35ed_0 - cfitsio=4.4.0=hbdc6101_0 - libgrpc=1.62.1=h15f2491_0 - xcb-util-keysyms=0.4.0=h8ee46fc_1 +- prompt-toolkit=3.0.42=pyha770c72_0 - zlib=1.2.13=hd590300_5 - libzip=1.10.1=h2629f0a_3 +- numcodecs=0.12.1=py312h30efb56_0 +- pandas=2.2.1=py312hfb8ada1_0 +- ptyprocess=0.7.0=pyhd3deb0d_0 +- astropy=6.0.0=py312hc7c0aa3_0 +- azure-storage-common-cpp=12.5.0=h94269e2_4 - nss=3.98=h1d7d5a4_0 - libgfortran5=13.2.0=ha4646dd_5 - zarr=2.17.1=pyhd8ed1ab_0 - xorg-libx11=1.8.7=h8ee46fc_0 -- postgresql=16.2=h82ecc9d_1 -- dask=2024.3.1=pyhd8ed1ab_0 -- liblapack=3.9.0=21_linux64_openblas -- graphite2=1.3.13=h58526e2_1001 - xcb-util-wm=0.4.1=h8ee46fc_1 - aws-c-mqtt=0.10.3=hffff1cc_2 - libnsl=2.0.1=hd590300_0 @@ -245,41 +298,19 @@ dependencies: - pixman=0.43.2=h59595ed_0 - munkres=1.1.4=pyh9f0ad1d_0 - libogg=1.3.4=h7f98852_1 -- aws-crt-cpp=0.26.4=h335f1a1_1 - libkml=1.3.0=h01aab08_1018 - json-c=0.17=h7ab15ed_0 - importlib-metadata=7.1.0=pyha770c72_0 - freetype=2.12.1=h267a509_2 - importlib_metadata=7.1.0=hd8ed1ab_0 - aws-c-compression=0.2.18=h4466546_2 -- azure-storage-common-cpp=12.5.0=h94269e2_4 - libarrow-flight-sql=15.0.2=h757c851_1_cpu - sip=6.7.12=py312h30efb56_0 -- cycler=0.12.1=pyhd8ed1ab_0 - pyhdf=0.11.3=py312had763d5_2 -- wheel=0.43.0=pyhd8ed1ab_0 -- libarrow-flight=15.0.2=hc6145d9_1_cpu - brotli-bin=1.1.0=hd590300_1 - contourpy=1.2.0=py312h8572e83_0 - aws-c-cal=0.6.10=ha9bf9b1_2 - gettext=0.21.1=h27087fc_0 - python_abi=3.12=4_cp312 - fontconfig=2.14.2=h14ed4e7_0 -- libaec=1.1.3=h59595ed_0 -- libsqlite=3.45.2=h2797004_0 -- lame=3.100=h166bdaf_1003 -- python-tzdata=2024.1=pyhd8ed1ab_0 -- tblib=3.0.0=pyhd8ed1ab_0 -- libllvm16=16.0.6=hb3ce162_3 -- libnghttp2=1.58.0=h47da74e_1 -- libglib=2.80.0=hf2295e7_1 -- affine=2.4.0=pyhd8ed1ab_0 -- xyzservices=2023.10.1=pyhd8ed1ab_0 -- pulseaudio-client=17.0=hb77b528_0 -- fonts-conda-ecosystem=1=0 -- lerc=4.0.0=h27087fc_0 -- python-dateutil=2.9.0=pyhd8ed1ab_0 -- msgpack-python=1.0.7=py312h8572e83_0 -- giflib=5.2.1=h0b41bf4_3 -- sqlite=3.45.2=h2c6b66d_0 diff --git a/pythonenv/setup-pythonenv.sh b/pythonenv/setup-pythonenv.sh index 5b72703ea6f2568bb3785d3850df824d251651bb..7a4b76578c5aec9f010118402cca224b4012a02e 100755 --- a/pythonenv/setup-pythonenv.sh +++ b/pythonenv/setup-pythonenv.sh @@ -3,4 +3,11 @@ module load micromamba micromamba create -n cloudsat-calipso micromamba install -c conda-forge -n cloudsat-calipso xarray \ rioxarray \ numpy \ matplotlib \ cartopy \ pyhdf \ netcdf4 -micromamba install -c conda-forge -n cloudsat-calipso dask \ zarr \ numba \ No newline at end of file +micromamba install -c conda-forge -n cloudsat-calipso dask \ zarr \ numba \ astropy + +# create Jupyter kernel and make available +micromamba install -c conda-forge -n cloudsat-calipso ipykernel +~/micromamba/envs/cloudsat-calipso/bin/python3 -m ipykernel install --user --name=cloudsat-calipso + +# export evironment setup to env.txt +micromamba env export -p ~/micromamba/envs/cloudsat-calipso/ > env.txt