johntruckenbrodt / pyroSAR

framework for large-scale SAR satellite data processing
MIT License
503 stars 111 forks source link

cann't use snap #304

Closed yang162132 closed 5 months ago

yang162132 commented 5 months ago
Traceback (most recent call last):
  File "/root/PycharmProjects/pythonProject/testrosar.py", line 4, in <module>
    geocode(sence,outdir="tem/SLC")
  File "/home/anaconda3/envs/pyt310/lib/python3.10/site-packages/pyroSAR/snap/util.py", line 322, in geocode
    read = parse_node('Read')
  File "/home/anaconda3/envs/pyt310/lib/python3.10/site-packages/pyroSAR/snap/auxil.py", line 91, in parse_node
    version = snap.get_version('s1tbx')['version']
  File "/home/anaconda3/envs/pyt310/lib/python3.10/site-packages/pyroSAR/examine.py", line 368, in get_version
    raise RuntimeError('cannot read version information from {}.\nPlease restart SNAP.'.format(fname))
RuntimeError: cannot read version information from /root/.snap/system/var/log/messages.log.
Please restart SNAP.

pyroSAR ==0.24.0 and snap is esa-snap_sentinel_linux-10.0.0

yang162132 commented 5 months ago

image It is normal for snap to start from the command line

johntruckenbrodt commented 5 months ago

Hi @yang162132 pyroSAR does not yet support SNAP 10. The fix has already been made (https://github.com/johntruckenbrodt/pyroSAR/pull/303) and a new version 0.26.0 will be released in the next days.

yang162132 commented 5 months ago

Hi @yang162132 pyroSAR does not yet support SNAP 10. The fix has already been made (#303) and a new version 0.26.0 will be released in the next days.

Thank you for your response and I am looking forward to the next version. By the way, is there a complete case of Sentinel 1 radar data processing? Where can I see them.

johntruckenbrodt commented 5 months ago

Hi @yang162132, you can find some examples in the docs: https://pyrosar.readthedocs.io/en/latest/general/processing.html https://pyrosar.readthedocs.io/en/latest/general/snap.html

yang162132 commented 5 months ago

Why the result of pyroSAR.snap.util.geocode is Gtiff,rather then dim? This would seem to make more difficult to do ps-insar or time series analysis

johntruckenbrodt commented 5 months ago

It's just how I found it to be most useful in the past. I did a lot of time series analysis, but all outside of SNAP. GeoTIFF was the most convenient for me.

You can get around this like so:

import os
from pyroSAR.snap.util import geocode, gpt
from pyroSAR.snap.auxil import Workflow, groupbyWorkers
import logging

logging.basicConfig(level=logging.INFO)

fname = 'S1A_IW_GRDH_1SDV_20180829T170631_20180829T170656_023464_028DE0_9F36.zip'

outdir = 'out'
tmpdir = 'tmp'

# only create the workflow and return the file name
fname_wf = geocode(infile=fname, spacing=200,
                   outdir=outdir, tmpdir=tmpdir,
                   test=True, returnWF=True)

# modify the workflow
wf = Workflow(fname_wf)
write = wf['Write']
out = os.path.join(outdir, os.path.basename(write.parameters['file']) + '.dim')
write.parameters['file'] = out
write.parameters['formatName'] = 'BEAM-DIMAP'
wf.write(fname_wf)

# run the workflow
groups = groupbyWorkers(fname_wf, n=2)
gpt(xmlfile=fname_wf, tmpdir=tmpdir, groups=groups)
yang162132 commented 5 months ago

It's just how I found it to be most useful in the past. I did a lot of time series analysis, but all outside of SNAP. GeoTIFF was the most convenient for me.

You can get around this like so:

import os
from pyroSAR.snap.util import geocode, gpt
from pyroSAR.snap.auxil import Workflow, groupbyWorkers
import logging

logging.basicConfig(level=logging.INFO)

fname = 'S1A_IW_GRDH_1SDV_20180829T170631_20180829T170656_023464_028DE0_9F36.zip'

outdir = 'out'
tmpdir = 'tmp'

# only create the workflow and return the file name
fname_wf = geocode(infile=fname, spacing=200,
                   outdir=outdir, tmpdir=tmpdir,
                   test=True, returnWF=True)

# modify the workflow
wf = Workflow(fname_wf)
write = wf['Write']
out = os.path.join(outdir, os.path.basename(write.parameters['file']) + '.dim')
write.parameters['file'] = out
write.parameters['formatName'] = 'BEAM-DIMAP'
wf.write(fname_wf)

# run the workflow
groups = groupbyWorkers(fname_wf, n=2)
gpt(xmlfile=fname_wf, tmpdir=tmpdir, groups=groups)

what do you usually use for time series analysis? I only found MintPy with stamps in python, None of them seem to support geotiff

johntruckenbrodt commented 5 months ago

I mostly worked with backscatter data, nothing interferometric. I used to write my own programs in C++, nowadays I use a lot of xarray and dask. For this I don't use the function geocode though, there is this package:
https://s1-nrb.readthedocs.io/en/latest/ https://s1-nrb.readthedocs.io/en/latest/examples/nrb_cube.html

Since you are mentioning MintPy and stamps, I guess you are after interferometric analysis. I haven't done much in this direction. However, there is this PR https://github.com/johntruckenbrodt/pyroSAR/pull/152 which I need to merge one day. Other than that you would need to write your own workflows using the SNAP API.

vchaparro commented 5 months ago

Hi @johntruckenbrodt, Is the last version being available from pip?

Thanks!

johntruckenbrodt commented 5 months ago

@yang162132, the new version was released yesterday. SNAP 10 is now supported.

Hi @vchaparro. Yes, the new version ist pip-installable. There is a new restriction for Python: python>=3.8,<3.11. The >=3.8 part is intended, the 3.11 part will hopefully be fixed soon. Could it be that your Python version does not match this requirement and you can only install an older version of pyroSAR?

vchaparro commented 5 months ago

The python version I'm using is 3.10, but I've needed to install pyroSAR 0.26 from git, because with python 3.10 pip doesn't find the last version, the latest version it installs is 0.24.0

johntruckenbrodt commented 5 months ago

Mh. I just did a fresh install like this:

mamba create -n test python=3.10
mamba activate test
pip install pyroSAR

It worked fine, 0.26.0 is installed.

Can you try installation with a fresh environment? Perhaps some other package is causing the conflict.

vchaparro commented 5 months ago

Hi @johntruckenbrodt , I've tested it again, and now pip finds pyroSAR 0.26. I might have missed something in the previous tests.

Thanks!

johntruckenbrodt commented 5 months ago

Great you got it to work @vchaparro. Happy processing

johntruckenbrodt commented 5 months ago

Closing this as the original error has been fixed. @yang162132 feel free to open another issues in case you have more questions.