CLAWRIM Wiki

The Computational Lab for Advanced Water Resources Informatics and Modeling

User Tools

Site Tools


howtos:how_to_download_features_using_the_arcgis_rest_api

This is an old revision of the document!


How to download features using the ArcGIS REST API

This script is just an example of using the ArcGIS REST API to download DFIRM panel features, but if you know the URL of an ArcGIS REST service, you can easily adapt it.

./download_arcgis_rest_features.sh https://hazards.fema.gov/arcgis/rest/services/FIRMette/NFHLREST_FIRMette/MapServer/1 firm_panels
download_arcgis_rest_features.sh
#!/bin/sh
 
if [ $# -lt 2 ]; then
	echo "Usage: download_arcgis_rest_features.sh REST_URL filename_prefix"
	exit
fi
 
# URL for an ArcGIS REST API
rest_url=$1
 
# filename prefix
prefix=$2
 
# starting record offset
offset=0
# max record count
count=2000
 
url="$rest_url/query"
 
# required parameters
url="$url?f=geojson"
url="$url&where=1%3D1"
url="$url&outFields=*"
url="$url&resultRecordCount=$count"
url="$url&resultOffset=---OFFSET---"
 
# optional parameters
# &text=
# &objectIds=
# &time=
# &geometry=
# &geometryType=esriGeometryEnvelope
# &inSR=
# &spatialRel=esriSpatialRelIntersects
# &distance=
# &units=esriSRUnit_Foot
# &relationParam=
# &returnGeometry=true
# &returnTrueCurves=false
# &maxAllowableOffset=
# &geometryPrecision=
# &outSR=
# &havingClause=
# &returnIdsOnly=false
# &returnCountOnly=false
# &orderByFields=OBJECTID
# &groupByFieldsForStatistics=
# &outStatistics=
# &returnZ=false
# &returnM=false
# &gdbVersion=
# &historicMoment=
# &returnDistinctValues=false
# &returnExtentOnly=false
# &datumTransformation=
# &parameterValues=
# &rangeValues=
# &quantizationParameters=
# &featureEncoding=esriDefault
 
# infinite while loop; : mean true, so while : means while true, which means forever;
# you'll have to manually break out of this infinite loop
while :; do
        # generate a filename
        fn=${prefix}_$offset.json
        [ -f $fn ] || wget -O $fn "$(echo "$url" | sed "s/---OFFSET---/$offset/")"
	# read wget error
        err=$?
	# if there was a wget error or the filesize is zero
        if [ $err -ne 0 -o ! -s $fn ]; then
		# print the wget error
                [ $err -ne 0 ] && echo "$fn: wget error $err"
		# delete broken file
                rm -f $fn
		# try it again
                continue
        fi
	# we will only stop when we reached the last record
        grep -q "exceededTransferLimit.*true" $fn || break
	# move to the next offset
        offset=$(expr $offset + $count)
done
howtos/how_to_download_features_using_the_arcgis_rest_api.1727182408.txt.gz · Last modified: by hcho

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki