本文整理汇总了Python中mintpy.utils.readfile.read_attribute函数的典型用法代码示例。如果您正苦于以下问题:Python read_attribute函数的具体用法?Python read_attribute怎么用?Python read_attribute使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了read_attribute函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: file_operation
def file_operation(fname, operator, operand, out_file=None):
"""Mathmathic operation of file"""
# Basic Info
atr = readfile.read_attribute(fname)
k = atr['FILE_TYPE']
print('input is '+k+' file: '+fname)
print('operation: file %s %f' % (operator, operand))
# default output filename
if not out_file:
if operator in ['+', 'plus', 'add', 'addition']:
suffix = 'plus'
elif operator in ['-', 'minus', 'substract', 'substraction']:
suffix = 'minus'
elif operator in ['*', 'times', 'multiply', 'multiplication']:
suffix = 'multiply'
elif operator in ['/', 'obelus', 'divide', 'division']:
suffix = 'divide'
elif operator in ['^', 'pow', 'power']:
suffix = 'pow'
out_file = '{}_{}{}{}'.format(os.path.splitext(fname)[0], suffix,
str(operand), os.path.splitext(fname)[1])
atr = readfile.read_attribute(fname)
dsNames = readfile.get_dataset_list(fname)
dsDict = {}
for dsName in dsNames:
data = readfile.read(fname, datasetName=dsName)[0]
data = data_operation(data, operator, operand)
dsDict[dsName] = data
writefile.write(dsDict, out_file=out_file, metadata=atr, ref_file=fname)
return out_file
示例2: read_subset_box
def read_subset_box(inpsDict):
# Read subset info from template
inpsDict['box'] = None
inpsDict['box4geo_lut'] = None
pix_box, geo_box = subset.read_subset_template2box(inpsDict['template_file'][0])
# Grab required info to read input geo_box into pix_box
try:
lookupFile = [glob.glob(str(inpsDict['mintpy.load.lookupYFile']))[0],
glob.glob(str(inpsDict['mintpy.load.lookupXFile']))[0]]
except:
lookupFile = None
try:
pathKey = [i for i in datasetName2templateKey.values()
if i in inpsDict.keys()][0]
file = glob.glob(str(inpsDict[pathKey]))[0]
atr = readfile.read_attribute(file)
except:
atr = dict()
geocoded = None
if 'Y_FIRST' in atr.keys():
geocoded = True
else:
geocoded = False
# Check conflict
if geo_box and not geocoded and lookupFile is None:
geo_box = None
print(('WARNING: mintpy.subset.lalo is not supported'
' if 1) no lookup file AND'
' 2) radar/unkonwn coded dataset'))
print('\tignore it and continue.')
if not geo_box and not pix_box:
return inpsDict
# geo_box --> pix_box
coord = ut.coordinate(atr, lookup_file=lookupFile)
if geo_box is not None:
pix_box = coord.bbox_geo2radar(geo_box)
pix_box = coord.check_box_within_data_coverage(pix_box)
print('input bounding box of interest in lalo: {}'.format(geo_box))
print('box to read for datasets in y/x: {}'.format(pix_box))
# Get box for geocoded lookup table (for gamma/roipac)
box4geo_lut = None
if lookupFile is not None:
atrLut = readfile.read_attribute(lookupFile[0])
if not geocoded and 'Y_FIRST' in atrLut.keys():
geo_box = coord.bbox_radar2geo(pix_box)
box4geo_lut = ut.coordinate(atrLut).bbox_geo2radar(geo_box)
print('box to read for geocoded lookup file in y/x: {}'.format(box4geo_lut))
inpsDict['box'] = pix_box
inpsDict['box4geo_lut'] = box4geo_lut
return inpsDict
示例3: is_file_exist
def is_file_exist(file_list, abspath=True):
"""Check if any file in the file list 1) exists and 2) readable
Parameters: file_list : list of string, file name with/without wildcards
abspath : bool, return absolute file name/path or not
Returns: file_path : string, found file name/path; None if not.
"""
try:
file = get_file_list(file_list, abspath=abspath)[0]
readfile.read_attribute(file)
except:
file = None
return file
示例4: add_attribute
def add_attribute(File, atr_new=dict(), print_msg=False):
"""Add/update input attribute into File
Parameters: File - string, path/name of file
atr_new - dict, attributes to be added/updated
if value is None, delete the item from input File attributes
Returns: File - string, path/name of updated file
"""
atr = readfile.read_attribute(File)
# Compare new attributes with exsiting ones
update = update_attribute_or_not(atr_new, atr)
if not update:
print(('All updated (removed) attributes already exists (do not exists)'
' and have the same value, skip update.'))
return File
# Update attributes
f = h5py.File(File, 'r+')
for key, value in iter(atr_new.items()):
# delete the item is new value is None
if value == 'None' or value is None:
try:
f.attrs.pop(key)
if print_msg:
print('remove {}'.format(key))
except:
pass
else:
f.attrs[key] = str(value)
if print_msg:
print('{} = {}'.format(key, str(value)))
f.close()
return File
示例5: get_giant_ifg_list
def get_giant_ifg_list(fnames):
m_date_list = []
s_date_list = []
pbase_list = []
ext = os.path.splitext(fnames[0])[1]
if ext == '.h5':
obj = ifgramStack(fnames[0])
obj.open()
m_date_list = obj.mDates[obj.dropIfgram].tolist()
s_date_list = obj.sDates[obj.dropIfgram].tolist()
pbase_list = obj.pbaseIfgram[obj.dropIfgram].tolist()
else:
ifgramNum = len(fnames)
print('Number of interferograms: %d' % (ifgramNum))
for fname in fnames:
atr = readfile.read_attribute(fname)
m_date, s_date = ptime.yymmdd(atr['DATE12'].split('-'))
pbase = (float(atr['P_BASELINE_TOP_HDR']) +
float(atr['P_BASELINE_BOTTOM_HDR'])) / 2.
m_date_list.append(m_date)
s_date_list.append(s_date)
pbase_list.append(pbase)
return m_date_list, s_date_list, pbase_list
示例6: run_save2google_earth
def run_save2google_earth(self, step_name):
"""Save velocity file in geo coordinates into Google Earth raster image."""
if self.template['mintpy.save.kmz'] is True:
print('creating Google Earth KMZ file for geocoded velocity file: ...')
# input
vel_file = 'velocity.h5'
atr = readfile.read_attribute(vel_file)
if 'Y_FIRST' not in atr.keys():
vel_file = os.path.join(self.workDir, 'geo/geo_velocity.h5')
# output
kmz_file = '{}.kmz'.format(os.path.splitext(vel_file)[0])
scp_args = '{} -o {}'.format(vel_file, kmz_file)
print('save_kmz.py', scp_args)
# update mode
try:
fbase = os.path.basename(kmz_file)
kmz_file = [i for i in [fbase, './geo/{}'.format(fbase), './pic/{}'.format(fbase)]
if os.path.isfile(i)][0]
except:
kmz_file = None
if ut.run_or_skip(out_file=kmz_file, in_file=vel_file, check_readable=False) == 'run':
mintpy.save_kmz.main(scp_args.split())
else:
print('save velocity to Google Earth format is OFF.')
return
示例7: run_geocode
def run_geocode(self, step_name):
"""geocode data files in radar coordinates into ./geo folder."""
if self.template['mintpy.geocode']:
ts_file = self.get_timeseries_filename(self.template)[step_name]['input']
atr = readfile.read_attribute(ts_file)
if 'Y_FIRST' not in atr.keys():
# 1. geocode
out_dir = os.path.join(self.workDir, 'geo')
if not os.path.isdir(out_dir):
os.makedirs(out_dir)
print('create directory:', out_dir)
geom_file, lookup_file = ut.check_loaded_dataset(self.workDir, print_msg=False)[2:4]
in_files = [geom_file, 'temporalCoherence.h5', ts_file, 'velocity.h5']
scp_args = '-l {l} -t {t} --outdir {o} --update '.format(l=lookup_file,
t=self.templateFile,
o=out_dir)
for in_file in in_files:
scp_args += ' {}'.format(in_file)
print('geocode.py', scp_args)
mintpy.geocode.main(scp_args.split())
# 2. generate reliable pixel mask in geo coordinate
geom_file = os.path.join(out_dir, 'geo_{}'.format(os.path.basename(geom_file)))
tcoh_file = os.path.join(out_dir, 'geo_temporalCoherence.h5')
mask_file = os.path.join(out_dir, 'geo_maskTempCoh.h5')
tcoh_min = self.template['mintpy.networkInversion.minTempCoh']
scp_args = '{} -m {} -o {} --shadow {}'.format(tcoh_file, tcoh_min, mask_file, geom_file)
print('generate_mask.py', scp_args)
if ut.run_or_skip(out_file=mask_file, in_file=tcoh_file) == 'run':
mintpy.generate_mask.main(scp_args.split())
else:
print('geocoding is OFF')
return
示例8: prepare_stack
def prepare_stack(inputDir, filePattern, metadata=dict(), baseline_dict=dict(), update_mode=True):
print('prepare .rsc file for ', filePattern)
isce_files = sorted(glob.glob(os.path.join(os.path.abspath(inputDir), '*', filePattern)))
if len(isce_files) == 0:
raise FileNotFoundError('no file found in pattern: {}'.format(filePattern))
# write .rsc file for each interferogram file
num_file = len(isce_files)
prog_bar = ptime.progressBar(maxValue=num_file)
for i in range(num_file):
isce_file = isce_files[i]
# prepare metadata for current file
ifg_metadata = readfile.read_attribute(isce_file, metafile_ext='.xml')
ifg_metadata.update(metadata)
dates = os.path.basename(os.path.dirname(isce_file)).split('_')
ifg_metadata = add_ifgram_metadata(ifg_metadata, dates, baseline_dict)
# write .rsc file
rsc_file = isce_file+'.rsc'
writefile.write_roipac_rsc(ifg_metadata, rsc_file,
update_mode=update_mode,
print_msg=False)
prog_bar.update(i+1, suffix='{}_{}'.format(dates[0], dates[1]))
prog_bar.close()
return
示例9: add_file
def add_file(fnames, out_file=None):
"""Generate sum of all input files
Parameters: fnames : list of str, path/name of input files to be added
out_file : str, optional, path/name of output file
Returns: out_file : str, path/name of output file
Example: 'mask_all.h5' = add_file(['mask_1.h5','mask_2.h5','mask_3.h5'], 'mask_all.h5')
"""
# Default output file name
ext = os.path.splitext(fnames[0])[1]
if not out_file:
out_file = os.path.splitext(fnames[0])[0]
for i in range(1, len(fnames)):
out_file += '_plus_' + os.path.splitext(os.path.basename(fnames[i]))[0]
out_file += ext
atr = readfile.read_attribute(fnames[0])
dsNames = readfile.get_dataset_list(fnames[0])
dsDict = {}
for dsName in dsNames:
print('adding {} ...'.format(dsName))
data = readfile.read(fnames[0], datasetName=dsName)[0]
for i in range(1, len(fnames)):
d = readfile.read(fnames[i], datasetName=dsName)[0]
data = add_matrix(data, d)
dsDict[dsName] = data
writefile.write(dsDict, out_file=out_file, metadata=atr, ref_file=fnames[0])
return out_file
示例10: main
def main(argv):
if len(sys.argv) < 3:
usage()
sys.exit(1)
lat = float(argv[0])
lon = float(argv[1])
try:
trans_file = argv[2]
except:
trans_file = ut.get_lookup_file()
try:
radar_file = argv[3]
except:
radar_file = 'inputs/ifgramStack.h5'
atr_rdr = readfile.read_attribute(radar_file)
print('input geo coord: lat=%.4f, lon=%.4f' % (lat, lon))
coord = ut.coordinate(atr_rdr, lookup_file=trans_file)
y, x = coord.geo2radar(np.array(lat), np.array(lon))[0:2]
print('corresponding radar coord: y=%d, x=%d' % (y, x))
return
示例11: multilook_file
def multilook_file(infile, lks_y, lks_x, outfile=None):
lks_y = int(lks_y)
lks_x = int(lks_x)
# input file info
atr = readfile.read_attribute(infile)
k = atr['FILE_TYPE']
print('multilooking {} {} file: {}'.format(atr['PROCESSOR'], k, infile))
print('number of looks in y / azimuth direction: %d' % lks_y)
print('number of looks in x / range direction: %d' % lks_x)
# output file name
if not outfile:
if os.getcwd() == os.path.dirname(os.path.abspath(infile)):
ext = os.path.splitext(infile)[1]
outfile = os.path.splitext(infile)[0]+'_'+str(lks_y)+'alks_'+str(lks_x)+'rlks'+ext
else:
outfile = os.path.basename(infile)
#print('writing >>> '+outfile)
# read source data and multilooking
dsNames = readfile.get_dataset_list(infile)
maxDigit = max([len(i) for i in dsNames])
dsDict = dict()
for dsName in dsNames:
print('multilooking {d:<{w}} from {f} ...'.format(
d=dsName, w=maxDigit, f=os.path.basename(infile)))
data = readfile.read(infile, datasetName=dsName, print_msg=False)[0]
data = multilook_data(data, lks_y, lks_x)
dsDict[dsName] = data
atr = multilook_attribute(atr, lks_y, lks_x)
writefile.write(dsDict, out_file=outfile, metadata=atr, ref_file=infile)
return outfile
示例12: read_timeseries_yx
def read_timeseries_yx(timeseries_file, y, x, ref_yx=None):
'''Read time-series displacement on point (y,x) from timeseries_file
Inputs:
timeseries_file : string, name/path of timeseries hdf5 file
y/x : int, row/column number of point of interest
Output:
dis_ts : list of float, displacement time-series of point of interest
'''
atr = readfile.read_attribute(timeseries_file)
k = atr['FILE_TYPE']
dis_ts = []
if k in ['GIANT_TS']:
h5 = h5py.File(timeseries_file, 'r')
date_list = [dt.fromordinal(int(i)).strftime('%Y%m%d') for i in h5['dates'][:].tolist()]
dname = [i for i in ['rawts','recons'] if i in list(h5.keys())][0]
dis_ts = h5[dname][:,y,x]
if ref_yx is not None:
dis_ts = h5[dname][:,ref_yx[0],ref_yx[1]]
h5.close()
else:
box = [x, y, x+1, y+1]
dis_ts = timeseries(timeseries_file).read(box=box, print_msg=False)
#date_list = list(h5[k].keys())
#for date in date_list:
# dis = h5[k].get(date)[y,x]
# if inps.ref_yx:
# dis -= h5[k].get(date)[ref_yx[0], ref_yx[1]]
# dis_ts.append(dis)
#dis_ts = np.array(dis_ts)
return dis_ts
示例13: _check_inps
def _check_inps(inps):
inps.file = ut.get_file_list(inps.file)
if not inps.file:
raise Exception('ERROR: no input file found!')
elif len(inps.file) > 1:
inps.outfile = None
atr = readfile.read_attribute(inps.file[0])
if 'Y_FIRST' in atr.keys() and inps.radar2geo:
print('input file is already geocoded')
print('to resample geocoded files into radar coordinates, use --geo2radar option')
print('exit without doing anything.')
sys.exit(0)
elif 'Y_FIRST' not in atr.keys() and not inps.radar2geo:
print('input file is already in radar coordinates, exit without doing anything')
sys.exit(0)
inps.lookupFile = ut.get_lookup_file(inps.lookupFile)
if not inps.lookupFile:
raise FileNotFoundError('No lookup table found! Can not geocode without it.')
if inps.SNWE:
inps.SNWE = tuple(inps.SNWE)
inps.laloStep = [inps.latStep, inps.lonStep]
if None in inps.laloStep:
inps.laloStep = None
inps.nprocs = check_num_processor(inps.nprocs)
return inps
示例14: timeseries2ifgram
def timeseries2ifgram(ts_file, ifgram_file, out_file='reconUnwrapIfgram.h5'):
# read time-series
atr = readfile.read_attribute(ts_file)
range2phase = -4.*np.pi / float(atr['WAVELENGTH'])
print('reading timeseries data from file {} ...'.format(ts_file))
ts_data = readfile.read(ts_file)[0] * range2phase
num_date, length, width = ts_data.shape
ts_data = ts_data.reshape(num_date, -1)
# reconstruct unwrapPhase
print('reconstructing the interferograms from timeseries')
stack_obj = ifgramStack(ifgram_file)
stack_obj.open(print_msg=False)
A1 = stack_obj.get_design_matrix4timeseries(stack_obj.get_date12_list(dropIfgram=False))[0]
num_ifgram = A1.shape[0]
A0 = -1.*np.ones((num_ifgram, 1))
A = np.hstack((A0, A1))
ifgram_est = np.dot(A, ts_data).reshape(num_ifgram, length, width)
ifgram_est = np.array(ifgram_est, dtype=ts_data.dtype)
del ts_data
# write to ifgram file
dsDict = {}
dsDict['unwrapPhase'] = ifgram_est
writefile.write(dsDict, out_file=out_file, ref_file=ifgram_file)
return ifgram_file
示例15: get_date12_list
def get_date12_list(fname, dropIfgram=False):
"""Read Date12 info from input file: Pairs.list or multi-group hdf5 file
Inputs:
fname - string, path/name of input multi-group hdf5 file or text file
dropIfgram - bool, check the "DROP_IFGRAM" attribute or not for multi-group hdf5 file
Output:
date12_list - list of string in YYMMDD-YYMMDD format
Example:
date12List = get_date12_list('ifgramStack.h5')
date12List = get_date12_list('ifgramStack.h5', dropIfgram=True)
date12List = get_date12_list('Pairs.list')
"""
date12_list = []
ext = os.path.splitext(fname)[1].lower()
if ext == '.h5':
k = readfile.read_attribute(fname)['FILE_TYPE']
if k == 'ifgramStack':
date12_list = ifgramStack(fname).get_date12_list(dropIfgram=dropIfgram)
else:
return None
else:
txtContent = np.loadtxt(fname, dtype=bytes).astype(str)
if len(txtContent.shape) == 1:
txtContent = txtContent.reshape(-1, 1)
date12_list = [i for i in txtContent[:, 0]]
date12_list = sorted(date12_list)
return date12_list