I’ve been diving into ArcGIS Pro/ArcGIS Online lately, and here’s a quick way to produce a 3D web scene from publicly available data (final example: here). You do need an ArcGIS Online Organizational account with permission to publish in order to follow along.
- Find your data. In my case, I used a point feature class representing city trees, provided by the City of Prince George, through their Open Data Catalogue (layer here).
- In ArcGIS Pro, start a new local scene project and add the trees as a preset layer (Map -> Add Preset -> Realistic trees. Convenient!). Customize the preset symbology to use GenusName as the type, TreeHeight as the height, proportional as the crown width, and meters as the unit.
- Eventually, we need to share the trees as a web feature layer. Unfortunately, web feature layers are limited to 2000 features (there are 3928 trees in the dataset), so we need to split it up. You can do that by making a copy of the feature layer (copy/paste), and setting a definition query for each one (e.g. FID is Less Than 2000/FID is Greater Than or Equal to 2000).
- It’s time to share the web scene – Share -> Share As -> Web Scene.
- Fill out the web scene metadata (e.g. name, summary, tags, etc.).
- Click Analyze to make sure all is well, and troubleshoot the problems as necessary. You may need to change the scene coordinate reference system to match the layers.
- Click Share and the web scene should be uploaded to your ArcGIS organizational account. Make sure you share with everyone if this is meant to be a public scene.
- In a browser, log into your ArcGIS organizational account. You should see a web scene, hosted feature layer, and service definition. You can customize the web scene if you’d like.
- Click on the web scene item. Click Create Web App -> Using a Template. I used the simple scene viewer template. The rest takes you through some configuration steps, but they isn’t a whole lot to configure with this template.
- That’s it! You can see my example here: https://edynamics.maps.arcgis.com/apps/3DScene/index.html?appid=e596fa17a01f4a30ab0d7829031ba6f2
Over the past few days, I’ve jumped into the Mapzen/Tangram ecosystem. First impressions: somewhat steep learning curve to grasp YAML format, lighting options are pretty neat, very fast to render GeoJSON, documentation is good although asks a lot of the newbie reader, the provided Mapzen Vector Tile Service (mostly OSM) is awesome, and I bet shaders are cool, but I don’t understand them (yet).
My example is largely based off the Mapzen JS Walkthrough, with a few simple additional wrinkles. I draw parcel geometry and attribute data directly from Open Data Prince George. I take building data from the same source, remove OSM buildings from the scene, and draw/extrude 3D buildings based on the building height attribute.
You may recall the Little Bobtail Lake fire in the Prince George, BC area that burned over 25,000 ha in 2015 (curious to compare 25,000 ha to your area? Check here).
How does it look now? Did the fire burn and kill the entire area? These are some questions that can be explored quite easily now using archived and processed imagery from Astro Digital. I’ve made an example for the Little Bobtail Lake fire here that compares imagery from before the fire (April 9, 2015) and after the fire (June 28, 2015), and here are the steps I used to do it:
- Sign up for a free Astro Digital account here.
- Sign in and you’ll find yourself at “Mission Control”.
- Start a new “task”.
- Edit the task.
- Select the images you want to process
- Submit the task, choosing web map as the output. I wanted true color (visual), false color (mostly land vs. water differentiation), and NDVI (for vegetation health. Green = healthy vegetation, blue/black = dead/dormant/non-vegetated) images, so I chose all of those options.
- Submit the task and wait for the images to be processed.
- Once the images are ready, follow the instructions for Using Processed Imagery via Mapbox. You need to use Astro Digital’s public Mapbox key to access the web map imagery. I believe it would be possible to download the raw imagery from Astro Digital and make tiles yourself to upload to your own Mapbox account, but I have not done that here. The tradeoff is that Astro Digital limits the key to 100 map views/web page, so if this map is unavailable, you can rest assured that it has gone viral (yay me), so try back tomorrow.
- That’s it! The map is here. Try it out. Toggle the layers on and off – “on” layers at the top of the list cover up those underneath, so you need to turn off the upper layers to see the lower layers. Try flipping back and forth to see the difference in NDVI layers – notice that before the fire, the Little Bobtail Lake area looked just like the surrounding area (it’s dark because the vegetation is still coming online after winter), while after the fire, the results are quite striking. Have fun!
Inspiration: AstroDigital blog, Mapbox examples
Curious where the Nechako Aquifer is located, now that a new report (article) has indicated that a hazardous chemical spill causing the loss of any of the city’s high capacity wells, “would be catastrophic for the city in terms of quality of life, sustainable economic growth, and environmental damage”?
Here‘s a map, with all the data for the aquifer and its ground water wells. City wells = star, other wells = circle.
Ground Water Wells: https://catalogue.data.gov.bc.ca/dataset/ground-water-wells-spatial-view-with-attribute-info
Yesterday, I provided an example for how to load GeoJSON from the City of Prince George Open Data site to your Google Maps API web map. You can also load imagery through OGC WMS. Here is an example showing how to do so.
Note: I recycled most of the code from GISDoctor.com.
The City of Prince George recently unveiled the new City Open Data website, providing access to an impressive selection of spatial (and some non-spatial) datasets. Although these datasets have been available for some time on the old open data catalog, they are all now also available as GeoJSON, GeoService, and OGC WMS.
Here‘s an example of how you can load a Prince George GeoJSON layer through the Google Maps API.
I was curious to see if the data exists for Prince George, BC, and it turns out, it does (PG Open Data Catalogue, buildings download)! I’m not 100% sure if this dataset was created manually or through automation, but I’m impressed with the level of detail.
*note: there are over 30,000 buildings in this dataset. It takes about 30 seconds to load, for me. It may not work on your mobile devices.