insarlab / MintPy

Miami InSAR time-series software in Python
https://mintpy.readthedocs.io
Other
596 stars 255 forks source link

ElementTree.ParseError: no element found: line 1, column 0 #711

Closed ilayfarimaz closed 2 years ago

ilayfarimaz commented 2 years ago

Description of the problem I generated a stack of interferograms for my region. I ran stackSentinel.py on environment which has isce2 v.2.5.3 and python version for related environment is 3.9 When I try to load this stack into mintpy, a parsing error occurs. The environment includes mintpy has python version 3.8, which is the highest version possible. And also isce 2.5.3 is installed on this environment. I believe the inconsistency between python versions caused this error, not sure how to fix it.

Full script that generated the error

smallbaselineApp.py  elaz.cfg 

** here is my configuration file: **

# vim: set filetype=cfg:
##------------------------ smallbaselineApp.cfg ------------------------##
########## computing resource configuration
mintpy.compute.maxMemory = 128 #[float > 0.0], auto for 4, max memory to allocate in GB
## parallel processing with dask
## currently apply to steps: invert_network, correct_topography
## cluster   = none to turn off the parallel computing
## numWorker = all  to use all locally available cores (for cluster = local only)
## config    = none to rollback to the default name (same as the cluster type; for cluster != local)
mintpy.compute.cluster   = none #[local / slurm / pbs / lsf / none], auto for none, cluster type
mintpy.compute.numWorker = auto #[int > 1 / all], auto for 4 (local) or 40 (non-local), num of workers
mintpy.compute.config    = auto #[none / slurm / pbs / lsf ], auto for none (same as cluster), config name

########## 1. load_data
##---------add attributes manually
## MintPy requires attributes listed at: https://mintpy.readthedocs.io/en/latest/api/attributes/
## Missing attributes can be added below manually (uncomment #), e.g.
# ORBIT_DIRECTION = ascending
# PLATFORM = CSK
# ...
## a. autoPath - automatic path pattern defined in mintpy.defaults.auto_path.AUTO_PATH_*
## b. load_data.py -H to check more details and example inputs.
## c. compression to save disk usage for ifgramStack.h5 file:
## no   - save   0% disk usage, fast [default]
## lzf  - save ~57% disk usage, relative slow
## gzip - save ~62% disk usage, very slow [not recommend]
mintpy.load.processor      = isce  #[isce, aria, hyp3, gmtsar, snap, gamma, roipac], auto for isce
mintpy.load.autoPath       = auto  #[yes / no], auto for no, use pre-defined auto path
mintpy.load.updateMode     = auto  #[yes / no], auto for yes, skip re-loading if HDF5 files are complete
mintpy.load.compression    = auto  #[gzip / lzf / no], auto for no.
##---------for ISCE only:
mintpy.load.metaFile       = /truba/home/ifarimaz/elaz/T123/reference/*.xml  #[path of common metadata file for the stack], i.e.: ./reference/IW1.xml, ./referenceShelve/data.dat
mintpy.load.baselineDir    = /truba/home/ifarimaz/elaz/T123/baselines  #[path of the baseline dir], i.e.: ./baselines
##---------interferogram datasets:
mintpy.load.unwFile        = /truba/home/ifarimaz/elaz/T123/merged/interferograms/*/filt_fine*.unw  #[path pattern of unwrapped interferogram files]
mintpy.load.corFile        = /truba/home/ifarimaz/elaz/T123/merged/interferograms/*/filt_*.cor  #[path pattern of spatial coherence       files]
mintpy.load.connCompFile   = /truba/home/ifarimaz/elaz/T123/merged/interferograms/*/filt_*.unw.conncomp  #[path pattern of connected components    files], optional but recommended
mintpy.load.intFile        = /truba/home/ifarimaz/elaz/T123/merged/interferograms/*/filt_*.int #[path pattern of wrapped interferogram   files], optional
#mintpy.load.ionoFile       = /truba/home/yerbilimleri/sergintav/scratch/alos/marm_alos_proc/pairs/*-*/ion/ion_cal/filt_ion_80rlks_448alks.ion  #[path pattern of ionospheric delay       files], optional
mintpy.load.magFile        = /truba/home/ifarimaz/elaz/T123/merged/interferograms/*/filt_*.int  #[path pattern of interferogram magnitude files], optional
##---------offset datasets (optional):
mintpy.load.azOffFile      = auto  #[path pattern of azimuth offset file], optional
mintpy.load.rgOffFile      = auto  #[path pattern of range   offset file], optional
mintpy.load.offSnrFile     = auto  #[path pattern of offset signal-to-noise ratio file], optional
##---------geometry datasets:
mintpy.load.demFile        = /truba/home/ifarimaz/elaz/T123/merged/geom_reference/hgt.rdr  #[path of DEM file]
mintpy.load.lookupYFile    = /truba/home/ifarimaz/elaz/T123/merged/geom_reference/lat.rdr  #[path of latitude /row   /y coordinate file], not required for geocoded data
mintpy.load.lookupXFile    = /truba/home/ifarimaz/elaz/T123/merged/geom_reference/lon.rdr  #[path of longitude/column/x coordinate file], not required for geocoded data
mintpy.load.incAngleFile   =  /truba/home/ifarimaz/elaz/T123/merged/geom_reference/los.rdr #[path of incidence angle file], optional but recommended
mintpy.load.azAngleFile    = /truba/home/ifarimaz/elaz/T123/merged/geom_reference/los.rdr  #[path of azimuth   angle file], optional
mintpy.load.shadowMaskFile = /truba/home/ifarimaz/elaz/T123/merged/geom_reference/shadowMask.rdr  #[path of shadow mask file], optional but recommended
mintpy.load.waterMaskFile  = /truba/home/ifarimaz/elaz/DEM/swbdLat_N34_N42_Lon_E035_E042.wbd #[path of water  mask file], optional but recommended
mintpy.load.bperpFile      = auto  #[path pattern of 2D perpendicular baseline file], optional
##---------multilook (optional):
## multilook while loading data with nearest interpolation, to reduce dataset size
mintpy.load.ystep          = auto    #[int >= 1], auto for 1 - no multilooking
mintpy.load.xstep          = auto    #[int >= 1], auto for 1 - no multilooking
##---------subset (optional):
## if both yx and lalo are specified, use lalo option unless a) no lookup file AND b) dataset is in radar coord
mintpy.subset.yx           = auto    #[y0:y1,x0:x1 / no], auto for no
mintpy.subset.lalo         = auto    #[S:N,W:E / no], auto for no

########## 2. modify_network
## 1) Network modification based on temporal/perpendicular baselines, date, num of connections etc.
mintpy.network.tempBaseMax     = auto  #[1-inf, no], auto for no, max temporal baseline in days
mintpy.network.perpBaseMax     = auto  #[1-inf, no], auto for no, max perpendicular spatial baseline in meter
mintpy.network.connNumMax      = auto  #[1-inf, no], auto for no, max number of neighbors for each acquisition
mintpy.network.startDate       = auto  #[20090101 / no], auto for no
mintpy.network.endDate         = auto  #[20110101 / no], auto for no
mintpy.network.excludeDate     = auto
###20150524,20150705,20160228,20160703,20160731,20170702,20170731,20180408,20180520,20180826  #[20080520,20090817 / no], auto for no
mintpy.network.excludeIfgIndex = auto
mintpy.network.referenceFile   = auto  #[date12_list.txt / ifgramStack.h5 / no], auto for no

## 2) Data-driven network modification
## a - Coherence-based network modification = (threshold + MST) by default
## reference: Yunjun et al. (2019, section 4.2 and 5.3.1); Chaussard et al. (2015, GRL)
## It calculates a average coherence for each interferogram using spatial coherence based on input mask (with AOI)
## Then it finds a minimum spanning tree (MST) network with inverse of average coherence as weight (keepMinSpanTree)
## Next it excludes interferograms if a) the average coherence < minCoherence AND b) not in the MST network.
mintpy.network.coherenceBased  = yes  #[yes / no], auto for no, exclude interferograms with coherence < minCoherence
mintpy.network.minCoherence    = 0.5  #[0.0-1.0], auto for 0.7

## b - Effective Coherence Ratio network modification = (threshold + MST) by default
## reference: Kang et al. (2021, RSE)
## It calculates the area ratio of each interferogram that is above a spatial coherence threshold.
## This threshold is defined as the spatial coherence of the interferograms within the input mask.
## It then finds a minimum spanning tree (MST) network with inverse of the area ratio as weight (keepMinSpanTree)
## Next it excludes interferograms if a) the area ratio < minAreaRatio AND b) not in the MST network.
mintpy.network.areaRatioBased  = yes  #[yes / no], auto for no, exclude interferograms with area ratio < minAreaRatio
mintpy.network.minAreaRatio    = 0.6  #[0.0-1.0], auto for 0.75

## Additional common parameters for the 2) data-driven network modification
mintpy.network.keepMinSpanTree = auto  #[yes / no], auto for yes, keep interferograms in Min Span Tree network
mintpy.network.maskFile        = auto  #[file name, no], auto for waterMask.h5 or no [if no waterMask.h5 found]
mintpy.network.aoiYX           = auto  #[y0:y1,x0:x1 / no], auto for no, area of interest for coherence calculation
mintpy.network.aoiLALO         = auto  #[S:N,W:E / no], auto for no - use the whole area

########## 3. reference_point
## Reference all interferograms to one common point in space
## auto - randomly select a pixel with coherence > minCoherence
## however, manually specify using prior knowledge of the study area is highly recommended
##   with the following guideline (section 4.3 in Yunjun et al., 2019):
## 1) located in a coherence area, to minimize the decorrelation effect.
## 2) not affected by strong atmospheric turbulence, i.e. ionospheric streaks
## 3) close to and with similar elevation as the AOI, to minimize the impact of spatially correlated atmospheric delay
mintpy.reference.yx            = auto   #[257,151 / auto]
mintpy.reference.lalo          = auto #41.6673,27.5095   #[31.8,130.8 / auto]
mintpy.reference.maskFile      = no   #[filename / no], auto for maskConnComp.h5
mintpy.reference.coherenceFile = auto   #[filename], auto for avgSpatialCoh.h5
mintpy.reference.minCoherence  = 0.55   #[0.0-1.0], auto for 0.85, minimum coherence for auto method

########## quick_overview
## A quick assessment of:
## 1) possible groud deformation
##    using the velocity from the traditional interferogram stacking
##    reference: Zebker et al. (1997, JGR)
## 2) distribution of phase unwrapping error
##    from the number of interferogram triplets with non-zero integer ambiguity of closue phase
##    reference: T_int in Yunjun et al. (2019, CAGEO). Related to section 3.2, equation (8-9) and Fig. 3d-e.

########## 4. correct_unwrap_error (optional)
## connected components (mintpy.load.connCompFile) are required for this step.
## reference: Yunjun et al. (2019, section 3)
## supported methods:
## a. phase_closure          - suitable for highly redundant network
## b. bridging               - suitable for regions separated by narrow decorrelated features, e.g. rivers, narrow water bodies
## c. bridging+phase_closure - recommended when there is a small percentage of errors left after bridging
mintpy.unwrapError.method          = bridging+phase_closure  #[bridging / phase_closure / bridging+phase_closure / no], auto for no
mintpy.unwrapError.waterMaskFile   = auto  #[waterMask.h5 / no], auto for waterMask.h5 or no [if not found]

## phase_closure options:
## numSample - a region-based strategy is implemented to speedup L1-norm regularized least squares inversion.
##     Instead of inverting every pixel for the integer ambiguity, a common connected component mask is generated,
##     for each common conn. comp., numSample pixels are radomly selected for inversion, and the median value of the results
##     are used for all pixels within this common conn. comp.
mintpy.unwrapError.numSample       = 10  #[int>1], auto for 100, number of samples to invert for common conn. comp.

## briding options:
## ramp - a phase ramp could be estimated based on the largest reliable region, removed from the entire interferogram
##     before estimating the phase difference between reliable regions and added back after the correction.
## bridgePtsRadius - half size of the window used to calculate the median value of phase difference
mintpy.unwrapError.ramp            = quadratic  #[linear / quadratic], auto for no; recommend linear for L-band data
mintpy.unwrapError.bridgePtsRadius = 10 #[1-inf], auto for 50, half size of the window around end points

########## 5. invert_network
## Invert network of interferograms into time-series using weighted least sqaure (WLS) estimator.
## weighting options for least square inversion [fast option available but not best]:
## a. var - use inverse of covariance as weight (Tough et al., 1995; Guarnieri & Tebaldini, 2008) [recommended]
## b. fim - use Fisher Information Matrix as weight (Seymour & Cumming, 1994; Samiei-Esfahany et al., 2016).
## c. coh - use coherence as weight (Perissin & Wang, 2012)
## d. no  - uniform weight (Berardino et al., 2002) [fast]
## SBAS (Berardino et al., 2002) = minNormVelocity (yes) + weightFunc (no)
mintpy.networkInversion.weightFunc      = no #[var / fim / coh / no], auto for var
mintpy.networkInversion.waterMaskFile   = auto #[filename / no], auto for waterMask.h5 or no [if not found]
mintpy.networkInversion.minNormVelocity = auto #[yes / no], auto for yes, min-norm deformation velocity / phase
mintpy.networkInversion.residualNorm    = auto #[L2 ], auto for L2, norm minimization solution

## mask options for unwrapPhase of each interferogram before inversion (recommed if weightFunct=no):
## a. coherence        - mask out pixels with spatial coherence < maskThreshold
## b. connectComponent - mask out pixels with False/0 value
## c. no               - no masking [recommended].
## d. offsetSNR        - mask out pixels with offset SNR < maskThreshold [for offset]
mintpy.networkInversion.maskDataset   = auto #[coherence / connectComponent / offsetSNR / no], auto for no
mintpy.networkInversion.maskThreshold = auto #[0-inf], auto for 0.4
mintpy.networkInversion.minRedundancy = auto #[1-inf], auto for 1.0, min num_ifgram for every SAR acquisition

## Temporal coherence is calculated and used to generate the mask as the reliability measure
## reference: Pepe & Lanari (2006, IEEE-TGRS)
mintpy.networkInversion.minTempCoh  = 0.7 #[0.0-1.0], auto for 0.7, min temporal coherence for mask
mintpy.networkInversion.minNumPixel = auto #[int > 1], auto for 100, min number of pixels in mask above
mintpy.networkInversion.shadowMask  = auto #[yes / no], auto for yes [if shadowMask is in geometry file] or no.

########## correct_LOD
## Local Oscillator Drift (LOD) correction (for Envisat only)
## reference: Marinkovic and Larsen (2013, Proc. LPS)
## automatically applied to Envisat data (identified via PLATFORM attribute)
## and skipped for all the other satellites.

########## correct_SET
## Solid Earth tides (SET) correction [need to install insarlab/PySolid]
## reference: Milbert (2018); Fattahi et al. (2020, AGU)
mintpy.solidEarthTides = no #[yes / no], auto for no

########## 6. correct_troposphere (optional but recommended)
## correct tropospheric delay using the following methods:
## a. height_correlation - correct stratified tropospheric delay (Doin et al., 2009, J Applied Geop)
## b. pyaps - use Global Atmospheric Models (GAMs) data (Jolivet et al., 2011; 2014)
##      ERA5  - ERA-5       from ECMWF [need to install PyAPS from GitHub; recommended and turn ON by default]
##      MERRA - MERRA-2     from NASA  [need to install PyAPS from Caltech/EarthDef]
##      NARR  - NARR        from NOAA  [need to install PyAPS from Caltech/EarthDef; recommended for N America]
## c. gacos - use GACOS with the iterative tropospheric decomposition model (Yu et al., 2018a, RSE; 2018b, JGR)
##      need to manually download GACOS products at http://www.gacos.net for all acquisitions before running this step
mintpy.troposphericDelay.method = gacos  #[pyaps / height_correlation / gacos / no], auto for pyaps

## Notes for pyaps:
## a. GAM data latency: with the most recent SAR data, there will be GAM data missing, the correction
##    will be applied to dates with GAM data available and skipped for the others.
## b. WEATHER_DIR: if you define an environment variable named WEATHER_DIR to contain the path to a
##    directory, then MintPy applications will download the GAM files into the indicated directory.
##    MintPy application will look for the GAM files in the directory before downloading a new one to
##    prevent downloading multiple copies if you work with different dataset that cover the same date/time.
mintpy.troposphericDelay.weatherModel = auto  #[ERA5 / MERRA / NARR], auto for ERA5
mintpy.troposphericDelay.weatherDir   = auto  #[path2directory], auto for WEATHER_DIR or "./"

## Notes for height_correlation:
## Extra multilooking is applied to estimate the empirical phase/elevation ratio ONLY.
## For an dataset with 5 by 15 looks, looks=8 will generate phase with (5*8) by (15*8) looks
## to estimate the empirical parameter; then apply the correction to original phase (with 5 by 15 looks),
## if the phase/elevation correlation is larger than minCorrelation.
mintpy.troposphericDelay.polyOrder      = auto  #[1 / 2 / 3], auto for 1
mintpy.troposphericDelay.looks          = auto  #[1-inf], auto for 8, extra multilooking num
mintpy.troposphericDelay.minCorrelation = auto  #[0.0-1.0], auto for 0

## Notes for gacos:
## Set the path below to directory that contains the downloaded *.ztd* files
mintpy.troposphericDelay.gacosDir = /truba/home/ifarimaz/elaz/gacos # [path2directory], auto for "./GACOS"

########## 7. deramp (optional)
## Estimate and remove a phase ramp for each acquisition based on the reliable pixels.
## Recommended for localized deformation signals, i.e. volcanic deformation, landslide and land subsidence, etc.
## NOT recommended for long spatial wavelength deformation signals, i.e. co-, post- and inter-seimic deformation.
mintpy.deramp          = auto  #[no / linear / quadratic], auto for no - no ramp will be removed
mintpy.deramp.maskFile = auto  #[filename / no], auto for maskTempCoh.h5, mask file for ramp estimation

########## 8. correct_topography (optional but recommended)
## Topographic residual (DEM error) correction
## reference: Fattahi and Amelung (2013, IEEE-TGRS)
## stepFuncDate      - specify stepFuncDate option if you know there are sudden displacement jump in your area,
##                     e.g. volcanic eruption, or earthquake
## excludeDate       - dates excluded for the error estimation
## pixelwiseGeometry - use pixel-wise geometry (incidence angle & slant range distance)
##                     yes - use pixel-wise geometry if they are available [slow; used by default]
##                     no  - use the mean   geometry [fast]
mintpy.topographicResidual                   = yes  #[yes / no], auto for yes
mintpy.topographicResidual.polyOrder         = auto  #[1-inf], auto for 2, poly order of temporal deformation model
mintpy.topographicResidual.phaseVelocity     = auto  #[yes / no], auto for no - phase, use phase velocity for minimization
mintpy.topographicResidual.stepFuncDate      = auto  #[20080529,20100611 / no], auto for no, date of step jump
mintpy.topographicResidual.excludeDate       = no #20150524,20150705,20160228,20160703,20160731,20170702,20170731,20180408,20180520,20180826  #[20070321 / txtFile / no], auto for exclude_date.txt
mintpy.topographicResidual.pixelwiseGeometry = auto  #[yes / no], auto for yes, use pixel-wise geometry info

########## 9.1 residual_RMS (root mean squares for noise evaluation)
## Calculate the Root Mean Square (RMS) of residual phase time-series for each acquisition
## reference: Yunjun et al. (2019, section 4.9 and 5.4)
## To get rid of long wavelength component in space, a ramp is removed for each acquisition
## Set optimal reference date to date with min RMS
## Set exclude dates (outliers) to dates with RMS > cutoff * median RMS (Median Absolute Deviation)
mintpy.residualRMS.maskFile = auto  #[file name / no], auto for maskTempCoh.h5, mask for ramp estimation
mintpy.residualRMS.deramp   = auto  #[quadratic / linear / no], auto for quadratic
mintpy.residualRMS.cutoff   = auto  #[0.0-inf], auto for 3

########## 9.2 reference_date
## Reference all time-series to one date in time
## reference: Yunjun et al. (2019, section 4.9)
## no     - do not change the default reference date (1st date)
mintpy.reference.date = auto   #[reference_date.txt / 20090214 / no], auto for reference_date.txt

########## 10. velocity
## Estimate linear velocity and its standard deviation from time-series
## and from tropospheric delay file if exists.
## reference: Fattahi and Amelung (2015, JGR)
mintpy.velocity.excludeDate    = no #20150524,20150705,20160228,20160703,20160731,20170702,20170731,20180408,20180520,20180826   #[exclude_date.txt / 20080520,20090817 / no], auto for exclude_date.txt
mintpy.velocity.startDate      = auto   #[20070101 / no], auto for no
mintpy.velocity.endDate        = auto   #[20101230 / no], auto for no

## Bootstrapping
## refernce: Efron and Tibshirani (1986, Stat. Sci.)
mintpy.velocity.bootstrap      = yes   #[yes / no], auto for no, use bootstrap
mintpy.velocity.bootstrapCount = 900   #[int>1], auto for 400, number of iterations for bootstrapping

########## 11.1 geocode (post-processing)
# for input dataset in radar coordinates only
# commonly used resolution in meters and in degrees (on equator)
# 100,         60,          50,          30,          20,          10
# 0.000925926, 0.000555556, 0.000462963, 0.000277778, 0.000185185, 0.000092593
mintpy.geocode              = auto  #[yes / no], auto for yes
mintpy.geocode.SNWE         = auto  #39.2248535862,43.2956657025,24.1886245944,30.6565475432  #[-1.2,0.5,-92,-91 / none ], auto for none, output extent in degree
mintpy.geocode.laloStep     = auto  #[-0.000555556,0.000555556 / None], auto for None, output resolution in degree
mintpy.geocode.interpMethod = auto  #[nearest], auto for nearest, interpolation method
mintpy.geocode.fillValue    = auto  #[np.nan, 0, ...], auto for np.nan, fill value for outliers.

########## 11.2 google_earth (post-processing)
mintpy.save.kmz             = auto   #[yes / no], auto for yes, save geocoded velocity to Google Earth KMZ file

########## 11.3 hdfeos5 (post-processing)
mintpy.save.hdfEos5         = auto   #[yes / no], auto for no, save time-series to HDF-EOS5 format
mintpy.save.hdfEos5.update  = auto   #[yes / no], auto for no, put XXXXXXXX as endDate in output filename
mintpy.save.hdfEos5.subset  = auto   #[yes / no], auto for no, put subset range info   in output filename

########## 11.4 plot
mintpy.plot = auto   #[yes / no], auto for yes, plot files generated by default processing to pic folder

Full error message

/truba/home/ifarimaz/tools/MintPy/mintpy/load_data.py:710: UserWarning: prep_isce.py failed. Assuming its result exists and continue... warnings.warn('prep_isce.py failed. Assuming its result exists and continue...') Traceback (most recent call last): File "/truba/home/ifarimaz/miniconda3/envs/mintpy/lib/python3.8/xml/etree/ElementTree.py", line 1700, in close self.parser.Parse("", 1) # end of data xml.parsers.expat.ExpatError: no element found: line 1, column 0

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/truba/home/ifarimaz/miniconda3/envs/mintpy/bin/smallbaselineApp.py", line 10, in sys.exit(main()) File "/truba/home/ifarimaz/tools/MintPy/mintpy/smallbaselineApp.py", line 1270, in main app.run(steps=inps.runSteps) File "/truba/home/ifarimaz/tools/MintPy/mintpy/smallbaselineApp.py", line 1035, in run self.run_load_data(sname) File "/truba/home/ifarimaz/tools/MintPy/mintpy/smallbaselineApp.py", line 344, in run_load_data mintpy.load_data.main(iargs) File "/truba/home/ifarimaz/tools/MintPy/mintpy/load_data.py", line 838, in main stackObj = read_inps_dict2ifgram_stack_dict_object(iDict) File "/truba/home/ifarimaz/tools/MintPy/mintpy/load_data.py", line 411, in read_inps_dict2ifgram_stack_dict_object dsPathDict = skip_files_with_inconsistent_size(dsPathDict, File "/truba/home/ifarimaz/tools/MintPy/mintpy/load_data.py", line 331, in skip_files_with_inconsistent_size atr_list = [readfile.read_attribute(fname) for fname in dsPathDict[dsName]] File "/truba/home/ifarimaz/tools/MintPy/mintpy/load_data.py", line 331, in atr_list = [readfile.read_attribute(fname) for fname in dsPathDict[dsName]] File "/truba/home/ifarimaz/tools/MintPy/mintpy/utils/readfile.py", line 915, in read_attribute atr.update(read_isce_xml(xml_files[0])) File "/truba/home/ifarimaz/tools/MintPy/mintpy/utils/readfile.py", line 1258, in read_isce_xml root = ET.parse(fname).getroot() File "/truba/home/ifarimaz/miniconda3/envs/mintpy/lib/python3.8/site-packages/defusedxml/common.py", line 100, in parse return _parse(source, parser) File "/truba/home/ifarimaz/miniconda3/envs/mintpy/lib/python3.8/xml/etree/ElementTree.py", line 1202, in parse tree.parse(source, parser) File "/truba/home/ifarimaz/miniconda3/envs/mintpy/lib/python3.8/xml/etree/ElementTree.py", line 602, in parse self._root = parser.close() File "/truba/home/ifarimaz/miniconda3/envs/mintpy/lib/python3.8/xml/etree/ElementTree.py", line 1702, in close self._raiseerror(v) File "/truba/home/ifarimaz/miniconda3/envs/mintpy/lib/python3.8/xml/etree/ElementTree.py", line 1602, in _raiseerror raise err xml.etree.ElementTree.ParseError: no element found: line 1, column 0

System information

welcome[bot] commented 2 years ago

👋 Thanks for opening your first issue here! Please make sure you filled out the template with as much detail as possible. We appreciate that you took the time to contribute! Make sure you read our contributing guidelines

yunjunz commented 2 years ago

I agree with you that this seems to be an issue due to the mixing of different versions of python env. More specifically, I don't think isce2 is installed in your python3.8 environment. You could run the printout prep_isce.py ... command as test and confirm.

The upgrade of python 3.9 is planned for mintpy and on the to-do list. For now, the easy fix would be to install both isce2 and mintpy in the same conda environment under python 3.8.

ilayfarimaz commented 2 years ago

Thank you for your answer. I run prep_isce.py, it works well. So I'll interpret interferograms once again under my 3.8 env.

Looking forward for 3.9 upgrade, thanks