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

Reply via email to