From feed4e7beb3bee2540c47ace7b141c29c4ea6adc Mon Sep 17 00:00:00 2001
From: "voigta80 (Aiko Voigt)" <aiko.voigt@univie.ac.at>
Date: Thu, 17 Oct 2024 00:47:09 +0200
Subject: [PATCH] Adds python kernel for srvx1 and first era5 download script

---
 .gitignore                           |  1 +
 era5-download/era5-download.py       | 49 ++++++++++++++++++++++++++++
 python-kernel/setup-python-kernel.sh | 13 ++++----
 3 files changed, 57 insertions(+), 6 deletions(-)
 create mode 100644 .gitignore
 create mode 100644 era5-download/era5-download.py
 mode change 100644 => 100755 python-kernel/setup-python-kernel.sh

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..c0fc44d
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+*/.ipynb_checkpoints/
diff --git a/era5-download/era5-download.py b/era5-download/era5-download.py
new file mode 100644
index 0000000..f34f017
--- /dev/null
+++ b/era5-download/era5-download.py
@@ -0,0 +1,49 @@
+# call with:
+# /srvfs/home/avoigt/micromamba/envs/intro-comp-meteo-ex-w2024/bin/python3.10 era5-download.py
+
+import xarray as xr
+import cdsapi
+
+import cdsapi
+
+dataset = "reanalysis-era5-single-levels"
+request = {
+    "product_type": ["reanalysis"],
+    "variable": [
+        "10m_u_component_of_wind",
+        "10m_v_component_of_wind",
+        "2m_temperature",
+        "surface_solar_radiation_downward_clear_sky",
+        "surface_solar_radiation_downwards"
+    ],
+    "year": ["1950"],
+    "month": ["01"],
+    "day": [
+        "01", "02", "03",
+        "04", "05", "06",
+        "07", "08", "09",
+        "10", "11", "12",
+        "13", "14", "15",
+        "16", "17", "18",
+        "19", "20", "21",
+        "22", "23", "24",
+        "25", "26", "27",
+        "28", "29", "30",
+        "31"
+    ],
+    "time": [
+        "00:00", "01:00", "02:00",
+        "03:00", "04:00", "05:00",
+        "06:00", "07:00", "08:00",
+        "09:00", "10:00", "11:00",
+        "12:00", "13:00", "14:00",
+        "15:00", "16:00", "17:00",
+        "18:00", "19:00", "20:00",
+        "21:00", "22:00", "23:00"
+    ],
+    "data_format": "netcdf",
+    "download_format": "unarchived"
+}
+
+client = cdsapi.Client()
+client.retrieve(dataset, request).download("/srvfs/scratch/avoigt/msc-intro-computational-meteorology-exercises-w2024/era5-1950-01.nc")
\ No newline at end of file
diff --git a/python-kernel/setup-python-kernel.sh b/python-kernel/setup-python-kernel.sh
old mode 100644
new mode 100755
index e67826b..6d2a734
--- a/python-kernel/setup-python-kernel.sh
+++ b/python-kernel/setup-python-kernel.sh
@@ -1,19 +1,20 @@
+# note: 
+# 1. cdsapi requires cgi, which was removed from python in python3.11; I am therefore specifying a lower python version
+# 2. I also found that I need to use numpy1 and not the new numpy2, which came out in summer 2024
+
 # move to SRV home directory
 cd /srvfs/home/avoigt
 
-KNAME="intro-comp-meteo-ex-w2024"  # name of pyhton kernel
+KNAME="intro-comp-meteo-ex-w2024"  # name of python kernel
 ROOTPREFIX="/srvfs/home/avoigt/micromamba"
 
 module load micromamba
 micromamba create -n $KNAME -r $ROOTPREFIX
-micromamba install -c conda-forge -n $KNAME -r $ROOTPREFIX xarray \ pandas \ numpy \ matplotlib \ cartopy \ netcdf4
-micromamba install -c conda-forge -n $KNAME -r $ROOTPREFIX dask \ zarr 
-micromamba install -c conda-forge -n $KNAME -r $ROOTPREFIX cdsapi
+micromamba install -c conda-forge -n $KNAME -r $ROOTPREFIX python=3.10 \ pandas \ numpy=1.26.4 \ matplotlib \ cartopy \ netcdf4 \ xarray \ dask \ zarr \ cdsapi \ ipykernel
 
 # create Jupyter kernel and make available
-micromamba install -c conda-forge -n $KNAME -r $ROOTPREFIX ipykernel
 ${ROOTPREFIX}/envs/${KNAME}/bin/python3 -m ipykernel install --user --name=$KNAME
 
-# export evironment setup to env.txt
+# export environment setup to env.txt
 micromamba env export -p ${ROOTPREFIX}/envs/${KNAME}/ > env.txt
 
-- 
GitLab