As far as I'm aware the arcpy.JSONToFeatures_conversion utility only takes a flat file, e.g., your-json-file.json sitting in a directory.
I would like to suggest that this utility provide support for strings embedded right in one's script instead of having to summon os and mess with paths. So basically instead of:
import arcpy
import os
file = your_file.json
path = r"C:\Temp"
json_file = os.path.join(path, file)
arcpy.JSONToFeatures(json_fileaaaaahhhhh just makes my head hurt writing it)
it should be like this:
import arcpy
json = { bunch of json/geojson }
arcpy.JSONToFeatures(json, output)
Currently, the second approach throws a series of GP errors as it does not appear the tool is set up to handle strings but only files.
I just want to add that because of this limitation, I am doing the following extremely dubious workflow -
I am doing an automatic "project this raster to the correct UTM zone" script that is meant to be a part of a larger model run by many users with varying levels of connectivity to data.
So, in the script I put the entire UTM grid in geojson, perfect use case for a geojson string, nobody has to worry about external files, I should be able to simply spatially join the extracted raster geometry (center point) to the grid, keep only common, and read the attributes for the containing zone. Right?
Currently I have to take that text, dump it to a file on the user's temp directory, then re-read the file in, and convert it to a feature. (facepalm)
I think this would help alleviate a lot of frustrations and very unnecessary IO operations to disk.
For anyone else who comes across this post, using arcpy.FeatureSet may be a valid option. It accepts ESRI (featureSet) JSON and GeoJSON as inputs. The result can then be copied to disk as a feature class using arcpy.CopyFeatures_management.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.