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?
See if this helps Geometry—Help | ArcGIS for Desktop
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.
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.
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.
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:
Here's the 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.:
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?
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.