Abstract
Python has powerful capabilities for coding elements of Web-based mapping applications. This paper highlights examples of analytical geospatial processing services that we have implemented for several Open Source-based development projects, including the Eastern Interconnection States' Planning Council (EISPC) Energy Zones Mapping Tool (http://eispctools.anl.gov), the Solar Energy Environmental Mapper (http://solarmapper.anl.gov), and the Eco- logical Risk Calculator (http://bogi.evs.anl.gov/erc/portal). We used common Open Source tools such as GeoServer, PostGIS, GeoExt, and OpenLayers for the basic Web-based portal, then added custom analytical tools to support more advanced functionality. The analytical processes were implemented as Web Processing Services (WPSs) running on PyWPS, a Python implementation of the Open Geospatial Consortium (OGC) WPS. For report tools, areas drawn by the user in the map interface are submitted to a service that utilizes the spatial extensions of PostGIS to generate buffers for use in querying and analyzing the underlying data. Python code then post-processes the results and outputs JavaScript Object Notation (JSON)-formatted data for rendering. We made use of PyWPS's integration with the Geographic Resources Analysis Support System (GRASS) to implement flexible, user-adjustable suitability models for several renewable energy generation technologies. In this paper, we provide details about the processing methods we used within these project examples. Index Terms—GIS, web-based mapping, PyWPS, PostGIS, GRASS, spatial modeling
Highlights
AND INTRODUCTIONWeb-based mapping applications are effective in providing simple and accessible interfaces for geospatial information, and often include large spatial databases and advanced analytical capabilities
In each of our projects, we chose to store local geographic data in Web Mercator to match the base maps and increase performance. For geographic processing such as generating buffers and computing lengths and areas, we first convert coordinates to the Albers Equal Area projection to take advantage of the improved properties of that projection. Each of these systems was built with a multi-tier architecture composed of a Javascript/HTML interface built on Bootstrap [Btsrp], OpenLayers [OpLyr], and ExtJS [Sen]; a Web application tier built on Ruby on Rails [RoR]; a mapping tier implemented with GeoServer [Gsrvr]; a persistence tier implemented with PostGIS [PGIS]; and an analysis tier built on Python, PyWPS [PyWPS], Geographic Resources Analysis Support System (GRASS) [GRASS], and the spatial analysis functionality of PostGIS
Reports and maps focus on watershed areas and use U.S Geological Survey watershed boundary geographic information system (GIS) data
Summary
Web-based mapping applications are effective in providing simple and accessible interfaces for geospatial information, and often include large spatial databases and advanced analytical capabilities. For geographic processing such as generating buffers and computing lengths and areas, we first convert coordinates to the Albers Equal Area projection to take advantage of the improved properties of that projection Each of these systems was built with a multi-tier architecture composed of a Javascript/HTML (hypertext markup language) interface built on Bootstrap [Btsrp], OpenLayers [OpLyr], and ExtJS [Sen]; a Web application tier built on Ruby on Rails [RoR]; a mapping tier implemented with GeoServer [Gsrvr]; a persistence tier implemented with PostGIS [PGIS]; and an analysis tier built on Python, PyWPS [PyWPS], GRASS [GRASS], and the spatial analysis functionality of PostGIS.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have