[GRASS-user] Uploading NumPy array as a new column to a vector map

Daniel Victoria daniel.victoria at gmail.com
Thu Feb 14 16:25:01 PST 2019


Never tried it but you got me curious.

It looks simpler to define a new function or the database using python
sqlite3 libs

https://docs.python.org/2/library/sqlite3.html#sqlite3.Connection.create_function

Cheers


On Thu, Feb 14, 2019 at 12:50 PM César Augusto Ramírez Franco <
caesarivs at gmail.com> wrote:

> Greetings,
>
> I have a municipality polygon layer with a poverty index (percent) and a
> population count, I'm multiplying them to visualize the vulnerability for
> each municipality, due to the distribution of that new variable I want to
> compute the logarithm, which is not possible in sqlite, so I tried reading
> the column with numpy and issuing a np.log10(). I'm happy with the result,
> but how can I get this new numpy array to a new column in the vector map in
> a simple way?
>
> This is what I already have:
>
> #!/usr/bin/env python
>
> import grass.script as gs
> import numpy as np
> import matplotlib.pyplot as plt
>
> nbi_pob = np.array(gs.vector_db_select("muniant", columns =
> "nbi_pob")["values"].values()).astype(float).squeeze()
>
> plt.hist(nbi_pob)
> plt.show()
>
> log_nbi_pob = np.log10(nbi_pob)
>
> plt.hist(log_nbi_pob)
> plt.show()
>
> I'm trying to introduce this kind of analysis to students who are not
> familiar nor proficient with programming (this is an GIS introductory
> course) so the numpy bit is already complex enough to them, and I'd like to
> avoid using for loops with cursors to achieve this.
>
> Is there a simple solution to this?
>
> --
> *César Augusto Ramírez Franco*
> _______________________________________________
> grass-user mailing list
> 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/20190214/dae21fa8/attachment.html>


More information about the grass-user mailing list