Selasa, 29 Desember 2009

Seeking GIS Business Developer & Sales Manager

Dear all,
we are currently looking for a business developer/ sales manager in order to manage and expand our network of clients.
You can get a more detailed description from here:



    If you are interested, please, drop us an email at jobs_@_geo-solutions.it to discuss this further.

    Rabu, 16 Desember 2009

    Adding TIME and ELEVATION support to GeoServer and Mosaic plugin

    Ciao a tutti,
    in my previous post I showed a preview of the work we are doing to be able to serve raster datasets with support with TIME and ELEVATION in both WMS and WCS. We have been doing some more progresses with this work and now we can support the ELEVATION keyword as well in WMS queries, therefore I wanted to show some screenshots.

    Here below you see some screenshots of of the water temperature over the Ligurian see with the respective requests, first at the same timestamp at increasing depths, then at a certain depth with increasing timestamps. Notice that the Z axis is depth, therefore bigger elevation values mean deeper measurements.

    Time fixed, depth varying
    • ...&TIME=2008-10-31T00:00:000Z&ELEVATION=0



    • ...&TIME=2008-10-31T00:00:000Z&ELEVATION=50


    • ...&TIME=2008-10-31T00:00:000Z&ELEVATION=150


    • ...&TIME=2008-10-31T00:00:000Z&ELEVATION=200



    Depth fixed, Time varying...
    • &TIME=2008-10-31T00:00:000Z&ELEVATION=0




    • &TIME=2008-10-31T12:00:000Z&ELEVATION=0


    • &TIME=2008-11-01T00:00:000Z&ELEVATION=0


    • &TIME=2008-11-01T12:00:000Z&ELEVATION=0

    Kamis, 10 Desember 2009

    Adding TIME support to GeoServer and Mosaic plugin

    Ciao a tutti,
    lately I have been working on adding support in GeoServer for the TIME keyword in GetMap requests by updating the ImageMosaic plugin. The work is being performed on trunk but I might backport to 2.0.x, funding permitting, when it will be ready to roll.

    The goals are as follows:
    • Ability to select a certain number of granules from the mosaic index based on the actual values of a TIME attribute
    • Make the TIME mechanism transparent if not needed
    • Allow users to update the granule index over time adding new granules
    The scenario I am trying to cope with is the following:
    • I have a tool that does radar coverage predictions routinely (every 12 hours)
    • Each prediction is specular to the others except for the time when it was generated (same georeferencing, same raster characteristics)
    • We want to be able to show either the latest perdition or an old one
    Now, some pictures to show that the work is proceeding.
    I have taken 7 geotiffs for the BlueMarble series of 2004, from jan to Jul from here since you can visually notice that over time as the Summer approaches the ice/snow moves north.


    I have ingested it (Did I say that I am also adding a mechanism to automagically populate the time attribute based on the file properties, like name, metadata, etc.. :-) ?)

    Then I have started to send queries, for January

    then for March
    then for July
    Notice that we also support the "current" keyword to automatically get the latest raster available.

    I think it is pretty neat and thanks to the GeoTools infrastructure it is not being too hard to implement.

    The additional features we could add are quite many:
    • Filtering via CQL on additional properties
    • ELEVATION support
    • Create an animation given a set of time instants
    • Properly expose time as part of the WMS GetCap
    • Wire TIME and ELEVATION support for WCS as well

    If you are interested in funding this development or in adding more features I did not think of, please contacts us!

    Selasa, 17 November 2009

    Preparing a pyramid for the GeoServer with GDAL retile utility

    Ciao a tutti,
    since we have been asked many times how we configure pyramids for serving them with the GeoServer 2.0 I decided to extract a few slides from our training materials that deals with this topic.
    The slides below are released under the Creative Commons terms.
    A few annotations:
    1. use fwtools prebuilt binaries for the GDAL utilities
    2. make sure your data has proper CRS with an EPSG Code as well as proper georefering by inspecting it prior to preprocessing using the gdalinfo utility
    3. this tutorial target GeoServer 2.0 and onward



    Enjoy,
    Simone.

    Sabtu, 14 November 2009

    GeoSolutions presentation @ Italian GFOSS day 2009

    During this year's italian GFOSS day Ing. Alessio Fabiani has given a presentation on GeoServer and INSPIRE, specifically "GeoServer per la gestione interoperabile dei dati geospaziali: introduzione, e casi d'uso con cenni ad INSPIRE". I am posting it here in case someone is interested. Watch out, it is in Italian!




    Ciao,
    Simone.

    Selasa, 10 November 2009

    GeoSolutions Company Profile

    At the link below you can find a one-page company profile for GeoSolutions which can also be downloaded as a PDF. Soon I will come up with a longer descriptions of the projects we have been involved since our inception.


    Enjoy,
    Simone.

    Minggu, 08 November 2009

    GeoServer presentation @ FOSS4G 2009

    Ciao a tutti,
    I just got back from my after-FOSS4G vacation, therefore I wanted to publish the presentation I have given down there on our blog. My plan is to come up with an extended (or better, complete) version soon.

    Enjoy,
    Simone.

    Jumat, 16 Oktober 2009

    NATO Catharsis exercise support

    We have been doing on-site support this week for an NATO excercise which is being held in Marciana Marina, on the Elba Island in Italy. The exercise focuses on testing and trials with AUVs to map the sea bed looking for interesting features, like this one!


    GeoSolutions has been involved to provide GIS support via its product SAS Mission Manager (temporary name, sas stands for Synthetic Aperture Sonar) in order to preprocess, ingest, manage and visualize the data acquired by the sonar sensors mounted on the AUVs. Here below you can see a screenshot of the architecture which comprises of:
    1. GeoBatch for mission data ingestion and preprocessing (which includes mosaic balancing)

    2. Cluster of 2 GeoServer with Hibernate catalog (experimental second level cache activated)

    3. geoSDI-ERA customization for the user interface


    Here below, some screenshot of Ing. Daniele Romagnoli on-site during the exercise providing support to the operational activities.







    Rabu, 07 Oktober 2009

    WMS Performance shoot-out @ FOSS4G

    Lately, I have been helping out Ing. Andrea Aime with the tuning of GeoServer for the WMS performance shoot-out. I am pasting here below the latest announcement to spread the word about the event for which I will be one of the GeoServer representatives.

    GeoServer, MapServer, and ArcGIS Server will be competing for the title of "Fastest Web Map Server (WMS)" at the FOSS4G 2009 conference at the end of October. The Web Mapping Performance Shoot-out compares Web Map Servers in a variety of real world use cases.

    ....

    The performance shoot-out will see GeoServer, MapServer, and ArcGIS Server compared in terms of how long they take to generate a map image, from a common set of spatial data. The data formats used will be shapefile, geotiff, ECW, PostgreSQL/PostGIS, Oracle Spatial, and SDE on Oracle. Benchmarking scripts will be executed on a common platform running Red Hat Linux.

    GeoServer will be represented by Andrea Aime (OpenGeo) and Simone Giannecchini (GeoSolutions). "With the rapid expansion of GeoServer's capabilities each year, these benchmarking exercises are an excellent forum for us to test it in new and challenging ways," said Chris Holmes, Managing Director of OpenGeo and founder of the GeoServer project.


    So, yeah, let's see how it goes, in the end we can't do worse than a branze medal!

    Minggu, 23 Agustus 2009

    GeoServer and JBoss 5.x

    When deploying geoserver.war an a new installation of JBoss AS 5.x, most probably you will get an error caused by a conflict on the Xerces configuration classes.

    java.lang.ClassCastException: org.apache.xerces.parsers.XML11Configuration cannot be cast to org.apache.xerces.xni.parser.XMLParserConfiguration

    The error basically depends by the ClassLoader error which tries to instantiate the GeoServer XML parsing libraries by using the JBoss xerces interfaces instead.

    A possible quick solution to avoid the conflict and allowing GeoServer working fine on JBoss is to isolate the WAR classloading by performing the following steps:

    1> Isolate the WAR; you have two ways to do that:

    • Editing the file \jboss-5.1.0.GA\server\default\deployers\jbossweb.deployer\META-INF\war-deployers-jboss-beans.xml and commenting the WarClassLoaderDeployer bean definition.
    • Creating a specific classloading definition file for theGeoServer WAR by putting the file jboss-classloading.xml defined as below into the geoserver.war/WEB-INF directory.


    <classloading xmlns="urn:jboss:classloading:1.0"
    name="geoserver.war"
    domain="GeoServerDomain"
    export-all="NON_EMPTY"
    import-all="true">
    </classloading>

    2> Remove xalan and xerces jars from geoserver.war/WEB-INF/lib directory.

    We have tried these instructions briefly on windows and linux with JBoss AS 5.0 and 5.1. Please, notice that we are still experimenting with JBoss 5.x due to the large amount of changes from JBoss 4.2.x which is our stadard version. Please, let us know if you experience problems following the steps on this post.

    It is worth to point out that GeoSolutions strongly believes in JBoss as the base building block for a "real" Enterprise SDI. We have extensive epxerience with JBoss 4.2.x and 4.0.x and we are experimenting with JBOss 5.1 which is JEE5 compliant. We have been developing custom JBoss services to manage GeoServer and to allow data ingestion via FTP and SOAP-MTOM.

    In case you need help customizing GeoServer for production use in JBoss feel free to ask our help, we'll work hard to help you reach your goals.

    Rabu, 29 Juli 2009

    GeoServer presentation @ Italian GFOSS day 2008

    During last year's italian GFOSS day (see here) I gave a presentation on GeoServer, specifically "GeoServer, interoperabilita' à la carte". I have found it laying around on my hard drive therefore I am posting it here, in case someone can't sleep because he is not able to find it. Notice, it is in Italian!

    Rabu, 22 Juli 2009

    Job offer @ GeoSolutions

    We are looking for talented
    software engineers to fill a couple of positions.
    Qualifications as follows:

    - good knowledge of Java both JEE and JSE
    - good knowledge of c++
    - knowledge of most important OGC specifications and concepts (WMS,
    WFS, WCS, coverage, etc...)
    - working knowledge on at least 2 of the following projects: Geotools,
    GeoServer, Gdal, OpenLayers
    - at least 2 years of experience in the above languages and projects
    - being fluent in English, both written and spoken

    We offer a variety of contracts, working remotely is the preferred option.

    Please send a detailed resume together with a letter of presentation
    at jobs at geo-solutions.it

    Senin, 20 Juli 2009

    FOSS4G 2009 Abstract selected



    I have just received notice that one of the abstracts I submitted to FOSS4G 2009 has been voted enough to make into a presentation. The title is "GeoServer, GeoTools and GeoBatch: supporting operational Meteorology and Oceanography" and you can find more info here.

    So, yeah , see you in Sydney!

    Jumat, 10 Juli 2009

    Hibernating GeoServer: seeking for scalability and robustness

    I thought it would have been worth spending a few minutes to let people know about this development that we are bringing forward at GeoSolutions.
    Being not only GeoServer developers but also GeoServer hungry users, we have been a bit unpleased in the past by the scalability problems that it was showing by the fact that:
    1. GeoServer was keeping all its configuration into memory
    2. GeoServer was making use XML files to handle its internal configuration
    Now a lot of work has been lately for the upcoming 2.0 version of GeoServer, however, while 2 has been made less evident by GSIP 36 1 has not been touched yet.
    If you use GeoServer the way we use it, with thousand of layers and with 10 to 100 new layers added daily (usually remote sensing data), you might agree with us that we need to:
    1. Not load and keep the entire configuration in memory
    2. Use a database store the configuration
    In a few words, we need to improve scalability and robustness while tring to not jeopardize performance.

    At GeoSolutions we have decided to tackle this problems by implementing a new GeoServer internal catalog that leverages on Hibernate as its persistence engine and that would also not bring the whole configuration into memory. Our goal is to be able to support at least Postgis, Oracle and H2 as the target database, but as you know, many more are supported by Hibernate.
    The range of features that this work would open up is pretty wide, just think about using Hibernate distributed caching, simplified GeoServer replication, etc., etc.

    The work is in progress, we have started to describe the details on the GeoServer wiki and we will be committing a first version beginning of September.
    If you are interesting in supporting somehow (funding or human resources) this effort, please, drop me a few lines at simone.giannecchiniATgeo-solutions.it.

    Rabu, 08 Juli 2009

    Supporting FAO Fishery department with a custom GeoServer DataStore for Oracle

    GeoSolutions is collaborating with FAO Fishery department in order to improve the statistical GIS application "Atlas of Tuna and Billfish Catches".

    The interactive version of the Atlas of Tuna and Billfish Catches presents the global distribution of 1950 to 2003 catches, at 5° latitude by 5° longitude resolution, of those tuna and tuna-like species for which this distribution is generally well known on the global scale. These species consist of the so-called principal market tunas and some billfishes.
    Its refactoring mainly consists into switching the actual architecture which produces static snapshots of the statistic requested by the users through a parameter selection form, into a fully dynamic GIS map client based upon the OpenLayers served by a GeoServer/GeoTools/GeoWebCache stack working on top of an Oracle database.

    Here is a common use case to solve.
    Consider a table which contains the yearly catches of several fish species around the world by using different kind of gears; the user may want to issue several kind of statistical requests like for instance the total sum of the yearly catches grouped by gears and species over a specific time-range. Moreover the user wants to be able to compute these statistics on a defined by a lon,lat grid so that in the end he can either map the squares for the grid with different colors depending on the catches' statistics. In the normal approach we should create a new view which joins the catches table with the lon,lat grid table and performs the requested aggregate functions on the result.

    The main issue when coping with such a complex use case was to allow GeoServer to work with an underlying complex databases structure, joining tables on the fly depending on some parameters selected by the users and being able to apply statistics function by aggregating resulting records for criteria like across years or quarters of the catches. One of our goals was to not generate views on the fly inside the database as well as not to create new layers inside GeoServer on the fly, because such an approach would have, on a side,consumed a lot of resources and on the other side, it would have required a sort of clean-up mechanism to remove old, unneeded views and GeoServer layers; in a word a nightmare.


    At the end of the analysis we have come out with an architecture proposal based upon a brand new GeoTools driver capable of producing Aggregate DataStore
    s on the fly, by analyzing and rebuilding the SQL at run-time and also a CQL filter adapter for GeoServer able to understand Aggregate Filters to be forwarded to the Aggregate Driver.

    The proposed architecture, as depicted in the drawing aside, consists of several components:
    • A Proxy which intercepts the client request and traduces the parameters selection into an appropriate Aggregate CQL filter
    • The Aggregate DataStore which dynamically changes the FeatureType structure on GeoServer
    • The Business logic which performs dynamic queries to the DB by merging statistical and GIS datasets.

    This approach can be generalized to similar problems. The proposed architecture, in fact, aims to be the base for future GIS statistical mapping application of the Fishery department.

    Actually we based the driver on the Oracle NG plugin, but with some more effort it could be extended to the JDBC one allowing it working with other Databases like for instance PostGis.

    The results of the plugin are shown in the screenshots below:



    Selasa, 07 Juli 2009

    GeoSolutions is supporting the G8 meeting @ l'Aquila

    GeoSolutions, in coordination with the geoSDI team, has helped to build and set up the geospatial portal and SDI used by the Italian Civil Protection and the G8 help desk, as you can see here and here, to support the G8 meeting at L'Aquila, Italy. The building blocks are well-known open source projects, GeoServer, GeoNetwork, geoSDI-ERA, OpenLayers, Hibernate.

    For those of you that don't have access to the portal I am posting here below some screenshots of the portal showing data from various WMS servers.



    In the pictures above you can se the portal overlaying WMS layers from differentWMS servers which have been accessed and catalogued to gain access to a wide range of information.

    A special thanks goes to Dr. Dimitri Dello Buono, the head of the geoSDI project and to Francesco Izzi, the leader of the technical team, working with them on these challenging scenarios is always a pleasure.

    Kamis, 04 Juni 2009

    New PMC members: GeoTools is moving forward

    We are glad to announce that three new members have been appointed recently to the GeoTools Project Management Committee, the entity that is responsible for steering the GeoTools projects itself. The new members are Michael Bedward, Christian Mueller and Ben Caradoc-Davies, you can find a brief bio down below.

    Long story short, it is good to remind that despite the misleading information which has been spread around lately, the GeoTools project is alive and kicking!


    Michael Bedward is an ecologist with the Department of Environment and Climate Change, Sydney, Australia. He has over twenty years of professional experience in ecological field studies, vegetation mapping, conservation planning, statistical analysis of complex data and simulation modelling. His research has been regularly published in Australian and international scientific journals and presented at numerous conferences and workshops. Michael’s current research is
    concerned with predicting the dynamics and extinction risk of wildlife populations in landscapes subject to past and continuing habitat destruction, wildfire and climatic fluctuations. This work brings together remotely sensed geospatial data, field observations and specially developed simulation models.

    Christian Mueller works as an IT-professional since 25 years. He studied computer science at the Technical University of Vienna and is now about to finish his GIS postgraduate study at the university of Salzburg, Austria. The focus of his work is about DB systems, operating systems, programming and since 3 years, geographical information systems. Most of the knowledge is based on IBM and Open Source products. At the moment he is building up a GIS infrastructure for the a big Austrian enterprise collecting and visualizing statistical data and to prepare this enterprise for the INSPIRE directive of the European Community. At the moment of this writing, he is a module maintainer for three modules, working on his fourth module during the GSOC 2009.

    Ben Caradoc-Davies obtained his doctorate in computational physics from the University of Otago, New Zealand in 2000, for numerical studies of vortex dynamics in Bose-Einstein condensates. Since 2001, he has worked as a software developer in Perth, Western Australia. His experience includes development of software for: oceanographic and meteorological modelling, data processing, and analysis, in support of the offshore oil and gas industries; geophysical quantitative interpretation for resource exploration; and since 2007, the exchange of geoscience information via interoperable web services. Ben currently works for CSIRO Exploration and Mining [1] as the lead developer of the Web Feature Service component of the AuScope Spatial Information Services Stack [2]. In this role, he is maintainer of the application schema (complex feature) modules of GeoTools and GeoServer, and collaborates with AuScope stakeholders and GeoScience Markup Language (GeoSciML) Testbed participants to improve GeoSciML support in GeoTools and GeoServer. Ben is an open source software fanatic, and has been a Linux systems administrator since 1995. Ben is happy to use proprietary software where it belongs: on gaming consoles.


    [1] The Commonwealth Scientific and Industrial Research Organisation is Australia's national science agency.
    http://www.csiro.au/

    [2] AuScope Ltd is funded under the National Collaborative Research Infrastructure Strategy (NCRIS), an Australian Commonwealth Government Programme.
    http://www.auscope.org.au/category.php?id=10