[GRASS-user] Issue with addon r.vif in MS Windows GUI installations (stand-alone v. 7.2.2 and 7.0.5)

Paulo van Breugel p.vanbreugel at gmail.com
Sat Feb 10 07:36:18 PST 2018


On 2/3/18 1:33 PM, Stefan Blumentrath wrote:
>
> Hi Paulo and Helmut,
>
> Did you consider using cStringIO, if you need a file-object?
>
> That would avoid the temporary file and thus should be more efficient 
> too. See attached diff (it is probably not necessary to remove the 
> last line break though).
>
Implemented your patch, thanks.  Dinarzarde, can you test?
>
> Just a suggestion.
>
> Yet, there might be even more efficient solutions. For example 
> raster2numpy from pygrass…
>
> https://grass.osgeo.org/grass74/manuals/libpython/pygrass.raster.html#pygrass.raster.raster2numpy
>
> Here however, you would have to mask NULL and I am not sure how to 
> (platform-independent) determine values that represent NULL in a 
> raster map. This gives pointers but there are again issues with 
> Windows it seems: 
> https://grasswiki.osgeo.org/wiki/GRASS_Python_Scripting_Library#Interfacing_with_NumPy
>
> And it leaves the question how to find out if a raster is Integer or not…
>
> With pygrass you could do:
>
> from grass.pygrass import raster as r
>
> p = np.ma.masked_equal(r.raster2numpy(raster), np.nan)) # For floating 
> point rasters on Linux
>
> or
>
> p = np.ma.masked_equal(r.raster2numpy(raster), -2147483648)) # For 
> integer rasters
>
> Hints from experienced Python/Numpy developers would be appreciated…
>
> That makes me wonder if it would be worth to add/collect 
> recommendations for how to solve such common operations (like e.g. 
> parsing table output from grass commands) either e.g. here: 
> https://trac.osgeo.org/grass/wiki/Submitting/Python 
> <https://trac.osgeo.org/grass/wiki/Submitting/Python> or here: 
> https://grasswiki.osgeo.org/wiki/GRASS_and_Python 
> <https://grasswiki.osgeo.org/wiki/GRASS_and_Python> ?
>
> Cheers
>
> Stefan
>
> *From:*grass-user [mailto:grass-user-bounces at lists.osgeo.org] *On 
> Behalf Of *Paulo van Breugel
> *Sent:* lørdag 3. februar 2018 09.14
> *To:* Helmut Kudrnovsky <hellik at web.de>; grass-user at lists.osgeo.org
> *Subject:* Re: [GRASS-user] Issue with addon r.vif in MS Windows GUI 
> installations (stand-alone v. 7.2.2 and 7.0.5)
>
> On February 2, 2018 8:52:03 PM Helmut Kudrnovsky <hellik at web.de 
> <mailto:hellik at web.de>> wrote:
>
> >>Any idea how I can do that in such a way that it works on both Linux and
> > Windows?
> >
> > in r.vif script I've changed the relevant lines:
> >
> > <----------------------------------------
> >     # Get the raster values at sample points
> >     fd, tmpcov = tempfile.mkstemp()
> >     with open(tmpcov, "w") as text_file:
> >         text_file.write(
> >                 gs.read_command("r.stats", flags="1n", input=raster,
> >                                 quiet=True, separator="comma"))
> >     p = np.loadtxt(tmpcov, skiprows=0, delimiter=",")
> >
> >     # Clean up
> >     text_file.close()
> >     os.close(fd)
> >     os.remove(tmpcov)
> >     if not n == "100%":
> >         gs.run_command("r.mask", flags="r", quiet=True)
> >         if exist_mask['fullname']:
> >             gs.run_command("g.rename", raster=[mask_backup, "MASK"],
> >                            quiet=True)
> >     return(p)
> > ---------------------------------------->
> >
> > and tested the script in winGRASS; it seems to work in windows; not 
> tested
> > on linux and mac.
> >
> >
> Ok, thanks Helmut, I'll see if that works in Linux too
> >
> > -----
> > best regards
> > Helmut
> > --
> > Sent from: http://osgeo-org.1560.x6.nabble.com/Grass-Users-f3884509.html
> > _______________________________________________
> > grass-user mailing list
> > grass-user at lists.osgeo.org <mailto:grass-user at lists.osgeo.org>
> > https://lists.osgeo.org/mailman/listinfo/grass-user
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/grass-user/attachments/20180210/7fbc21de/attachment.html>


More information about the grass-user mailing list