[GRASS-user] Rectify error / maximum number of GCPs?

Markus Neteler neteler at osgeo.org
Mon Mar 23 03:57:36 EDT 2009


Benjamin,

On Mon, Mar 23, 2009 at 12:31 AM, Benjamin Deschamps <bdesc100 at gmail.com> wrote:
> Markus,
>
> Changing all instances of "51" to "501" in Application > GRASS 6.4 >
> Contents > MacOS > etc > gm> georect.tcl fixed the error message, but GRASS
> still freezes, and none of the windows work.

Does it really freeze or is it just busy (and badly communicating
that it is busy)?

Please open a ticket for this with the details we collected so far.

> A look at the activity monitor
> reveals that the process i.rectify takes 99% of the CPU capacity... The same
> happens when I run i.rectify form the command line, but in that case I have
> the progress bar to let me know that something is happening.

Right (and i.rectify should use the CPU, no?).

> Using i.group, i.target and i.rectify directly at the command prompt is now
> working, so I won't bother with the using the GUI. It just took me some time
> to realize that it had to be run from the source location when using the
> command line and from the target destination when using the GUI. Thanks for
> your help!

No problem - we just need a trace in the bugtracker to not forget
about it...

thanks
Markus

> Benjamin
>
> On 22-Mar-09, at 3:27 PM, Markus Neteler wrote:
>
>> On Sat, Mar 21, 2009 at 1:21 AM, Benjamin Deschamps <bdesc100 at gmail.com>
>> wrote:
>>>
>>> I am trying to georectify RADARSAT-2 imagery in GRASS 6.4.0RC3 (Mac OS
>>> 10.5).
>>> The imagery is accompanied by 350 GCPs. When using the GUI georectify
>>> tool I
>>> get the following error when I click on the "start georectifying" button:
>>>
>>> can't read "xy(51)": no such element in array
>>> can't read "xy(51)": no such element in array
>>>   while executing
>>> "$xy($gcpnum) insert     0 "[lindex $fields 0] [lindex $fields 1]""
>>>   (procedure "GRMap::get_gcp" line 34)
>>>   invoked from within
>>> "GRMap::get_gcp"
>>>   (procedure "GRMap::gcpwin" line 119)
>>>   invoked from within
>>> "GRMap::gcpwin"
>>>   (procedure "GRMap::refmap" line 33)
>>>   invoked from within
>>> "GRMap::refmap"
>>>   ("uplevel" body line 1)
>>>   invoked from within
>>> "uplevel \#0 $cmd"
>>>   (procedure "Button::_release" line 18)
>>>   invoked from within
>>> "Button::_release .grstart.mf.frame.start.a"
>>>   (command bound to event)
>>>
>>>
>>> Is there a limit of 50 GCPs?
>>
>> It looks like that. But I don't know why (I'm not the author of this
>> code):
>>
>> grep 51 gui/tcltk/gis.m/georect*
>> gui/tcltk/gis.m/georect.tcl:    for {set gcpnum 1} {$gcpnum < 51 } {
>> incr gcpnum } {
>> gui/tcltk/gis.m/georect.tcl:            if {$gcpnum == 51} {break}
>> gui/tcltk/gis.m/georect.tcl:    for {set gcpnum 1} {$gcpnum < 51 } {
>> incr gcpnum } {
>> gui/tcltk/gis.m/georect.tcl:    for {set gcpnum 1} {$gcpnum < 51 } {
>> incr gcpnum } {
>> gui/tcltk/gis.m/georect.tcl:            for {set gcpnum 1} {$gcpnum <
>> 51 } { incr gcpnum } {
>> gui/tcltk/gis.m/georect.tcl:    for {set gcpnum 1} {$gcpnum < 51 } {
>> incr gcpnum } {
>>
>> You could just edit the file (it is in the GRASS installation somewhere)
>> and replace 51 to say, 501 and try again.
>>
>> Please report if that works for you.
>>
>> Markus
>
>


More information about the grass-user mailing list