SlideShare a Scribd company logo
1 of 52
Download to read offline
Raster data in GeoServer and GeoTools:
Achievements, issues and future developments

Ing. Simone Giannecchini, GeoSolutions
Ing. Daniele Romagnoli

FOSS4G 2013, Nottingham
21th September 2013
Outline


Who we are



The building blocks



Recent Achievements



What’s cooking

FOSS4G 2013, Nottingham
21th September 2013
GeoSolutions


Founded in Italy in late 2006



Expertise
•
•

Java, Java Enterprise, C++, Python

•


Image Processing, GeoSpatial Data Fusion

JPEG2000, JPIP, Advanced 2D visualization

Supporting/Developing FOSS4G projects






MapStore, GeoServer
GeoBatch, GeoNetwork

Clients






Public Agencies
Private Companies

http://www.geo-solutions.it
FOSS4G 2013, Nottingham
21th September 2013
The Stack we’ll talk about

FOSS4G 2013, Nottingham
21th September 2013
JAI












Java Advanced Imaging Library
SUN then Oracle Image Processing library
Huge number of basic building operations
Tile-based, deferred execution model
Integrate Tile Caching (In Memory)
Easily Extensible
Natively Accelerated Code available for many
operations
No source code for native ops
Development more or less stopped!
FOSS4G 2013, Nottingham
21th September 2013
ImageIO









SUN then Oracle Image I/O library
Partly ships with JDK partly as extension
Tile-based, deferred & immediate execution model
Easily Extensible
Natively Accelerated Code available for many
formats
No source code for native (de)coders
Development more or less stopped!

FOSS4G 2013, Nottingham
21th September 2013
JAITools


High performance raster processing


Extends, complements, replaces Oracle Java Advanced
Imaging (JAI) Library





Low Level Operations




Open Source, BSD license

e.g. RangeLookup

Higher Level Operations


Vectorize, Contour



Works mostly in pure raster space (Image Processing)



Stable release is 1.3.0
FOSS4G 2013, Nottingham
21th September 2013
ImageIO-Ext


High Performance raster I/O






Extends, complements, replaces Oracle JAI ImageIO
Library
Open Source, LGPL and BSD licenses

Plugins:





BigTiff*, MatFile 5, TurboJPEG
JP2000 (Kakadu)

GDAL integration via ImageIO-ext




JPEG2000, MrSID, ECW
BigTIFF, ERDAS Image, HDF4
Complete list here
FOSS4G 2013, Nottingham
21th September 2013
GeoTools


The Open Source Java GIS Toolkit




LGPL

Management of Geospatial data


CRUD Operations


Raster and vector







Rendering
GDAL Support

Based on best-of-breed Open Source projects


Java Advanced Imaging (JAI), ImageIO



Java Topology Suite (JTS)
FOSS4G 2013, Nottingham
21th September 2013
GeoServer


GeoSpatial enterprise gateway





Java Enterprise
Management of raster and vector data

Standards compliant




OGC WFS 1.0, 1.1 (RI), 2.0



OGC WMS 1.1.1, 1.3.0




OGC WCS 1.0, 1.1.1 (RI), 2.0.1

OGC WPS 1.0.0

Google Earth/Maps support


KML, GeoSearch, etc..
FOSS4G 2013, Nottingham
21th September 2013
All together now…
WCS WMS WFS WPS REST Google GWC

GeoTools
ImageIO

JTS

JAI

GDAL

Kakadu

Vector

JAITools

Style

FOSS4G 2013, Nottingham
21th September 2013

Raster
Recent Achievements

FOSS4G 2013, Nottingham
21th September 2013
ImageIO-Ext


LibJPEG-Turbo









derivative library of libjpeg based on SIMD
instructions (MMX, SSE2, NEON)
accelerate baseline JPEG compression and
decompression on x86, x86-64, and ARM systems
available on many platforms
Open Source, LGPL

ImageIO-Ext-TurboJPEG







A JPEG ImageIO plugin built on top of the JAVA
wrapper for LibJPEG-Turbo (TurboJPEG)
20%-30% SpeedUp* on JPEG encoding
10%-20% SpeedUp* on JPEG decoding
More info here
Integrates with TIFF reader and writer
FOSS4G 2013, Nottingham
21th September 2013
ImageIO-Ext





NITF encoding Support (ImageIO-Ext-NITF)
Based on NITRO
Support for Tagged Record Extensions (TREs)
Support ImageSegments JPEG2000 compression through
Kakadu ImageIO-Ext plugin









(Numerically Lossless/VisuallyLossless/Lossy)
NPJE, EPJE BIIF (Basic Image Interchange Format) profiles
J2KLRA TRE support

Support for multiple TextSegments
Support for multiple ImageSegments
Support for ShapeFile Data Extension Segment (CSSHPA)

FOSS4G 2013, Nottingham
21th September 2013
GeoTools






Improved internal JAI Concurrency
Introduced and Improved JAI Tile Recycling
Reduced depth of JAI Processing Chains
More aggressive factory caching
On-the-fly
Polygonalization
Added a few specific high perf JAI operations






On-the-fly
Contouring

Created Specific high perf ROI class
Improving Tile Caching




e.g. crop

Work ongoing

Band
Transparent File vs Memory Caching when writing
Combine +
Raster to
Symbology
raster
point vector
FOSS4G 2013, Nottingham
21th September 2013
GeoTools





Optimized Rendering/Processing for raster data
Optimized Crop Chains  Coalescing multiple Crops into
a single one
Optimize Affine Transformation Chains  Coalescing
multiple Affine Transformations into a single one

NEAREST
FOSS4G 2013, Nottingham
21th September 2013
GeoTools

BICUBIC
FOSS4G 2013, Nottingham
21th September 2013
GeoTools


ImageMosaic



Custom Dimensions








More than simple time/elevation support

E.g.: wavelength, cloudLevel, …
Dimensions with ranges: (startTime, endTime),
(minElevation,maxElevation), …
Dynamic read parameters

Filtering
 Supports for OGC Filters through the “filter”
param




E.g.: Return only ImageMosaic granules where
attribute Country = Italy.
filter=“Country=‘Italy’ ”
FOSS4G 2013, Nottingham
21th September 2013
ImageMosaic


Custom/Additional dimensions

FOSS4G 2013, Nottingham
21th September 2013
GeoTools


ImageMosaic



Ordering





SORT_BY clause support on DBMS based mosaics
sorting=“time A, elevation D”

Stacking VS Merging
 Merging: different granules  merged together in
the final image as default


Stacking: different granules  stacked on different
bands




E.g. MeteoSat data: 12 channels (1 granule for each Channel)
1 = VIS0.6, 2 = VIS0.8, …, 11 = IR13.4, 12 = HRV.
Want return a RGB image made of channels 1,3,7  Stack
them
FOSS4G 2013, Nottingham
21th September 2013
GeoTools


New API (unsupported/coverage-experiment)








Driver: Get a connection to a coverage store.
CoverageAccess: a physical storage of coverage data. Get access
to a source of coverages.
CoverageSource: provides data access to a coverage.

Updated GridCoverage core API
Old GridCoverageReader:


inefficient and thread unsafe way to access multiple coverages

read GridCoverages from the input stream in a sequential order
New GridCoverage2DReader:

Coverages and properties may be accessed by coverage name:




get Envelope(name), get GridRange(name), get CRS(name),
read(name), get dynamicParameters (name), …
dynamicParameters support (for custom dimensions)




FOSS4G 2013, Nottingham
21th September 2013
GeoTools


NetCDF Support

Based on Unidata NetCDF JAVA library

Implements the new coverage-experiment API

Exposes current interfaces
(GridCoverage2DReader,…) too for GeoServer
compatibility before changes

1 coverage for each Dataset’s variable (multiple
coverages).

Internal data exposed as set of 2D slices

Custom dimensions support

Ancillary XML file:

filter on NetCDF variables/coverages

define low level index schema (for dimensions)
FOSS4G 2013, Nottingham
21th September 2013
GeoTools


ImageMosaic NetCDF integration


Allow the ImageMosaic to handle NetCDF files



Expose NetCDF internal structure (times, elevations)



Make ImageMosaic handle slices of the NetCDF file as granules
Mosaic

NetCDF 1

NetCDF … N

NetCDF 2
…

FOSS4G 2013, Nottingham
21th September 2013
GeoTools


NetCDF Polyphemus Sample Dataset

FOSS4G 2013, Nottingham
20th September 2013
GeoTools


Multiple Coverages per Mosaic

FOSS4G 2013, Nottingham
21th September 2013
GeoTools





StructuredGridCoverage2DReader
exposes the underlying granule structure and dimensions
descriptors of a specific coverage

getGranules (return a GranuleSource)

getDimensionDescriptors
allows to create/remove coverages and add new sources

createCoverage

removeCoverage

Harvest

GetGranules

FOSS4G 2013, Nottingham
21th September 2013
ImageMosaic


Granule Index CRUD Operations via REST



CREATE

curl -u admin:Geos -XPUT -H "Content-type:application/zip" --data-binary
@http://localhost:8080/geoserver/rest/workspaces/geosolutions/coveragestores/t
emperature/file.imagemosaic


READ index schema

curl -v -u admin:Geos -XGET
"http://localhost:8080/geoserver/rest/workspaces/geosolutions/coveragestores/polyphemus
/coverages/NO2/index.xml"


READ

WFS like with CQL filtering and paging

curl -v -u admin:Geos -XGET
"http://localhost:8080/geoserver/rest/workspaces/geosolutions/coveragestores/p
olyphemus/coverages/NO2/index/granules.xml?limit=1&filter=time='2013-0303T00:00:00Z'"

FOSS4G 2013, Nottingham
21th September 2013
ImageMosaic


Granule Index CRUD Operations via REST



UPDATE

curl -v -u admin:Geos -XPOST -H "Content-type: text/plain" -d
"/polyphemus_20130303.nc"
"http://localhost:8080/geoserver/rest/workspaces/geosolutions/coveragestores/pol
yphemus/external.imagemosaic"



DELETE WFS like with CQL filtering and paging or by ID

curl -v -u admin:geoserver -XDELETE
"http://localhost:8080/geoserver/rest/workspaces/topp/coveragestores/polyphemusv1/coverages/NO2/index/granules.xml?filter=location='polyphemus_20130301.nc'"

curl -v -u admin:geoserver -XGET
"http://localhost:8080/geoserver/rest/workspaces/topp/coveragestores/polyphemusv1/coverages/NO2/index/granules/NO2.2689.xml"

FOSS4G 2013, Nottingham
21th September 2013
GeoTools


GranuleSource/GranuleStore


GranuleSource:

ReadOnly access to Granules (with Query support)







getGranules(Query)  SimpleFeatureCollection
getSchema  SimpleFeatureType
getCount(Query), getBounds(Query)

E.g.: get all granules having acquisitionYear > 2012 and Country=Italy

GranuleStore:

add/modify/delete capabilities using Transactions





addGranules (SimpleFeatureCollection)
removeGranules (Filter)
updateGranules

E.g.: remove all granules having acquisitionYear < 1990
FOSS4G 2013, Nottingham
21th September 2013
GeoServer









LibJPEG-Turbo Output format
Encoding WMS output JPEG images through
LibJPEG Turbo library
Based on the TurboJpeg ImageIO-Ext plugin built
on top of the JAVA interface for LibJPEG-Turbo
(TurboJPEG)
Provided as a GeoServer extension
Up to 80% SpeedUp measured on JPEG encoding
Can be disabled at startup:




-Ddisable.turbojpeg=true

More Info here
FOSS4G 2013, Nottingham
21th September 2013
GeoServer


More Color Quantizers
MEDIANCUT

OCTTREE

Speed loss is around 10%
FOSS4G 2013, Nottingham
21th September 2013
GeoServer


WMS Custom Dimensions



Work on GeoTools raster Additional Domains








NetCDF
ImageMosaic

Turn additional querying dimensions into
WCS/WMS Dimensions
 ImageMosaic Domain Category
 WMS 1.1.1 DIM_CATEGORY
 WMS 1.3.0 DIM_CATEGORY
Perfect for large multidimensional mosaics!
E.g. meteo (forecast time, elevation, band, base
time, model name)
FOSS4G 2013, Nottingham
21th September 2013
GeoServer


WMS TIME, ELEVATION & More

http://localhost:8080/geoserver/geosolutions/wms?...&time=2013-0301T00:00:00.000Z&elevation=35.0&DIM_FILEDATE=2013-0301T00:00:00.000Z&DIM_UPDATED=2013-04-08T08:18:41.597Z

FOSS4G 2013, Nottingham
21th September 2013
GeoServer


WMS-EO



GSIP 84

Wizard to configure EO
layer groups

Extending LayerGroup
concept
Support same style on
both raster and vector
data

Support custom
dimensions
Alter map on the fly to
support band
combination

FOSS4G 2013, Nottingham
21th September 2013
GeoServer


WMS-EO Quirks


Root layer must respond with a specific layer rather than
the composition of the children






E.g. when I send a GetMap for the root layer I could get back the browse
image default layer

Same styles for both Raster as well as Vector data




Kind of a default visualization for a certain Dataset

E.g. yellow can be use for both flags as well as outlines

Peculiar behavior for Band layer ( raw data )




Can request either 1 (grayscale image) or 3 (RGB image)





E.g. multiple bands at different wavelengths

Different combinations are prohibited

Peculiar Behavior for GetFeatureInfo
FOSS4G 2013, Nottingham
21th September 2013
GeoServer


WCS 2.0



The basics






GetCoverage extensions











CRS
Scaling
Interpolation
Range subsetting
GeoTiff
GML
NetCDF

Output format extensions






Core service
KVP binding
XML binding

GeoTIFF
GML Grid
NetCDF

Ensure CITE tests compliancy
FOSS4G 2013, Nottingham
21th September 2013
GeoServer
WCS 2.0
Processing Chain


Crop

Core

RangeSubset

Extension

Scale & Interpolate

Extension

Reproject & Interpolate

Extension

Encode

Extension

FOSS4G 2013, Nottingham
21th September 2013
GeoServer





NetCDF Output Format
GetCoverage request parameter: &Format=NetCDF
Based on Unidata NetCDF JAVA library
Create a NetCDF output file on top of a GranuleStack:

A GridCoverage2D List:






Supports WCS 2.0.1





a GridCoverage2D for each combination of requested
Dimension values
GridCoverages should come from a
StructuredGridCoverage2DReader

Trimming: specify values range for a dimension
Slicing: specify single value for a dimension

Supports timeRanges/numberRanges on output
FOSS4G 2013, Nottingham
21th September 2013
GeoServer


NetCDF Output

http://localhost:8080/geoserver/wcs?request=Get
Coverage&service=WCS&version=2.0.1&coverag
eId=geosolutions__NO2&Format=NetCDF&subse
t=http://www.opengis.net/def/axis/OGC/0/Long(5,
20)&subset=http://www.opengis.net/def/axis/OG
C/0/Lat(40,50)&subset=http://www.opengis.net/de
f/axis/OGC/0/elevation(300,1250)&subset=http://w
ww.opengis.net/def/axis/OGC/0/time("2013-0301T10:00:00.000Z","2013-03-01T22:00:00.000Z")

FOSS4G 2013, Nottingham
21th September 2013
GeoServer


NetCDF Output

FOSS4G 2013, Nottingham
21th September 2013
GeoServer


WCS-EO



Build on top of a working WCS 2.0 with full extensions











WCS 2.0
CRS extension
Range subsetting extension
Interpolation extension
Scaling extension
GeoTiff extension
NetCDF extension

Add support for the WCS-EO extras





Listing coverage datasets in the capabilities documents (based on image
mosaic contents, which will have to be marked as “exposed” so that we
show their inner structure for EO)
Support describe coverage dataset
Support returning results for an entire dataset in GetCoverage
FOSS4G 2013, Nottingham
21th September 2013
What’s cooking
Plus what’s on our wish list

FOSS4G 2013, Nottingham
21th September 2013
JAI-Ext (temporary name)









Oracle JAI Drop-In Replacement
Open Source (License TBD)
High Performance
Pure Java
Support for No-Data
Support for Processing ROI
Support for Band Masks
GPU Acceleration


OpenCL VS JCuda VS Aparapi
FOSS4G 2013, Nottingham
21th September 2013
JAI-Ext (temporary name)


Status













Mosaic
Scale
Affine
Translate
Lookup
BandSelect
BandMerge
Warp
ColorQuantize
Format






Rescale
Histogram
Extrema
….

FOSS4G 2013, Nottingham
21th September 2013
GeoTools


Improved Processing & Rendering



Raster Algebra embedded in Styles






Improved Contrast Stretch








Processing on-the-fly with a Rendering
Transformation
Embed into RasterSymbolizer (ChannelSelection)
Clip to Min-Max, Gaussian, etc…

Suport for Date-line crossing raster
Support for raster in Polar projections
Better No-Data Management
Support for VirtualRaster a-la GDAL
FOSS4G 2013, Nottingham
21th September 2013
GeoTools


Mosaic Masking

FOSS4G 2013, Nottingham
21th September 2013
GeoServer






High Performance/Pure Java PNG output
format
No more separate Native ImageIO Install
More Control on bugs/enhancements
Status









First prototype working
Same performance as Native Imageio
Much Faster then JDK Encoder (check this)
Code here, GPL|
Discussion ongoing with the PNGJ Open Source
project for joining efforts
More info here
FOSS4G 2013, Nottingham
21th September 2013
GeoServer


OSM Generated Image

FOSS4G 2013, Nottingham
21th September 2013
GeoServer


Syntethic Image

FOSS4G 2013, Nottingham
21th September 2013
GeoServer



Raster Algebra as WPS
Gets an OGC Filter containing logical operations between
raster layers and produces a binary (0/1) layer

FOSS4G 2013, Nottingham
21th September 2013
GeoServer


Raster Algebra as WPS



JIFFLE

FOSS4G 2013, Nottingham
21th September 2013
The End

Thanks for not sleeping (loudly)!
daniele.romagnoli@geo-solutions.it
simone.giannecchini@geo-solutions.it
FOSS4G 2013, Nottingham
21th September 2013

More Related Content

What's hot

Advanced Security with GeoServer - FOSS4G 2015
Advanced Security with GeoServer - FOSS4G 2015Advanced Security with GeoServer - FOSS4G 2015
Advanced Security with GeoServer - FOSS4G 2015GeoSolutions
 
OpenGL NVIDIA Command-List: Approaching Zero Driver Overhead
OpenGL NVIDIA Command-List: Approaching Zero Driver OverheadOpenGL NVIDIA Command-List: Approaching Zero Driver Overhead
OpenGL NVIDIA Command-List: Approaching Zero Driver OverheadTristan Lorach
 
OpenGL 4.5 Update for NVIDIA GPUs
OpenGL 4.5 Update for NVIDIA GPUsOpenGL 4.5 Update for NVIDIA GPUs
OpenGL 4.5 Update for NVIDIA GPUsMark Kilgard
 
OpenGL 4.4 - Scene Rendering Techniques
OpenGL 4.4 - Scene Rendering TechniquesOpenGL 4.4 - Scene Rendering Techniques
OpenGL 4.4 - Scene Rendering TechniquesNarann29
 
Siggraph2016 - The Devil is in the Details: idTech 666
Siggraph2016 - The Devil is in the Details: idTech 666Siggraph2016 - The Devil is in the Details: idTech 666
Siggraph2016 - The Devil is in the Details: idTech 666Tiago Sousa
 
Bucketing 2.0: Improve Spark SQL Performance by Removing Shuffle
Bucketing 2.0: Improve Spark SQL Performance by Removing ShuffleBucketing 2.0: Improve Spark SQL Performance by Removing Shuffle
Bucketing 2.0: Improve Spark SQL Performance by Removing ShuffleDatabricks
 
Kicking ass with redis
Kicking ass with redisKicking ass with redis
Kicking ass with redisDvir Volk
 
Rendering Technologies from Crysis 3 (GDC 2013)
Rendering Technologies from Crysis 3 (GDC 2013)Rendering Technologies from Crysis 3 (GDC 2013)
Rendering Technologies from Crysis 3 (GDC 2013)Tiago Sousa
 
The Technology of Uncharted: Drake’s Fortune
The Technology of Uncharted: Drake’s FortuneThe Technology of Uncharted: Drake’s Fortune
The Technology of Uncharted: Drake’s FortuneNaughty Dog
 
Future Directions for Compute-for-Graphics
Future Directions for Compute-for-GraphicsFuture Directions for Compute-for-Graphics
Future Directions for Compute-for-GraphicsElectronic Arts / DICE
 
FrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in FrostbiteFrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in FrostbiteElectronic Arts / DICE
 
Introduction to Apache Spark Developer Training
Introduction to Apache Spark Developer TrainingIntroduction to Apache Spark Developer Training
Introduction to Apache Spark Developer TrainingCloudera, Inc.
 
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...Johan Andersson
 
Optimizing the Graphics Pipeline with Compute, GDC 2016
Optimizing the Graphics Pipeline with Compute, GDC 2016Optimizing the Graphics Pipeline with Compute, GDC 2016
Optimizing the Graphics Pipeline with Compute, GDC 2016Graham Wihlidal
 
Cassandra Introduction & Features
Cassandra Introduction & FeaturesCassandra Introduction & Features
Cassandra Introduction & FeaturesDataStax Academy
 
SeaweedFS introduction
SeaweedFS introductionSeaweedFS introduction
SeaweedFS introductionchrislusf
 
Graphics Gems from CryENGINE 3 (Siggraph 2013)
Graphics Gems from CryENGINE 3 (Siggraph 2013)Graphics Gems from CryENGINE 3 (Siggraph 2013)
Graphics Gems from CryENGINE 3 (Siggraph 2013)Tiago Sousa
 
Forward+ (EUROGRAPHICS 2012)
Forward+ (EUROGRAPHICS 2012)Forward+ (EUROGRAPHICS 2012)
Forward+ (EUROGRAPHICS 2012)Takahiro Harada
 

What's hot (20)

Advanced Security with GeoServer - FOSS4G 2015
Advanced Security with GeoServer - FOSS4G 2015Advanced Security with GeoServer - FOSS4G 2015
Advanced Security with GeoServer - FOSS4G 2015
 
OpenGL NVIDIA Command-List: Approaching Zero Driver Overhead
OpenGL NVIDIA Command-List: Approaching Zero Driver OverheadOpenGL NVIDIA Command-List: Approaching Zero Driver Overhead
OpenGL NVIDIA Command-List: Approaching Zero Driver Overhead
 
OpenGL 4.5 Update for NVIDIA GPUs
OpenGL 4.5 Update for NVIDIA GPUsOpenGL 4.5 Update for NVIDIA GPUs
OpenGL 4.5 Update for NVIDIA GPUs
 
OpenGL 4.4 - Scene Rendering Techniques
OpenGL 4.4 - Scene Rendering TechniquesOpenGL 4.4 - Scene Rendering Techniques
OpenGL 4.4 - Scene Rendering Techniques
 
Mapreduce Tutorial
Mapreduce TutorialMapreduce Tutorial
Mapreduce Tutorial
 
Siggraph2016 - The Devil is in the Details: idTech 666
Siggraph2016 - The Devil is in the Details: idTech 666Siggraph2016 - The Devil is in the Details: idTech 666
Siggraph2016 - The Devil is in the Details: idTech 666
 
Bucketing 2.0: Improve Spark SQL Performance by Removing Shuffle
Bucketing 2.0: Improve Spark SQL Performance by Removing ShuffleBucketing 2.0: Improve Spark SQL Performance by Removing Shuffle
Bucketing 2.0: Improve Spark SQL Performance by Removing Shuffle
 
Kicking ass with redis
Kicking ass with redisKicking ass with redis
Kicking ass with redis
 
Rendering Technologies from Crysis 3 (GDC 2013)
Rendering Technologies from Crysis 3 (GDC 2013)Rendering Technologies from Crysis 3 (GDC 2013)
Rendering Technologies from Crysis 3 (GDC 2013)
 
The Technology of Uncharted: Drake’s Fortune
The Technology of Uncharted: Drake’s FortuneThe Technology of Uncharted: Drake’s Fortune
The Technology of Uncharted: Drake’s Fortune
 
Inferred lighting
Inferred lightingInferred lighting
Inferred lighting
 
Future Directions for Compute-for-Graphics
Future Directions for Compute-for-GraphicsFuture Directions for Compute-for-Graphics
Future Directions for Compute-for-Graphics
 
FrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in FrostbiteFrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in Frostbite
 
Introduction to Apache Spark Developer Training
Introduction to Apache Spark Developer TrainingIntroduction to Apache Spark Developer Training
Introduction to Apache Spark Developer Training
 
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
 
Optimizing the Graphics Pipeline with Compute, GDC 2016
Optimizing the Graphics Pipeline with Compute, GDC 2016Optimizing the Graphics Pipeline with Compute, GDC 2016
Optimizing the Graphics Pipeline with Compute, GDC 2016
 
Cassandra Introduction & Features
Cassandra Introduction & FeaturesCassandra Introduction & Features
Cassandra Introduction & Features
 
SeaweedFS introduction
SeaweedFS introductionSeaweedFS introduction
SeaweedFS introduction
 
Graphics Gems from CryENGINE 3 (Siggraph 2013)
Graphics Gems from CryENGINE 3 (Siggraph 2013)Graphics Gems from CryENGINE 3 (Siggraph 2013)
Graphics Gems from CryENGINE 3 (Siggraph 2013)
 
Forward+ (EUROGRAPHICS 2012)
Forward+ (EUROGRAPHICS 2012)Forward+ (EUROGRAPHICS 2012)
Forward+ (EUROGRAPHICS 2012)
 

Similar to Raster Data In GeoServer And GeoTools: Achievements, Issues And Future Developments

GeoServer an introduction for beginners
GeoServer an introduction for beginnersGeoServer an introduction for beginners
GeoServer an introduction for beginnersGeoSolutions
 
Using GeoServer for spatio-temporal data management with examples for MetOc a...
Using GeoServer for spatio-temporal data management with examples for MetOc a...Using GeoServer for spatio-temporal data management with examples for MetOc a...
Using GeoServer for spatio-temporal data management with examples for MetOc a...GeoSolutions
 
GeoServer intro for SDI Days 2013
GeoServer intro for SDI Days 2013GeoServer intro for SDI Days 2013
GeoServer intro for SDI Days 2013GeoSolutions
 
GeoNetwork, The Open Source Solution for the interoperable management of ge...
GeoNetwork, The Open Source Solution  for the interoperable management  of ge...GeoNetwork, The Open Source Solution  for the interoperable management  of ge...
GeoNetwork, The Open Source Solution for the interoperable management of ge...GeoSolutions
 
GeoServer The Open Source Solution for the interoperable management of geos...
GeoServer The Open Source Solution  for the interoperable management  of geos...GeoServer The Open Source Solution  for the interoperable management  of geos...
GeoServer The Open Source Solution for the interoperable management of geos...GeoSolutions
 
Fossgis 2013 GeoServer Presentation
Fossgis 2013 GeoServer PresentationFossgis 2013 GeoServer Presentation
Fossgis 2013 GeoServer PresentationGeoSolutions
 
GeoServer for Spatio-temporal Data Handling With Examples For MetOc And Remot...
GeoServer for Spatio-temporal Data Handling With Examples For MetOc And Remot...GeoServer for Spatio-temporal Data Handling With Examples For MetOc And Remot...
GeoServer for Spatio-temporal Data Handling With Examples For MetOc And Remot...GeoSolutions
 
Spatio-temporal Data Handling With GeoServer for MetOc And Remote Sensing
Spatio-temporal Data Handling With GeoServer for MetOc And Remote SensingSpatio-temporal Data Handling With GeoServer for MetOc And Remote Sensing
Spatio-temporal Data Handling With GeoServer for MetOc And Remote SensingGeoSolutions
 
Serving earth observation data with GeoServer: addressing real world requirem...
Serving earth observation data with GeoServer: addressing real world requirem...Serving earth observation data with GeoServer: addressing real world requirem...
Serving earth observation data with GeoServer: addressing real world requirem...GeoSolutions
 
State of GeoServer 2.13
State of GeoServer 2.13State of GeoServer 2.13
State of GeoServer 2.13Jody Garnett
 
State of GeoServer - FOSS4G 2016
State of GeoServer - FOSS4G 2016State of GeoServer - FOSS4G 2016
State of GeoServer - FOSS4G 2016GeoSolutions
 
Raster Data In GeoServer and GeoTools: Achievements, Issues And Future Develo...
Raster Data In GeoServer and GeoTools: Achievements, Issues And Future Develo...Raster Data In GeoServer and GeoTools: Achievements, Issues And Future Develo...
Raster Data In GeoServer and GeoTools: Achievements, Issues And Future Develo...GeoSolutions
 
Geosolutions FOSS4g 2009 Redux
Geosolutions FOSS4g 2009 ReduxGeosolutions FOSS4g 2009 Redux
Geosolutions FOSS4g 2009 ReduxGeoSolutions
 
State of GeoServer 2.14
State of GeoServer 2.14State of GeoServer 2.14
State of GeoServer 2.14Jody Garnett
 
Open source based software ‘gxt’ mangosystem
Open source based software ‘gxt’ mangosystemOpen source based software ‘gxt’ mangosystem
Open source based software ‘gxt’ mangosystemHaNJiN Lee
 
State of GeoServer 2.10
State of GeoServer 2.10State of GeoServer 2.10
State of GeoServer 2.10Jody Garnett
 
State of GeoServer
State of GeoServerState of GeoServer
State of GeoServerJody Garnett
 
GeoServer, an introduction for beginners
GeoServer, an introduction for beginnersGeoServer, an introduction for beginners
GeoServer, an introduction for beginnersGeoSolutions
 
GFOSS DAY 2012 GeoNetwork Presentation
GFOSS DAY 2012 GeoNetwork PresentationGFOSS DAY 2012 GeoNetwork Presentation
GFOSS DAY 2012 GeoNetwork PresentationGeoSolutions
 
State of GeoServer 2.12
State of GeoServer 2.12State of GeoServer 2.12
State of GeoServer 2.12GeoSolutions
 

Similar to Raster Data In GeoServer And GeoTools: Achievements, Issues And Future Developments (20)

GeoServer an introduction for beginners
GeoServer an introduction for beginnersGeoServer an introduction for beginners
GeoServer an introduction for beginners
 
Using GeoServer for spatio-temporal data management with examples for MetOc a...
Using GeoServer for spatio-temporal data management with examples for MetOc a...Using GeoServer for spatio-temporal data management with examples for MetOc a...
Using GeoServer for spatio-temporal data management with examples for MetOc a...
 
GeoServer intro for SDI Days 2013
GeoServer intro for SDI Days 2013GeoServer intro for SDI Days 2013
GeoServer intro for SDI Days 2013
 
GeoNetwork, The Open Source Solution for the interoperable management of ge...
GeoNetwork, The Open Source Solution  for the interoperable management  of ge...GeoNetwork, The Open Source Solution  for the interoperable management  of ge...
GeoNetwork, The Open Source Solution for the interoperable management of ge...
 
GeoServer The Open Source Solution for the interoperable management of geos...
GeoServer The Open Source Solution  for the interoperable management  of geos...GeoServer The Open Source Solution  for the interoperable management  of geos...
GeoServer The Open Source Solution for the interoperable management of geos...
 
Fossgis 2013 GeoServer Presentation
Fossgis 2013 GeoServer PresentationFossgis 2013 GeoServer Presentation
Fossgis 2013 GeoServer Presentation
 
GeoServer for Spatio-temporal Data Handling With Examples For MetOc And Remot...
GeoServer for Spatio-temporal Data Handling With Examples For MetOc And Remot...GeoServer for Spatio-temporal Data Handling With Examples For MetOc And Remot...
GeoServer for Spatio-temporal Data Handling With Examples For MetOc And Remot...
 
Spatio-temporal Data Handling With GeoServer for MetOc And Remote Sensing
Spatio-temporal Data Handling With GeoServer for MetOc And Remote SensingSpatio-temporal Data Handling With GeoServer for MetOc And Remote Sensing
Spatio-temporal Data Handling With GeoServer for MetOc And Remote Sensing
 
Serving earth observation data with GeoServer: addressing real world requirem...
Serving earth observation data with GeoServer: addressing real world requirem...Serving earth observation data with GeoServer: addressing real world requirem...
Serving earth observation data with GeoServer: addressing real world requirem...
 
State of GeoServer 2.13
State of GeoServer 2.13State of GeoServer 2.13
State of GeoServer 2.13
 
State of GeoServer - FOSS4G 2016
State of GeoServer - FOSS4G 2016State of GeoServer - FOSS4G 2016
State of GeoServer - FOSS4G 2016
 
Raster Data In GeoServer and GeoTools: Achievements, Issues And Future Develo...
Raster Data In GeoServer and GeoTools: Achievements, Issues And Future Develo...Raster Data In GeoServer and GeoTools: Achievements, Issues And Future Develo...
Raster Data In GeoServer and GeoTools: Achievements, Issues And Future Develo...
 
Geosolutions FOSS4g 2009 Redux
Geosolutions FOSS4g 2009 ReduxGeosolutions FOSS4g 2009 Redux
Geosolutions FOSS4g 2009 Redux
 
State of GeoServer 2.14
State of GeoServer 2.14State of GeoServer 2.14
State of GeoServer 2.14
 
Open source based software ‘gxt’ mangosystem
Open source based software ‘gxt’ mangosystemOpen source based software ‘gxt’ mangosystem
Open source based software ‘gxt’ mangosystem
 
State of GeoServer 2.10
State of GeoServer 2.10State of GeoServer 2.10
State of GeoServer 2.10
 
State of GeoServer
State of GeoServerState of GeoServer
State of GeoServer
 
GeoServer, an introduction for beginners
GeoServer, an introduction for beginnersGeoServer, an introduction for beginners
GeoServer, an introduction for beginners
 
GFOSS DAY 2012 GeoNetwork Presentation
GFOSS DAY 2012 GeoNetwork PresentationGFOSS DAY 2012 GeoNetwork Presentation
GFOSS DAY 2012 GeoNetwork Presentation
 
State of GeoServer 2.12
State of GeoServer 2.12State of GeoServer 2.12
State of GeoServer 2.12
 

More from GeoSolutions

MapStore 2 - The Story
MapStore 2 - The StoryMapStore 2 - The Story
MapStore 2 - The StoryGeoSolutions
 
One GeoNode, many GeoNodes
One GeoNode, many GeoNodesOne GeoNode, many GeoNodes
One GeoNode, many GeoNodesGeoSolutions
 
Introduction to GeoNode
Introduction to GeoNodeIntroduction to GeoNode
Introduction to GeoNodeGeoSolutions
 
GeoServer Feature FRENZY
GeoServer Feature FRENZYGeoServer Feature FRENZY
GeoServer Feature FRENZYGeoSolutions
 
MapStore 2, modern mashups with OL3, Leaflet and React
MapStore 2, modern mashups with OL3, Leaflet and ReactMapStore 2, modern mashups with OL3, Leaflet and React
MapStore 2, modern mashups with OL3, Leaflet and ReactGeoSolutions
 
Creating Stunning Maps in GeoServer: mastering SLD and CSS styles
Creating Stunning Maps in GeoServer: mastering SLD and CSS stylesCreating Stunning Maps in GeoServer: mastering SLD and CSS styles
Creating Stunning Maps in GeoServer: mastering SLD and CSS stylesGeoSolutions
 
Serving earth observation data with GeoServer: addressing real world requirem...
Serving earth observation data with GeoServer: addressing real world requirem...Serving earth observation data with GeoServer: addressing real world requirem...
Serving earth observation data with GeoServer: addressing real world requirem...GeoSolutions
 
Mastering Security with GeoServer and GeoFence - FOSS4G EU 2017
Mastering Security with GeoServer and GeoFence - FOSS4G EU 2017Mastering Security with GeoServer and GeoFence - FOSS4G EU 2017
Mastering Security with GeoServer and GeoFence - FOSS4G EU 2017GeoSolutions
 
GeoServer in Production: we do it, here is how!
GeoServer in Production: we do it, here is how!GeoServer in Production: we do it, here is how!
GeoServer in Production: we do it, here is how!GeoSolutions
 
Crunching Data In GeoServer: Mastering Rendering Transformations, WPS Process...
Crunching Data In GeoServer: Mastering Rendering Transformations, WPS Process...Crunching Data In GeoServer: Mastering Rendering Transformations, WPS Process...
Crunching Data In GeoServer: Mastering Rendering Transformations, WPS Process...GeoSolutions
 
Mapping the world beyond web mercator - FOSS4G 2015
Mapping the world beyond web mercator - FOSS4G 2015Mapping the world beyond web mercator - FOSS4G 2015
Mapping the world beyond web mercator - FOSS4G 2015GeoSolutions
 
Advanced Cartographic Map Rendering in GeoServer
Advanced Cartographic Map Rendering in GeoServerAdvanced Cartographic Map Rendering in GeoServer
Advanced Cartographic Map Rendering in GeoServerGeoSolutions
 
Enterprise class deployment for GeoServer and GeoWebcache Optimizing perform...
Enterprise class deployment  for GeoServer and GeoWebcache Optimizing perform...Enterprise class deployment  for GeoServer and GeoWebcache Optimizing perform...
Enterprise class deployment for GeoServer and GeoWebcache Optimizing perform...GeoSolutions
 
GeoSolutions Keynote at WebMGS 2015
GeoSolutions Keynote at WebMGS 2015GeoSolutions Keynote at WebMGS 2015
GeoSolutions Keynote at WebMGS 2015GeoSolutions
 
GeoServer beginners gwf_2015
GeoServer beginners gwf_2015GeoServer beginners gwf_2015
GeoServer beginners gwf_2015GeoSolutions
 
Geosolutions gwf-2015-v01.04
Geosolutions gwf-2015-v01.04Geosolutions gwf-2015-v01.04
Geosolutions gwf-2015-v01.04GeoSolutions
 
Geoserver introduction, GeoBusiness 2015
Geoserver introduction, GeoBusiness 2015Geoserver introduction, GeoBusiness 2015
Geoserver introduction, GeoBusiness 2015GeoSolutions
 
Introduzione a GeoServer ed ai servizi OGC
Introduzione a GeoServer ed ai servizi OGCIntroduzione a GeoServer ed ai servizi OGC
Introduzione a GeoServer ed ai servizi OGCGeoSolutions
 
Advanced Security With GeoServer
Advanced Security With GeoServerAdvanced Security With GeoServer
Advanced Security With GeoServerGeoSolutions
 

More from GeoSolutions (19)

MapStore 2 - The Story
MapStore 2 - The StoryMapStore 2 - The Story
MapStore 2 - The Story
 
One GeoNode, many GeoNodes
One GeoNode, many GeoNodesOne GeoNode, many GeoNodes
One GeoNode, many GeoNodes
 
Introduction to GeoNode
Introduction to GeoNodeIntroduction to GeoNode
Introduction to GeoNode
 
GeoServer Feature FRENZY
GeoServer Feature FRENZYGeoServer Feature FRENZY
GeoServer Feature FRENZY
 
MapStore 2, modern mashups with OL3, Leaflet and React
MapStore 2, modern mashups with OL3, Leaflet and ReactMapStore 2, modern mashups with OL3, Leaflet and React
MapStore 2, modern mashups with OL3, Leaflet and React
 
Creating Stunning Maps in GeoServer: mastering SLD and CSS styles
Creating Stunning Maps in GeoServer: mastering SLD and CSS stylesCreating Stunning Maps in GeoServer: mastering SLD and CSS styles
Creating Stunning Maps in GeoServer: mastering SLD and CSS styles
 
Serving earth observation data with GeoServer: addressing real world requirem...
Serving earth observation data with GeoServer: addressing real world requirem...Serving earth observation data with GeoServer: addressing real world requirem...
Serving earth observation data with GeoServer: addressing real world requirem...
 
Mastering Security with GeoServer and GeoFence - FOSS4G EU 2017
Mastering Security with GeoServer and GeoFence - FOSS4G EU 2017Mastering Security with GeoServer and GeoFence - FOSS4G EU 2017
Mastering Security with GeoServer and GeoFence - FOSS4G EU 2017
 
GeoServer in Production: we do it, here is how!
GeoServer in Production: we do it, here is how!GeoServer in Production: we do it, here is how!
GeoServer in Production: we do it, here is how!
 
Crunching Data In GeoServer: Mastering Rendering Transformations, WPS Process...
Crunching Data In GeoServer: Mastering Rendering Transformations, WPS Process...Crunching Data In GeoServer: Mastering Rendering Transformations, WPS Process...
Crunching Data In GeoServer: Mastering Rendering Transformations, WPS Process...
 
Mapping the world beyond web mercator - FOSS4G 2015
Mapping the world beyond web mercator - FOSS4G 2015Mapping the world beyond web mercator - FOSS4G 2015
Mapping the world beyond web mercator - FOSS4G 2015
 
Advanced Cartographic Map Rendering in GeoServer
Advanced Cartographic Map Rendering in GeoServerAdvanced Cartographic Map Rendering in GeoServer
Advanced Cartographic Map Rendering in GeoServer
 
Enterprise class deployment for GeoServer and GeoWebcache Optimizing perform...
Enterprise class deployment  for GeoServer and GeoWebcache Optimizing perform...Enterprise class deployment  for GeoServer and GeoWebcache Optimizing perform...
Enterprise class deployment for GeoServer and GeoWebcache Optimizing perform...
 
GeoSolutions Keynote at WebMGS 2015
GeoSolutions Keynote at WebMGS 2015GeoSolutions Keynote at WebMGS 2015
GeoSolutions Keynote at WebMGS 2015
 
GeoServer beginners gwf_2015
GeoServer beginners gwf_2015GeoServer beginners gwf_2015
GeoServer beginners gwf_2015
 
Geosolutions gwf-2015-v01.04
Geosolutions gwf-2015-v01.04Geosolutions gwf-2015-v01.04
Geosolutions gwf-2015-v01.04
 
Geoserver introduction, GeoBusiness 2015
Geoserver introduction, GeoBusiness 2015Geoserver introduction, GeoBusiness 2015
Geoserver introduction, GeoBusiness 2015
 
Introduzione a GeoServer ed ai servizi OGC
Introduzione a GeoServer ed ai servizi OGCIntroduzione a GeoServer ed ai servizi OGC
Introduzione a GeoServer ed ai servizi OGC
 
Advanced Security With GeoServer
Advanced Security With GeoServerAdvanced Security With GeoServer
Advanced Security With GeoServer
 

Recently uploaded

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 

Recently uploaded (20)

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 

Raster Data In GeoServer And GeoTools: Achievements, Issues And Future Developments

  • 1. Raster data in GeoServer and GeoTools: Achievements, issues and future developments Ing. Simone Giannecchini, GeoSolutions Ing. Daniele Romagnoli FOSS4G 2013, Nottingham 21th September 2013
  • 2. Outline  Who we are  The building blocks  Recent Achievements  What’s cooking FOSS4G 2013, Nottingham 21th September 2013
  • 3. GeoSolutions  Founded in Italy in late 2006  Expertise • • Java, Java Enterprise, C++, Python •  Image Processing, GeoSpatial Data Fusion JPEG2000, JPIP, Advanced 2D visualization Supporting/Developing FOSS4G projects    MapStore, GeoServer GeoBatch, GeoNetwork Clients    Public Agencies Private Companies http://www.geo-solutions.it FOSS4G 2013, Nottingham 21th September 2013
  • 4. The Stack we’ll talk about FOSS4G 2013, Nottingham 21th September 2013
  • 5. JAI          Java Advanced Imaging Library SUN then Oracle Image Processing library Huge number of basic building operations Tile-based, deferred execution model Integrate Tile Caching (In Memory) Easily Extensible Natively Accelerated Code available for many operations No source code for native ops Development more or less stopped! FOSS4G 2013, Nottingham 21th September 2013
  • 6. ImageIO        SUN then Oracle Image I/O library Partly ships with JDK partly as extension Tile-based, deferred & immediate execution model Easily Extensible Natively Accelerated Code available for many formats No source code for native (de)coders Development more or less stopped! FOSS4G 2013, Nottingham 21th September 2013
  • 7. JAITools  High performance raster processing  Extends, complements, replaces Oracle Java Advanced Imaging (JAI) Library   Low Level Operations   Open Source, BSD license e.g. RangeLookup Higher Level Operations  Vectorize, Contour  Works mostly in pure raster space (Image Processing)  Stable release is 1.3.0 FOSS4G 2013, Nottingham 21th September 2013
  • 8. ImageIO-Ext  High Performance raster I/O    Extends, complements, replaces Oracle JAI ImageIO Library Open Source, LGPL and BSD licenses Plugins:    BigTiff*, MatFile 5, TurboJPEG JP2000 (Kakadu) GDAL integration via ImageIO-ext    JPEG2000, MrSID, ECW BigTIFF, ERDAS Image, HDF4 Complete list here FOSS4G 2013, Nottingham 21th September 2013
  • 9. GeoTools  The Open Source Java GIS Toolkit   LGPL Management of Geospatial data  CRUD Operations  Raster and vector    Rendering GDAL Support Based on best-of-breed Open Source projects  Java Advanced Imaging (JAI), ImageIO  Java Topology Suite (JTS) FOSS4G 2013, Nottingham 21th September 2013
  • 10. GeoServer  GeoSpatial enterprise gateway    Java Enterprise Management of raster and vector data Standards compliant   OGC WFS 1.0, 1.1 (RI), 2.0  OGC WMS 1.1.1, 1.3.0   OGC WCS 1.0, 1.1.1 (RI), 2.0.1 OGC WPS 1.0.0 Google Earth/Maps support  KML, GeoSearch, etc.. FOSS4G 2013, Nottingham 21th September 2013
  • 11. All together now… WCS WMS WFS WPS REST Google GWC GeoTools ImageIO JTS JAI GDAL Kakadu Vector JAITools Style FOSS4G 2013, Nottingham 21th September 2013 Raster
  • 12. Recent Achievements FOSS4G 2013, Nottingham 21th September 2013
  • 13. ImageIO-Ext  LibJPEG-Turbo      derivative library of libjpeg based on SIMD instructions (MMX, SSE2, NEON) accelerate baseline JPEG compression and decompression on x86, x86-64, and ARM systems available on many platforms Open Source, LGPL ImageIO-Ext-TurboJPEG      A JPEG ImageIO plugin built on top of the JAVA wrapper for LibJPEG-Turbo (TurboJPEG) 20%-30% SpeedUp* on JPEG encoding 10%-20% SpeedUp* on JPEG decoding More info here Integrates with TIFF reader and writer FOSS4G 2013, Nottingham 21th September 2013
  • 14. ImageIO-Ext     NITF encoding Support (ImageIO-Ext-NITF) Based on NITRO Support for Tagged Record Extensions (TREs) Support ImageSegments JPEG2000 compression through Kakadu ImageIO-Ext plugin       (Numerically Lossless/VisuallyLossless/Lossy) NPJE, EPJE BIIF (Basic Image Interchange Format) profiles J2KLRA TRE support Support for multiple TextSegments Support for multiple ImageSegments Support for ShapeFile Data Extension Segment (CSSHPA) FOSS4G 2013, Nottingham 21th September 2013
  • 15. GeoTools      Improved internal JAI Concurrency Introduced and Improved JAI Tile Recycling Reduced depth of JAI Processing Chains More aggressive factory caching On-the-fly Polygonalization Added a few specific high perf JAI operations    On-the-fly Contouring Created Specific high perf ROI class Improving Tile Caching   e.g. crop Work ongoing Band Transparent File vs Memory Caching when writing Combine + Raster to Symbology raster point vector FOSS4G 2013, Nottingham 21th September 2013
  • 16. GeoTools    Optimized Rendering/Processing for raster data Optimized Crop Chains  Coalescing multiple Crops into a single one Optimize Affine Transformation Chains  Coalescing multiple Affine Transformations into a single one NEAREST FOSS4G 2013, Nottingham 21th September 2013
  • 18. GeoTools  ImageMosaic  Custom Dimensions     More than simple time/elevation support  E.g.: wavelength, cloudLevel, … Dimensions with ranges: (startTime, endTime), (minElevation,maxElevation), … Dynamic read parameters Filtering  Supports for OGC Filters through the “filter” param   E.g.: Return only ImageMosaic granules where attribute Country = Italy. filter=“Country=‘Italy’ ” FOSS4G 2013, Nottingham 21th September 2013
  • 20. GeoTools  ImageMosaic  Ordering    SORT_BY clause support on DBMS based mosaics sorting=“time A, elevation D” Stacking VS Merging  Merging: different granules  merged together in the final image as default  Stacking: different granules  stacked on different bands   E.g. MeteoSat data: 12 channels (1 granule for each Channel) 1 = VIS0.6, 2 = VIS0.8, …, 11 = IR13.4, 12 = HRV. Want return a RGB image made of channels 1,3,7  Stack them FOSS4G 2013, Nottingham 21th September 2013
  • 21. GeoTools  New API (unsupported/coverage-experiment)     Driver: Get a connection to a coverage store. CoverageAccess: a physical storage of coverage data. Get access to a source of coverages. CoverageSource: provides data access to a coverage. Updated GridCoverage core API Old GridCoverageReader:  inefficient and thread unsafe way to access multiple coverages  read GridCoverages from the input stream in a sequential order New GridCoverage2DReader:  Coverages and properties may be accessed by coverage name:   get Envelope(name), get GridRange(name), get CRS(name), read(name), get dynamicParameters (name), … dynamicParameters support (for custom dimensions)   FOSS4G 2013, Nottingham 21th September 2013
  • 22. GeoTools  NetCDF Support  Based on Unidata NetCDF JAVA library  Implements the new coverage-experiment API  Exposes current interfaces (GridCoverage2DReader,…) too for GeoServer compatibility before changes  1 coverage for each Dataset’s variable (multiple coverages).  Internal data exposed as set of 2D slices  Custom dimensions support  Ancillary XML file:  filter on NetCDF variables/coverages  define low level index schema (for dimensions) FOSS4G 2013, Nottingham 21th September 2013
  • 23. GeoTools  ImageMosaic NetCDF integration  Allow the ImageMosaic to handle NetCDF files  Expose NetCDF internal structure (times, elevations)  Make ImageMosaic handle slices of the NetCDF file as granules Mosaic NetCDF 1 NetCDF … N NetCDF 2 … FOSS4G 2013, Nottingham 21th September 2013
  • 24. GeoTools  NetCDF Polyphemus Sample Dataset FOSS4G 2013, Nottingham 20th September 2013
  • 25. GeoTools  Multiple Coverages per Mosaic FOSS4G 2013, Nottingham 21th September 2013
  • 26. GeoTools    StructuredGridCoverage2DReader exposes the underlying granule structure and dimensions descriptors of a specific coverage  getGranules (return a GranuleSource)  getDimensionDescriptors allows to create/remove coverages and add new sources  createCoverage  removeCoverage  Harvest  GetGranules FOSS4G 2013, Nottingham 21th September 2013
  • 27. ImageMosaic  Granule Index CRUD Operations via REST  CREATE curl -u admin:Geos -XPUT -H "Content-type:application/zip" --data-binary @http://localhost:8080/geoserver/rest/workspaces/geosolutions/coveragestores/t emperature/file.imagemosaic  READ index schema curl -v -u admin:Geos -XGET "http://localhost:8080/geoserver/rest/workspaces/geosolutions/coveragestores/polyphemus /coverages/NO2/index.xml"  READ WFS like with CQL filtering and paging curl -v -u admin:Geos -XGET "http://localhost:8080/geoserver/rest/workspaces/geosolutions/coveragestores/p olyphemus/coverages/NO2/index/granules.xml?limit=1&filter=time='2013-0303T00:00:00Z'" FOSS4G 2013, Nottingham 21th September 2013
  • 28. ImageMosaic  Granule Index CRUD Operations via REST  UPDATE curl -v -u admin:Geos -XPOST -H "Content-type: text/plain" -d "/polyphemus_20130303.nc" "http://localhost:8080/geoserver/rest/workspaces/geosolutions/coveragestores/pol yphemus/external.imagemosaic"  DELETE WFS like with CQL filtering and paging or by ID curl -v -u admin:geoserver -XDELETE "http://localhost:8080/geoserver/rest/workspaces/topp/coveragestores/polyphemusv1/coverages/NO2/index/granules.xml?filter=location='polyphemus_20130301.nc'" curl -v -u admin:geoserver -XGET "http://localhost:8080/geoserver/rest/workspaces/topp/coveragestores/polyphemusv1/coverages/NO2/index/granules/NO2.2689.xml" FOSS4G 2013, Nottingham 21th September 2013
  • 29. GeoTools  GranuleSource/GranuleStore  GranuleSource:  ReadOnly access to Granules (with Query support)      getGranules(Query)  SimpleFeatureCollection getSchema  SimpleFeatureType getCount(Query), getBounds(Query) E.g.: get all granules having acquisitionYear > 2012 and Country=Italy GranuleStore:  add/modify/delete capabilities using Transactions     addGranules (SimpleFeatureCollection) removeGranules (Filter) updateGranules E.g.: remove all granules having acquisitionYear < 1990 FOSS4G 2013, Nottingham 21th September 2013
  • 30. GeoServer       LibJPEG-Turbo Output format Encoding WMS output JPEG images through LibJPEG Turbo library Based on the TurboJpeg ImageIO-Ext plugin built on top of the JAVA interface for LibJPEG-Turbo (TurboJPEG) Provided as a GeoServer extension Up to 80% SpeedUp measured on JPEG encoding Can be disabled at startup:   -Ddisable.turbojpeg=true More Info here FOSS4G 2013, Nottingham 21th September 2013
  • 31. GeoServer  More Color Quantizers MEDIANCUT OCTTREE Speed loss is around 10% FOSS4G 2013, Nottingham 21th September 2013
  • 32. GeoServer  WMS Custom Dimensions  Work on GeoTools raster Additional Domains      NetCDF ImageMosaic Turn additional querying dimensions into WCS/WMS Dimensions  ImageMosaic Domain Category  WMS 1.1.1 DIM_CATEGORY  WMS 1.3.0 DIM_CATEGORY Perfect for large multidimensional mosaics! E.g. meteo (forecast time, elevation, band, base time, model name) FOSS4G 2013, Nottingham 21th September 2013
  • 33. GeoServer  WMS TIME, ELEVATION & More http://localhost:8080/geoserver/geosolutions/wms?...&time=2013-0301T00:00:00.000Z&elevation=35.0&DIM_FILEDATE=2013-0301T00:00:00.000Z&DIM_UPDATED=2013-04-08T08:18:41.597Z FOSS4G 2013, Nottingham 21th September 2013
  • 34. GeoServer  WMS-EO  GSIP 84 Wizard to configure EO layer groups Extending LayerGroup concept Support same style on both raster and vector data Support custom dimensions Alter map on the fly to support band combination FOSS4G 2013, Nottingham 21th September 2013
  • 35. GeoServer  WMS-EO Quirks  Root layer must respond with a specific layer rather than the composition of the children    E.g. when I send a GetMap for the root layer I could get back the browse image default layer Same styles for both Raster as well as Vector data   Kind of a default visualization for a certain Dataset E.g. yellow can be use for both flags as well as outlines Peculiar behavior for Band layer ( raw data )   Can request either 1 (grayscale image) or 3 (RGB image)   E.g. multiple bands at different wavelengths Different combinations are prohibited Peculiar Behavior for GetFeatureInfo FOSS4G 2013, Nottingham 21th September 2013
  • 36. GeoServer  WCS 2.0  The basics     GetCoverage extensions         CRS Scaling Interpolation Range subsetting GeoTiff GML NetCDF Output format extensions     Core service KVP binding XML binding GeoTIFF GML Grid NetCDF Ensure CITE tests compliancy FOSS4G 2013, Nottingham 21th September 2013
  • 37. GeoServer WCS 2.0 Processing Chain  Crop Core RangeSubset Extension Scale & Interpolate Extension Reproject & Interpolate Extension Encode Extension FOSS4G 2013, Nottingham 21th September 2013
  • 38. GeoServer     NetCDF Output Format GetCoverage request parameter: &Format=NetCDF Based on Unidata NetCDF JAVA library Create a NetCDF output file on top of a GranuleStack:  A GridCoverage2D List:    Supports WCS 2.0.1    a GridCoverage2D for each combination of requested Dimension values GridCoverages should come from a StructuredGridCoverage2DReader Trimming: specify values range for a dimension Slicing: specify single value for a dimension Supports timeRanges/numberRanges on output FOSS4G 2013, Nottingham 21th September 2013
  • 40. GeoServer  NetCDF Output FOSS4G 2013, Nottingham 21th September 2013
  • 41. GeoServer  WCS-EO  Build on top of a working WCS 2.0 with full extensions         WCS 2.0 CRS extension Range subsetting extension Interpolation extension Scaling extension GeoTiff extension NetCDF extension Add support for the WCS-EO extras    Listing coverage datasets in the capabilities documents (based on image mosaic contents, which will have to be marked as “exposed” so that we show their inner structure for EO) Support describe coverage dataset Support returning results for an entire dataset in GetCoverage FOSS4G 2013, Nottingham 21th September 2013
  • 42. What’s cooking Plus what’s on our wish list FOSS4G 2013, Nottingham 21th September 2013
  • 43. JAI-Ext (temporary name)         Oracle JAI Drop-In Replacement Open Source (License TBD) High Performance Pure Java Support for No-Data Support for Processing ROI Support for Band Masks GPU Acceleration  OpenCL VS JCuda VS Aparapi FOSS4G 2013, Nottingham 21th September 2013
  • 45. GeoTools  Improved Processing & Rendering  Raster Algebra embedded in Styles    Improved Contrast Stretch      Processing on-the-fly with a Rendering Transformation Embed into RasterSymbolizer (ChannelSelection) Clip to Min-Max, Gaussian, etc… Suport for Date-line crossing raster Support for raster in Polar projections Better No-Data Management Support for VirtualRaster a-la GDAL FOSS4G 2013, Nottingham 21th September 2013
  • 46. GeoTools  Mosaic Masking FOSS4G 2013, Nottingham 21th September 2013
  • 47. GeoServer     High Performance/Pure Java PNG output format No more separate Native ImageIO Install More Control on bugs/enhancements Status       First prototype working Same performance as Native Imageio Much Faster then JDK Encoder (check this) Code here, GPL| Discussion ongoing with the PNGJ Open Source project for joining efforts More info here FOSS4G 2013, Nottingham 21th September 2013
  • 48. GeoServer  OSM Generated Image FOSS4G 2013, Nottingham 21th September 2013
  • 49. GeoServer  Syntethic Image FOSS4G 2013, Nottingham 21th September 2013
  • 50. GeoServer   Raster Algebra as WPS Gets an OGC Filter containing logical operations between raster layers and produces a binary (0/1) layer FOSS4G 2013, Nottingham 21th September 2013
  • 51. GeoServer  Raster Algebra as WPS  JIFFLE FOSS4G 2013, Nottingham 21th September 2013
  • 52. The End Thanks for not sleeping (loudly)! daniele.romagnoli@geo-solutions.it simone.giannecchini@geo-solutions.it FOSS4G 2013, Nottingham 21th September 2013