Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
Raises
-------
OptionError : occurs when the extentString is improper
'''
extentDic = {}
# Find -re text
str_tr = re.findall('-tr\s+[-+]?\d*[.\d*]*\s+[-+]?\d*[.\d*]*\s?',
extentString)
if str_tr != []:
# Check the number of -tr elements
elm_str = str(str_tr[0].rstrip())
elms_str = elm_str.split(None)
if len(elms_str) != 3 or elms_str[2] == '-':
raise OptionError('Domain._create_extentDic():'
'-tr is used as'
'"-tr xResolution yResolution"')
# Add the key and value to extentDic
extentString = extentString.replace(str_tr[0], '')
trElem = str(str_tr).split(None)
trkey = trElem[0].translate(string.maketrans('', ''), "[]-'")
if trkey != '':
elements = []
for i in range(2):
elements.append(float(trElem[i + 1].
translate(string.maketrans('', ''),
"'[]'")))
extentDic[trkey] = elements
# Find -ts text
str_ts = re.findall('-ts\s+[-+]?\d*[.\d*]*\s+[-+]?\d*[.\d*]*\s?',
for i in range(2):
elements.append(float(tsElem[i + 1].
translate(string.maketrans('', ''),
"[]'")))
extentDic[tskey] = elements
# Find -te text
str_te = re.findall('-te\s+[-+]?\d*[.\d*]*\s+[-+]?\d*[.\d*]*\s'
'+[-+]?\d*[.\d*]*\s+[-+]?\d*[.\d*]*\s?',
extentString)
if str_te != []:
# Check the number of -te elements
elm_str = str(str_te[0].rstrip())
elms_str = elm_str.split(None)
if len(elms_str) != 5:
raise OptionError('Domain._create_extentDic():'
'-te is used as "-te xMin yMin xMax yMax"')
# Add the key and value to extentDic
extentString = extentString.replace(str_te[0], '')
teElem = str(str_te).split(None)
tekey = teElem[0].translate(string.maketrans('', ''), "[]-'")
if tekey != '':
elements = []
for i in range(4):
elements.append(float(teElem[i + 1].
translate(string.maketrans('', ''),
"[]'")))
extentDic[tekey] = elements
# Find -lle text
str_lle = re.findall('-lle\s+[-+]?\d*[.\d*]*\s+[-+]?\d*[.\d*]*\s'
'+[-+]?\d*[.\d*]*\s+[-+]?\d*[.\d*]*\s?',
# Add the key and value to extentDic
extentString = extentString.replace(str_lle[0], '')
lleElem = str(str_lle).split(None)
llekey = lleElem[0].translate(string.maketrans('', ''), "[]-'")
if llekey != '':
elements = []
for i in range(4):
elements.append(float(lleElem[i + 1].
translate(string.maketrans('', ''),
"[]'")))
extentDic[llekey] = elements
result = re.search('\S', extentString)
# if there are unnecessary letters, give an error
if result is not None:
raise OptionError('Domain._create_extentDic():'
'extentString is not redable :',
extentString)
# check if one of '-te' and '-lle' is given
if ('lle' not in extentDic) and ('te' not in extentDic):
raise OptionError('Domain._create_extentDic():'
'"-lle" or "-te" is required.')
elif ('lle' in extentDic) and ('te' in extentDic):
raise OptionError('Domain._create_extentDic():'
'"-lle" or "-te" should be chosen.')
# check if one of '-ts' and '-tr' is given
if ('ts' not in extentDic) and ('tr' not in extentDic):
raise OptionError('Domain._create_extentDic():'
'"-ts" or "-tr" is required.')
elif ('ts' in extentDic) and ('tr' in extentDic):
# describes the grid (projection, resolution and extent)
n = Nansat(domain=d, array=a, parameters=p)
# create a Nansat object in memory with one band from input array <a>.
# <p> is a dictionary with metadata for the band
a = n[1]
# fetch data from Nansat object from the first band
a = n['band_name']
# fetch data from the band which has name 'band_name'
'''
# check the arguments
if fileName == '' and domain is None:
raise OptionError('Either fileName or domain is required.')
# create logger
self.logger = add_logger('Nansat', logLevel)
# empty dict of VRTs with added bands
self.addedBands = {}
# set input file name
self.fileName = fileName
# name, for compatibility with some Domain methods
self.name = os.path.basename(fileName)
self.path = os.path.dirname(fileName)
# create self.vrt from a file using mapper or...
if fileName != '':
# Make original VRT object with mapping of variables</p></a>
parameters__short_name = 'dca',
time_coverage_start__gte = t0,
time_coverage_start__lt = t1
)
swath_files = []
for dd in dopDS:
try:
fn = dd.dataseturi_set.get(
uri__endswith='subswath%s.nc' %swath).uri
except DatasetURI.DoesNotExist:
continue
n = Doppler(fn)
try:
dca = n.anomaly(pol=polarization)
except OptionError: # wrong polarization..
continue
lon,lat=n.get_geolocation_grids()
indmidaz = lat.shape[0]/2
indmidra = lat.shape[1]/2
if lat[indmidaz,indmidra]>lat[0,indmidra]:
orbit_pass = 'ascending'
else:
orbit_pass = 'descending'
if use_pass==orbit_pass:
swath_files.append(fn)
valid_land = np.array([])
valid = np.array([])
for ff in swath_files:
n = Nansat(ff)
view_bandnum = n._get_band_number({
[http://trac.osgeo.org/proj/]
[http://spatialreference.org/]
[http://www.gdal.org/ogr/osr_tutorial.html]
'''
# set default attributes
self.logger = add_logger('Nansat', logLevel)
self.name = name
self.logger.debug('ds: %s' % str(ds))
self.logger.debug('srs: %s' % srs)
self.logger.debug('ext: %s' % ext)
# If too much information is given raise error
if ds is not None and srs is not None and ext is not None:
raise OptionError('Ambiguous specification of both '
'dataset, srs- and ext-strings.')
# choose between input opitons:
# ds
# ds and srs
# srs and ext
# lon and lat
# if only a dataset is given:
# copy geo-reference from the dataset
if ds is not None and srs is None:
self.vrt = VRT(gdalDataset=ds)
# If dataset and srs are given (but not ext):
# use AutoCreateWarpedVRT to determine bounds and resolution
elif ds is not None and srs is not None:
"[]'")))
extentDic[llekey] = elements
result = re.search('\S', extentString)
# if there are unnecessary letters, give an error
if result is not None:
raise OptionError('Domain._create_extentDic():'
'extentString is not redable :',
extentString)
# check if one of '-te' and '-lle' is given
if ('lle' not in extentDic) and ('te' not in extentDic):
raise OptionError('Domain._create_extentDic():'
'"-lle" or "-te" is required.')
elif ('lle' in extentDic) and ('te' in extentDic):
raise OptionError('Domain._create_extentDic():'
'"-lle" or "-te" should be chosen.')
# check if one of '-ts' and '-tr' is given
if ('ts' not in extentDic) and ('tr' not in extentDic):
raise OptionError('Domain._create_extentDic():'
'"-ts" or "-tr" is required.')
elif ('ts' in extentDic) and ('tr' in extentDic):
raise OptionError('Domain._create_extentDic():'
'"-ts" or "-tr" should be chosen.')
return extentDic
cmapName='gray', transparency=0) # 5.
n.write_kml_image(kmlFileName=oPath + fileName + '.kml',
kmlFigureName=figureName) # 6.
'''
# test input options
if kmlFileName is not None:
# if only output KML-file is given
# then convert the current domain to KML
domains = [self]
else:
# otherwise it is potentially error
raise OptionError('kmlFileName(%s) is wrong' % (kmlFileName))
if kmlFigureName is None:
raise OptionError('kmlFigureName(%s) is not specified'
% (kmlFigureName))
# open KML, write header
kmlFile = file(kmlFileName, 'wt')
kmlFile.write('\n')
kmlFile.write('\n')
kmlFile.write('\n')
kmlFile.write(' %s\n' % kmlFileName)
kmlFile.write(' \n')
kmlFile.write(' %s\n' % kmlFigureName)
kmlFile.write(' 0.75\n')
kmlFile.write(' \n')
minY = extentDic['te'][1]
maxX = extentDic['te'][2]
maxY = extentDic['te'][3]
cornerX = minX
cornerY = maxY
width = maxX - minX
height = maxY - minY
if width <= 0 or height <= 0:
raise OptionError('The extent is illegal. '
'"-te xMin yMin xMax yMax" ')
if 'tr' in extentDic.keys():
resolutionX = extentDic['tr'][0]
resolutionY = -(extentDic['tr'][1])
if (width < resolutionX or height < resolutionY):
raise OptionError('"-tr" is too large. '
'width is %s, height is %s '
% (str(width), str(height)))
rasterXSize = width / resolutionX
rasterYSize = abs(height / resolutionY)
else:
rasterXSize = extentDic['ts'][0]
rasterYSize = extentDic['ts'][1]
resolutionX = width / rasterXSize
resolutionY = -abs(height / rasterYSize)
# create a list for GeoTransform
coordinates = [cornerX, resolutionX, 0.0, cornerY, 0.0, resolutionY]
return coordinates, int(rasterXSize), int(rasterYSize)
for i in range(4):
elements.append(float(lleElem[i + 1].
translate(string.maketrans('', ''),
"[]'")))
extentDic[llekey] = elements
result = re.search('\S', extentString)
# if there are unnecessary letters, give an error
if result is not None:
raise OptionError('Domain._create_extentDic():'
'extentString is not redable :',
extentString)
# check if one of '-te' and '-lle' is given
if ('lle' not in extentDic) and ('te' not in extentDic):
raise OptionError('Domain._create_extentDic():'
'"-lle" or "-te" is required.')
elif ('lle' in extentDic) and ('te' in extentDic):
raise OptionError('Domain._create_extentDic():'
'"-lle" or "-te" should be chosen.')
# check if one of '-ts' and '-tr' is given
if ('ts' not in extentDic) and ('tr' not in extentDic):
raise OptionError('Domain._create_extentDic():'
'"-ts" or "-tr" is required.')
elif ('ts' in extentDic) and ('tr' in extentDic):
raise OptionError('Domain._create_extentDic():'
'"-ts" or "-tr" should be chosen.')
return extentDic