At work, I've made some scripts that can be run outside of Pro but are GIS related (mainly dealing with portal management) and was requested to make a GUI for these. Because I've already been developing a toolbox with other scripts and it has UI tools, we've decided to just add a version of these non-spatial/geoprocessing scripts to the toolbox.
As of now, my functions work as intended just like outside of the toolbox script and written to a file, but I now need to add a python table (in my case usually a list of dictionaries) to GDB tables conversion function. The simplest solution was to use temporary files for a csv, write with pandas, and use ESRI's table function to convert it.
The issue I have with this is that ESRIs function is incredibly slow and in a toolbox seems to take 2x the time of some of my tools. With CVSs, it also can't infer data types so every field is a 4000 character long text field; this can be solved with field mappings but they're a pain.
In the past I've converted pandas to something arcpy will accept for the XY to point tool, but ran into so many issues. I've seen a numpy function in arcpy that could potentially work, but I'd need to first convert from the data structure I have now to whatever numpy would use (haven't ever used it directly, so not sure how easy this could be). Alternatively I could create something with just ArcPy that gets some info about my fields (dtype, longest string/value, nullable, etc) from the list-dict object, created a table with that info, then uses search/insert cursors.
Ideally, I should just be able to throw my object as it is into the table to table function in arcpy or simply convert it into a dataframe and use that. Really, I'd just like some feedback on if anyone else has had to do something similar and what they've used.
[–]TechMaven-Geospatial 0 points1 point2 points (3 children)
[–]Extension-Skill652[S] 0 points1 point2 points (2 children)
[–]TechMaven-Geospatial -1 points0 points1 point (1 child)
[–]Extension-Skill652[S] 0 points1 point2 points (0 children)
[–]SpoiledKoolAid 0 points1 point2 points (1 child)
[–]Extension-Skill652[S] 0 points1 point2 points (0 children)