Here is my attempt at creating a Topographic Exposure Index. Topographic exposure or TOPEX essentially looks out from a given pixel and scans the surrounding landscape for maximum angles from the given pixel on a digital elevation model. Maximum angles are measured for each of 8 horizontal direction classes and those maximums are summed for the final score. A high TOPEX value would indicate a very sheltered area whereas a value of 0 would indicate you were on a flat plain or mountain top.
I ran it on the Blue River Watershed in Oregon and it took it about 5 days to complete. The input DEM was 7084x5882 pixels and the search kernel looked out 2,500m. The main innovation relative to other implementations I have seen is I created a kernel with concentric rings to scan the landscape for maximum ridge angles within 8 horizontal direction classes. The example below has 50 concentric rings which are separated by 50m. The DEM was at a 5m resolution so I went with a relatively fine spacing for the concentric rings.
Geo-Spacer
Tuesday, April 8, 2014
Wednesday, March 19, 2014
The ESRI International Developers Summit
Well, I'm dipping my toes into the world of web map development. Here is a rundown of some of the things I was exposed to at the ESRI developers summit in Palm Springs, CA. I skipped the Plenary session so here is a link to the videos.
The keynote by Chris Wanstrath was excellent. As the co-owner of GitHub Chris talked about his experience developing new businesses and also the frontier of collaborative code development. He did not really evangelize about open source (GitHub has a pay per private option), but rather described how open sharing of code is useful to private and public operations. GitHub shares code by community 'forking' the master branch code. The new branch is cloned to your desktop and then improvements are synced back up to your account. Once you are happy with the changes you make a pull request to the original developer and the code is probably merged back into the main branch. Forking used to be an insult, now it's a declaration of love.
Some sessions I attended:
Some general impressions and things I learned:
Joshua Tree National Park |
The keynote by Chris Wanstrath was excellent. As the co-owner of GitHub Chris talked about his experience developing new businesses and also the frontier of collaborative code development. He did not really evangelize about open source (GitHub has a pay per private option), but rather described how open sharing of code is useful to private and public operations. GitHub shares code by community 'forking' the master branch code. The new branch is cloned to your desktop and then improvements are synced back up to your account. Once you are happy with the changes you make a pull request to the original developer and the code is probably merged back into the main branch. Forking used to be an insult, now it's a declaration of love.
Some sessions I attended:
- Intro to Javascript preconference seminar. This two day workshop was a little slow at first, but was ultimately very helpful. I learned all about manipulating the DOM and building pseudo class objects in JS. Namespace is tricky as anything outside of a function is a global variable. We learned how to nest functions to shield their namespace. Finally, we did a little intro into DOJO which extends the JS framework.
- ArcGIS API for Javascript. There is a wealth of info at developers.arcgis.com. Many samples and there is a new sandbox where you can tryout playing with your data. Many styling and widgets (DIJITS) were also in the samples. I was able to hook into the HJA rest service easily. Some suggested IDEs were Aptana, Sublime, Webstorm, Eclipse, or Visual Studio. Code cleaners for JS include Lint and Hint. Also checkout Grunt and Gulp.
- ESRI on GitHub. ESRI has many open source projects on GitHub. David Spriggs did a great session on DOJO the good parts. He has a configurable JS API viewer on GitHub.
- iOS SDK. You need a mac for development. It appears to be written in Xcode. Over my head.
- Android SDK. There is an Eclipse plugin for Android. Checkout developer.android.com/tools. The best emulator is called Genymotion. Android development is in JAVA. It allows for async tasks that can run in the background.
- Web vs. Native app development debate. Pros for web apps: One app to rule them all, smooth delivery of tiles, canvas blending, faster debug time and updates, cheaper to develop. Pros for native development: access to device features such as touch gestures, disk, accelerometer, text. Also, native can work offline, process faster and access multiple monitors.
- ESRI and Leaflet. This session was done by Patrick Arlt (@patrickarlt). His notes are here. Leaflet is simple and clear. It has 100's of plugins for labeling, charting, heatmaps, ect. It can load tiles from ArcGIS server. Works great to integrate into existing apps. Works with non-web Mercator projections. ESRI leaflet is on GitHub. There are multiple projects including a geocoder and demographic popups. Cool project by Code For America in Chattanooga.
- ArcGIS Pro, the road ahead. This seems to be a branch off of arcMap. It will have integrated 2D and 3D capabilities, multi-threaded draw engine, 3D editing, contextual menu ribbon, 64 bit, and spreadsheet like editing of attributes and their properties. It will have more CAD like options, 3D hotspot analysis (density and frequency) and is available at 10.3. Python scripts will run but ArcObjects and not exposed.
- Big data visualization with Hadoop. Hadoop is an open source project that can reduce 100s of billions of points with MapReduce. Also introduced was YARN (yet another resource negotiator) and Hdfs which is a distributed file system. GIS tools for Hadoop on GitHub include geoprocessing tool and geometry API. Hadoop features distributed processing that is resilient to failure.
- Ruby on rails is being used in the PDX ESRI shop. It seems to be an alternative to JS. Many GitHub projects for Ruby including JSONatra and Angelo. A cool geo-trigger app was demonstrated.
Web mapping nerds can be penned with glass walls! |
Some general impressions and things I learned:
- About 80% of the people there were developing for web mapping applications. There was very little about desktop applications.
- The flex and silverlight booths were small and lonely.
- Most developers prefer jQuery to DOJO, but learn DOJO because they want their apps to work with ESRI services.
- This dev summit marked a decided opening of ESRI products to the open source world. It seems they could not hold back the tide any longer. Most everything was focused on JS and JS frameworks. Data is being passed with geoJSON.
- Most folks seemed to be using the chrome debugging environment to work with Javascript. Firebug works too, but I did not see anyone use it.
- There is an ArcGIS editor for Open Street Map on GitHub.
- ESRI talks to developers on twitter. Everyone has a twitter handle.
- A good book to have for Javascript is called "Javascript, the good parts".
- Web developers love to play dodge ball. I signed up too late. There were 32 teams with names like "SQL Servers" and "Fork You!"
Subscribe to:
Posts (Atom)