Could it be that your resy in the mosaic table need to be positive? As it is,
(maxy-miny)/resy is negative I think, when it should boil down to the number of
pixel rows.
Philippe
> On Jan 14, 2015, at 01:25, victor sinceac <[email protected]> wrote:
>
> No, the rasters are stored in Postgis tables.
> A 2nd study of the debug logs (see below) shows something strange:
> DEBUG [imagemosaic.jdbc] - Reading mosaic from insat3a
> DEBUG [imagemosaic.jdbc] - Highest res 0.1171875 -0.1171875
> DEBUG [imagemosaic.jdbc] - Creating mosaic to comply with envelope
> GeneralEnvelope[(33.5, -60.0), (34.0859375, 60.0)]
> While the mosaic metadata table contains:
> select name, tiletable, minx, miny, maxx, maxy from mosaic;
> name; tiletable; minx; miny; maxx; maxy
> insat3a; raster_hdf5; 33.5; -60; 153.5; 60
> insat3a; o_5_raster_hdf5; 33.5; -60; 153.5; 60
> A direct query in the raster table returns also correct envelope for each
> raster tile (the original, unique geotiff is 1024x1024 and is tiled in
> 512x512 on upload):
> SELECT ST_AsText((ST_Envelope(rast))) FROM raster_hdf5;
> "POLYGON((33.5 0, 33.5 60, 93.5 60, 93.5 0, 33.5 0))"
> "POLYGON((93.5 0, 93.5 60, 153.5 60, 153.5 0, 93.5 0))"
> "POLYGON((33.5 -60, 33.5 0, 93.5 0, 93.5 -60, 33.5 -60))"
> "POLYGON((93.5 -60, 93.5 0, 153.5 0, 153.5 -60, 93.5 -60))"
>
> Thus I wonder how is computed the GeneralEnvelope value of xmax=34.0859375 <
> xmin (instead 153.5 as provided).
> max>xmin is obviously wrong and SHALL anyway generate errors (maybe more
> explicit than “/ by zero” ;o)
> But I still cannot understand where GeoServer got the wrong xmax value from...
>
> Victor
>
>
>
> From: GrandNord [mailto:[email protected]]
> Sent: mercredi 14 janvier 2015 00:45
> To: victor sinceac
> Cc: [email protected]
> Subject: Re: [Geoserver-users] Cannot publish layer from ImageMosaicJDBC store
>
> Are you storing the rasters as out-db? I am wrestling with issues of my own
> in that situation.
>
> NB: default install of PG is most definitely case sensitive. You need to
> change some settings to make it otherwise.
>
> Philippe
>
>
>
> On Jan 13, 2015, at 12:59, victor sinceac <[email protected]> wrote:
>
> Hi Philippe,
>
> Nope, the result is the same (I tried with both capitalized and lowercased
> column names); anyway these column names go all in some SQL queries and table
> names are not case sensitive (afaik) in PostgreSQL... In a 1st approach, I
> thought the issue is somehow the result of the 32bits values in the raster...
> but no, the original GeoTIFF raster is well published by the same GeoServer
> as a simple, static GeoTIFF layer as disk file...
> By the way:
> · I also tried the ImageMosaic (TimeSeries, i.e. GeoTIFF file on
> disk) following the GeoServer tutorial, with the same GeoTIFF: the Store is
> well created without errors, but when I try to add a new layer from this
> store the GUI doesn’t display any item in the layers list...
> · I was able to publish on QGIS the raster layer from the same
> PostGIS layer which fails with GeoServer...
>
> Actually it is pretty frustrating to get just a “division by zero” java error
> from the “ImageMosaicJDBCReader”; I think all one could do in such a case is
> to open the code source of this extension...
>
> Thanks,
> Victor
>
>
>
>
> From: GrandNord [mailto:[email protected]]
> Sent: mardi 13 janvier 2015 16:23
> To: victor sinceac
> Cc: [email protected]
> Subject: Re: [Geoserver-users] Cannot publish layer from ImageMosaicJDBC store
>
> Victor,
>
> I've been working with various settings in a setting similar to yours (
> PG9.3, GeoServer 2.6.1 on CentOS).
> I have had success with both multi and and single band GeoTiff sources. In
> all cases I had upgraded the PG JDBC driver to the latest 9.3. I did not have
> to set bytea_output.
>
> Looking through your files, it looks like there might be an issue with the
> tileTableNameAttribute in your coverage definition XML file: it is spelled
> "TileTable" in there, but appears to be inserted as "tiletable" ( all lower
> case ) in your mosaic table. Depending on your PG setup, this might be an
> issue, which I encountered once.
>
> Hopefully it really is that simple. Let me know if it isn't and I'll take
> another look.
>
> Philippe
>
>
> On Jan 10, 2015, at 09:46, victor sinceac <[email protected]> wrote:
>
> Hi again,
>
> Adding more details after extra tries (with same unsuccessful result):
> - Tried with different input GeoTIFF: single GeoTIFF, 2 or more
> GeoTIFF of same coverage and different content, single or multi-band, etc.
> - Tried to replace the native PG8.4jdbc driver of GeoServer with
> latest PG9.3jdbc41 driver
> - Tried also “ALTER DATABASE name SET bytea_output TO ‘escape’”
> - The same PostGIS raster can be well published/viewed on QGIS
> desktop client
>
> Thanks,
> Victor
>
> From: victor sinceac
> Sent: jeudi 8 janvier 2015 16:07
> To: '[email protected]'
> Subject: Cannot publish layer from ImageMosaicJDBC store
>
> 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 area; 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 [
> <!ENTITY mapping PUBLIC "mapping" "pgraster.mapping.xml.inc">
> <!ENTITY connect PUBLIC "connect" "pgraster.connect.xml.inc">]>
> <config version="1.0">
> <coverageName name="insat3a"/>
> <coordsys name="EPSG:4326"/>
> <!-- interpolation 1 = nearest neighbour, 2 = bilinear, 3 = bicubic -->
> <scaleop interpolation="1"/>
> <verify cardinality="false"/>
> &mapping;
> &connect;
> </config>
> pgraster.connect.xml.inc:
> <connect>
> <!-- value DBCP or JNDI -->
> <dstype value="DBCP"/>
> <!-- <jndiReferenceName value=""/> -->
> <username value="..." />
> <password value="..." />
> <jdbcUrl value="jdbc:postgresql:...." />
> <driverClassName value="org.postgresql.Driver"/>
> <maxActive value="10"/>
> <maxIdle value="0"/>
> </connect>
> pgraster.mapping.xml.inc:
> <spatialExtension name="pgraster"/>
> <mapping>
> <masterTable name="mosaic" >
> <coverageNameAttribute name="name"/>
> <maxXAttribute name="maxX"/>
> <maxYAttribute name="maxY"/>
> <minXAttribute name="minX"/>
> <minYAttribute name="minY"/>
> <resXAttribute name="resX"/>
> <resYAttribute name="resY"/>
> <tileTableNameAtribute name="TileTable" />
> </masterTable>
> <tileTable>
> <blobAttributeName name="rast" />
> </tileTable>
> </mapping>
>
> 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]
> ------------------------------------------------------------------------------------------------
> ------------------------------------------------------------------------------
> Dive into the World of Parallel Programming! The Go Parallel Website,
> sponsored by Intel and developed in partnership with Slashdot Media, is your
> hub for all things parallel software development, from weekly thought
> leadership blogs to news, videos, case studies, tutorials and more. Take a
> look and join the conversation now. http://goparallel.sourceforge.net
> _______________________________________________
> Geoserver-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/geoserver-users
------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet
_______________________________________________
Geoserver-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-users