-
Notifications
You must be signed in to change notification settings - Fork 0
/
aws.py
37 lines (27 loc) · 1.49 KB
/
aws.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#! /usr/bin/python2.7
# vim: tabstop=4 expandtab
import logging
from cis.data_io.products.AProduct import AProduct
from cis.data_io.netcdf import read_many_files_individually, get_metadata
class aws(AProduct):
def get_file_signature(self):
return [r'aws*\.nc']
def create_coords(self, filenames, usr_variable=None):
from cis.data_io.Coord import Coord, CoordList
from cis.data_io.ungridded_data import UngriddedCoordinates
from cis.exceptions import InvalidVariableError
variables = [("longitude", "x"), ("latitude", "y"), ("altitude", "z"), ("time", "t"), ("relative_humidity", "RH"), ("surface_air_pressure" , "Pa") , ("air_temprature" , "K") , ("wind_speed") , ("Wind Diretion"), ("rainfall_rate") ]
logging.info("Listing coordinates: " + str(variables))
coords = CoordList()
for variable in variables:
try:
var_data = read_many_files_individually(filenames,variable[0])[variable[0]]
coords.append(Coord(var_data, get_metadata(var_data[0]),axis=variable[1]))
except InvalidVariableError:
pass
return UngriddedCoordinates(coords)
def create_data_object(self, filenames, variable):
from cis.data_io.ungridded_data import UngriddedData
usr_var_data = read_many_files_individually(filenames,variable)[variable]
coords = self.create_coords(filename)
return UngriddedData(usr_var_data, get_metadata(usr_var_data[0]),coords)