Geoinformatics tools with Perl: integration, development, needs

Slides:



Advertisements
Similar presentations
TISEC OPEN SOURCE, WEB-BASED, SPATIAL DECISION SUPPORT TOOL FOR TIDAL POWER SITING IN WASHINGTON STATE Z-Pulley Inc.
Advertisements

VirtualSim Inc. Real tools for virtual worlds Presentation.
Websydian Anne-Marie Arnvig Manager, Websydian Communications & Relations.
Websydian products.
New Release Announcements and Product Roadmap Chris DiPierro, Director of Software Development April 9-11, 2014
1 Alternate Title Slide: Presentation Name Goes Here Presenter’s Name Infrastructure Solutions Division Date GIS Perfct Ltd. Autodesk Value Added Reseller.
Kurt Menke, GISP GRASS GIS Geographic Resources Analysis Support System.
IPlant Collaborative Tools and Services Workshop iPlant Collaborative Tools and Services Workshop Overview of Atmosphere.
Web-Based Tool and Why Cross Platform Support Multi-User No special software to install… just a browser Offload real work to server No worrying about versions.
Java Beans.
Introduction to ArcGIS API for JavaScript
Introduction to Spatial Analysis and Spatial Modeling
Python: An Introduction
OSGeo Mashup : A practical look at 5 Open Source GIS applications GRASS/QGIS, GDAL/OGR, POSTGIS, MAPSERVER, GMT Presented at OSCON 2006 by Aaron Racicot.
Enabling High-Quality Printing in Web Applications
GDAL/OGR. GDAL/OGR GDAL/OGR : Frank Warmerdam Tools for reading, writing, and processing GDAL - Geospatial Data Abstraction Library GDAL - Geospatial.
Nick Draper 05/11/2008 Mantid Manipulation and Analysis Toolkit for ISIS data.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Using Open Source GIS Technology overview Presented by Aaron Racicot – GIS Programmer January 25, 2006 A Citizen of Salmon Nation.
Processes Introduction to Operating Systems: Module 3.
NCBI Genome Workbench Chuong Huynh NIH/NLM/NCBI Sao Paulo, Brasil July 15, 2004 Slides from Michael Dicuccio’s Genome Workbench.
WalkLite in Mobile GIS: A Schema to Extend and Symbolize SpatiaLite Dr. X. Chen Walkinfo Tech. Co. Ltd.
Benjamin Post Cole Kelleher.  Availability  Data must maintain a specified level of availability to the users  Performance  Database requests must.
Mantid Stakeholder Review Nick Draper 01/11/2007.
1 openModeller Presentation Plan: Overview of openModeller OMWS: an open standard for distributed ecological niche modelling openModeller in relation to.
INFORMATION SYSTEM – SOFTWARE TOPIC: GRAPHICAL USER INTERFACE.
K. Harrison CERN, 22nd September 2004 GANGA: ADA USER INTERFACE - Ganga release status - Job-Options Editor - Python support for AJDL - Job Builder - Python.
Open Source Geo Tools Tyler Mitchell. Open Source Geo Tools Tyler Mitchell Geographer Open Source Geospatial Advocate GIS Manager at Timberline, B.C.
How To configure GDAL. 2 What is GDAL? GDAL is a translator library for raster and vector geospatial data formats that is released under an X/MIT style.
Ganga/Dirac Data Management meeting October 2003 Gennady Kuznetsov Production Manager Tools and Ganga (New Architecture)
V7 Foundation Series Vignette Education Services.
Top 5 IDE that Simplifies PHP Development Biztech IT Consultancy Pvt. Ltd. | |
Geospatial Data Abstraction Library(GDAL) Sabya Sachi.
Arklio Studija 2007 File: / / Page 1 Automated web application testing using Selenium
Sharing Maps and Layers to Portal for ArcGIS Melanie Summers, Tom Shippee, Ty Fitzpatrick.
Image Processing Software Options Which types of software can be used to view and process remotely sensed imagery?
September 24th 2006, aKademy The Design and Implementation of KJSEmbed Richard Moore,
3-Tier Architectures (or 3-Tier Applications)
Top 8 Best Programming Languages To Learn
Basic 1960s It was designed to emphasize ease of use. Became widespread on microcomputers It is relatively simple. Will make it easier for people with.
Tulika Chaudharie / Harikharan Krishnaraju
Goals Give you a feeling of what Eclipse is.
An Introduction to the IVC Software Framework
Chris Menegay Sr. Consultant TECHSYS Business Solutions
Pipeline Execution Environment
PYTHON: AN INTRODUCTION
Tools and Services Workshop Overview of Atmosphere
Did your feature got in, out or planned?
OSGeo's Open Source Mapping Stack
Accessing Spatial Information from MaineDOT
JDK 1.6 change summary D. MANIKANDAN.
SVTRAININGS. SVTRAININGS Python Overview  Python is a high-level, interpreted, interactive and object-oriented scripting language. Python is designed.
Chapter 2: Operating-System Structures
Mapbox Studio Sarah and Haley.
GIFT / Fiscal Data Package Iteration 3
CIS16 Application Development – Programming with Visual Basic
What's New in eCognition 9
Genome Workbench Chuong Huynh NIH/NLM/NCBI New Delhi, India
MySQL Migration Toolkit
Saranya Sriram Developer Evangelist | Microsoft
Outline Chapter 2 (cont) OS Design OS structure
Network Analyst – Automating Workflows with Geoprocessing
Games Development 2 Tools Programming
What's New in eCognition 9
Windows Forms in Visual Studio 2005: An in-depth look at key features
Enterprise Web Services
What's New in eCognition 9
#01# ASP.NET Core Overview Design by: TEDU Trainer: Bach Ngoc Toan
ArcGIS Pro: An Introduction Overview
Presentation transcript:

Geoinformatics tools with Perl: integration, development, needs Goal: a programmable environment for geoinformatics data management, integration, analysis handle large and voluminous; complex and mixed format data sets program tools for web and GUI and CLI desktop

Use cases / requirements An analysis / data processing tool which is used 1..20 times, process lots of data in reasonable time, used from command line or in batch mode, max ~100 lines of code A functionality for a web site, do a well-defined task fast A data viewer which supports environmental modeling workflows A platform on which to implement a specific environmental model for a non-developer to use

Analysis of the requirements use cases are from my work: research in / teaching (mostly environmental geospatial) analysis, modeling and management not much “production” use, which is(?) data editing cartographics well-defined workflows

Platforms 1. Perl, Python, Ruby, R Multiple OS similar things are done in all these communities good: learn for other’s experiences bad: work done by others can’t be directly utilized Swig, .NET/mono??, R-Perl, Rpy, other? Write GdkMap and GtkMapWindow, which can be shared? Multiple OS Perl traditionally good MSWindows: my experience from MinGW rather positive

Platforms 2. Desktop / Web Perl tools good on server side in web If functionality is in libraries or scripting languages, desktop and web stacks are quite similar below the layer which provides data for the UI My GUI toolkit choice: Gtk 2

libraries, fundamental tools General architecture Perl modules Perl tools non-Perl tools libraries, fundamental tools

Stack Data viewing, exploratory GUI app w/ dialogs analysis, model use Perl scripting for application development Gtk2::Ex::Geo::* Geo::Raster, .. Perl scripting for data analysis & modeling gdal, ogr, ... Perl scripting for data integra-tion & fundamental analysis libraries C, C++, .NET

libraries (libral) libral has structs for rasters and vectors in RAM mainly raster ops rasterization create image pixbuf struct gdk-pixbuf libral GDALRasterIO OGR_G_GetX etc. GDAL OGR

libraries: discussion export data from libral to GDAL and OGR image (map) creation is simplistic (but fast, does its job, and can be annotated on in upper layers) Should GEOS be integrated directly? Dependence on gdk-pixbuf is just the pixbuf struct, which is simple Recent discussion on gdal-dev on transparent tiled access to raster datasets from analytical environment (in C++)

gdal, gdalconst, ogs, osr Swig bindings to GDAL and OGR Perl is supported by Swig => not much to do typemaps: small pieces of code to translate from C/C++ structs to Perl structs Makefile bootstrapping test code (create/read datasets, data sources, layers) some documentation

Swig bindings, discussion Based on simplified / recreated shadow C++ API built on GDAL/OGR C API Memory management is different in C++ and in Scripting Languages –issue is not fully solved Perl Module, which Swig creates is not Perlish / easy to use => Modify Perl Swig bindings / Build yet another layer? Geo::GDAL

http://map.hut.fi/gdal-perl/Geo-GDAL.html Classes with connection to spatial analysis and modeling

Perl modules Dialog modules in Gtk2::Ex::Geo:: Gtk2::Ex::Geo::Overlay Gtk2::Ex::Geo::Glue Gtk2::ScrolledWindow Gtk2::Ex::Geo::Renderer Geo::Raster Geo::Vector Gtk2::Gdk::Pixbuf Geo::Layer (abstract) gdal, gdalconst, ogr, osr (Swig)

Modules, discussion Geo::Raster is an API for libral How would Geo::GEOS fit into this picture? Visualization (map making, visual analysis, visual support for analysis & modeling) focuses on layers Modeling focuses on data and concepts (objects) A style descriptor class is missing from the picture I am planning a Geo::Colortable, which would be a first step

Intertwining capabilities: web, desktop # create layers as an array of Geo::Layer objects, based on the GetMap request ... # create the pixbuf $pixbuf = Gtk2::Ex::Geo::Renderer->new (\@layers,$bbox[0],$bbox[3],$pixel_size,$w,$h, 0,0,@bgcolor); # for web $pixbuf->save($filename,'png'); serve_document($filename); # a simple helper function

Intertwining capabilities: web, desktop # user manipulates layers as an array of Geo::Layer objects ... # in Overlay class, create the pixbuf, make a pixmap and then image from it # the image is within the Gtk2::ScrolledWindow $pixbuf = Gtk2::Ex::Geo::Renderer->new($self->{layers}, $self->{minX}, $self->{maxY}, $self->{pixel_size}, @{$self->{viewport_size}}, $self->{w_offset}, $self->{h_offset}, @{$self->{bg_color}}); $pixmap = $pixbuf->render_pixmap_and_mask(0); $self->{image}->set_from_pixmap($pixmap,undef); $self->{image}->set_size_request(@{$self->{canvas_size}}); $self->{image}->set_alignment($xalign,$yalign);

Dialogs Dialogs for raster layers Dialogs for vector layers open (standard file open) properties colortable clip (from GDAL to libral) Dialogs for vector layers open (custom: data source, layer, schema) properties, features, geometries rasterize (from OGR to libral)

Open a vector layer

Next steps Geo::GDAL, Geo::Colortable Geo::GEOS (once GEOS 3 comes out and its Swig bindings stabilize) Better look into various types of geospatial simulation Top-Down: Supporting environmental planning, i.e., classes for entities like wetlands, snow measurements, ...