development of dds tools n. fomferra, r. quast, brockmann consult

9
GlobCOLOUR CDR, 10-11 Jul 2006 ENVIRONMENTAL INFORMATICS GEOINFORMATION PRODUCTS BROCKMANN CONSULT Development of DDS Tools N. Fomferra, R. Quast, Brockmann Consult

Upload: zubin

Post on 10-Jan-2016

39 views

Category:

Documents


3 download

DESCRIPTION

Development of DDS Tools N. Fomferra, R. Quast, Brockmann Consult. Purpose and Requirements. Visual inspection of Mapped Level-2 DDS Mapped Level-3 PPS, FPS Binned Level-2 DDS Binned Level-3 DDS, PPS, FPS Validation Match-up of Level 2 DDS OC data with in-situ data - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Development of DDS Tools N. Fomferra, R. Quast, Brockmann Consult

GlobCOLOUR CDR, 10-11 Jul 2006

ENVIRONMENTAL INFORMATICSGEOINFORMATION PRODUCTS BROCKMANN CONSULT

Development of DDS ToolsN. Fomferra, R. Quast, Brockmann Consult

Page 2: Development of DDS Tools N. Fomferra, R. Quast, Brockmann Consult

BROCKMANN CONSULT

GlobCOLOUR CDR, 10-11 Jul 2006

GlobCOLOUR DDS Tools

Purpose and Requirements

1. Visual inspection of– Mapped Level-2 DDS– Mapped Level-3 PPS, FPS– Binned Level-2 DDS– Binned Level-3 DDS, PPS,

FPS

2. Validation– Match-up of Level 2 DDS

OC data with in-situ data– Match-up of Level-2 DDS

and Level-3 DDS OC data– Statistical analysis and

report of match-up results

Binned Level-2 DDS

(4.6 km)

In-SituData

BinnedLevel-3 DDS

(4.6 km)

MappedLevel-2 DDS

(1.0 km)

Uses as reference

Relative validation of Level-3 DDS against validated Level-2 DDS

Absolute validation of Level-2 DDS against in-situ measurement data

Page 3: Development of DDS Tools N. Fomferra, R. Quast, Brockmann Consult

BROCKMANN CONSULT

GlobCOLOUR CDR, 10-11 Jul 2006

GlobCOLOUR DDS Tools

Status of Development1. Release 1.0

– Import of mapped and binned DDS, FPS, PPS products

– On-the-fly resampling from ISIN to Plate-Carree

– On-the-fly expansion of stored data into mean and variances

– Flag-codings and bitmask overlays enabled

– Handling of no-data values– Automatic attachment of

pins at diagnostic sites– VISAT facilities

2. JIRA issue tracking– Tracking of bugs and

feature requests– Automated generation of

release notes– Web interface

Page 4: Development of DDS Tools N. Fomferra, R. Quast, Brockmann Consult

BROCKMANN CONSULT

GlobCOLOUR CDR, 10-11 Jul 2006

GlobCOLOUR DDS Tools

Design Definition FileDirectory or File Description

readme.html Describes the installation, usage, build and test of the DDS tools.

changelog.html Contains the changes from version to version.

api-doc Contains the detailed design documentation for the DDS tools.

lib Contains necessary third-party libraries, currently only junit.jar

src The application source code (Java)

src-junit The unit level test code (Jave)

build.xml The Ant build script used to build and test the DDS tools.

build.properties A configuration file for the Ant build script. E.g. defines the path to the local BEAM installation.

GlobCOLOUR-DDS-Tools-1.0.0.jar The DDS tools BEAM plug-in. This JAR (Java Archive) contains the DDS tools binary code.

Page 5: Development of DDS Tools N. Fomferra, R. Quast, Brockmann Consult

BROCKMANN CONSULT

GlobCOLOUR CDR, 10-11 Jul 2006

GlobCOLOUR DDS Tools

Open Issues

1. Release 1.0– Which technique to use for resampling of ISIN gridded

data onto Plate-Carree?– Flag-coding specification incomplete– No-data value undefined

• Further planning– Focus on automated analysis of large amounts of data

(e.g. time series) instead of visual per-pixel inspection– Identification of use cases concerning match-up and

statistical analysis– Review of software requirements in collaboration with the

validation team– Consideration of alternative approaches: Is it favourable

to implement the match-up processing as a web service?

Page 6: Development of DDS Tools N. Fomferra, R. Quast, Brockmann Consult

BROCKMANN CONSULT

GlobCOLOUR CDR, 10-11 Jul 2006

GlobCOLOUR DDS Tools

Architectural Design (1)

getStartTime(): ProductData.UTCgetStopTime(): ProductData.UTCgetNumBands(): intgetBandAt(i): BandgetBand(name): BandaddBand(band:Band): voidremoveBand(band:Band): void

Product

readProductNodes(...): ProductreadBandRasterData(band:Band, …): void

<<interface>>ProductReader

DDSGranuleReader

<<factory for one>>

getFormatDescription(): StringgetFormatNames(): String[]getFileExtensions(): String[]canDecodeInput(): BooleancreateReader(input:Object): ProductReader

<<interface>>ProductReaderPlugIn

DDSGranuleReaderPlugIn

1plugIn

0..1reader

<<factory for multiple>>

addReaderPlugIn(plugIn): voidremoveReaderPlugIn(plugIn): voidsetInstance(): ProductIOPlugInManager

ProductIOPlugInManager

0..*

<<registry for multiple>>

<<added to>>

ProductIO

<<uses>>

Page 7: Development of DDS Tools N. Fomferra, R. Quast, Brockmann Consult

BROCKMANN CONSULT

GlobCOLOUR CDR, 10-11 Jul 2006

GlobCOLOUR DDS Tools

Architectural Design(2)

getName(): StringgetSceneRasterWidth(): intgetSceneRasterHeight(): intgetStartTime(): ProductData.UTCgetStopTime(): ProductData.UTC

Product

getGeoPos(pp:PixelPos): GeoPosgetPixelPos(gp:GeoPos): PixelPos

<<interface>>GeoCoding

getName(): StringgetDataType(): intgetNoDataValue(): doublereadPixels(…, pixels:int[]): voidreadPixels(…, pixels:float[]): void

Band0..*

bands

readProductNodes(...): ProductreadBandRasterData(band:Band, …, buffer:ProductData): void

<<interface>>ProductReader

getElem<Type>(index:int): <Type>setElem<Type>(index:int, value:<Type>): void

ProductData

ProductData.<Type>

DDSGranuleReader

MapGeoCoding

0..1reader

1product

Implements the interface of abstract ProductData class for <Type> = o Byte, o UByte, o Short, o UShort, o Int, o UInt, o Float, o Double, o UTC

<<uses>>

Implements the GeoCoding interface for a coordinate reference system and a map projection. Others exists, e.g TiePointGeoCoding, PixelGeoCoding.

<<uses>>

<<factory for>>

0..1geoCoding

Page 8: Development of DDS Tools N. Fomferra, R. Quast, Brockmann Consult

BROCKMANN CONSULT

GlobCOLOUR CDR, 10-11 Jul 2006

GlobCOLOUR DDS Tools

Architectural Design (3)

Client codewithin

DDS tools

product:Product

DDSGranuleReader

dispose()

ProductIO

product = readProduct(file)new

new

[for each band b]bands[b] = getBand(names[b])

processPixels (bands)

close()

readProductNodes()

addBand(band)

DDSGranuleReaderPlugIn

canDecodeInput()

Page 9: Development of DDS Tools N. Fomferra, R. Quast, Brockmann Consult

BROCKMANN CONSULT

GlobCOLOUR CDR, 10-11 Jul 2006

GlobCOLOUR DDS Tools

Architectural Design (4)

Band

Client codewithin

DDS tools Product

[for all bands b]readPixels(bands[b], …,pixels)

getProductReader()

DDSGranuleReader

readRasterData(data)

data:ProductData.<Type>

new

setElem<Type>(i,pixel)

[for all pixels i in the raster]pixels[i] = getElemFloat(i)

read from NetCDF file

processPixels(bands)

processPixels(pixels)

data = createCompatibleRasterData()

scale()