Hi group,
I tried to follow the manual “Mastering GeoServer” in order to serve raster tiles from a Postgis raster table.
I was able to create a store of type ImageMosaicJDBC on GeoServer from PostGIS raster.
The corresponding layer is well listed for the created store.
But when I click the Publish button, the GeoServer raises errors on the GUI (i.e. all the log lines beginning from the following line - see full GeoServer logs below).
2015-01-08 14:46:46,542 ERROR [wicket.RequestCycle] - Error occurred while building the resources for the configuration page
Does someone found the same behavior, or well could someone help ?
Full details below.
GeoServer 2.6.1 on CentOS/PostGres9.3+PostGIS2.1 on Win8
Many Thanks,
Victor
The GeoTIFF rasters loaded in PostGIS have from 1 to 3 bands encoded as float32b, in PPSG:4326 and cover all the same are; E.g.:
gdalinfo INSAT-3A_4326_IR_1024x1024x16f.tif
Driver: GTiff/GeoTIFF
Files: INSAT-3A_4326_IR_1024x1024x16f.tif
Size is 1024, 1024
Coordinate System is:
GEOGCS[“WGS 84”, DATUM[“Not_specified_based_on_WGS_84_ellipsoid”, SPHEROID[“WGS 84”,6378137,298.257223563, AUTHORITY[“EPSG”,“7030”]], AUTHORITY[“EPSG”,“6030”]], PRIMEM[“Greenwich”,0],
UNIT[“degree”,0.0174532925199433], AUTHORITY[“EPSG”,“4326”]]
Origin = (33.500000000000000,60.000000000000000)
Pixel Size = (0.117187500000000,-0.117187500000000)
Metadata:
AREA_OR_POINT=Area
TIFFTAG_DATETIME=2013:07:01 00:00:00
TIFFTAG_DOCUMENTNAME=INSAT-3A : 2013:07:01 00:00:00
TIFFTAG_IMAGEDESCRIPTION=INSAT-3A Visible (Albedo), Infra-Red (┬░C), Water-Vapor (┬░C)
Image Structure Metadata:
INTERLEAVE=BAND
Corner Coordinates:
Upper Left ( 33.5000000, 60.0000000) ( 33d30’ 0.00"E, 60d 0’ 0.00"N)
Lower Left ( 33.5000000, -60.0000000) ( 33d30’ 0.00"E, 60d 0’ 0.00"S)
Upper Right ( 153.5000000, 60.0000000) (153d30’ 0.00"E, 60d 0’ 0.00"N)
Lower Right ( 153.5000000, -60.0000000) (153d30’ 0.00"E, 60d 0’ 0.00"S)
Center ( 93.5000000, 0.0000000) ( 93d30’ 0.00"E, 0d 0’ 0.01"N)
Band 1 Block=1024x2 Type=Float32, ColorInterp=Gray
I loaded all the rasters with scripts generated with raster2pgsql:
raster2pgsql -t 512x512 -s 4326 -d -F -l 5 -I -M blabla.tif raster_hdf5 > blabla.sql
The raster pixels have well the right, expected values and positions:
I then created the metadata tables:
CREATE TABLE mosaic (NAME varchar(254) not null, TileTable varchar(254)not null, minX FLOAT8,minY FLOAT8, maxX FLOAT8, maxY FLOAT8, resX FLOAT8, resY FLOAT8, primary key (NAME,TileTable));
INSERT INTO mosaic(name, tiletable, maxx, maxy, minx, miny, resx, resy) VALUES (‘insat3a’, ‘raster_hdf5’, 153.5, 60.0, 33.5, -60.0, 0.1171875,-0.1171875);
INSERT INTO mosaic(name, tiletable, maxx, maxy, minx, miny, resx, resy) VALUES (‘insat3a’, ‘o_5_raster_hdf5’, 153.5, 60.0, 33.5, -60.0, 0.5859375,-0.5859375);
I then created the xml files for the raster store:
hdf5.pgraster.xml:
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE ImageMosaicJDBCConfig [ ]>&mapping;
&connect;
pgraster.connect.xml.inc:
pgraster.mapping.xml.inc:
A priori GeoServer retrieves well the mosaic proprieties from PostGIS (see coverage, projection in full logs below).
Full GeoServer logs are as follows:
2015-01-08 14:46:46,538 DEBUG [jdbc.custom] - getNumOverviews Method
2015-01-08 14:46:46,538 DEBUG [jdbc.custom] - getLevelInfo Method
2015-01-08 14:46:46,538 DEBUG [jdbc.custom] - getLevelInfo Method
2015-01-08 14:46:46,538 DEBUG [jdbc.custom] - getNumOverviews Method
2015-01-08 14:46:46,538 DEBUG [jdbc.custom] - getLevelInfo Method
2015-01-08 14:46:46,539 DEBUG [util.CoverageUtils] - Zero length string
java.lang.NumberFormatException: Zero length string
at java.lang.Integer.decode(Integer.java:949)
at java.awt.Color.decode(Color.java:729)
at org.geoserver.data.util.CoverageUtils.getCvParamValue(CoverageUtils.java:335)
at org.geoserver.data.util.CoverageUtils.getParameters(CoverageUtils.java:127)
at org.geoserver.catalog.CatalogBuilder.buildCoverage(CatalogBuilder.java:968)
at org.geoserver.catalog.CatalogBuilder.buildCoverage(CatalogBuilder.java:856)
at org.geoserver.web.data.layer.NewLayerPage.buildLayerInfo(NewLayerPage.java:320)
at org.geoserver.web.data.layer.NewLayerPage$7.onClick(NewLayerPage.java:261)
[…]
2015-01-08 14:46:46,540 DEBUG [geotools.util] - CRSConverterFactory can be applied from Strings to CRS only.
2015-01-08 14:46:46,540 DEBUG [geotools.util] - InterpolationConverterFactory can be applied from Strings to Interpolation only.
2015-01-08 14:46:46,540 DEBUG [util.CoverageUtils] - Failed to convert to java.awt.Color
java.lang.RuntimeException: Failed to convert to java.awt.Color
at org.geoserver.data.util.CoverageUtils.getCvParamValue(CoverageUtils.java:374)
at org.geoserver.data.util.CoverageUtils.getParameters(CoverageUtils.java:127)
at org.geoserver.catalog.CatalogBuilder.buildCoverage(CatalogBuilder.java:968)
at org.geoserver.catalog.CatalogBuilder.buildCoverage(CatalogBuilder.java:856)
at org.geoserver.web.data.layer.NewLayerPage.buildLayerInfo(NewLayerPage.java:320)
at org.geoserver.web.data.layer.NewLayerPage$7.onClick(NewLayerPage.java:261)
[…]
2015-01-08 14:46:46,540 INFO [imagemosaic.jdbc] - ----PARAMS START-------
2015-01-08 14:46:46,541 INFO [imagemosaic.jdbc] - ReadGridGeometry2D: GridGeometry2D[GridEnvelope2D[0…4, 0…-1025], PARAM_MT[“Affine”,
PARAMETER[“num_row”, 3],
PARAMETER[“num_col”, 3],
PARAMETER[“elt_0_0”, 0.1171875],
PARAMETER[“elt_0_2”, 33.55859375],
PARAMETER[“elt_1_1”, 0.1171875],
PARAMETER[“elt_1_2”, 60.05859375]]]
2015-01-08 14:46:46,541 INFO [imagemosaic.jdbc] - OutputTransparentColor: null
2015-01-08 14:46:46,541 INFO [imagemosaic.jdbc] - BackgroundColor: null
2015-01-08 14:46:46,541 INFO [imagemosaic.jdbc] - ----PARAMS END-------
2015-01-08 14:46:46,541 DEBUG [imagemosaic.jdbc] - Reading mosaic from insat3a
2015-01-08 14:46:46,541 DEBUG [imagemosaic.jdbc] - Highest res 0.1171875 -0.1171875
2015-01-08 14:46:46,541 DEBUG [imagemosaic.jdbc] - Creating mosaic to comply with envelope GeneralEnvelope[(33.5, -60.0), (34.0859375, 60.0)] crs GEOGCS[“WGS 84”,
DATUM[“World Geodetic System 1984”,
SPHEROID[“WGS 84”, 6378137.0, 298.257223563, AUTHORITY[“EPSG”,“7030”]],
AUTHORITY[“EPSG”,“6326”]],
PRIMEM[“Greenwich”, 0.0, AUTHORITY[“EPSG”,“8901”]],
UNIT[“degree”, 0.017453292519943295],
AXIS[“Geodetic longitude”, EAST],
AXIS[“Geodetic latitude”, NORTH],
AUTHORITY[“EPSG”,“4326”]] dim java.awt.Rectangle[x=0,y=0,width=5,height=-1024]
2015-01-08 14:46:46,542 ERROR [wicket.RequestCycle] - Error occurred while building the resources for the configuration page
java.lang.RuntimeException: Error occurred while building the resources for the configuration page
at org.geoserver.web.data.layer.NewLayerPage.buildLayerInfo(NewLayerPage.java:330)
at org.geoserver.web.data.layer.NewLayerPage$7.onClick(NewLayerPage.java:261)
at org.geoserver.web.wicket.SimpleAjaxLink$1.onClick(SimpleAjaxLink.java:46)
[…]
Caused by: java.lang.ArithmeticException: / by zero
at org.geotools.coverage.grid.io.AbstractGridCoverage2DReader.decimationOnReadingControl(AbstractGridCoverage2DReader.java:639)
at org.geotools.coverage.grid.io.AbstractGridCoverage2DReader.setReadParams(AbstractGridCoverage2DReader.java:389)
at org.geotools.coverage.grid.io.AbstractGridCoverage2DReader.setReadParams(AbstractGridCoverage2DReader.java:300)
at org.geotools.gce.imagemosaic.jdbc.ImageMosaicJDBCReader.loadTiles(ImageMosaicJDBCReader.java:439)
at org.geotools.gce.imagemosaic.jdbc.ImageMosaicJDBCReader.read(ImageMosaicJDBCReader.java:316)
at org.geotools.coverage.grid.io.AbstractGridCoverage2DReader.read(AbstractGridCoverage2DReader.java:241)
at org.geoserver.catalog.CoverageDimensionCustomizerReader.read(CoverageDimensionCustomizerReader.java:227)
at org.geoserver.catalog.SingleGridCoverage2DReader.read(SingleGridCoverage2DReader.java:141)
at org.geoserver.catalog.CatalogBuilder.buildCoverage(CatalogBuilder.java:968)
at org.geoserver.catalog.CatalogBuilder.buildCoverage(CatalogBuilder.java:856)
at org.geoserver.web.data.layer.NewLayerPage.buildLayerInfo(NewLayerPage.java:320)
… 107 more
2015-01-08 14:46:46,543 DEBUG [wicket.MarkupContainer] - Add faviconLink to [Page class = org.geoserver.web.GeoServerErrorPage, id = 34, version = 0]