Jumat, 12 Maret 2010

Automatic ImagePyramid import for GeoServer

Lately a new interesting feature has been added to the GeoServer, the possibility to automagically (yeah, it's not a typo) import raster pyramids created with gdal_retile and serve them as WMS/WCS layers.


Andrea Aime has created a nice tutorial (see here), that should guide you through the basic steps for building a raster pyramid and then ingesting it into GeoServer.

It is worth to point out that, to try this work out, you need to:
  1. Use a GeoServer nightly build
  2. Install the ImagePyramid extension
  3. Install fwtools or build GDAL on your platform of choice.
Enjoy,
Simone.

Kamis, 04 Maret 2010

GeoServer and GeoTools now supporting JPEG2000 via Kakadu SDK

Back in December 2009 Ing. Daniele Romagnoli and Ing. Simone Giannecchini have worked on bringing to supported status the raster plugin for serving JPEG2000 files via the well-known Kakadu SDK in GeoTools and GeoServer. A detailed description of the feature provided can be found here.

The rationale behind this work was to be able to exploit directly the Kakadu SDK without having to pass through the GDAL Java wrappers in order to achieve higher performance and robustness as well as to gain finer control over the steps we were taking in order to load raster data from JPEG2000 files.

The plugin for GeoServer 2.0.1 and GeoTools 2.6.1 is known to work with Kakadu SDK 5.2.x as well as 6.3.x. It is available as an extension, therefore can be downloaded from here (look for Extensions then Coverage Store then JPEG2000). To install it, instructions are as follows:

  • Download the plugin zip file for the same version of GeoServer

  • Unzip the plugin zip file to obtain the jar files inside. Do not unzip the jar files

  • Place the jar files in the WEB-INF/lib directory of your GeoServer installation

  • Restart GeoServer to load the extension

  • It is important to remark that the native libraries for the Kakadu version of choice must be deployed in the PATH on windows and in the LD_LIBRARY_PATH on linux. As an instance on my Windows box I have added the bin directory of the JDK to the PATH environmental variable and I have deployed there three dlls for Kakadu 5.2.6, namely kdu_a52R.dll, kdu_jni.dll and kdu_v52R.dll
In order to check if the installation was successful you need to check the GeoServer logs at startups. If something like this appears:

18-feb-2010 17.11.15it.geosolutions.util.KakaduUtilities loadKakadu
WARNING:Native library load failed.java.lang.UnsatisfiedLinkError: no kdu_jni in java.library.path

It means that the Kakadu JPEG2000 extension was not installed correctly.

To give you an idea of the speed up we have obtained, I am reporting here the numbers of some testing we have performed on our test server, using the WMS performance shooting approach. Sample dataset was a mosaic of 4 JPEG2000 files (GeoJP2 actually) of around 200 MB each.
We have compared the latest GDAL extension for GeoServer based on a customized version of GDAL 1.4.5 with our plugin running on top of Kakadu 5.2.6 and 6.3. As far as GDAL is concerned, we have been using the MrSid SDK, the ECW SDK as well as both Kakadu versions reported above. Numbers are asfollows:

Requests served via GDAL
Jp2Kakadu 5.2.6 6/min
Jp2Kakadu 6.3 11/min
Jp2Mrsid 12/min
Jp2Ecw 35/min


Requests served with no GDAL- using Kakadu directly
Kakadu 5.2.6 120/min
Kakadu 6.3 222/min

These numbers are not scientifically measured, but we think they show some nice performance improvements.
What we need now is feedback from the community!

Kamis, 25 Februari 2010

Sharing thoughts about FOSS4G-IT 2010 part 1


Ciao a tutti,
as announced in a previous post today we start to share the materials produced for the Foss4g-IT conference. Thanks to SUPSI, that in Lugano was host of this nice event, we had a very good time.
In this first part we are sharing the slides of the presentation that Ing Simone Giannecchini, founder of GeoSolutions, illustrated at SUPSI’s Aula Magna.

In this presentation you’ll find the state of art as far as Geoserver and its latest features are concerned: integrated security, dynamic symbolizers and ImageIO-Ext GDAL support. Also, quite interesting, it’s the use case describing an integrated system for scientific purpose that uses open source software to manage environmental and geographic data. This bring us to the definition of OpenSDI, a Spatial Data Infrastructure stack based on open source software that GeoSolutions is creating.

OpenSDI will not be simply an aggregation of different open source geospatial frameworks, it will be an integrated infrastructure based on best-of-breed components to provide, out-of-the-box, a complete, tested, integrated and supported solution for managing an enterprise spatial data infrastructure … and not only!

Soon, in the second part of this post, we will share the live-DVD produced for the foss4g-IT workshop. With this anyone we’ll be able to try and test, in a vary easy way (no installation required), Geoserver and others Geosolutions’s products!
... To be continued ......

Senin, 22 Februari 2010

(FIX) GDAL extension not working with GeoServer's Windows service wrapper

Today, we have investigated the issue reported by several users on the GeoServer's mailing list about being unable to get the GDAL-ImageI/O-Ext extension to work when GeoServer runs as a service on Windows.

Deploying the GDAL ImageI/O-Ext native libraries in a location referred by the PATH environment variable (like, as an instance, your JDK/bin folder) allows GeoServer to successfully recognize them when invoked via the start.bat script. However, this does not seem to work when running GeoServer as a service on Windows. As a result, during the service startup, GeoServer log reports this worrysome message:

it.geosolutions.imageio.gdalframework.GDALUtilities loadGDAL
WARNING: Native library load failed.java.lang.UnsatisfiedLinkError: no gdaljni in java.library.path

Taking a look at the wrapper.conf configuration file available inside the GeoServer installation (at bin/wrapper/wrapper.conf), we can find this useful entry:

# Java Library Path (location of Wrapper.DLL or libwrapper.so)
wrapper.java.library.path.1=bin/wrapper/lib

To solve the issue, you have 2 possible ways:
  1. move the native DLLs on the referred path (bin/wrapper/lib)
  2. add a wrapper.java.library.path.2=path/where/you/deployed/nativelibs entry just after the wrapper.java.library.path1=bin/wrapper/lib line.
Restarting the service, you should now see the GDAL ImageI/O-Ext plugins available when you try to create a new store, as shown in the image below. Notice that we are here assuming that you have properly configured the various environment variables as suggested in this link.

GDAL plugins available

Jumat, 19 Februari 2010

Geoserver continuous map wrapping!

Recently one of our clients has provided us with the funding to address an issue with the Geoserver rendering core module that was preventing us from drawing polygons crossing the dateline change, or, to put it another way, to be able to have maps that were wrapping like continuous wrapped maps from Google.


Our specific use case is also quite challenging on its own since we need to use a projection in which the dateline change has been moved away from the usual -180/+180 by using a non standard central meridian
The result, prior to the work described here, does not look so good across the discontinuity, as shown below


Bad results when crossing the dateline


The problem was that GeoServer was performing point by point reprojections, therefore when a point was crossing the dateline the modular math used kicked in trasforming +181 -> -179. This meant that the next point, when crossing the dateline, was moved to the other side of the world.


In order to perform proper processing of projection singularities and dateline wrapping on selected projections, in particular, Mercator, Transverse Mercator, and flat geographic, we have had to do some work at the GeoTools level, modifying the renderer. The outcome is that we finally have obtained seamless wrapping maps similar to the Google ones, as shown here:


Continents Oracle layer with EPSG:3329
Continents layer from Oracle datastore in EPSG:3329


Continents Oracle layer with EPSG:90013
Continents layer from Oracle datastore in EPSG:90013


You can try this work yourself starting from GeoTools 2.5.x and above and GeoServer 1.7.7 and 2.0.1. On the development versions of the two seoftware the tweak is automatically applied while on the other side for the stable versions you need to specify two JVM options:
-DADVANCED_PROJECTION_ HANDLING=true
-DUSE_STREAMING_RENDERER=true

A big thanks goes to Andrea Aime who has been hired for the implementation of this feature.

Kamis, 11 Februari 2010

Notizie dal FOSS4G-IT 2010 Lugano

Scriviamo dall’aula magna della Scuola Università Professionale della Svizzera Italiana (SUPSI) che gentilmente ospita presso le sue strutture l’edizione 2010 del FOSS4G-IT.
Di seguito pubblichiamo uno scatto della giornata di ieri, la giornata dedicata ai workshop, tipicamente il momento nel quale gli ‘esperti’ del campo condividono le loro conoscenze per la formazione.

WorkShop di GeoSolutions al FOSS4G-IT 2010

GeoSolutions, tramite Alessio Fabiani e Simone Giannecchini, core developers di Geoserver, GeoTools, GeoBatch e ImageIO-Ext, hanno messo a disposizione dei partecipanti le loro conoscenze di sviluppatori del Geoserver in tre intense ore di formazione di base e non solo.
E’ stata un’ottima occasione sia per noi di testare le nostre capacità formative, attività mai semplice e che richiede elevata professionalità ed un continuo rinnovamento delle tematiche trattate e del materiale formativo; sia per i partecipanti che hanno potuto sfruttare una corsia preferenziale per entrare nel mondo del Geoserver e della disseminazione dei dati geografici con standard OGC.
Il live-DVD prodotto per il workshop verrà presto messo a disposizione di tutte le persone che desiderano provare in maniera semplice, nessuna installazione richiesta, Geoserver ed altri software GIS.
Un ringraziamento particolare a Massimiliano Cannata ed all’Istituto di Scienze della Terra di Lugano (D.A.C.D).

Jumat, 22 Januari 2010

GeoServer workshop at FOSS4G-IT

Sorry, this is a post for the Italian-speaking users.

Salve a tutti, siamo lieti di annunciare che l'Ing. Alessio Fabiani e l'Ing Simone Giannecchini saranno presenti al FOSS4G-IT anche noto come 'XI meeting degli utenti di lingua italiana di GRASS e GFOSS', con un workshop ed una presentazione su GeoServer (programma)
I contenuti del workshop sono descritti qui sotto.

GeoServer è un server geospaziale ricco di funzionalità avanzate, concepito ed implementato per supportare standard OGC, quali WMS, WFS e WCS.
Scopo di questo workshop e' fornire all'utente una panoramica delle funzionalita' offerte dal Geoserver per la gestione e la pubblicazione di dati geospaziali, corredando le spiegazioni teoriche con esempi pratici.
I partecipanti impareranno a ingerire, configurare e pubblicare dati in formati diversi, quali ad esempio Shapefile o GeoTIFF, concentrandosi principalmente sulle funzionalita' di generazione di mappe; ai partecipanti sarà fornita una introduzione approfondita al motore di styling di GeoServer, basato sullo standard OGC denominato Styler Layer Descriptor (SLD), attraverso alcuni esempi validi sia per i dati raster che vettoriali, toccando funzionalita' avanzate come le opzioni di complex labeling e l'utilizzo di simbologie dinamiche. Tempo permettendo altri argomenti trattati saranno Tile caching con GeoWebCache, ottimizzazione delle immagini WMS a palette e il di watermarking.
Si dara' spazio al supporto avanzato per output KML e quindi alla integrazione con Google Earth. Verrà illustrato come pubblicare dati da GeoServer in Google Earth, introducendo funzionalità avanzate di KML come regionation, templating, time animations etc.
A seguito si introdurra' l'utilizzo dei servizi WFS e WCS per la disseminazione di dati vettoriali e raster in formato nativo, non renderizzato.
Infine, si faranno cenni agli sviluppi in essere nella comunita' di GeoServer, quali ad esempio il supporto per i parametri TIME ed ELEVATION in WMS e WCS o la persistenza su database della configurazione interna.
Il titolo della presentazione e':

Introduzione a Geoserver e sviluppi in corso per la gestione e pubblicazione di dati per la modellazione del cambiamento climatico.

Questa presentazione si prefigge un duplice scopo: da un lato fornire allo spettatore una introduzione delle funzionalità offerte da GeoServer per la creazione di Spatial Data Infrastructure interoperabili, tenendo anche in considerazione i dettami di INSPIRE, mentre dall'altro lato mira ad introdurre e presentare gli sviluppi più recenti e quelli in cantiere riguardanti il management e la disseminazione di dati MetOc (Meteorologici ed Oceanografici) e di Remote Sensing, di particolare interesse per la comunità scientifica internazionale nell'ambito di studi ed applicazioni sul Climate Change.
In particolare verranno presentate e discusse le problematiche e gli sviluppi in corso relativi alla gestione coerente di dati raster multidimensionali in GeoServer utilizzando servizi OGC compliant e non. Il tutto in modo da permettere agli utenti un accesso il più flessibile possibile che contempli sia la gestione del tempo che di elevazione-profondità delle bande acquisite-prodotte.
Si farà inoltre riferimento agli sviluppi in corso su questi temi a livello GeoTools che rappresentano il risultato di uno sforzo di cooperazione uDig-GeoServer il cui obiettivo è di migliorare l'integrazione fra i due software sia in termini di riuso del codice che, soprattutto, in termini di funzionalità aggiuntive per il management ed il processing di dati raster e non. A tale scopo verranno mostrate le nuove funzionalità implementate in uDig per la visualizzazione, navigazione ed interrogazione di dati multitemporali e multilayers.
Quindi, ci vediamo a Lugano!