diff --git a/README.md b/README.md index a05a5b78b97bff805f76a4c175136325acb174dc..a71280e865d5d721b63d0d0fcf2d007c778dc5f2 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,24 @@ # Cloudsat Calipso heating rates 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?): + +``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. + + +Information on the dataset is available +at [https://www.cloudsat.cira.colostate.edu/data-products/2b-flxhr-lidar](https://www.cloudsat.cira.colostate.edu/data-products/2b-flxhr-lidar). + +To read in and work with the HDF4 files, it is helpful to create a dedicated python environment. On Jet, this can be done using micromamba. See the directory ``pythonenv``. + +**Directory structure** + +* ethz: plots of cloud-radiative heating for a tropical cyclone +* pythonenv: create dedicated python environment + diff --git a/2b-flxhr-lidar_hurrican-bill-aug2009.ipynb b/ethz/2b-flxhr-lidar_hurrican-bill-aug2009.ipynb similarity index 100% rename from 2b-flxhr-lidar_hurrican-bill-aug2009.ipynb rename to ethz/2b-flxhr-lidar_hurrican-bill-aug2009.ipynb diff --git a/allsky_radiativeheating.pdf b/ethz/allsky_radiativeheating.pdf similarity index 100% rename from allsky_radiativeheating.pdf rename to ethz/allsky_radiativeheating.pdf diff --git a/allsky_radiativeheating.png b/ethz/allsky_radiativeheating.png similarity index 100% rename from allsky_radiativeheating.png rename to ethz/allsky_radiativeheating.png diff --git a/clearsky_radiativeheating.pdf b/ethz/clearsky_radiativeheating.pdf similarity index 100% rename from clearsky_radiativeheating.pdf rename to ethz/clearsky_radiativeheating.pdf diff --git a/clearsky_radiativeheating.png b/ethz/clearsky_radiativeheating.png similarity index 100% rename from clearsky_radiativeheating.png rename to ethz/clearsky_radiativeheating.png diff --git a/cloudmask.pdf b/ethz/cloudmask.pdf similarity index 100% rename from cloudmask.pdf rename to ethz/cloudmask.pdf diff --git a/cloudmask.png b/ethz/cloudmask.png similarity index 100% rename from cloudmask.png rename to ethz/cloudmask.png diff --git a/crh_radiativeheating.pdf b/ethz/crh_radiativeheating.pdf similarity index 100% rename from crh_radiativeheating.pdf rename to ethz/crh_radiativeheating.pdf diff --git a/crh_radiativeheating.png b/ethz/crh_radiativeheating.png similarity index 100% rename from crh_radiativeheating.png rename to ethz/crh_radiativeheating.png diff --git a/pythonenv/env.txt b/pythonenv/env.txt new file mode 100644 index 0000000000000000000000000000000000000000..0106588a221d7459c71a8a28d24f02b7dfd08bfd --- /dev/null +++ b/pythonenv/env.txt @@ -0,0 +1,285 @@ +name: cloudsat-calipso +channels: +- https://conda.anaconda.org/conda-forge +dependencies: +- poppler=24.03.0=h590f24d_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 +- 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 +- 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 +- 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 +- libvorbis=1.3.7=h9c3ff4c_0 +- pyproj=3.6.1=py312h38f1c37_5 +- 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 +- numpy=1.26.4=py312heda63a1_0 +- fasteners=0.17.3=pyhd8ed1ab_0 +- tornado=6.4=py312h98912ed_0 +- libstdcxx-ng=13.2.0=h7e041cc_5 +- _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 +- 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 +- libarrow-gandiva=15.0.2=hb016d2e_1_cpu +- xorg-xproto=7.0.31=h7f98852_1007 +- libarrow-substrait=15.0.2=h757c851_1_cpu +- c-ares=1.27.0=hd590300_0 +- 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 +- openjpeg=2.5.2=h488ebb8_0 +- icu=73.2=h59595ed_0 +- pcre2=10.43=hcad00b1_0 +- aws-c-auth=0.7.16=haed3651_8 +- 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 +- libnl=3.9.0=hd590300_0 +- glib=2.80.0=hf2295e7_1 +- azure-core-cpp=1.11.1=h91d86a7_1 +- libcrc32c=1.1.2=h9c3ff4c_0 +- pyparsing=3.1.2=pyhd8ed1ab_0 +- kiwisolver=1.4.5=py312h8572e83_1 +- xorg-libsm=1.2.4=h7391055_0 +- pyarrow=15.0.2=py312h176e3d2_1_cpu +- tiledb=2.21.1=ha9641ad_1 +- aws-checksums=0.1.18=h4466546_2 +- 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 +- 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 +- 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 +- 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 +- 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 +- toolz=0.12.1=pyhd8ed1ab_0 +- libjpeg-turbo=3.0.0=hd590300_1 +- libre2-11=2023.09.01=h5a48ba9_2 +- matplotlib-base=3.8.3=py312he5832f3_0 +- cloudpickle=3.0.0=pyhd8ed1ab_0 +- libpng=1.6.43=h2797004_0 +- dask-expr=1.0.5=pyhd8ed1ab_0 +- pyarrow-hotfix=0.6=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 +- 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 +- 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 +- brotli-python=1.1.0=py312h30efb56_1 +- krb5=1.21.2=h659d440_0 +- ply=3.11=py_1 +- snappy=1.1.10=h9fff704_0 +- libcap=2.69=h0f662aa_0 +- libevent=2.1.12=hf998b51_1 +- libarrow-acero=15.0.2=h59595ed_1_cpu +- xerces-c=3.2.5=hac6953d_0 +- minizip=4.0.5=h0ab5242_0 +- cftime=1.6.3=py312hc7c0aa3_0 +- libopus=1.3.1=h7f98852_1 +- 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 +- bzip2=1.0.8=hd590300_5 +- 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 +- 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 +- xz=5.2.6=h166bdaf_0 +- scipy=1.12.0=py312heda63a1_2 +- matplotlib=3.8.3=py312h7900ff3_0 +- libdeflate=1.20=hd590300_0 +- zipp=3.17.0=pyhd8ed1ab_0 +- dbus=1.13.6=h5008d03_3 +- zict=3.0.0=pyhd8ed1ab_0 +- xcb-util-renderutil=0.3.9=hd590300_1 +- zstd=1.5.5=hfc55251_0 +- asciitree=0.3.3=py_2 +- lzo=2.10=h516909a_1000 +- 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 +- zlib=1.2.13=hd590300_5 +- libzip=1.10.1=h2629f0a_3 +- 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 +- blosc=1.21.5=h0f2a231_0 +- libblas=3.9.0=21_linux64_openblas +- netcdf4=1.6.5=nompi_py312h26027e0_100 +- tzdata=2024a=h0c530f3_0 +- 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 new file mode 100755 index 0000000000000000000000000000000000000000..5b72703ea6f2568bb3785d3850df824d251651bb --- /dev/null +++ b/pythonenv/setup-pythonenv.sh @@ -0,0 +1,6 @@ +# create environment on IMG Jet using micromamba + +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