Skip to content

Commit a4bc71f

Browse files
committedAug 24, 2019
ADD: Data Processing Update
1 parent ef419f8 commit a4bc71f

16 files changed

+270
-139
lines changed
 

‎data_exploration/python_data_handling.ipynb

+13-4
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,10 @@
4040
"source": [
4141
"from netCDF4 import Dataset\n",
4242
"# Define directory where interpolated files are stored.\n",
43-
"DATA_DIR = '/project/meteo/w2w/C7/ppnn_data/' # At LMU\n",
43+
"DATA_DIR = '/data/gaojinghan/EC_esemble/temperature2m/' # At LMU\n",
4444
"# DATA_DIR = '/Users/stephanrasp/repositories/ppnn/data/' # Mac\n",
4545
"# Define file name\n",
46-
"fn = 'data_interpolated.nc'"
46+
"fn = 'MD_ECMF_PD_temperature2m_IT_2019041600_FH_132_VT_2019042112.nc'"
4747
]
4848
},
4949
{
@@ -55,7 +55,7 @@
5555
"outputs": [],
5656
"source": [
5757
"# Open NetCDF rootgroup \n",
58-
"rg = Dataset(DATA_DIR + 'data_interpolated.nc')"
58+
"rg = Dataset(DATA_DIR + fn)"
5959
]
6060
},
6161
{
@@ -1018,8 +1018,17 @@
10181018
"toc_position": {},
10191019
"toc_section_display": "block",
10201020
"toc_window_display": false
1021+
},
1022+
"pycharm": {
1023+
"stem_cell": {
1024+
"cell_type": "raw",
1025+
"source": [],
1026+
"metadata": {
1027+
"collapsed": false
1028+
}
1029+
}
10211030
}
10221031
},
10231032
"nbformat": 4,
10241033
"nbformat_minor": 2
1025-
}
1034+
}

‎data_retrieval/forecasts/retrieve_ecmwf_auxiliary_geo_data.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,12 @@
2525
server = ECMWFDataServer()
2626

2727
def retrieve_tigge_data():
28-
date1 = [str(i) + "-01-01" for i in xrange(2007,2017)]
29-
date2 = [str(i) + "-12-31" for i in xrange(2007,2017)]
28+
date1 = [str(i) + "-01-01" for i in range(2007,2017)]
29+
date2 = [str(i) + "-12-31" for i in range(2007,2017)]
3030
dates = date1
3131
for j in range(0,10):
3232
dates[j] = date1[j] + "/to/" + date2[j]
33-
data_dir = "/media/sebastian/Elements/Postproc_NN/data/forecasts/auxiliary/"
33+
data_dir = "/home/gaojinghan/ppnn/data/forecasts/auxiliary/"
3434
for date in dates:
3535
target = data_dir + "ecmwf_aux_geo_" + date[:4] + ".grib"
3636
tigge_request(date, target)
@@ -56,6 +56,6 @@ def tigge_request(date, target):
5656
})
5757

5858
if __name__ == '__main__':
59-
mem_numbers = ''.join([''.join([str(i) + "/" for i in xrange(1,50)]),'50'])
59+
mem_numbers = ''.join([''.join([str(i) + "/" for i in range(1,50)]),'50'])
6060
retrieve_tigge_data()
6161

‎data_retrieval/forecasts/retrieve_ecmwf_auxiliary_pl500_data.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,12 @@
2525
server = ECMWFDataServer()
2626

2727
def retrieve_tigge_data():
28-
date1 = [str(i) + "-01-01" for i in xrange(2007,2017)]
29-
date2 = [str(i) + "-12-31" for i in xrange(2007,2017)]
28+
date1 = [str(i) + "-01-01" for i in range(2007,2017)]
29+
date2 = [str(i) + "-12-31" for i in range(2007,2017)]
3030
dates = date1
3131
for j in range(0,10):
3232
dates[j] = date1[j] + "/to/" + date2[j]
33-
data_dir = "/media/sebastian/Elements/Postproc_NN/data/forecasts/auxiliary/"
33+
data_dir = "/home/gaojinghan/ppnn/data/forecasts/auxiliary/"
3434
for date in dates:
3535
target = data_dir + "ecmwf_aux_pl500_" + date[:4] + ".grib"
3636
tigge_request(date, target)
@@ -58,5 +58,5 @@ def tigge_request(date, target):
5858
})
5959

6060
if __name__ == '__main__':
61-
mem_numbers = ''.join([''.join([str(i) + "/" for i in xrange(1,50)]),'50'])
61+
mem_numbers = ''.join([''.join([str(i) + "/" for i in range(1,50)]),'50'])
6262
retrieve_tigge_data()

‎data_retrieval/forecasts/retrieve_ecmwf_auxiliary_pl850_data.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,12 @@
2525
server = ECMWFDataServer()
2626

2727
def retrieve_tigge_data():
28-
date1 = [str(i) + "-01-01" for i in xrange(2016,2017)]
29-
date2 = [str(i) + "-12-31" for i in xrange(2016,2017)]
28+
date1 = [str(i) + "-01-01" for i in range(2016,2017)]
29+
date2 = [str(i) + "-12-31" for i in range(2016,2017)]
3030
dates = date1
31-
for j in range(0,10):
31+
for j in range(0,1):
3232
dates[j] = date1[j] + "/to/" + date2[j]
33-
data_dir = "/media/sebastian/Elements/Postproc_NN/data/forecasts/auxiliary/"
33+
data_dir = "/home/gaojinghan/ppnn/data/forecasts/auxiliary/"
3434
for date in dates:
3535
target = data_dir + "ecmwf_aux_pl850_" + date[:4] + ".grib"
3636
tigge_request(date, target)
@@ -58,5 +58,5 @@ def tigge_request(date, target):
5858
})
5959

6060
if __name__ == '__main__':
61-
mem_numbers = ''.join([''.join([str(i) + "/" for i in xrange(1,50)]),'50'])
61+
mem_numbers = ''.join([''.join([str(i) + "/" for i in range(1,50)]),'50'])
6262
retrieve_tigge_data()

‎data_retrieval/forecasts/retrieve_ecmwf_auxiliary_surface_data.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,12 @@
2525
server = ECMWFDataServer()
2626

2727
def retrieve_tigge_data():
28-
date1 = [str(i) + "-01-01" for i in xrange(2007,2017)]
29-
date2 = [str(i) + "-12-31" for i in xrange(2007,2017)]
28+
date1 = [str(i) + "-01-01" for i in range(2007,2017)]
29+
date2 = [str(i) + "-12-31" for i in range(2007,2017)]
3030
dates = date1
3131
for j in range(0,10):
3232
dates[j] = date1[j] + "/to/" + date2[j]
33-
data_dir = "/media/sebastian/Elements/Postproc_NN/data/forecasts/auxiliary/"
33+
data_dir = "/home/gaojinghan/ppnn/data/forecasts/auxiliary/"
3434
for date in dates:
3535
target = data_dir + "ecmwf_aux_surface_" + date[:4] + ".grib"
3636
tigge_request(date, target)
@@ -57,5 +57,5 @@ def tigge_request(date, target):
5757
})
5858

5959
if __name__ == '__main__':
60-
mem_numbers = ''.join([''.join([str(i) + "/" for i in xrange(1,50)]),'50'])
60+
mem_numbers = ''.join([''.join([str(i) + "/" for i in range(1,50)]),'50'])
6161
retrieve_tigge_data()

‎data_retrieval/forecasts/retrieve_ecmwf_auxiliary_surface_data_more.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,12 @@
2828
server = ECMWFDataServer()
2929

3030
def retrieve_tigge_data():
31-
date1 = [str(i) + "-01-01" for i in xrange(2014,2017)]
32-
date2 = [str(i) + "-12-31" for i in xrange(2014,2017)]
31+
date1 = [str(i) + "-01-01" for i in range(2014,2017)]
32+
date2 = [str(i) + "-12-31" for i in range(2014,2017)]
3333
dates = date1
34-
for j in range(0,10):
34+
for j in range(0,3):
3535
dates[j] = date1[j] + "/to/" + date2[j]
36-
data_dir = "/media/sebastian/Elements/Postproc_NN/data/forecasts/auxiliary/"
36+
data_dir = "/home/gaojinghan/ppnn/data/forecasts/auxiliary/"
3737
for date in dates:
3838
target = data_dir + "ecmwf_aux_surface_more_" + date[:4] + ".grib"
3939
tigge_request(date, target)
@@ -60,5 +60,5 @@ def tigge_request(date, target):
6060
})
6161

6262
if __name__ == '__main__':
63-
mem_numbers = ''.join([''.join([str(i) + "/" for i in xrange(1,50)]),'50'])
63+
mem_numbers = ''.join([''.join([str(i) + "/" for i in range(1,50)]),'50'])
6464
retrieve_tigge_data()

‎data_retrieval/forecasts/retrieve_ecmwf_auxiliary_surface_data_more_rest.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,12 @@
2828
server = ECMWFDataServer()
2929

3030
def retrieve_tigge_data():
31-
date1 = [str(i) + "-01-01" for i in xrange(2016,2017)]
32-
date2 = [str(i) + "-12-31" for i in xrange(2016,2017)]
31+
date1 = [str(i) + "-01-01" for i in range(2016,2017)]
32+
date2 = [str(i) + "-12-31" for i in range(2016,2017)]
3333
dates = date1
3434
for j in range(0,1):
3535
dates[j] = date1[j] + "/to/" + date2[j]
36-
data_dir = "/media/sebastian/Elements/Postproc_NN/data/forecasts/auxiliary/"
36+
data_dir = "/home/gaojinghan/ppnn/data/forecasts/auxiliary/"
3737
for date in dates:
3838
target = data_dir + "ecmwf_aux_surface_more_" + date[:4] + ".grib"
3939
tigge_request(date, target)
@@ -60,5 +60,5 @@ def tigge_request(date, target):
6060
})
6161

6262
if __name__ == '__main__':
63-
mem_numbers = ''.join([''.join([str(i) + "/" for i in xrange(1,50)]),'50'])
63+
mem_numbers = ''.join([''.join([str(i) + "/" for i in range(1,50)]),'50'])
6464
retrieve_tigge_data()
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,57 @@
1-
# -*- coding: utf-8 -*-
2-
"""
3-
Created on Thu Aug 24 10:44:53 2017
4-
5-
@author: sebastian
6-
"""
7-
8-
## retrieve ECMWF forecast data, based on example from
9-
## https://software.ecmwf.int/wiki/display/WEBAPI/TIGGE+retrieval+efficiency
10-
11-
# ECMWF forecasts from TIGGE data set:
12-
# T2M fields
13-
# all available full years, 2007-2016
14-
# init time 00 UTC
15-
# 36/48 h ahead forecasts (= valid at 12 UTC and 00 UTC)
16-
# 0.5° resolution
17-
# area: -10E, 30E; 30N, 70N (large part of Europe centered around Germany)
18-
19-
#!/usr/bin/env python
20-
from ecmwfapi import ECMWFDataServer
21-
server = ECMWFDataServer()
22-
23-
def retrieve_tigge_data():
24-
date1 = [str(i) + "-01-01" for i in xrange(2007,2017)]
25-
date2 = [str(i) + "-12-31" for i in xrange(2007,2017)]
26-
dates = date1
27-
for j in range(0,10):
28-
dates[j] = date1[j] + "/to/" + date2[j]
29-
data_dir = "/media/sebastian/Elements/Postproc_NN/data/forecasts/"
30-
for date in dates:
31-
target = data_dir + "ecmwf_t2m_" + date[:4] + ".grib"
32-
tigge_request(date, target)
33-
34-
def tigge_request(date, target):
35-
'''
36-
A TIGGE request for ECMWF perturbed forecasts of T2M.
37-
'''
38-
server.retrieve({
39-
'origin' : "ecmf",
40-
'levtype' : "sfc",
41-
'number' : mem_numbers,
42-
'expver' : "prod",
43-
'dataset' : "tigge",
44-
'step' : "36/48",
45-
'grid' : "0.5/0.5",
46-
'param' : "167",
47-
'area' : "70/-10/30/30",
48-
'time' : "00",
49-
'date' : date,
50-
'type' : "pf",
51-
'class' : "ti",
52-
'target' : target,
53-
})
54-
55-
if __name__ == '__main__':
56-
mem_numbers = ''.join([''.join([str(i) + "/" for i in xrange(1,50)]),'50'])
1+
# -*- coding: utf-8 -*-
2+
"""
3+
Created on Thu Aug 24 10:44:53 2017
4+
5+
@author: sebastian
6+
"""
7+
8+
## retrieve ECMWF forecast data, based on example from
9+
## https://software.ecmwf.int/wiki/display/WEBAPI/TIGGE+retrieval+efficiency
10+
11+
# ECMWF forecasts from TIGGE data set:
12+
# T2M fields
13+
# all available full years, 2007-2016
14+
# init time 00 UTC
15+
# 36/48 h ahead forecasts (= valid at 12 UTC and 00 UTC)
16+
# 0.5° resolution
17+
# area: -10E, 30E; 30N, 70N (large part of Europe centered around Germany)
18+
19+
#!/usr/bin/env python
20+
from ecmwfapi import ECMWFDataServer
21+
server = ECMWFDataServer()
22+
23+
def retrieve_tigge_data():
24+
date1 = [str(i) + "-01-01" for i in range(2007,2017)]
25+
date2 = [str(i) + "-12-31" for i in range(2007,2017)]
26+
dates = date1
27+
for j in range(0,10):
28+
dates[j] = date1[j] + "/to/" + date2[j]
29+
data_dir = "/home/gaojinghan/ppnn/data/forecasts/"
30+
for date in dates:
31+
target = data_dir + "ecmwf_t2m_" + date[:4] + ".grib"
32+
tigge_request(date, target)
33+
34+
def tigge_request(date, target):
35+
'''
36+
A TIGGE request for ECMWF perturbed forecasts of T2M.
37+
'''
38+
server.retrieve({
39+
'origin' : "ecmf",
40+
'levtype' : "sfc",
41+
'number' : mem_numbers,
42+
'expver' : "prod",
43+
'dataset' : "tigge",
44+
'step' : "36/48",
45+
'grid' : "0.5/0.5",
46+
'param' : "167",
47+
'area' : "70/-10/30/30",
48+
'time' : "00",
49+
'date' : date,
50+
'type' : "pf",
51+
'class' : "ti",
52+
'target' : target,
53+
})
54+
55+
if __name__ == '__main__':
56+
mem_numbers = ''.join([''.join([str(i) + "/" for i in range(1,50)]),'50'])
5757
retrieve_tigge_data()

‎data_retrieval/instructions.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,5 @@ All data is available publicly from the TIGGE archives at ECMWF (requires regist
2424
- `geo` (to download land-sea mask and orography information)
2525
- `surface` (to download cloud cover, surface pressure and CAPE on the surface level)
2626
- `pl500` (to download u,v wind components and geopotential height at pressure level 500 hPa)
27-
- `pl850` (to download u,v wind components and specific humidity at pressure level 850 hPa)
27+
- `pl850` (to download u,v wind components and specific humidity at pressure level 850 hPa)
28+

‎data_retrieval/observations/getData_temp.R

+3-7
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,15 @@
22

33
## note the terms of use: ftp://ftp-cdc.dwd.de/pub/CDC/Terms_of_use.pdf
44

5-
library(RCurl)
6-
library(magrittr)
7-
library(stringr)
8-
95
#### paths ####
10-
myPath <- "/path/to/data/"
6+
myPath <- "/home/gaojinghan/ppnn/data/observation/"
117

128
# download folder
139
dlPath <-
14-
paste0(myPath, "data_files/download/")
10+
paste0(myPath, "download/")
1511
# data folder
1612
dataPath <-
17-
paste0(myPath, "data_files/")
13+
paste0(myPath, "")
1814
# download path
1915
dwdPath <-
2016
"ftp://ftp-cdc.dwd.de/pub/CDC/observations_germany/climate/hourly/air_temperature/historical/"

‎data_utils/config.py

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
resolution = 0.5
2+
max_north = 55.0
3+
min_north = 0.5
4+
max_east = 140.0
5+
min_east = 70.5
6+
latitude = [min_north + lat * resolution for lat in range(int((max_north - min_north) / resolution) + 1)]
7+
longitude = [min_east + lon * resolution for lon in range(int((max_east - min_east) / resolution) + 1)]
8+
storage_dir = "/data/gaojinghan/EC_ensemble/manipulated/"
9+
observation_raw_dir = "/data/gaojinghan/EC_ensemble/TMP/2M_ABOVE_GROUND/"
10+
forecast_raw_dir = "/data/gaojinghan/EC_ensemble/"

0 commit comments

Comments
 (0)