Hello. I'm using ArcPro and am trying to acquire data from this website: https://geodataservices.wdfw.wa.gov/hp/fishpassage/index.html.
What I'm finding is that the data I need (US Forest Service Culverts) is an Internet Tiled Layer and I'm not finding any tools in Pro that can convert this file format (pitemx) into a shapefile (so that I can edit, etc.).
In the attribute table for this on the geodataservices website there is no geographic data that I can find, so perhaps I'm out of luck?
Does anyone have any experience with this?
Solved! Go to Solution.
The map service from FS in question is this:
https://apps.fs.usda.gov/fsgisx02/rest/services/r06/r06_Culverts/MapServer
What you can do is go to that URL and click on the link for the lone layer (S_R06.FishBarrier_Culvert).
From there, scroll to the bottom and click the Query link. That will open a new page. Enter these parameters:
Where clause: "1=1"
Out fields: "*" (just an asterisk)
Format: JSON
Now click Query (Get) to have it query the REST service. It will return to your browser window all features with all atributes, in JSON format. Save all that text as a JSON file and then you can use the JSON conversion tool in ArcGIS Pro to convert it to a dataset.
The only caveat here is that there's probably a max query record return count of 2,000 so if there are more than 2,000 features in that layer, you'll only get the first 2,000.
Steve
It does. On the query page, you'll notice at the top a prompt for input geometry. This is where you can specify a bounding box to constrain your selection to (you would keep the geometry type to ENVELOPE). It's been too long since I've used this method so I'm fuzzy about using it. There's a little bit of an explanation in the REST API documentation but perhaps there's something posted here in forums you can search out in the REST API community
Actually, it's not that hard. The input in the Input Geometry box can simply be a XMIN,YMIN,XMAX,YMAX list of coordinates, separated by commas. Below is what I used to query all the records found on the Olympic Peninsula:
I used WGS 1984 as the spatial reference for my lat/longs (that's the 4326 number that is specified). Just figure out your bounding box and use those values which should give you what you need.
If you're still hitting the 2,000 record limit, your other alternative is to do a series of consecutive queries based on OBJECTID so..
OBJECTID >= 0 AND OBJECTID <=2000
OBJECTID >=2001 AND OBJECTID <=4000
etc....
Do it all in one session so the data isn't updated and changes the ObjectIDs. You'll have to keep track of the record count as you go so you'll know when you have all the records.
The map service from FS in question is this:
https://apps.fs.usda.gov/fsgisx02/rest/services/r06/r06_Culverts/MapServer
What you can do is go to that URL and click on the link for the lone layer (S_R06.FishBarrier_Culvert).
From there, scroll to the bottom and click the Query link. That will open a new page. Enter these parameters:
Where clause: "1=1"
Out fields: "*" (just an asterisk)
Format: JSON
Now click Query (Get) to have it query the REST service. It will return to your browser window all features with all atributes, in JSON format. Save all that text as a JSON file and then you can use the JSON conversion tool in ArcGIS Pro to convert it to a dataset.
The only caveat here is that there's probably a max query record return count of 2,000 so if there are more than 2,000 features in that layer, you'll only get the first 2,000.
Steve
Thanks for this help, Steve! I was able to get the JSON file and convert it into a dataset in Pro. As you noted, the dataset has 8,306 features so I am missing a chunk of the data I'm hoping to get. That said, I don't need all 8,306 of those features, but just a subset located within two watersheds. Do you know if your method above has any way to include a geography?
It does. On the query page, you'll notice at the top a prompt for input geometry. This is where you can specify a bounding box to constrain your selection to (you would keep the geometry type to ENVELOPE). It's been too long since I've used this method so I'm fuzzy about using it. There's a little bit of an explanation in the REST API documentation but perhaps there's something posted here in forums you can search out in the REST API community
These resources are helpful, thank you. I've never used the REST service for a query so I am having some trouble on the constraining to a geography part. Just to make sure I'm understanding, I should be able to use this Culverts query (map service) with an Input Geometry from a different layer entirely, is that correct? Additionally, I'm wondering if you have any tips on using the Extent or Domain information from the layer I'd like to use to constrain the geography? Both are in meters, and I'm not finding anything on the coordinate format that API reads in the Input Geometry box. I've attached a photo, if there's anything you can discern from what I'm looking at?
Actually, it's not that hard. The input in the Input Geometry box can simply be a XMIN,YMIN,XMAX,YMAX list of coordinates, separated by commas. Below is what I used to query all the records found on the Olympic Peninsula:
I used WGS 1984 as the spatial reference for my lat/longs (that's the 4326 number that is specified). Just figure out your bounding box and use those values which should give you what you need.
If you're still hitting the 2,000 record limit, your other alternative is to do a series of consecutive queries based on OBJECTID so..
OBJECTID >= 0 AND OBJECTID <=2000
OBJECTID >=2001 AND OBJECTID <=4000
etc....
Do it all in one session so the data isn't updated and changes the ObjectIDs. You'll have to keep track of the record count as you go so you'll know when you have all the records.
Steve- thanks for your help on this. I was able to get all the data I need with the above help!
Glad you got what you needed!