[GRASS-user] result from g.copy when layer exists

Markus Metz markus.metz.giswork at gmail.com
Fri Jul 19 00:14:32 PDT 2013


On Thu, Jul 18, 2013 at 1:57 PM, Rainer M Krug <Rainer at krugs.de> wrote:
> Nikos Alexandris <nik at nikosalexandris.net> writes:
>
>> Rainer MK wrote:
>>> >> I am a bit irritated,  ut maybe I don't dee the reasoning behind this:'
>>
>>> >> ,----
>>> >> | RASS 7.0.svn (grass):~ > g.copy rast=MASK,tmp
>>> >> | WARNING: <tmp> already exists
>>> >> | [Raster MASK present]
>>> >> | GRASS 7.0.svn (grass):~ >
>>> >> `----
>>
>>> >> If the layer already exists, shouldn't the command give actually an
>>> >> error and not only a warning?
>>
>>> >> A warning implies for me that the command worked, but maybe something
>>> >> unexpected could have happened (or happened) - but this one clearly did
>>> >> not work, as the layer has not been copied?
>>
>> Glynn Clements:
>>> > In GRASS, errors are fatal; the program will be terminated as soon as
>>> > the error message has been printed.
>>
>> Rainer MK:
>>> Exactly - if e.g. in r.mapcalc an invalid expression is entered,
>>> r.mapcalc issues the error message and quits.
>>
>>> > Each of g.copy's options accept an arbitray number of
>>> > source+destination pairs, and the various options aren't mutually
>>> > exclusive (e.g. a single invocation can copy both raster and vector
>>> > maps).
>>
>>> True.
>>
>>> > If it can't perform a particular copy for any reason, it generates a
>>> > warning then moves on to the next item.
>>
>>> True - but this does not answer my question. But I looked at cp in bash,
>>> and it behaves in the same way.
>>> So I think I have to live with this.
>>
>> Just sharing my thoughts about: Imagine copying 1000 maps.  And one is meant
>> to fail, say the 1st one of them.  You wouldn't, probably, like the copy
>> process to be interrupted just for one map that failed. Right?
>
> Depends: when using in a script, I would like it to fail, as the
> following commands might give wrong resuls as they would be based on the
> previous map and not the copied one.
>
> Also, in a script this could mean that previous commands did not clean
> their temporary files properly - other cause for an interruption of the
> script.
>
> When doing it from the command prompt, I would say: just tell me which
> ones failed - correct.
>
> SO the best would be a flag which says "error on map exists".

The other way around: you can enforce copying (overwrite existing
maps) with g.copy --o

Markus M


More information about the grass-user mailing list