mirror of
https://github.com/meteoinfo/MeteoInfo.git
synced 2025-12-08 20:36:05 +00:00
make variable name be valid
This commit is contained in:
parent
366ead6ab4
commit
78f0253756
@ -1,14 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<MeteoInfo File="milconfig.xml" Type="configurefile">
|
||||
<Path OpenPath="D:\Working\MIScript\Jython\mis\common_math\stats">
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\io\geotiff"/>
|
||||
<Path OpenPath="D:\Working\MIScript\Jython\mis\io\burf">
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\io\grib"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\io\hdf"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\io\json"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\io\matlab"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\io\micaps"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\io\radar"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\io"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\io\netcdf"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\io\grads"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\dataframe"/>
|
||||
@ -16,17 +14,21 @@
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\common_math"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\common_math\stats"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\io"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\io\burf"/>
|
||||
</Path>
|
||||
<File>
|
||||
<OpenedFiles>
|
||||
<OpenedFile File="D:\Working\MIScript\Jython\mis\common_math\stats\ttest_ind_precipitation_anomaly_2.py"/>
|
||||
<OpenedFile File="D:\Working\MIScript\Jython\mis\io\netcdf\sht_coords.py"/>
|
||||
<OpenedFile File="D:\Working\MIScript\Jython\mis\common_math\stats\ttest_ind_precipitation_anomaly_1.py"/>
|
||||
<OpenedFile File="D:\Working\MIScript\Jython\mis\io\burf\add_cma_lookup.py"/>
|
||||
<OpenedFile File="D:\Working\MIScript\Jython\mis\io\burf\bufr_cma_t_upar_1.py"/>
|
||||
<OpenedFile File="D:\Working\MIScript\Jython\mis\io\burf\bufr_gdas_8.py"/>
|
||||
</OpenedFiles>
|
||||
<RecentFiles>
|
||||
<RecentFile File="D:\Working\MIScript\Jython\mis\common_math\stats\ttest_ind_precipitation_anomaly_2.py"/>
|
||||
<RecentFile File="D:\Working\MIScript\Jython\mis\io\netcdf\sht_coords.py"/>
|
||||
<RecentFile File="D:\Working\MIScript\Jython\mis\common_math\stats\ttest_ind_precipitation_anomaly_1.py"/>
|
||||
<RecentFile File="D:\Working\MIScript\Jython\mis\io\burf\add_cma_lookup.py"/>
|
||||
<RecentFile File="D:\Working\MIScript\Jython\mis\io\burf\bufr_cma_t_upar_1.py"/>
|
||||
<RecentFile File="D:\Working\MIScript\Jython\mis\io\burf\bufr_gdas_8.py"/>
|
||||
</RecentFiles>
|
||||
</File>
|
||||
<Font>
|
||||
|
||||
Binary file not shown.
@ -23,6 +23,7 @@ import mipylib.miutil as miutil
|
||||
import datetime
|
||||
import numbers
|
||||
import warnings
|
||||
import re
|
||||
|
||||
# Dimension variable
|
||||
class DimVariable(object):
|
||||
@ -45,20 +46,23 @@ class DimVariable(object):
|
||||
self.ncvariable = ncvariable
|
||||
self._coordinate = False
|
||||
if not variable is None:
|
||||
self._name = variable.getName()
|
||||
self._real_name = variable.getName()
|
||||
self._name = re.sub('[-_]+', '_', self._real_name)
|
||||
self.dtype = np.dtype.fromjava(variable.getDataType())
|
||||
self.dims = variable.getDimensions()
|
||||
self.ndim = variable.getDimNumber()
|
||||
self.attributes = variable.getAttributes()
|
||||
self._coordinate = variable.isDimVar()
|
||||
elif not ncvariable is None:
|
||||
self._name = ncvariable.getFullName()
|
||||
self._real_name = ncvariable.getFullName()
|
||||
self._name = re.sub('[-_]+', '_', self._real_name)
|
||||
self.dtype = ncvariable.getDataType()
|
||||
self.dims = ncvariable.getDimensions()
|
||||
self.ndim = len(self.dims)
|
||||
self.attributes = list(ncvariable.getAttributes())
|
||||
self._coordinate = ncvariable.isCoordinateVariable()
|
||||
else:
|
||||
self._real_name = None
|
||||
self._name = None
|
||||
self.dtype = None
|
||||
self.dims = None
|
||||
@ -81,13 +85,24 @@ class DimVariable(object):
|
||||
|
||||
@property
|
||||
def short_name(self):
|
||||
s_name = None
|
||||
if self._variable is not None:
|
||||
return self._variable.getShortName()
|
||||
s_name = self._variable.getShortName()
|
||||
elif self.ncvariable is not None:
|
||||
s_name = self.ncvariable.getShortName()
|
||||
|
||||
if self.ncvariable is not None:
|
||||
return self.ncvariable.getShortName()
|
||||
s_name = re.sub('[-_]+', '_', s_name)
|
||||
return s_name
|
||||
|
||||
return None
|
||||
@property
|
||||
def real_short_name(self):
|
||||
s_name = None
|
||||
if self._variable is not None:
|
||||
s_name = self._variable.getShortName()
|
||||
elif self.ncvariable is not None:
|
||||
s_name = self.ncvariable.getShortName()
|
||||
|
||||
return s_name
|
||||
|
||||
def __len__(self):
|
||||
len = 1
|
||||
@ -337,9 +352,9 @@ class DimVariable(object):
|
||||
dims.append(dim)
|
||||
|
||||
if onlyrange:
|
||||
rr = self.dataset.dataset.read(self.name, ranges)
|
||||
rr = self.dataset.dataset.read(self._real_name, ranges)
|
||||
else:
|
||||
rr = self.dataset.dataset.take(self.name, ranges)
|
||||
rr = self.dataset.dataset.take(self._real_name, ranges)
|
||||
if rr.getSize() == 1:
|
||||
iter = rr.getIndexIterator()
|
||||
return iter.getObjectNext()
|
||||
@ -362,12 +377,12 @@ class DimVariable(object):
|
||||
Read data array.
|
||||
:return: (*array*) Data array.
|
||||
"""
|
||||
return np.array(self.dataset.read(self.name))
|
||||
return np.array(self.dataset.read(self._real_name))
|
||||
|
||||
@property
|
||||
def values(self):
|
||||
"""Read data array"""
|
||||
return np.array(self.dataset.read(self.name))
|
||||
return np.array(self.dataset.read(self._real_name))
|
||||
|
||||
@property
|
||||
def dt(self):
|
||||
@ -625,7 +640,7 @@ class StructureVariable(DimVariable):
|
||||
datainfo.reOpen()
|
||||
|
||||
self._ncfile = datainfo.getFile()
|
||||
self._ncvar = self._ncfile.findVariable(self.name)
|
||||
self._ncvar = self._ncfile.findVariable(self._real_name)
|
||||
self._variables = []
|
||||
for var in self._ncvar.getVariables():
|
||||
mvar = MemberVariable.factory(NCUtil.convertVariable(var), dataset, self)
|
||||
@ -644,7 +659,7 @@ class StructureVariable(DimVariable):
|
||||
|
||||
raise ValueError(key + ' is not a variable name')
|
||||
else:
|
||||
return np.array(self.dataset.read(self.name))
|
||||
return np.array(self.dataset.read(self._real_name))
|
||||
|
||||
@property
|
||||
def variables(self):
|
||||
@ -695,7 +710,7 @@ class MemberVariable(DimVariable):
|
||||
datainfo.reOpen()
|
||||
|
||||
self._ncfile = datainfo.getFile()
|
||||
self._ncvar = self._ncfile.findVariable(self.name)
|
||||
self._ncvar = self._ncfile.findVariable(self._real_name)
|
||||
|
||||
def __getitem__(self, key):
|
||||
"""
|
||||
@ -734,12 +749,12 @@ class MemberVariable(DimVariable):
|
||||
missing_value, scale_factor, add_offset = self.get_pack_paras()
|
||||
is_structure = isinstance(a, ArrayStructure)
|
||||
if is_structure:
|
||||
r = NCUtil.readSequence(a, self.short_name)
|
||||
r = NCUtil.readSequence(a, self.real_short_name)
|
||||
else:
|
||||
if seq is None:
|
||||
r = NCUtil.readSequenceRecord(a, self.short_name, record, missing_value)
|
||||
r = NCUtil.readSequenceRecord(a, self.real_short_name, record, missing_value)
|
||||
else:
|
||||
r = NCUtil.readSequence(a, self.short_name, seq)
|
||||
r = NCUtil.readSequence(a, self.real_short_name, seq)
|
||||
|
||||
if r is None:
|
||||
return None
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user