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
}}}
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'
}}}
Replying to [comment:1 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.
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.