Select to view content in your preferred language

ArcGIS Algorithms

3701
7
12-01-2015 08:36 AM
VasiliosKalogirou
New Contributor II

Is there a way to know what algorithm does ArcGIS use for each operation? For example: which algorithm does ArcGIS use to determine if a point is inside a polygon? Is it the Ray casting algorithm?

Tags (1)
0 Kudos
7 Replies
WesMiller
Regular Contributor III
VasiliosKalogirou
New Contributor II

Thank you very much!

There is a lot of helpful stuff in there, but I can not really find what I am looking for. It seems great for using ArcPy though.

0 Kudos
DanPatterson_Retired
MVP Emeritus

It is very rare that the actual algorithm is published, for example, How Simplify Line works

They may give references to texts or articles and one can infer, rightly or wrongly.  In the end it doesn't matter, unless it is wrong.  If you do a search on the history of Ray Casting you will find it is only one of many and maybe not the best for all circumstances.  If you have a particular condition you need met, then you can roll out your favourite solution and simply use ArcPy geometry objects themselves and/or convert them to Numpy arrays or generic numeric objects.

VasiliosKalogirou
New Contributor II

Thank you very much, all these are correct!

The link you mentioned about the line simplification is exactly what I am looking for. Indeed, it seems that only a few of the actual algorithms are published; I cannot understand why as it would be very helpful for the users.

0 Kudos
ChrisSmith7
Frequent Contributor

If you would really like to know what's going on under the hood of your GIS application, you might want to check-out QGIS. Since it's open-source, you can check the code for yourself:

Welcome to the QGIS project!

Here's the github:

qgis/QGIS · GitHub 

As an example, here's the QgsGeometryAnalyzer class with notes on algorithms:

QGIS/qgsgeometryanalyzer.sip at 91e1554611fe179c802e2355371ae0aa9adbc80c · qgis/QGIS · GitHub

You can also download plug-ins and view their source as well, e.g.:

QGIS Python Plugins Repository

attilaancsin/PolygonSimplifier · GitHub 

VasiliosKalogirou
New Contributor II

Thanks a lot Chris.

I use both QGIS and ArcGIS and your answer is very helpful on what i am trying to do.

Specifically for the line simplification, you posted the example of QgsGeometryAnalyzer, but the plugin I need to install regarding this particular operation should be the "SimpliPy" one, right?

0 Kudos
DanEvans
Occasional Contributor II

Whitebox is another open source GIS program, which has the quite nice feature that you can view the source code for all of the tools simply by clicking a button in the GUI - no need to worry about checking code out of github and having a suitable IDE etc.