SlideShare una empresa de Scribd logo
1 de 52
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

Advanced GeoServer Security with GeoFence
Advanced GeoServer Security with GeoFenceAdvanced GeoServer Security with GeoFence
Advanced GeoServer Security with GeoFenceGeoSolutions
 
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
 
[215]네이버콘텐츠통계서비스소개 김기영
[215]네이버콘텐츠통계서비스소개 김기영[215]네이버콘텐츠통계서비스소개 김기영
[215]네이버콘텐츠통계서비스소개 김기영NAVER D2
 
Advanced Security With GeoServer
Advanced Security With GeoServerAdvanced Security With GeoServer
Advanced Security With GeoServerGeoSolutions
 
SeaweedFS introduction
SeaweedFS introductionSeaweedFS introduction
SeaweedFS introductionchrislusf
 
InfluxDB IOx Tech Talks: Query Engine Design and the Rust-Based DataFusion in...
InfluxDB IOx Tech Talks: Query Engine Design and the Rust-Based DataFusion in...InfluxDB IOx Tech Talks: Query Engine Design and the Rust-Based DataFusion in...
InfluxDB IOx Tech Talks: Query Engine Design and the Rust-Based DataFusion in...InfluxData
 
Introduction to Neo4j
Introduction to Neo4jIntroduction to Neo4j
Introduction to Neo4jNeo4j
 
Vector Tiles with GeoServer and OpenLayers
Vector Tiles with GeoServer and OpenLayersVector Tiles with GeoServer and OpenLayers
Vector Tiles with GeoServer and OpenLayersJody Garnett
 
Pg 클러스터 기반의 구성 및 이전, 그리고 인덱스 클러스터링
Pg 클러스터 기반의 구성 및 이전, 그리고 인덱스 클러스터링Pg 클러스터 기반의 구성 및 이전, 그리고 인덱스 클러스터링
Pg 클러스터 기반의 구성 및 이전, 그리고 인덱스 클러스터링Jiho Lee
 
Integrating PostGIS in Web Applications
Integrating PostGIS in Web ApplicationsIntegrating PostGIS in Web Applications
Integrating PostGIS in Web ApplicationsCommand Prompt., Inc
 
Make your PySpark Data Fly with Arrow!
Make your PySpark Data Fly with Arrow!Make your PySpark Data Fly with Arrow!
Make your PySpark Data Fly with Arrow!Databricks
 
Introduction to Big Data and hadoop
Introduction to Big Data and hadoopIntroduction to Big Data and hadoop
Introduction to Big Data and hadoopSandeep Patil
 
Top 10 Cypher Tuning Tips & Tricks
Top 10 Cypher Tuning Tips & TricksTop 10 Cypher Tuning Tips & Tricks
Top 10 Cypher Tuning Tips & TricksNeo4j
 
"Spark Search" - In-memory, Distributed Search with Lucene, Spark, and Tachyo...
"Spark Search" - In-memory, Distributed Search with Lucene, Spark, and Tachyo..."Spark Search" - In-memory, Distributed Search with Lucene, Spark, and Tachyo...
"Spark Search" - In-memory, Distributed Search with Lucene, Spark, and Tachyo...Lucidworks
 
Cassandra Introduction & Features
Cassandra Introduction & FeaturesCassandra Introduction & Features
Cassandra Introduction & FeaturesDataStax Academy
 
Neo4j Fundamentals
Neo4j FundamentalsNeo4j Fundamentals
Neo4j FundamentalsMax De Marzi
 
[공간정보시스템 개론] L04 항공사진의 이해
[공간정보시스템 개론] L04 항공사진의 이해[공간정보시스템 개론] L04 항공사진의 이해
[공간정보시스템 개론] L04 항공사진의 이해Kwang Woo NAM
 
Advanced Security with GeoServer - FOSS4G 2015
Advanced Security with GeoServer - FOSS4G 2015Advanced Security with GeoServer - FOSS4G 2015
Advanced Security with GeoServer - FOSS4G 2015GeoSolutions
 
The openCypher Project - An Open Graph Query Language
The openCypher Project - An Open Graph Query LanguageThe openCypher Project - An Open Graph Query Language
The openCypher Project - An Open Graph Query LanguageNeo4j
 
Scaling into Billions of Nodes and Relationships with Neo4j Graph Data Science
Scaling into Billions of Nodes and Relationships with Neo4j Graph Data ScienceScaling into Billions of Nodes and Relationships with Neo4j Graph Data Science
Scaling into Billions of Nodes and Relationships with Neo4j Graph Data ScienceNeo4j
 

La actualidad más candente (20)

Advanced GeoServer Security with GeoFence
Advanced GeoServer Security with GeoFenceAdvanced GeoServer Security with GeoFence
Advanced GeoServer Security with GeoFence
 
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...
 
[215]네이버콘텐츠통계서비스소개 김기영
[215]네이버콘텐츠통계서비스소개 김기영[215]네이버콘텐츠통계서비스소개 김기영
[215]네이버콘텐츠통계서비스소개 김기영
 
Advanced Security With GeoServer
Advanced Security With GeoServerAdvanced Security With GeoServer
Advanced Security With GeoServer
 
SeaweedFS introduction
SeaweedFS introductionSeaweedFS introduction
SeaweedFS introduction
 
InfluxDB IOx Tech Talks: Query Engine Design and the Rust-Based DataFusion in...
InfluxDB IOx Tech Talks: Query Engine Design and the Rust-Based DataFusion in...InfluxDB IOx Tech Talks: Query Engine Design and the Rust-Based DataFusion in...
InfluxDB IOx Tech Talks: Query Engine Design and the Rust-Based DataFusion in...
 
Introduction to Neo4j
Introduction to Neo4jIntroduction to Neo4j
Introduction to Neo4j
 
Vector Tiles with GeoServer and OpenLayers
Vector Tiles with GeoServer and OpenLayersVector Tiles with GeoServer and OpenLayers
Vector Tiles with GeoServer and OpenLayers
 
Pg 클러스터 기반의 구성 및 이전, 그리고 인덱스 클러스터링
Pg 클러스터 기반의 구성 및 이전, 그리고 인덱스 클러스터링Pg 클러스터 기반의 구성 및 이전, 그리고 인덱스 클러스터링
Pg 클러스터 기반의 구성 및 이전, 그리고 인덱스 클러스터링
 
Integrating PostGIS in Web Applications
Integrating PostGIS in Web ApplicationsIntegrating PostGIS in Web Applications
Integrating PostGIS in Web Applications
 
Make your PySpark Data Fly with Arrow!
Make your PySpark Data Fly with Arrow!Make your PySpark Data Fly with Arrow!
Make your PySpark Data Fly with Arrow!
 
Introduction to Big Data and hadoop
Introduction to Big Data and hadoopIntroduction to Big Data and hadoop
Introduction to Big Data and hadoop
 
Top 10 Cypher Tuning Tips & Tricks
Top 10 Cypher Tuning Tips & TricksTop 10 Cypher Tuning Tips & Tricks
Top 10 Cypher Tuning Tips & Tricks
 
"Spark Search" - In-memory, Distributed Search with Lucene, Spark, and Tachyo...
"Spark Search" - In-memory, Distributed Search with Lucene, Spark, and Tachyo..."Spark Search" - In-memory, Distributed Search with Lucene, Spark, and Tachyo...
"Spark Search" - In-memory, Distributed Search with Lucene, Spark, and Tachyo...
 
Cassandra Introduction & Features
Cassandra Introduction & FeaturesCassandra Introduction & Features
Cassandra Introduction & Features
 
Neo4j Fundamentals
Neo4j FundamentalsNeo4j Fundamentals
Neo4j Fundamentals
 
[공간정보시스템 개론] L04 항공사진의 이해
[공간정보시스템 개론] L04 항공사진의 이해[공간정보시스템 개론] L04 항공사진의 이해
[공간정보시스템 개론] L04 항공사진의 이해
 
Advanced Security with GeoServer - FOSS4G 2015
Advanced Security with GeoServer - FOSS4G 2015Advanced Security with GeoServer - FOSS4G 2015
Advanced Security with GeoServer - FOSS4G 2015
 
The openCypher Project - An Open Graph Query Language
The openCypher Project - An Open Graph Query LanguageThe openCypher Project - An Open Graph Query Language
The openCypher Project - An Open Graph Query Language
 
Scaling into Billions of Nodes and Relationships with Neo4j Graph Data Science
Scaling into Billions of Nodes and Relationships with Neo4j Graph Data ScienceScaling into Billions of Nodes and Relationships with Neo4j Graph Data Science
Scaling into Billions of Nodes and Relationships with Neo4j Graph Data Science
 

Similar a 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
 
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
 
OSGeo Live Lightening Overview
OSGeo Live Lightening OverviewOSGeo Live Lightening Overview
OSGeo Live Lightening OverviewJody Garnett
 

Similar a 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...
 
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
 
OSGeo Live Lightening Overview
OSGeo Live Lightening OverviewOSGeo Live Lightening Overview
OSGeo Live Lightening Overview
 

Más de 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
 
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
 
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
 

Más de GeoSolutions (16)

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
 
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!
 
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
 

Último

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 

Último (20)

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 

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