[GRASS-dev] r.randomforest built status

Hi Steven / devs

The build status of r.randomforest shows it failed to build. From the log file this seems to be because Pandas is not installed


ERROR: Pandas not installed
make: *** [r.randomforest.tmp.html] Error 1
rm r.randomforest.tmp.html

This is also why, I guess, it is not on https://grass.osgeo.org/grass70/manuals/addons/?

Cheers,

Paulo

On Sun, Dec 18, 2016 at 7:52 PM, Paulo van Breugel
<p.vanbreugel@gmail.com> wrote:

Hi Steven / devs

The build status of r.randomforest shows it failed to build. From the log
file this seems to be because Pandas is not installed

...
ERROR: Pandas not installed
make: *** [r.randomforest.tmp.html] Error 1
rm r.randomforest.tmp.html
...

AFAIK we have no pandas installed on the osgeo6 server aka grass.osgeo.org.
Perhaps the same is true for the Windows build server.

This is also why, I guess, it is not on
https://grass.osgeo.org/grass70/manuals/addons/?

Yes, unfortunately.

Markus

Markus Neteler wrote

On Sun, Dec 18, 2016 at 7:52 PM, Paulo van Breugel
&lt;

p.vanbreugel@

&gt; wrote:

Hi Steven / devs

The build status of r.randomforest shows it failed to build. From the log
file this seems to be because Pandas is not installed

...
ERROR: Pandas not installed
make: *** [r.randomforest.tmp.html] Error 1
rm r.randomforest.tmp.html
...

AFAIK we have no pandas installed on the osgeo6 server aka
grass.osgeo.org.
Perhaps the same is true for the Windows build server.

This is also why, I guess, it is not on
https://grass.osgeo.org/grass70/manuals/addons/?

Yes, unfortunately.

Markus
_______________________________________________
grass-dev mailing list

grass-dev@.osgeo

http://lists.osgeo.org/mailman/listinfo/grass-dev

what about to do some kind of a lazy import and move panda and scikit to
def main()?

It isn't needed for compiling only for running the python script.

AFAIK panda is available in osgeo4w; check needed. Scikit isn't available.

-----
best regards
Helmut
--
View this message in context: http://osgeo-org.1560.x6.nabble.com/r-randomforest-built-status-tp5300348p5300355.html
Sent from the Grass - Dev mailing list archive at Nabble.com.

Helmut Kudrnovsky wrote

Markus Neteler wrote

On Sun, Dec 18, 2016 at 7:52 PM, Paulo van Breugel
&lt;

p.vanbreugel@

&gt; wrote:

Hi Steven / devs

The build status of r.randomforest shows it failed to build. From the
log
file this seems to be because Pandas is not installed

...
ERROR: Pandas not installed
make: *** [r.randomforest.tmp.html] Error 1
rm r.randomforest.tmp.html
...

AFAIK we have no pandas installed on the osgeo6 server aka
grass.osgeo.org.
Perhaps the same is true for the Windows build server.

This is also why, I guess, it is not on
https://grass.osgeo.org/grass70/manuals/addons/?

Yes, unfortunately.

Markus
_______________________________________________
grass-dev mailing list

grass-dev@.osgeo

http://lists.osgeo.org/mailman/listinfo/grass-dev

what about to do some kind of a lazy import and move panda and scikit to
def main()?

It isn't needed for compiling only for running the python script.

AFAIK panda is available in osgeo4w; check needed. Scikit isn't available.

something similar like a "lazy import" is also needed for some other addons,
E.g.

https://wingrass.fsv.cvut.cz/grass73/x86_64/addons/grass-7.3.svn/logs/r.denoise.log

-----
best regards
Helmut
--
View this message in context: http://osgeo-org.1560.x6.nabble.com/r-randomforest-built-status-tp5300348p5300357.html
Sent from the Grass - Dev mailing list archive at Nabble.com.

On Sun, Dec 18, 2016 at 9:17 PM, Helmut Kudrnovsky <hellik@web.de> wrote:

Helmut Kudrnovsky wrote

...

what about to do some kind of a lazy import and move panda and scikit to
def main()?

It isn't needed for compiling only for running the python script.

AFAIK panda is available in osgeo4w; check needed. Scikit isn't available.

something similar like a "lazy import" is also needed for some other addons,
E.g.

https://wingrass.fsv.cvut.cz/grass73/x86_64/addons/grass-7.3.svn/logs/r.denoise.log

Is there any "best practice" example available?

Markus

Markus Neteler wrote

On Sun, Dec 18, 2016 at 9:17 PM, Helmut Kudrnovsky &lt;

hellik@

&gt; wrote:

Helmut Kudrnovsky wrote

...

what about to do some kind of a lazy import and move panda and scikit to
def main()?

It isn't needed for compiling only for running the python script.

AFAIK panda is available in osgeo4w; check needed. Scikit isn't
available.

something similar like a "lazy import" is also needed for some other
addons,
E.g.

https://wingrass.fsv.cvut.cz/grass73/x86_64/addons/grass-7.3.svn/logs/r.denoise.log

Is there any "best practice" example available?

Markus
_______________________________________________
grass-dev mailing list

grass-dev@.osgeo

http://lists.osgeo.org/mailman/listinfo/grass-dev

I've done it in this way :

https://trac.osgeo.org/grass/browser/grass-addons/grass7/vector/v.in.natura2000/v.in.natura2000.py#L151

accordingly an advice by Vaclav.

Maybe there are some other ways to do it.

-----
best regards
Helmut
--
View this message in context: http://osgeo-org.1560.x6.nabble.com/r-randomforest-built-status-tp5300348p5300359.html
Sent from the Grass - Dev mailing list archive at Nabble.com.

On Sun, Dec 18, 2016 at 3:40 PM, Helmut Kudrnovsky <hellik@web.de> wrote:

>
> Is there any "best practice" example available?
<http://lists.osgeo.org/mailman/listinfo/grass-dev&gt;

I've done it in this way :

https://trac.osgeo.org/grass/browser/grass-addons/grass7/
vector/v.in.natura2000/v.in.natura2000.py#L151

accordingly an advice by Vaclav.

Maybe there are some other ways to do it.

Here is a example for more complicated case:

https://trac.osgeo.org/grass/changeset/66482/grass-addons/grass7/vector/v.class.ml

But I don't know what is best practice, perhaps as simple solution as
possible - import in main() after parser() will work for most of the short
modules and dependencies.

Thanks for this – I have made some major changes to r.randomforest recently, including adding options for spatial cross-validation. I will move the import of pandas to a lazy import because I’m only using pandas as a convenient way of saving the cross-validation results to file.

Another question – r.randomforest is not really an appropriate name for the module anymore. I have been adding features over time, based on my own needs, but now it performs classification and regression using all of the major machine learning methods, with random forests just being one of them.

Is there a correct protocol for me to rename the script to something like r.scikit.learn, or r.ml?

Steve

From: Vaclav Petras
Sent: Sunday, December 18, 2016 2:42 PM
To: Helmut Kudrnovsky
Cc: grass-dev@lists.osgeo.org
Subject: Re: [GRASS-dev] r.randomforest built status

On Sun, Dec 18, 2016 at 3:40 PM, Helmut Kudrnovsky <hellik@web.de> wrote:

Is there any “best practice” example available?

I’ve done it in this way :

https://trac.osgeo.org/grass/browser/grass-addons/grass7/vector/v.in.natura2000/v.in.natura2000.py#L151

accordingly an advice by Vaclav.

Maybe there are some other ways to do it.

Here is a example for more complicated case:

https://trac.osgeo.org/grass/changeset/66482/grass-addons/grass7/vector/v.class.ml

But I don’t know what is best practice, perhaps as simple solution as possible - import in main() after parser() will work for most of the short modules and dependencies.

I will move the import of pandas to a lazy import because

AFAIU also the Scikit imports should be done by a lazy import.

-----
best regards
Helmut
--
View this message in context: http://osgeo-org.1560.x6.nabble.com/r-randomforest-built-status-tp5300348p5300387.html
Sent from the Grass - Dev mailing list archive at Nabble.com.

On Dec 19, 2016 5:41 AM, <dr.stevenpawley@gmail.com> wrote:

Thanks for this – I have made some major changes to r.randomforest recently, including adding options for spatial cross-validation.

This is great!

I will move the import of pandas to a lazy import because I’m only using pandas as a convenient way of saving the cross-validation results to file.

Another question – r.randomforest is not really an appropriate name for the module anymore. I have been adding features over time, based on my own needs, but now it performs classification and regression using all of the major machine learning methods, with random forests just being one of them.

Is there a correct protocol for me to rename the script to something like r.scikit.learn, or r.ml?

IMHO the name should reflect what it does and be understandable. So, r.ml is a bit cryptic.

How about a new “family” r.learn.something? Maybe more will follow in future.

Markus