Beispiel #1
0
 def __setitem__(self, k, extent):
     group = self.f.create_group(k)
     g = DatasetManager(group)
     lats = mt.Coordinates(mt.latitude, extent.latitudes.to_degrees())
     lons = mt.Coordinates(mt.longitude, extent.longitudes.to_degrees())
     cs = mt.CoordinateSet([lats, lons])
     v = mt.Variable(
         'area', 'm2',
         dict(long_name='Metres squared covered by cell',
              cell_size=extent.cell_size.to_degrees(),
              lat_orient=extent.parent_ref.lat_orient))
     mapped_var = mt.MappedVariable(v, cs, np.float64)
     ncv = g.create_variable(mapped_var)
     ncv[...] = extent.areas.data
Beispiel #2
0
    def __init__(self,pattern,dimension,dim_func,variable=None,preload=False):

        files = glob(pattern)
        files.sort()

        if len(files) == 0:
            raise Exception("No files matching pattern", pattern)

        layer_dim = [dim_func(f) for f in files]

        self.variable = variable

        #import h5py
        #self.fh = h5py.File(filename,'r')

        self.file_layers = [_spatial_file_loader(filename,variable) for filename in files]

        self.ref_fh = self.file_layers[0]

        #lats,lons = self.fh['dimensions/latitude'][...], self.fh['dimensions/longitude'][...]
        self._flat_cs = self.ref_fh.get_coords()

        self.cs = mt.CoordinateSet((mt.Coordinates(dimension,layer_dim),self._flat_cs['latitude'],self._flat_cs['longitude']))

        if preload:
            self.v =[fh.data[...] for fh in self.file_layers]
        else:
            self.v = [fh.data for fh in self.file_layers]
        self.dtype = self.v[0].dtype

        self._shaper = _3shaper
Beispiel #3
0
 def get_coords(self):
     return mt.CoordinateSet([
         mt.Coordinates(mt.get_dimension(k, '', self._dim_handles[k].dtype),
                        self._dim_handles[k][...]) for k in self.dims
     ])
Beispiel #4
0
 def get_coords(self):
     return mt.CoordinateSet([mt.Coordinates(mt.get_dimension(k),self.fh['dimensions'][k][...]) for k in self.dims])