[GRASS-user] cutting rasters with a vector
Nikos Alexandris
nik at nikosalexandris.net
Sat Nov 30 02:47:15 PST 2013
Nikos A:
> > Is it about trimming Landsat borders?
Anna Z:
> No, it's about selecting an area inside the tile, which I need to work on.
> anyway, since you mentioned it, the issue of cutting away borders is also
> interesting ...
In short
Attached a custom python script (for GRASS GIS 7 I think) which needs a
Landsat scene to be imported based on a GRASS-Wiki Landsat import script [1]
and the corresponding vector tile to be imported in GRASS as well. If you get
into this I'll try to make it more clear how I used it.
Attached as well, a slightly modified import script, based on the GRASS-Wiki
one, to handle, hopefully all: L5, L7 and L8.
Long story
There is this question: <http://gis.stackexchange.com/q/34637/5256> and a
GRASSy answer: <http://gis.stackexchange.com/a/45268/5256>. So there is/was
already a grass-addon named i.landsat.trim in
<http://grasswiki.osgeo.org/wiki/AddOns/GRASS_6#i.landsat.trim>. However, it
is somewhat experimental and not using the exact WRS2 tiles.
Back in May I have tried to give a generic answer to this task by writing a
Python script called "i.landsat.wrs2trim" :-). I imagined that a script could
simply be instructed which tile(s) and row(s) from the official WRS2 tiles [0]
and it should trim all Landsat bands that pertain to an aquisition over the
tile(s) in question.
I ended up, once again, with something kinda hardcoded that would require to
have prepared and have beforehand the vector tile of interest. It is attached.
It works only for "LE7" scenes and only if the bands are imported using the
python script given in GRASS-Wiki [1] (thanks to Martin for this), i.e. they
are named after B1, B2, B3, B4, B5, B61, B62, B8.
Of course (!), one needs to prepare the vector tile for the specific to-be-
trimmed Landsat bands. As far as I remember, this involves getting the WRS2
Shapefile, selecting and saving the tile of interest (in QGIS quicker I think,
load > select > save as...), then importing in GRASS.
The logic is to have Landsat scenes imported in independent Mapsets, that is
all bands of a scene in one Mapset, and all bands of another scene in another
Mapset, et.c. Each Mapset named after the Landsat scenes' ID.
I didn't know how to have available the WRS2 tiles. Let the user download
them and set the path to it, and let the script do its work? Or, make the
script do all this? Packing the WRS2 tiles along with the script somehow?
Bah... Not a programmer here :-/
Oh, thanks to Alexander Muriy for his time at some point for checking the
python script and giving some hints. I just have had no time to work on this
again. Nonetheless, I consider such a tool as a must-have along the other
landsat tools in GRASS.
Nikos
--
[0] <http://landsat.usgs.gov/documents/wrs2_descending.zip>
[1] <http://grasswiki.osgeo.org/wiki/LANDSAT#Automated_data_import>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: import_landsat_custom.py
Type: text/x-python
Size: 5625 bytes
Desc: not available
URL: <http://lists.osgeo.org/pipermail/grass-user/attachments/20131130/cc78397f/attachment.py>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: trim_landsat_scenes.py
Type: text/x-python
Size: 13925 bytes
Desc: not available
URL: <http://lists.osgeo.org/pipermail/grass-user/attachments/20131130/cc78397f/attachment-0001.py>
More information about the grass-user
mailing list