Opened 5 years ago

Closed 5 years ago

Last modified 5 years ago

#3820 closed defect (fixed)

Error i.pansharpen in grass76 relbranch

Reported by: veroandreo Owned by: grass-dev@…
Priority: normal Milestone: 7.6.2
Component: Imagery Version: svn-releasebranch76
Keywords: i.pansharpen Cc:
CPU: Unspecified Platform: Unspecified

Description

When compiling grass76_relbranch I got an indentation error in i.pansharpen at line 257 (https://trac.osgeo.org/grass/browser/grass/branches/releasebranch_7_6/scripts/i.pansharpen/i.pansharpen.py#L257)

File "/home/veroandreo/software/grass76_release/dist.x86_64-pc-linux-gnu/scripts/i.pansharpen", line 256
    pr.wait()
    ^
IndentationError: unexpected indent

I entered the directory of i.pansharpen, run make, still the same error. So I open the code and locally moved lines 257-263 to the left. Compilation of i.pansharpen went fine, no errors. But when I try to run the examples in the manual page for Landsat 7 in NC Location, I get:

GRASS 7.6.2svn (nc_spm_08_grass7):~ > i.pansharpen red=lsat7_2002_30@PERMANENT   green=lsat7_2002_20 blue=lsat7_2002_10   pan=lsat7_2002_80 method=ihs   output=lsat7_2002_ihs
Traceback (most recent call last):
  File "/home/veroandreo/software/grass76_release/dist.x86_64-pc-linux-gnu/scripts/i.pansharpen", line 402, in <module>
    main()
  File "/home/veroandreo/software/grass76_release/dist.x86_64-pc-linux-gnu/scripts/i.pansharpen", line 135, in main
    if bits == 8:
NameError: global name 'bits' is not defined

Is this related to the backport in r74385?

Change History (4)

comment:1 by veroandreo, 5 years ago

It does work in trunk with no reported errors. However, if I run it in trunk compiled with python 3 in a virtualenv, I get:

i.pansharpen red=lsat7_2002_30@PERMANENT   green=lsat7_2002_20 blue=lsat7_2002_10 pan=lsat7_2002_80 method=ihs   output=lsat7_2002_ihs
Using 8bit image channels
Performing pan sharpening with hi res pan image: 14.250000
Transforming to IHS color space...
 100%
Histogram matching...
 100%
Traceback (most recent call last):
  File "/home/veroandreo/software/grass7_trunk/dist.x86_64-pc-linux-gnu/scripts/i.pansharpen", line 632, in <module>
    main()
  File "/home/veroandreo/software/grass7_trunk/dist.x86_64-pc-linux-gnu/scripts/i.pansharpen", line 259, in main
    ihs(pan, ms1, ms2, ms3, out, pid, sproc)
  File "/home/veroandreo/software/grass7_trunk/dist.x86_64-pc-linux-gnu/scripts/i.pansharpen", line 380, in ihs
    panmatch = matchhist(pan, target, outname)
  File "/home/veroandreo/software/grass7_trunk/dist.x86_64-pc-linux-gnu/scripts/i.pansharpen", line 552, in matchhist
    stats = stats_out.communicate()[0].split('\n')[:-1]
TypeError: a bytes-like object is required, not 'str'

comment:2 by cmbarton, 5 years ago

Resolution: fixed
Status: newclosed

Should be fixed now in r74403.

in reply to:  1 comment:3 by cmbarton, 5 years ago

Replying to veroandreo:

It does work in trunk with no reported errors. However, if I run it in trunk compiled with python 3 in a virtualenv, I get:

i.pansharpen red=lsat7_2002_30@PERMANENT   green=lsat7_2002_20 blue=lsat7_2002_10 pan=lsat7_2002_80 method=ihs   output=lsat7_2002_ihs
Using 8bit image channels
Performing pan sharpening with hi res pan image: 14.250000
Transforming to IHS color space...
 100%
Histogram matching...
 100%
Traceback (most recent call last):
  File "/home/veroandreo/software/grass7_trunk/dist.x86_64-pc-linux-gnu/scripts/i.pansharpen", line 632, in <module>
    main()
  File "/home/veroandreo/software/grass7_trunk/dist.x86_64-pc-linux-gnu/scripts/i.pansharpen", line 259, in main
    ihs(pan, ms1, ms2, ms3, out, pid, sproc)
  File "/home/veroandreo/software/grass7_trunk/dist.x86_64-pc-linux-gnu/scripts/i.pansharpen", line 380, in ihs
    panmatch = matchhist(pan, target, outname)
  File "/home/veroandreo/software/grass7_trunk/dist.x86_64-pc-linux-gnu/scripts/i.pansharpen", line 552, in matchhist
    stats = stats_out.communicate()[0].split('\n')[:-1]
TypeError: a bytes-like object is required, not 'str'

So far, it is not designed to work in Python 3. I have not yet upgraded my computers so I can't yet test. A coming step will be to develop a new workflow to compile GRASS in Python 3.

comment:4 by veroandreo, 5 years ago

I confirm that the commit fixed the problem in relbranch.

So far, it is not designed to work in Python 3. I have not yet upgraded my computers so I can't yet test. A coming step will be to develop a new workflow to compile GRASS in Python 3.

Will this help: https://trac.osgeo.org/grass/wiki/Python3Support#Howtotest ?

Note: See TracTickets for help on using tickets.