Applied-GeoSolutions / gips

Geospatial Image Processing System
GNU General Public License v3.0
17 stars 5 forks source link

landsat NDVI error #487

Closed bhbraswell closed 6 years ago

bhbraswell commented 6 years ago

Not sure what's up here. I'm using a sixs binary that I've had for a while. Did you change the version?

gips@gips:/gips$ gips_process landsat -p ndvi -s /archive/vector/1field.shp -d 2017-07-06 -v4 --fetch
GIPS Data Processing (v0.11.0-dev)
Retrieving inventory for site 1field-0
For DN, requested dates, 2017-07-06 - 2017-07-06, are not in the valid range of 1984-03-01 - 2017-04-30.
Attempting to load LE07_L1TP_030033_20170706_20170801_01_T1.tar.gz
C1 asset
No files found; nothing to archive.
Attempting to load LE07_L1TP_030033_20170706_20170801_01_T1.tar.gz
C1 asset
Processing [ndvi] on 1 dates (1 files)
Extracting files from /archive/landsat/tiles/030033/2017187/LE07_L1TP_030033_20170706_20170801_01_T1.tar.gz to /archive/landsat/tiles/030033/2017187/extractI1xL7c
LE07_L1TP_030033_20170706_20170801_01_T1_MTL.txt exists, not extracting
Moving files from /archive/landsat/tiles/030033/2017187/extractI1xL7c to /archive/landsat/tiles/030033/2017187
LE07_L1TP_030033_20170706_20170801_01_T1_B1: read in 0:00:05.274534
Error:
Traceback (most recent call last):
  File "/gips/gips/utils.py", line 578, in cli_error_handler
    yield
  File "/gips/gips/inventory/__init__.py", line 332, in process
    self.data[date].process(*args, **kwargs)
  File "/gips/gips/tiles.py", line 73, in process
    [t.process(*args, products=self.products.products, **kwargs) for t in self.tiles.values()]
  File "/gips/gips/data/core.py", line 1291, in wrapper
    return wrapped_method(self, *args, **kwargs)
  File "/gips/gips/data/landsat/landsat.py", line 1155, in process
    raise Exception('6S is required for atmospheric correction')
Exception: 6S is required for atmospheric correction

Processing completed in 0:00:05.276998
Fatal: 1 error(s) occurred:
Error:
Traceback (most recent call last):
  File "/gips/gips/utils.py", line 578, in cli_error_handler
    yield
  File "/gips/gips/inventory/__init__.py", line 332, in process
    self.data[date].process(*args, **kwargs)
  File "/gips/gips/tiles.py", line 73, in process
    [t.process(*args, products=self.products.products, **kwargs) for t in self.tiles.values()]
  File "/gips/gips/data/core.py", line 1291, in wrapper
    return wrapped_method(self, *args, **kwargs)
  File "/gips/gips/data/landsat/landsat.py", line 1155, in process
    raise Exception('6S is required for atmospheric correction')
Exception: 6S is required for atmospheric correction

gips@gips:/gips$ which sixs
/usr/local/bin/sixs
ircwaves commented 6 years ago

This definitely smells like a "needs better error reporting" situation. I can immediately think of two cases in which this error message can arise:

  1. You covefed (hah): no sixs present.
  2. gips.settings.REPOS['landsat']['6S'] == False

Can you post your landsat settings? (w/o passwords, of course)

bhbraswell commented 6 years ago

Ahh, mostly 2. It was a container build screwup on my part which actually ties to the question of a having a consistent console container for users.

>>> from gips import settings
>>> settings.REPOS['landsat']['6S']
False
>>> 
gips@gips:/gips$ exit
exit
braswell@gray:~/repo/gips-rb/gips$ grep 6S settings.py
        '6S': True,             # !!!!
braswell@gray:~/repo/gips-rb/gips$ 

THANKS

ra-tolson commented 6 years ago

Filed an issue for UX improvement: https://gitlab.com/appliedgeosolutions/gips/issues/540