danioxoli / HotSpotAnalysis_Plugin

A QGIS plugin for hotspot analysis
GNU General Public License v3.0
55 stars 12 forks source link

HotSpotAnalysis_Plugin keeps throwing me error when trying to load it #74

Open Dorexplor opened 2 years ago

Dorexplor commented 2 years ago

I am currently working on my Phd doing a morphometric analysis base on Dems using QGIS and I would like to use your HotSpotAnalysis Plugin for spatial autocorrelation rather than using GeoDa. I am facing a python error that I am not being able to solve and as I have been stuck at this point for a couple of days I will sincerely appreciate your help a lot.

First I've followed all the steps described in the homepage of HotSpotAnalysis_Plugin on GitHub and as when I tried to use the plugin it keeps throwing me error I 've followed the steps that were also detailed in the homepage of HotSpotAnalysis_Plugin on GitHub where it says Note:

"In case of errors rising from the Scipy package, open OSGeo4W Shell installed with QGIS3 as Administrator and type: $ py3_env $ python -m pip install scipy -U "

But there is an error that persists (as It is shown in the images attached):

TypeError: float() argument must be a string or a number, not 'Chain'

(The Qgis version I am using is 3.18 Zürich)

I really don't know what else to do or to try in order to fix this error and use the plugin for my morphometric analysis. Sincerely I will appreciate your help a lot.

IMG-20211128-WA0004

danioxoli commented 2 years ago

it seems an error due to bad formatting of the input layer and/or attribute values you are using. Can you provide information about or a sample dataset to make a test?

Anyway, you must avoid virtual attribute fields and the attribute you use as a variable must be numeric.

The plugin is tested till QGIS version 3.16 LTR, Actually, I tested it successfully on 3.20 too but never checked for 3.18.

best

Dorexplor commented 2 years ago

Thank You very much for answering my inquiry.

The problem arises before being able to load any input layer. It throws the python error when I barely open the plugin icon.

Kind regards, Florencia

danioxoli commented 2 years ago

Try to place at the top of the Layer Panel the shapefile you intend to analyse. If the plugin finds as first layer something that does not fit the input requirements it may raise errors.

let me know if this was your case (I never faced SciPy errors after installation except in the case I explained above...)

Dorexplor commented 2 years ago

I Will try your suggestion and I Will also try by installing 3.20. I let you know whether ir works or not. Thank You again for answering me and helping me. Kind regards, Florencia

danioxoli commented 2 years ago

Better to test on the QGIS LTR 3.16 version (since version 3.20 the Python version changed and pysal > 2 is required, see #72 )

Best, Daniele

Dorexplor commented 2 years ago

Good afternoon again. I tried what you suggested me and also tried it in QGIS LTR 3.16 version but it keeps throwing me the same python error before loading any input. Thank you very much anyway for your help. Kind regards, Florencia

danioxoli commented 2 years ago

Wait, I've found the issue, please have a look here #18

Best, Daniele

Dorexplor commented 2 years ago

Yes, the layer is a points layer, it is a shp projected in UTM, and the attribute I want to autocorrelate is a numeric attribute which I calculated with the attributes Open field calculator based on some previus dem analysis.

Here is the shapefile (just un case): https://onedrive.live.com/?id=C64DB2B1B0F4D0D5%21269&cid=C64DB2B1B0F4D0D5

Kind regards, Florencia

danioxoli commented 2 years ago

There are 2 main issues here:

1) The number of points (>1 mln) is extremely high for the actual capabilities of the software. To manage properly this amount I suggest switching on Python Pysal scripting or it will take ages for computing LISA

2) The format of your point is actually multipoint while the plugin accepts only point geometries. You can try to convert using SAGA functionality in the processing toolbox called "Convert multipoints to points"

Here a successful test with a subset of your data converted to point:

immagine

Dorexplor commented 2 years ago

Ahhh okay I will try on python pysal then. Thank You very very much for your help, and for taking the time to answer me. Kind regards, Florencia.