Jason Roberts, Ben Best, Dan Dunn, Eric Treml, Pat Halpin Duke University Marine Geospatial Ecology Lab 17-Feb-2011.

Slides:



Advertisements
Similar presentations
Marine Geospatial Ecology Tools
Advertisements

Introducing ArcGIS Desktop
Introduction to GIS and ArcGIS How a GIS works Introduction to ArcGIS The ArcGIS Interface.
IS 466 ADVANCED TOPICS IN INFORMATION SYSTEMS LECTURER : NOUF ALMUJALLY 20 – 11 – 2011 College Of Computer Science and Information, Information Systems.
2014 ESIP Summer Meeting July 8–11, 2014 | Frisco, Colorado Advancing Scientific Data Support in ArcGIS Nawajish Noman.
GIS Customization I. Binaural recording + reconstructing performances Holophonics - Virtual Barber Shop John Q. Walker: Re-creating great performances.
ModelBuilder In ArcGIS 9.x By Tim Weigel GEOG 407/607 April 3 rd, 2006.
Introduction to GIS and ArcGIS How a GIS works Introduction to ArcGIS.
Spatial Analysis, Geoprocessing,
Christine White, Esri Growing OPeNDAP Support: Current ArcGIS Workflows and Future Directions Christine White, Esri
What Geoprocessing? Geoprocessing is the processing of geographic information. Commonly used to describe a process when geographic objects are manipulated.
ESRM 250/CFR 520 Winter 2010 Phil Hurvitz (with thanks to J. Lawler & P. Schiess) Introduction to GIS and ArcGIS 1 of 48.
School of Geography FACULTY OF ENVIRONMENT Introduction to ArcGIS 1.
Marine GIS Applications using ArcGIS Global Classroom training course Marine GIS Applications using ArcGIS Global Classroom training course By T.Hemasundar.
ESRM 250 & CFR 520: Introduction to GIS © Phil Hurvitz, KEEP THIS TEXT BOX this slide includes some ESRI fonts. when you save this presentation,
Introduction to ArcGIS for Environmental Scientists Module 3 – GIS Analysis ArcGIS Toolbox.
Kurt Menke, GISP GRASS GIS Geographic Resources Analysis Support System.
InSTALL InVEST Rich Sharp. InVEST Installation process InVEST: The Application Get InVEST Install the core InVEST application – InVEST statistics while.
Habitat Analysis in ArcGIS Use of Spatial Analysis to characterize used resources Thomas Bonnot
Sharing Geographic Content
Arc: Programming Options Dr Andy Evans. Programming ArcGIS ArcGIS: Most popular commercial GIS. Out of the box functionality good, but occasionally: You.
Technical Workshops | Esri International User Conference San Diego, California ArcMap: Tips and Tricks Miriam Schmidts Jorge Ruiz-Valdepena July 23 – 27,
Frameworks for geoprocessing on the web with R Daniel Nüst, 52°North GmbH AGILE 2015 Workshop: Geoprocessing on the Web.
ESRM 250 & CFR 520: Introduction to GIS © Phil Hurvitz, KEEP THIS TEXT BOX this slide includes some ESRI fonts. when you save this presentation,
Introduction to InVEST ArcGIS Tool Nasser Olwero GMP, Bangkok April
Writing Geoprocessing Scripts With ArcGIS Lecture 9.
Introduction to Spatial Analysis and Spatial Modeling
Ben Best Patrick Halpin Jason Roberts Ei Fujioka Ben Donnely Jesse Cleary.
Network Analysis with Python
Introduction to ArcPy. Topics What is ArcPy? Accessing geoprocessing tools using ArcPy Writing scripts using ArcPy.
Python: An Introduction
Extending ArcGIS for Server
Jason Roberts, Ben Best, Dan Dunn, Eric Treml, Pat Halpin Duke University Marine Geospatial Ecology Lab 4-Mar-2009.
Major parts of ArcGIS ArcView -Basic mapping, editing and Analysis tools ArcEditor -all of ArcView plus Adds ability to deal with topological and network.
Marine Geospatial Ecology Tools (MGET) November 2013 Overview Jason Roberts, Ben Best, Daniel Dunn, Eric Treml, and Pat Halpin Duke Marine Geospatial Ecology.
ArcGIS Network Analyst: Automating Workflows with Geoprocessing
Publishing to ArcGIS for Server
Introduction of Geoprocessing Topic 7a 4/10/2007.
Advance Map Automation With Python
Esri UC 2014 | Demo Theater | Working with Scientific Data using Mosaic Dataset Hong Xu, Dan Zimble.
For the CoML Modeling and Visualization Workshop Jason Roberts and Ben Best 3-Feb-2009, Long Beach, CA.
Converting workflows from ArcSDE Command line in ArcGIS 10.3.x
Integrated Grid workflow for mesoscale weather modeling and visualization Zhizhin, M., A. Polyakov, D. Medvedev, A. Poyda, S. Berezin Space Research Institute.
Technical Workshops | Esri International User Conference San Diego, California Creating Geoprocessing Services Kevin Hibma, Scott Murray July 25, 2012.
Raster Concepts.
Esri UC 2014 | Technical Workshop | Python Map Automation – Beyond the Basics of arcpy.mapping Jeff Barrette Jeff Moulds.
Esri UC2013. Technical Workshop. Technical Workshop 2013 Esri International User Conference July 8–12, 2013 | San Diego, California Sharing Workflows with.
GIS & Health ESPM 9: W 5-8 April 7, 2010 Instructors: Maggi Kelly Kevin Koy Mark O’Connor Geospatial Innovation Facility College of Natural Resources -
Esri UC 2014 | Technical Workshop | Creating Geoprocessing Services Kevin Hibma.
1 Overview Importing data from generic raster files Creating surfaces from point samples Mapping contours Calculating summary attributes for polygon features.
Marine Geospatial Ecology Tools
1 Overview Finding and importing data sets –Searching for data –Importing data_.
Overview for the 2007 ESRI User Conference 21-Jun-2007 Jason Roberts, Ben Best, Daniel Dunn, and Pat Halpin Duke University Marine Geospatial Ecology Lab.
International Collaboration between DB stations for EOS Data Networking Steve Dutcher, Paolo Antonelli, Gieuseppe Meoli, Tom Rink, Liam Gumley, Paul Menzel,
Working with CAD Data In ArcGIS Travis Wagner. New Features Adds CAD datasets as group layers –Still have the ability to access all feature types properties.
Introduction of Geoprocessing Lecture 9 3/24/2008.
Rich Signell Roland Viger Curtis Price USGS Community for Data Integration Feb 15, 2012.
@2007 Austin Troy Lecture 2: Introduction to the Architecture of ArcGIS By Weiqi Zhou University of Vermont Thanks are due to Prof. Troy, upon whose lecture.
Lecture 18: Spatial Analysis Using Rasters Jeffery S. Horsburgh CEE 5190/6190 Geographic Information Systems for Civil Engineers Spring 2016.
Geospatial Data Abstraction Library(GDAL) Sabya Sachi.
Sea Surface Temperature Distribution from the Physical Oceanography DAAC Ed Armstrong JPL PO.DAAC MODIS Science Team Meeting.
Introduction to InVEST ArcGIS Tool
ArcGIS Workflow Manager: Advanced Workflows and Concepts
PYTHON: AN INTRODUCTION
Data Analysis using Python-I
VI. Cool features of MGET
Writing Geoprocessing Scripts With ArcGIS
Writing Geoprocessing Scripts With ArcGIS
Network Analysis using Python
Presentation transcript:

Jason Roberts, Ben Best, Dan Dunn, Eric Treml, Pat Halpin Duke University Marine Geospatial Ecology Lab 17-Feb-2011

Presentation outline What is MGET? The problems with building Python-based geoprocessing tools on top of ArcGIS MGET’s new GIS-agnostic architecture How to use MGET outside of ArcGIS

What is MGET? 200+ geoprocessing tools for marine ecology Free, open source software Written in Python, R, MATLAB, C#, and C++ Minimum requirements: Windows XP, Python 2.4 ArcGIS 9.1 or later currently needed for many tools ArcGIS and Windows are only non-free requirements ~1200 installations in 62 countries in last 18 months Also useful for terrestrial problems!

MGET plugs into ArcGIS The MGET toolbox appears in the ArcToolbox window

Geoprocessing with MGET Drill into the toolbox to find the tools Double-click tools to execute directly, or drag to geoprocessing models to create a workflow

Mapping species biodiversity

Identifying SST fronts ~120 km AVHRR Daytime SST 03-Jan °C 25.8 °C Mexico Front Cayula and Cornillion (1992) edge detection algorithm Frequency Temperature Optimal break 27.0 °C Strong cohesion  front present Step 1: Histogram analysis Step 2: Spatial cohesion test Weak cohesion  no front Bimodal Example output Mexico ArcGIS model

Analyzing larval connectivity Coral reef ID and % cover maps Ocean currents data Tool downloads data for the region and dates you specify Larval density time series rasters Edge list feature class representing dispersal network Original research by Eric A. Treml

Many MGET tools use ArcGIS Read/write vector datasets using geoprocessor’s cursors Create and geoprocess vector and raster datasets using ArcGIS’s geoprocessing tools (e.g. Spatial Analyst Tools)

Problems with ArcGIS Until recently, no Python interface for reading/writing cells of rasters ArcGIS 10 finally provided one: Prior to ArcGIS 10, you had to use other libraries, such as the Geospatial Data Abstraction Library (GDAL) Or write ASCII rasters and then run ASCII To Raster MGET 0.7 did this It is very, very slow!! import arcpy, numpy myArray = arcpy.RasterToNumPyArray('C:/data/inRaster') newRaster = arcpy.NumPyArrayToRaster(myArray + 1) newRaster.save('C:/data/outRaster')

Problems with ArcGIS Limited support for gridded scientific data formats: HDF: Only supports 2D grids Must extract to raster on disk, then read Georeferencing not supported NetCDF: File must have complete CF-compliant metadata Must access 3D and 4D data as 2D slices, calling Make NetCDF Raster Layer each time OPeNDAP: Not supported

Problems with ArcGIS ArcGIS is not designed to support 3D or 4D grids, not even with ArcObjects ArcObjects raster APIs only support 2 dimensions

Problems with ArcGIS Slow turnaround from ESRI on bugs; no access to devs For example: In 9.2, cursors could not set fields to NULL: ESRI did not fix this until 4 years later, in SP1 >>> import arcgisscripting >>> gp = arcgisscripting.create() >>> cur = gp.UpdateCursor('C:\\TestGDB.mdb\\TestTable') >>> row = cur.Next() >>> row.GetValue('MyField') >>> row.SetValue('MyField', None) Traceback (most recent call last): File " ", line 1, in ? ValueError: invalid input value

Problems with ArcGIS Conservation practitioners in developing countries— an important MGET user segment—cannot afford Arc We get regular requests to support free GIS platforms GRASS GIS

MGET needs a new architecture GRASS …we need to replace this. To support this fully…

What about using GDAL instead? GDAL is an open source library for reading and writing many formats of raster data The related OGR library reads/writes vector data

Problems with GDAL and OGR Limitations for several important formats, including: Cannot create ArcInfo Binary Grids Cannot create Personal GDB and File GDB feature classes Cannot read ArcGIS in-memory layers Like ArcGIS, GDAL data model is 2D Better, though: 3d and 4d supported as sets of 2D bands Very limited raster geoprocessing Project, contour, vector to raster, raster to vector No vector geoprocessing (can only convert formats) With code, you can implement basic operations on OGR layers (e.g. clip, buffer, intersect, sym. difference, etc.)

MGET’s new architecture None implemented yet

Example: Downloading MODIS L3 Chl-a images from NASA OceanColor Group NASA publishes global chlorophyll-a concentration images from several satellites Images in 2D HDF files downloadable over HTTP MGET tool automates download and conversion NASA HTTP Server

From ArcGIS Required parameters

From Python outside ArcGIS This example still requires that ArcGIS Desktop or ArcGIS Engine be installed >>> from GeoEco.Logging import Logger # Initialize MGET logging (optional) >>> Logger.Initialize() >>> >>> from GeoEco.DataProducts.NASA.OceanColor import OceanColorLevel3SMITimeSeries >>> OceanColorLevel3SMITimeSeries.CreateArcGISRasters( 'Aqua', 'Annual', '4km', 'CHL_chlor_a', 'C:\\Temp\\OceanColor') :34:48,049 INFO Querying time slices of aqua annual 4km chl_chlor_a from NASA OceanColor :34:48,099 INFO Query complete: 0:00:00 elapsed, 9 datasets found, 0:00: per dataset :34:48,109 INFO Importing 9 datasets into ArcGIS Folder C:\Temp\OceanColor with mode "replace" :36:17,338 INFO Import in progress: 0:01:29 elapsed, 2 datasets imported, 0:00: per dataset, 7 remaining, estimated completion time: 4:41:29 PM :41:16,598 INFO Import complete: 0:06:28 elapsed, 9 datasets imported, 0:00: per dataset. >>>

From Python without ArcGIS The catch: the CreateGDALRasters function has not been implemented yet But it is only 15 minutes of work and 10 lines of code We will implement this and similar functions en masse across MGET sometime this spring >>> OceanColorLevel3SMITimeSeries. CreateArcGISRasters (...) >>> OceanColorLevel3SMITimeSeries. CreateGDALRasters (...) Replace this with this

From other languages via COM R: MATLAB: Also VBScript, JScript, Perl, etc. C++ and C# can use early binding to GeoEco typelib This is all enabled by the pywin32 Python package > library(rcom) > oc <- comCreateObject("GeoEco.OceanColorLevel3SMITimeSeries") > comInvoke(oc, "CreateArcGISRasters", "Aqua", "Annual", "4km", "CHL_chlor_a", "C:\\Temp\\OceanColor“) NULL >> oc = actxserver('GeoEco.OceanColorLevel3SMITimeSeries'); >> oc.CreateArcGISRasters('Aqua', 'Annual', '4km', 'CHL_chlor_a', 'C:\\Temp\\OceanColor')

Summary Building geoproc tools with Python is quick and easy If you build directly on top of the ArcGIS geoprocessor, watch out for limitations and bugs Particularly if you work with large scientific datasets Open source technologies provide a viable alternative Very good support for many GIS formats, but not all Direct support from developers; quick bug fixes; free No comprehensive replacement for Arc’s many toolboxes No extant framework for building geoprocessing tools for multiple GIS platforms We are building one as part of MGET

Acknowledgements A special thanks to the many developers of the open source software that MGET is built upon, including: Guido van Rossum and his many collaborators; Mark Hammond; Travis Oliphant and his collaborators; Walter Moreira and Gregory Warnes; Peter Hollemans; David Ullman, Jean-Francois Cayula, and Peter Cornillon; Stephanie Henson; Tobias Sing, Oliver Sander, Niko Beerenwinkel, and Thomas Lengauer; Frank Warmerdam and his collaborators, Howard Butler; Timothy H. Keitt, Roger Bivand, Edzer Pebesma, and Barry Rowlingson; Gerald Evenden; Jeff Whitaker; Roberto De Almeida and his collaborators; Joe Gregorio; David Goodger and his collaborators; Daniel Veillard and his collaborators; Stefan Behnel, Martijn Faassen, and their collaborators; Paul McGuire and his collaborators; Phillip Eby, Bob Ippolito, and their collaborators; Jean-loup Gailly and Mark Adler; the developers of netCDF; the developers of HDF Thanks to our funders:

For more information Download MGET: me: Thanks for attending!