Opened 11 years ago
Closed 11 years ago
#739 closed defect (fixed)
Occassional Unknown node for ScaleCoverageExpr expression: trim error.
Reported by: | James Passmore | Owned by: | Piero Campalani |
---|---|---|---|
Priority: | critical | Milestone: | 9.0.x |
Component: | petascope | Version: | 9.0 |
Keywords: | ScaleCoverageExpr | Cc: | Marcus Sen |
Complexity: | Medium |
Description
I'm getting an odd behaviour from our rasdaman 9 service, compared to our rasdaman 8 service.
Some queries that return a result in rasdaman 8 are returning an error in rasdaman 9. The queries are all within the bounds of the coverage.
For example:
OLD (rasdaman 8) service query returns a black (area of no data) image with:
for v1 in (pga_cir) return encode( scale( trim(struct {red : (char) v1.red; green : (char) v1.green; blue : (char) v1.blue}, {x:"http://www.opengis.net/def/crs/EPSG/0/27700"(262260:264575), y:"http://www.opengis.net/def/crs/EPSG/0/27700"(720474:722657)}), {x:"CRS:1"(0:599), y:"CRS:1"(0:553)}, {} ), "png" )
NEW (rasdaman 9) service query returns an error with:
for v1 in (pga_cir) return encode( scale( trim(struct {red : (char) v1.red; green : (char) v1.green; blue : (char) v1.blue}, {E:"http://www.opengis.net/def/crs/EPSG/0/27700"(262260:264575), N:"http://www.opengis.net/def/crs/EPSG/0/27700"(720474:722657)}), {E:"CRS:1"(0:599), N:"CRS:1"(0:553)}, {} ), "png" )
ERROR is:
<ows:ExceptionReport version="2.0.0" xsd:schemaLocation="http://www.opengis.net/ows/2.0 http://schemas.opengis.net/ows/2.0/owsExceptionReport.xsd" xmlns:ows="http://www.opengis.net/ows/2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink"> <ows:Exception exceptionCode="InvalidMetadata"> <ows:ExceptionText> Unknown node for ScaleCoverageExpr expression: trim </ows:ExceptionText> </ows:Exception> </ows:ExceptionReport>
Similarly
OLD (rasdaman 8) service query returns an image with:
for v1 in (pga_cir) return encode( scale( trim(struct {red : (char) v1.red; green : (char) v1.green; blue : (char) v1.blue}, {x:"http://www.opengis.net/def/crs/EPSG/0/27700"(230000:231000), y:"http://www.opengis.net/def/crs/EPSG/0/27700"(710000:711000)}), {x:"CRS:1"(0:481), y:"CRS:1"(0:499)}, {} ), "png" )
But NEW (rasdaman 9) service query returns an error with:
for v1 in (pga_cir) return encode( scale( trim(struct {red : (char) v1.red; green : (char) v1.green; blue : (char) v1.blue}, {E:"http://www.opengis.net/def/crs/EPSG/0/27700"(230000:231000), N:"http://www.opengis.net/def/crs/EPSG/0/27700"(710000:711000)}), {E:"CRS:1"(0:481), N:"CRS:1"(0:499)}, {} ), "png" )
See the below dump from catalina.out for this above error.
I don't always get errors though:
OLD service request returns image ~ a mix of aerial photo and no data (black):
for v1 in (pga_cir) return encode( scale( trim(struct {red : (char) v1.red; green : (char) v1.green; blue : (char) v1.blue}, {x:"http://www.opengis.net/def/crs/EPSG/0/27700"(209208:211662), y:"http://www.opengis.net/def/crs/EPSG/0/27700"(707380:709649)}), {x:"CRS:1"(0:599), y:"CRS:1"(0:553)}, {} ), "png" )
NEW service request returns image ~ a mix of aerial photo and no data (white):
for v1 in (pga_cir) return encode( scale( trim(struct {red : (char) v1.red; green : (char) v1.green; blue : (char) v1.blue}, {E:"http://www.opengis.net/def/crs/EPSG/0/27700"(209208:211662), N:"http://www.opengis.net/def/crs/EPSG/0/27700"(707380:709649)}), {E:"CRS:1"(0:599), N:"CRS:1"(0:553)}, {} ), "png" )
And finally OLD and NEW service return the same image.
OLD:
for v1 in (pga_cir) return encode( scale( trim(struct {red : (char) v1.red; green : (char) v1.green; blue : (char) v1.blue}, {x:"http://www.opengis.net/def/crs/EPSG/0/27700"(440000:441000), y:"http://www.opengis.net/def/crs/EPSG/0/27700"(500000:501000)}), {x:"CRS:1"(0:481), y:"CRS:1"(0:499)}, {} ), "png" )
NEW:
for v1 in (pga_cir) return encode( scale( trim(struct {red : (char) v1.red; green : (char) v1.green; blue : (char) v1.blue}, {E:"http://www.opengis.net/def/crs/EPSG/0/27700"(440000:441000), N:"http://www.opengis.net/def/crs/EPSG/0/27700"(500000:501000)}), {E:"CRS:1"(0:481), N:"CRS:1"(0:499)}, {} ), "png" )
------START REQUEST-------- query=for+v1+in+%28pga_cir%29+return%0D%0A%09%09encode+%28%0D%0A%09%09%09scale%28%0D%0A%09%09%09%09trim%28struct+%7Bred+%3A+%28char%29+v1.red%3B+green+%3A+%$ ------END REQUEST------ TRACE [12:39:50] PetascopeInterface@253: GET Query string : null TRACE [12:39:50] PetascopeInterface@257: Request parameters : {subbtn=go, query=for+v1+in+%28pga_cir%29+return%0D%0A%09%09encode+%28%0D%0A%09%09%09scale%28$ DEBUG [12:39:50] PetascopeInterface@266: Analyzing path info "/ows" for REST interface checks. DEBUG [12:39:50] PetascopeInterface@343: Received Abstract Syntax Request via GET: for v1 in (pga_cir) return encode ( scale( trim(struct {red : (char) v1.red; green : (char) v1.green; blue : (char) v1.blue}, {E:"http://www.opengis.net/def/crs/EPSG/0/27700"(230000:231000), N:"http://www.opengis.net/def/crs/EPSG/0/27700"(710000:711000)}), {E:"CRS:1"(0:481), N:"CRS:1"(0:499)}, {} ), "png" ) TRACE [12:39:50] RasUtil@245: Parsing abstract WCPS query... TRACE [12:39:50] NumericScalarExpr@49: NumericScalarExpr 230000 TRACE [12:39:50] NumericScalarExpr@49: NumericScalarExpr 231000 TRACE [12:39:50] NumericScalarExpr@49: NumericScalarExpr 710000 TRACE [12:39:50] NumericScalarExpr@49: NumericScalarExpr 711000 TRACE [12:39:50] NumericScalarExpr@49: NumericScalarExpr 0 TRACE [12:39:50] NumericScalarExpr@49: NumericScalarExpr 481 TRACE [12:39:50] NumericScalarExpr@49: NumericScalarExpr 0 TRACE [12:39:50] NumericScalarExpr@49: NumericScalarExpr 499 TRACE [12:39:50] RasUtil@254: Converting parsed request to XML... DEBUG [12:39:50] RasUtil@256: Done, xml query: <?xml version="1.0" encoding="UTF-8" ?> <ProcessCoveragesRequest xmlns="http://www.opengis.net/wcps/1.0" service="WCPS" version="1.0.0"> <query><xmlSyntax><coverageIterator><iteratorVar>v1</iteratorVar><coverageName>pga_cir</coverageName></coverageIterator><encode store="false"><scale><trim><$ DEBUG [12:39:50] PetascopeInterface@367: Petascope Request: ------START REQUEST-------- <?xml version="1.0" encoding="UTF-8" ?> <ProcessCoveragesRequest xmlns="http://www.opengis.net/wcps/1.0" service="WCPS" version="1.0.0"> <query><xmlSyntax><coverageIterator><iteratorVar>v1</iteratorVar><coverageName>pga_cir</coverageName></coverageIterator><encode store="false"><scale><trim><$ ------END REQUEST------ DEBUG [12:39:50] PetascopeInterface@371: Root Element name: ProcessCoveragesRequest DEBUG [12:39:50] PetascopeInterface@665: Received a ProcessCoverages request: <?xml version="1.0" encoding="UTF-8" ?> <ProcessCoveragesRequest xmlns="http://www.opengis.net/wcps/1.0" service="WCPS" version="1.0.0"> <query><xmlSyntax><coverageIterator><iteratorVar>v1</iteratorVar><coverageName>pga_cir</coverageName></coverageIterator><encode store="false"><scale><trim><$ DEBUG [12:39:50] PetascopeInterface@667: ------------------------------------------------------- DEBUG [12:39:50] PetascopeInterface@668: Converting to rasql INFO [12:39:50] Wcps@61: WCPS: Loading and parsing XML Schema ... INFO [12:39:50] Wcps@69: WCPS: Finished loading the schema. TRACE [12:39:50] DynamicMetadataSource@56: Creating dynamic metadata source from: DbMetadataSource DEBUG [12:39:50] DbMetadataSource@684: SQL query: SELECT name FROM ps_coverage ORDER BY name DEBUG [12:39:50] ProcessCoveragesRequest@99: Found XML Syntax query. DEBUG [12:39:50] XmlQuery@99: Processing XML Request: xmlSyntax INFO [12:39:50] XmlQuery@110: The current node is: coverageIterator TRACE [12:39:50] CoverageIterator@45: coverageIterator TRACE [12:39:50] CoverageIterator@61: Iterator variable: v1 TRACE [12:39:50] CoverageIterator@64: Coverage reference : pga_cir INFO [12:39:50] XmlQuery@110: The current node is: encode TRACE [12:39:50] EncodeDataExpr@51: encode TRACE [12:39:50] CoverageExpr@57: scale TRACE [12:39:50] ScaleCoverageExpr@52: scale TRACE [12:39:50] ScaleCoverageExpr@118: coverage expression TRACE [12:39:50] CoverageExpr@57: trim TRACE [12:39:50] SubsetOperationCoverageExpr@63: trim TRACE [12:39:50] SubsetOperationCoverageExpr@66: trim child TRACE [12:39:50] TrimCoverageExpr@49: trim TRACE [12:39:50] TrimCoverageExpr@73: coverage TRACE [12:39:50] CoverageExpr@57: rangeConstructor TRACE [12:39:50] InducedOperationCoverageExpr@42: rangeConstructor TRACE [12:39:50] RangeCoverageExpr@43: rangeConstructor TRACE [12:39:50] RangeComponent@48: component TRACE [12:39:50] RangeComponent@63: field: red TRACE [12:39:50] CoverageExpr@57: cast TRACE [12:39:50] InducedOperationCoverageExpr@42: cast TRACE [12:39:50] UnaryOperationCoverageExpr@64: cast TRACE [12:39:50] UnaryOperationCoverageExpr@110: child name: fieldSelect TRACE [12:39:50] CoverageExpr@57: fieldSelect TRACE [12:39:50] InducedOperationCoverageExpr@42: fieldSelect TRACE [12:39:50] UnaryOperationCoverageExpr@64: fieldSelect TRACE [12:39:50] CoverageExpr@57: coverage TRACE [12:39:50] DynamicMetadataSource@104: Reading metadata for dynamic coverage: pga_cir TRACE [12:39:50] DynamicMetadataSource@110: coverages: [glasgow_lac_b, l7_refl_p206r020d20000505, l7_refl_p202r024d20010512, l7_refl_p204r020d20010510, gla$ DEBUG [12:39:50] DbMetadataSource@803: Reading metadata for coverage 'pga_cir' DEBUG [12:39:50] DbMetadataSource@833: SQL query: SELECT id, name, gml_type_id, native_format_id FROM ps_coverage WHERE name='pga_cir' DEBUG [12:39:50] DbMetadataSource@853: SQL query: SELECT metadata_type_id, value FROM ps_extra_metadata WHERE coverage_id=6 DEBUG [12:39:50] DbMetadataSource@888: SQL query: SELECT (SELECT idx(ps_domain_set.native_crs_ids,ps_crs.id)) AS idx, ps_crs.uri FROM ps_domain_set,ps_crs$ INFO [12:39:50] DbMetadataSource@902: Decoding http://www.opengis.net/def/crs/EPSG/0/27700 ... INFO [12:39:50] CrsUtil@1215: EPSG(0):4326/EPSG(0):27700 comparison is cached: *no* need to ask SECORE. INFO [12:39:50] CrsUtil@1215: EPSG(0):4326/EPSG(0):27700 comparison is cached: *no* need to ask SECORE. INFO [12:39:50] CrsUtil@1215: OGC(0):Index2D/EPSG(0):27700 comparison is cached: *no* need to ask SECORE. DEBUG [12:39:50] CrsUtil@1123: http://www.opengis.net/def/crs/EPSG/0/27700 CRS is already decoded in cache. INFO [12:39:50] CrsUtil@159: http://www.opengis.net/def/crs/EPSG/0/27700 definition is already in cache: do not need to fetch GML definition. INFO [12:39:50] CrsUtil@1215: EPSG(0):4326/EPSG(0):27700 comparison is cached: *no* need to ask SECORE. INFO [12:39:50] CrsUtil@1215: EPSG(0):4326/EPSG(0):27700 comparison is cached: *no* need to ask SECORE. INFO [12:39:50] CrsUtil@1215: OGC(0):Index2D/EPSG(0):27700 comparison is cached: *no* need to ask SECORE. TRACE [12:39:50] DbMetadataSource@909: Coverage pga_cir CRS decoded: it has 2 axes. DEBUG [12:39:50] DbMetadataSource@931: SQL query: SELECT name, data_type_id, field_table, field_id FROM ps_range_type_component WHERE coverage_id=6 ORDER $ DEBUG [12:39:50] DbMetadataSource@2086: SQL query: SELECT quantity_id,interval_id FROM ps_quantity_interval WHERE quantity_id=11 DEBUG [12:39:50] DbMetadataSource@2155: SQL query: SELECT ps_uom.code,ps_quantity.label,ps_quantity.description,ps_quantity.definition_uri, array_agg(ps_n$ TRACE [12:39:50] RangeElement@65: Range Element { name 'b1', type 'unsigned char'} DEBUG [12:39:50] DbMetadataSource@953: Added range element: Range Element { name 'b1', type 'unsigned char'} DEBUG [12:39:50] DbMetadataSource@2086: SQL query: SELECT quantity_id,interval_id FROM ps_quantity_interval WHERE quantity_id=11 DEBUG [12:39:50] DbMetadataSource@2155: SQL query: SELECT ps_uom.code,ps_quantity.label,ps_quantity.description,ps_quantity.definition_uri, array_agg(ps_n$ TRACE [12:39:50] RangeElement@65: Range Element { name 'b2', type 'unsigned char'} DEBUG [12:39:50] DbMetadataSource@953: Added range element: Range Element { name 'b2', type 'unsigned char'} DEBUG [12:39:50] DbMetadataSource@2086: SQL query: SELECT quantity_id,interval_id FROM ps_quantity_interval WHERE quantity_id=11 DEBUG [12:39:50] DbMetadataSource@2155: SQL query: SELECT ps_uom.code,ps_quantity.label,ps_quantity.description,ps_quantity.definition_uri, array_agg(ps_n$ TRACE [12:39:50] RangeElement@65: Range Element { name 'b3', type 'unsigned char'} DEBUG [12:39:50] DbMetadataSource@953: Added range element: Range Element { name 'b3', type 'unsigned char'} DEBUG [12:39:50] DbMetadataSource@980: SQL query: SELECT storage_table, storage_id FROM ps_range_set WHERE coverage_id=6 DEBUG [12:39:50] DbMetadataSource@1003: SQL query: SELECT name, oid FROM ps_rasdaman_collection WHERE id=6 TRACE [12:39:50] DbMetadataSource@1015: Coverage 'pga_cir' has range-set data in pga_cir:7681. DEBUG [12:39:50] DbMetadataSource@1025: SQL query: SELECT grid_origin FROM ps_gridded_domain_set WHERE coverage_id=6 DEBUG [12:39:50] DbMetadataSource@1037: Grid origin component: 82000.25 DEBUG [12:39:50] DbMetadataSource@1037: Grid origin component: 1220999.75 TRACE [12:39:50] DbMetadataSource@1040: Gridded coverage 'pga_cir' has origin '[82000.25, 1220999.75]' DEBUG [12:39:50] DbMetadataSource@1066: SQL query: SELECT id, rasdaman_order FROM ps_grid_axis WHERE gridded_coverage_id=6 ORDER BY rasdaman_order DEBUG [12:39:50] DbMetadataSource@1082: Found axis with id 11 DEBUG [12:39:50] DbMetadataSource@1089: SQL query: SELECT offset_vector FROM ps_rectilinear_axis WHERE grid_axis_id=11 DEBUG [12:39:50] DbMetadataSource@1098: Offset-vector 11 component: 0.5 DEBUG [12:39:50] DbMetadataSource@1098: Offset-vector 11 component: 0 TRACE [12:39:50] DbMetadataSource@1101: Axis 11 has offset-vector [0.5, 0] DEBUG [12:39:50] DbMetadataSource@1858: RasQL query : select sdom(c)[0]from pga_cir AS c where oid(c) = 7681 rasj[0] rasj: rasdaman Java API. rasdaman 6.1test -- generated Tue Jan 6 17:52:20 CET 2009. rasj[0] Using server http://localhost:7001 TRACE [12:39:50] RasUtil@135: Executing query select sdom(c)[0]from pga_cir AS c where oid(c) = 7681 DEBUG [12:39:50] DbMetadataSource@1131: SQL query: SELECT COUNT(*), MAX(coefficient) FROM ps_vector_coefficients WHERE grid_axis_id=11 TRACE [12:39:50] DbMetadataSource@1150: Axis 0 of coverage 'pga_cir' is not irregular. TRACE [12:39:50] CellDomainElement@51: cell domain -356000:791999 DEBUG [12:39:50] DbMetadataSource@1164: Added WCPS `cellDomain' element: CellDomainElement#0 [-356000, 791999] DEBUG [12:39:50] DbMetadataSource@1082: Found axis with id 12 DEBUG [12:39:50] DbMetadataSource@1089: SQL query: SELECT offset_vector FROM ps_rectilinear_axis WHERE grid_axis_id=12 DEBUG [12:39:50] DbMetadataSource@1098: Offset-vector 12 component: 0 DEBUG [12:39:50] DbMetadataSource@1098: Offset-vector 12 component: -0.5 TRACE [12:39:50] DbMetadataSource@1101: Axis 12 has offset-vector [0, -0.5] DEBUG [12:39:50] DbMetadataSource@1858: RasQL query : select sdom(c)[1]from pga_cir AS c where oid(c) = 7681 rasj[0] rasj: rasdaman Java API. rasdaman 6.1test -- generated Tue Jan 6 17:52:20 CET 2009. rasj[0] Using server http://localhost:7001 TRACE [12:39:50] RasUtil@135: Executing query select sdom(c)[1]from pga_cir AS c where oid(c) = 7681 DEBUG [12:39:50] DbMetadataSource@1131: SQL query: SELECT COUNT(*), MAX(coefficient) FROM ps_vector_coefficients WHERE grid_axis_id=12 TRACE [12:39:50] DbMetadataSource@1150: Axis 1 of coverage 'pga_cir' is not irregular. TRACE [12:39:50] CellDomainElement@51: cell domain -1260000:1171999 DEBUG [12:39:50] DbMetadataSource@1164: Added WCPS `cellDomain' element: CellDomainElement#1 [-1260000, 1171999] DEBUG [12:39:50] Vectors@77: dot-product between [0.5, 0] and [0, -0.5] is: 0.0 TRACE [12:39:50] DomainElement@118: Domain #0 {Name:E | Type:x | UoM:metre | [82000.00,656000.00] | CRS:http://www.opengis.net/def/crs/EPSG/0/27700'} DEBUG [12:39:50] CoverageMetadata@184: Added WCPS `domain' element: Domain #0 {Name:E | Type:x | UoM:metre | [82000.00,656000.00] | CRS:http://www.opengis.$ TRACE [12:39:50] DomainElement@118: Domain #1 {Name:N | Type:y | UoM:metre | [5000.00,1221000.00] | CRS:http://www.opengis.net/def/crs/EPSG/0/27700'} DEBUG [12:39:50] CoverageMetadata@184: Added WCPS `domain' element: Domain #1 {Name:N | Type:y | UoM:metre | [5000.00,1221000.00] | CRS:http://www.opengis.$ INFO [12:39:50] CrsUtil@1215: EPSG(0):27700/EPSG(0):4326 comparison is cached: *no* need to ask SECORE. INFO [12:39:50] CrsUtil@1215: EPSG(0):27700/EPSG(0):4326 comparison is cached: *no* need to ask SECORE. TRACE [12:39:50] Bbox@150: CRS 'http://www.opengis.net/def/crs/EPSG/0/27700' { Bounding Box [x(82000.00, 656000.00), y(5000.00, 1221000.00)] } TRACE [12:39:50] DbMetadataSource@1219: Caching coverage metadata.. TRACE [12:39:50] CoverageExpr@87: Found simple coverage definition: v1, pga_cir TRACE [12:39:50] FieldName@46: name TRACE [12:39:50] FieldName@51: Found field name: red TRACE [12:39:50] UnaryOperationCoverageExpr@149: operation: select TRACE [12:39:50] InducedOperationCoverageExpr@55: induced Operation SUCCESS: fieldSelect TRACE [12:39:50] CoverageExpr@132: Matched induced coverage expression operation. TRACE [12:39:50] UnaryOperationCoverageExpr@110: child name: type TRACE [12:39:50] RangeField@41: type TRACE [12:39:50] RangeField@52: Range field type: char TRACE [12:39:50] UnaryOperationCoverageExpr@149: operation: cast TRACE [12:39:50] InducedOperationCoverageExpr@55: induced Operation SUCCESS: cast TRACE [12:39:50] CoverageExpr@132: Matched induced coverage expression operation. TRACE [12:39:50] RangeComponent@48: component TRACE [12:39:50] RangeComponent@63: field: green TRACE [12:39:50] CoverageExpr@57: cast TRACE [12:39:50] InducedOperationCoverageExpr@42: cast TRACE [12:39:50] UnaryOperationCoverageExpr@64: cast TRACE [12:39:50] UnaryOperationCoverageExpr@110: child name: fieldSelect TRACE [12:39:50] CoverageExpr@57: fieldSelect TRACE [12:39:50] InducedOperationCoverageExpr@42: fieldSelect TRACE [12:39:50] UnaryOperationCoverageExpr@64: fieldSelect TRACE [12:39:50] CoverageExpr@57: coverage TRACE [12:39:50] DynamicMetadataSource@104: Reading metadata for dynamic coverage: pga_cir TRACE [12:39:50] DynamicMetadataSource@110: coverages: [glasgow_lac_b, l7_refl_p206r020d20000505, l7_refl_p202r024d20010512, l7_refl_p204r020d20010510, gla$ DEBUG [12:39:50] DbMetadataSource@803: Reading metadata for coverage 'pga_cir' TRACE [12:39:50] DbMetadataSource@812: Returning cached coverage metadata. TRACE [12:39:50] CoverageExpr@87: Found simple coverage definition: v1, pga_cir TRACE [12:39:50] FieldName@46: name TRACE [12:39:50] FieldName@51: Found field name: green TRACE [12:39:50] UnaryOperationCoverageExpr@149: operation: select TRACE [12:39:50] InducedOperationCoverageExpr@55: induced Operation SUCCESS: fieldSelect TRACE [12:39:50] CoverageExpr@132: Matched induced coverage expression operation. TRACE [12:39:50] UnaryOperationCoverageExpr@110: child name: type TRACE [12:39:50] RangeField@41: type TRACE [12:39:50] RangeField@52: Range field type: char TRACE [12:39:50] UnaryOperationCoverageExpr@149: operation: cast TRACE [12:39:50] InducedOperationCoverageExpr@55: induced Operation SUCCESS: cast TRACE [12:39:50] RangeComponent@63: field: blue TRACE [12:39:50] CoverageExpr@57: cast TRACE [12:39:50] InducedOperationCoverageExpr@42: cast TRACE [12:39:50] UnaryOperationCoverageExpr@64: cast TRACE [12:39:50] UnaryOperationCoverageExpr@110: child name: fieldSelect TRACE [12:39:50] CoverageExpr@57: fieldSelect TRACE [12:39:50] InducedOperationCoverageExpr@42: fieldSelect TRACE [12:39:50] UnaryOperationCoverageExpr@64: fieldSelect TRACE [12:39:50] CoverageExpr@57: coverage TRACE [12:39:50] DynamicMetadataSource@104: Reading metadata for dynamic coverage: pga_cir TRACE [12:39:50] DynamicMetadataSource@110: coverages: [glasgow_lac_b, l7_refl_p206r020d20000505, l7_refl_p202r024d20010512, l7_refl_p204r020d20010510, gla$ DEBUG [12:39:50] DbMetadataSource@803: Reading metadata for coverage 'pga_cir' TRACE [12:39:50] DbMetadataSource@812: Returning cached coverage metadata. TRACE [12:39:50] CoverageExpr@87: Found simple coverage definition: v1, pga_cir TRACE [12:39:50] FieldName@46: name TRACE [12:39:50] FieldName@51: Found field name: blue TRACE [12:39:50] UnaryOperationCoverageExpr@149: operation: select TRACE [12:39:50] InducedOperationCoverageExpr@55: induced Operation SUCCESS: fieldSelect TRACE [12:39:50] CoverageExpr@132: Matched induced coverage expression operation. TRACE [12:39:50] UnaryOperationCoverageExpr@110: child name: type TRACE [12:39:50] RangeField@41: type TRACE [12:39:50] RangeField@52: Range field type: char TRACE [12:39:50] UnaryOperationCoverageExpr@149: operation: cast TRACE [12:39:50] InducedOperationCoverageExpr@55: induced Operation SUCCESS: cast TRACE [12:39:50] CoverageExpr@132: Matched induced coverage expression operation. TRACE [12:39:50] CoverageExpr@132: Matched induced coverage expression operation. TRACE [12:39:50] TrimCoverageExpr@67: axis TRACE [12:39:50] DimensionIntervalElement@76: axis TRACE [12:39:50] DynamicMetadataSource@104: Reading metadata for dynamic coverage: pga_cir TRACE [12:39:50] DynamicMetadataSource@110: coverages: [glasgow_lac_b, l7_refl_p206r020d20000505, l7_refl_p202r024d20010512, l7_refl_p204r020d20010510, gla$ DEBUG [12:39:50] DbMetadataSource@803: Reading metadata for coverage 'pga_cir' TRACE [12:39:50] DbMetadataSource@812: Returning cached coverage metadata. TRACE [12:39:50] AxisName@43: axis TRACE [12:39:50] AxisName@46: axis name: E TRACE [12:39:50] Crs@55: srsName TRACE [12:39:50] Crs@63: Found CRS: http://www.opengis.net/def/crs/EPSG/0/27700 TRACE [12:39:50] Crs@55: lowerBound TRACE [12:39:50] NumericScalarExpr@85: numericConstant TRACE [12:39:50] NumericScalarExpr@145: operation: value, binary: false TRACE [12:39:50] ScalarExpr@104: Matched numeric scalar expression. TRACE [12:39:50] CellDomainElement@51: cell domain 1:1 TRACE [12:39:50] DomainElement@118: Domain #0 {Name:x | Type:x | UoM:10^0 | [1,1] | CRS:CRS:1'} TRACE [12:39:50] RangeElement@65: Range Element { name 'dynamic_type', type 'unsigned int'} TRACE [12:39:50] Bbox@150: CRS 'CRS:1' { Bounding Box [x(1, 1)] } TRACE [12:39:50] Crs@55: upperBound TRACE [12:39:50] NumericScalarExpr@85: numericConstant TRACE [12:39:50] NumericScalarExpr@145: operation: value, binary: false TRACE [12:39:50] ScalarExpr@104: Matched numeric scalar expression. TRACE [12:39:50] CellDomainElement@51: cell domain 1:1 TRACE [12:39:50] DomainElement@118: Domain #0 {Name:x | Type:x | UoM:10^0 | [1,1] | CRS:CRS:1'} TRACE [12:39:50] RangeElement@65: Range Element { name 'dynamic_type', type 'unsigned int'} TRACE [12:39:50] Bbox@150: CRS 'CRS:1' { Bounding Box [x(1, 1)] } INFO [12:39:50] CrsUtil@1215: EPSG(0):4326/EPSG(0):27700 comparison is cached: *no* need to ask SECORE. INFO [12:39:50] CrsUtil@1215: EPSG(0):4326/EPSG(0):27700 comparison is cached: *no* need to ask SECORE. TRACE [12:39:50] CoverageExpr@132: Matched induced coverage expression operation. TRACE [12:39:50] RangeComponent@48: component TRACE [12:39:50] RangeComponent@63: field: blue TRACE [12:39:50] CoverageExpr@57: cast TRACE [12:39:50] InducedOperationCoverageExpr@42: cast TRACE [12:39:50] UnaryOperationCoverageExpr@64: cast TRACE [12:39:50] UnaryOperationCoverageExpr@110: child name: fieldSelect TRACE [12:39:50] CoverageExpr@57: fieldSelect TRACE [12:39:50] InducedOperationCoverageExpr@42: fieldSelect TRACE [12:39:50] UnaryOperationCoverageExpr@64: fieldSelect TRACE [12:39:50] CoverageExpr@57: coverage TRACE [12:39:50] DynamicMetadataSource@104: Reading metadata for dynamic coverage: pga_cir TRACE [12:39:50] DynamicMetadataSource@110: coverages: [glasgow_lac_b, l7_refl_p206r020d20000505, l7_refl_p202r024d20010512, l7_refl_p204r020d20010510, gla$ DEBUG [12:39:50] DbMetadataSource@803: Reading metadata for coverage 'pga_cir' TRACE [12:39:50] DbMetadataSource@812: Returning cached coverage metadata. TRACE [12:39:50] CoverageExpr@87: Found simple coverage definition: v1, pga_cir TRACE [12:39:50] FieldName@46: name TRACE [12:39:50] FieldName@51: Found field name: blue TRACE [12:39:50] UnaryOperationCoverageExpr@149: operation: select TRACE [12:39:50] InducedOperationCoverageExpr@55: induced Operation SUCCESS: fieldSelect TRACE [12:39:50] CoverageExpr@132: Matched induced coverage expression operation. TRACE [12:39:50] UnaryOperationCoverageExpr@110: child name: type TRACE [12:39:50] RangeField@41: type TRACE [12:39:50] RangeField@52: Range field type: char TRACE [12:39:50] UnaryOperationCoverageExpr@149: operation: cast TRACE [12:39:50] InducedOperationCoverageExpr@55: induced Operation SUCCESS: cast TRACE [12:39:50] CoverageExpr@132: Matched induced coverage expression operation. TRACE [12:39:50] CoverageExpr@132: Matched induced coverage expression operation. TRACE [12:39:50] TrimCoverageExpr@67: axis TRACE [12:39:50] DimensionIntervalElement@76: axis TRACE [12:39:50] DynamicMetadataSource@104: Reading metadata for dynamic coverage: pga_cir TRACE [12:39:50] DynamicMetadataSource@110: coverages: [glasgow_lac_b, l7_refl_p206r020d20000505, l7_refl_p202r024d20010512, l7_refl_p204r020d20010510, gla$ DEBUG [12:39:50] DbMetadataSource@803: Reading metadata for coverage 'pga_cir' TRACE [12:39:50] DbMetadataSource@812: Returning cached coverage metadata. TRACE [12:39:50] AxisName@43: axis TRACE [12:39:50] AxisName@46: axis name: E TRACE [12:39:50] Crs@55: srsName TRACE [12:39:50] Crs@63: Found CRS: http://www.opengis.net/def/crs/EPSG/0/27700 TRACE [12:39:50] Crs@55: lowerBound TRACE [12:39:50] NumericScalarExpr@85: numericConstant TRACE [12:39:50] NumericScalarExpr@145: operation: value, binary: false TRACE [12:39:50] ScalarExpr@104: Matched numeric scalar expression. TRACE [12:39:50] CellDomainElement@51: cell domain 1:1 TRACE [12:39:50] DomainElement@118: Domain #0 {Name:x | Type:x | UoM:10^0 | [1,1] | CRS:CRS:1'} TRACE [12:39:50] RangeElement@65: Range Element { name 'dynamic_type', type 'unsigned int'} TRACE [12:39:50] Bbox@150: CRS 'CRS:1' { Bounding Box [x(1, 1)] } TRACE [12:39:50] Crs@55: upperBound TRACE [12:39:50] NumericScalarExpr@85: numericConstant TRACE [12:39:50] NumericScalarExpr@145: operation: value, binary: false TRACE [12:39:50] ScalarExpr@104: Matched numeric scalar expression. TRACE [12:39:50] CellDomainElement@51: cell domain 1:1 TRACE [12:39:50] DomainElement@118: Domain #0 {Name:x | Type:x | UoM:10^0 | [1,1] | CRS:CRS:1'} TRACE [12:39:50] RangeElement@65: Range Element { name 'dynamic_type', type 'unsigned int'} TRACE [12:39:50] Bbox@150: CRS 'CRS:1' { Bounding Box [x(1, 1)] } INFO [12:39:50] CrsUtil@1215: EPSG(0):4326/EPSG(0):27700 comparison is cached: *no* need to ask SECORE. INFO [12:39:50] CrsUtil@1215: EPSG(0):4326/EPSG(0):27700 comparison is cached: *no* need to ask SECORE. INFO [12:39:50] CrsUtil@1215: OGC(0):Index2D/EPSG(0):27700 comparison is cached: *no* need to ask SECORE. DEBUG [12:39:50] CrsUtil@1123: http://www.opengis.net/def/crs/EPSG/0/27700 CRS is already decoded in cache. INFO [12:39:50] CrsUtil@159: http://www.opengis.net/def/crs/EPSG/0/27700 definition is already in cache: do not need to fetch GML definition. INFO [12:39:50] CrsUtil@1215: EPSG(0):4326/EPSG(0):27700 comparison is cached: *no* need to ask SECORE. INFO [12:39:50] CrsUtil@1215: EPSG(0):4326/EPSG(0):27700 comparison is cached: *no* need to ask SECORE. INFO [12:39:50] CrsUtil@1215: OGC(0):Index2D/EPSG(0):27700 comparison is cached: *no* need to ask SECORE. DEBUG [12:39:50] DimensionIntervalElement@234: [Transformed] requested subsettingCrs is 'http://www.opengis.net/def/crs/EPSG/0/27700', should match now nat$ TRACE [12:39:50] TrimCoverageExpr@67: axis TRACE [12:39:50] DimensionIntervalElement@76: axis TRACE [12:39:50] DynamicMetadataSource@104: Reading metadata for dynamic coverage: pga_cir TRACE [12:39:50] DynamicMetadataSource@110: coverages: [glasgow_lac_b, l7_refl_p206r020d20000505, l7_refl_p202r024d20010512, l7_refl_p204r020d20010510, gla$ DEBUG [12:39:50] DbMetadataSource@803: Reading metadata for coverage 'pga_cir' TRACE [12:39:50] DbMetadataSource@812: Returning cached coverage metadata. TRACE [12:39:50] AxisName@43: axis TRACE [12:39:50] AxisName@46: axis name: N TRACE [12:39:50] Crs@55: srsName TRACE [12:39:50] Crs@63: Found CRS: http://www.opengis.net/def/crs/EPSG/0/27700 TRACE [12:39:50] Crs@55: lowerBound TRACE [12:39:50] NumericScalarExpr@85: numericConstant TRACE [12:39:50] NumericScalarExpr@145: operation: value, binary: false TRACE [12:39:50] ScalarExpr@104: Matched numeric scalar expression. TRACE [12:39:50] CellDomainElement@51: cell domain 1:1 TRACE [12:39:50] DomainElement@118: Domain #0 {Name:x | Type:x | UoM:10^0 | [1,1] | CRS:CRS:1'} TRACE [12:39:50] RangeElement@65: Range Element { name 'dynamic_type', type 'unsigned int'} TRACE [12:39:50] Bbox@150: CRS 'CRS:1' { Bounding Box [x(1, 1)] } TRACE [12:39:50] Crs@55: upperBound TRACE [12:39:50] NumericScalarExpr@85: numericConstant TRACE [12:39:50] NumericScalarExpr@145: operation: value, binary: false TRACE [12:39:50] ScalarExpr@104: Matched numeric scalar expression. TRACE [12:39:50] CellDomainElement@51: cell domain 1:1 TRACE [12:39:50] DomainElement@118: Domain #0 {Name:x | Type:x | UoM:10^0 | [1,1] | CRS:CRS:1'} TRACE [12:39:50] RangeElement@65: Range Element { name 'dynamic_type', type 'unsigned int'} TRACE [12:39:50] Bbox@150: CRS 'CRS:1' { Bounding Box [x(1, 1)] } INFO [12:39:50] CrsUtil@1215: EPSG(0):4326/EPSG(0):27700 comparison is cached: *no* need to ask SECORE. INFO [12:39:50] CrsUtil@1215: EPSG(0):4326/EPSG(0):27700 comparison is cached: *no* need to ask SECORE. INFO [12:39:50] CrsUtil@1215: OGC(0):Index2D/EPSG(0):27700 comparison is cached: *no* need to ask SECORE. DEBUG [12:39:50] CrsUtil@1123: http://www.opengis.net/def/crs/EPSG/0/27700 CRS is already decoded in cache. INFO [12:39:50] CrsUtil@159: http://www.opengis.net/def/crs/EPSG/0/27700 definition is already in cache: do not need to fetch GML definition. INFO [12:39:50] CrsUtil@1215: EPSG(0):4326/EPSG(0):27700 comparison is cached: *no* need to ask SECORE. INFO [12:39:50] CrsUtil@1215: EPSG(0):4326/EPSG(0):27700 comparison is cached: *no* need to ask SECORE. INFO [12:39:50] CrsUtil@1215: OGC(0):Index2D/EPSG(0):27700 comparison is cached: *no* need to ask SECORE. DEBUG [12:39:50] DimensionIntervalElement@234: [Transformed] requested subsettingCrs is 'http://www.opengis.net/def/crs/EPSG/0/27700', should match now nat$ TRACE [12:39:50] TrimCoverageExpr@92: Number of dimensions: 2 TRACE [12:39:50] TrimCoverageExpr@102: Axis list count: 2 TRACE [12:39:50] TrimCoverageExpr@114: Axis ID: 0 TRACE [12:39:50] TrimCoverageExpr@115: Axis name: E TRACE [12:39:50] TrimCoverageExpr@122: axis: Getting coordinates. TRACE [12:39:50] TrimCoverageExpr@128: axis coords: -60000:-58000 ERROR [12:39:50] ScalarExpr@148: Invalid coverage Expression, next node: trim ERROR [12:39:50] ScaleCoverageExpr@124: Unknown node for ScaleCoverageExpr expression: trim ERROR [12:39:50] PetascopeInterface@461: Error stack trace: InvalidMetadata: Unknown node for ScaleCoverageExpr expression: trim at petascope.PetascopeInterface.handleProcessCoverages(PetascopeInterface.java:725) at petascope.PetascopeInterface.doGet(PetascopeInterface.java:379) at petascope.PetascopeInterface.doPost(PetascopeInterface.java:232) at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Thread.java:701) Caused by: InvalidMetadata: Unknown node for ScaleCoverageExpr expression: trim at petascope.wcps.server.core.ScaleCoverageExpr.<init>(ScaleCoverageExpr.java:125) at petascope.wcps.server.core.CoverageExpr.<init>(CoverageExpr.java:92) at petascope.wcps.server.core.EncodeDataExpr.<init>(EncodeDataExpr.java:77) at petascope.wcps.server.core.XmlQuery.startParsing(XmlQuery.java:120) at petascope.wcps.server.core.ProcessCoveragesRequest.<init>(ProcessCoveragesRequest.java:102) at petascope.wcps.server.core.Wcps.pcPrepare(Wcps.java:118) at petascope.wcps.server.core.Wcps.pcPrepare(Wcps.java:112) at petascope.PetascopeInterface.handleProcessCoverages(PetascopeInterface.java:671) ... 16 more DEBUG [12:39:50] PetascopeInterface@513: Done marshalling Error Report.
Attachments (1)
Change History (10)
comment:1 by , 11 years ago
Component: | undecided → petascope |
---|---|
Owner: | changed from | to
Status: | new → assigned |
comment:2 by , 11 years ago
comment:3 by , 11 years ago
The pga_cir coverage is a digital orthophoto colour infra-red aerial photography mosaic, covering most of the UK.
DescribeCoverage output for the pga_cir coverage (NEW SERVICE) is below:
<?xml version="1.0" encoding="UTF-8"?> <wcs:CoverageDescriptions xsi:schemaLocation="http://www.opengis.net/wcs/2.0 http://schemas.opengis.net/wcs/2.0/wcsAll.xsd" xmlns:wcs="http://www.opengis.net/wcs/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:crs="http://www.opengis.net/wcs/service-extension/crs/1.0" xmlns:ows="http://www.opengis.net/ows/2.0" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:xlink="http://www.w3.org/1999/xlink"> <wcs:CoverageDescription gml:id="pga_cir" xmlns="http://www.opengis.net/gml/3.2" xmlns:gmlcov="http://www.opengis.net/gmlcov/1.0" xmlns:swe="http://www.opengis.net/swe/2.0"> <boundedBy> <Envelope srsName="http://www.opengis.net/def/crs/EPSG/0/27700" axisLabels="E N" uomLabels="metre metre" srsDimension="2"> <lowerCorner>82000 5000</lowerCorner> <upperCorner>656000 1221000</upperCorner> </Envelope> </boundedBy> <wcs:CoverageId>pga_cir</wcs:CoverageId> <domainSet> <RectifiedGrid dimension="2" gml:id="pga_cir-grid"> <limits> <GridEnvelope> <low>-356000 -1260000</low> <high>791999 1171999</high> </GridEnvelope> </limits> <axisLabels>E N</axisLabels> <origin> <Point gml:id="pga_cir-origin" srsName="http://www.opengis.net/def/crs/EPSG/0/27700" axisLabels="E N" uomLabels="metre metre" srsDimension="2"> <pos>82000.25 1220999.75</pos> </Point> </origin> <offsetVector srsName="http://www.opengis.net/def/crs/EPSG/0/27700" axisLabels="E N" uomLabels="metre metre" srsDimension="2">0.5 0</offsetVector> <offsetVector srsName="http://www.opengis.net/def/crs/EPSG/0/27700" axisLabels="E N" uomLabels="metre metre" srsDimension="2">0 -0.5</offsetVector> </RectifiedGrid> </domainSet> <gmlcov:rangeType> <swe:DataRecord> <swe:field name="b1"> <swe:Quantity> <swe:label>pixel_value</swe:label> <swe:uom code="undefined"/> </swe:Quantity> </swe:field> <swe:field name="b2"> <swe:Quantity> <swe:label>pixel_value</swe:label> <swe:uom code="undefined"/> </swe:Quantity> </swe:field> <swe:field name="b3"> <swe:Quantity> <swe:label>pixel_value</swe:label> <swe:uom code="undefined"/> </swe:Quantity> </swe:field> </swe:DataRecord> </gmlcov:rangeType> <wcs:ServiceParameters> <wcs:CoverageSubtype>RectifiedGridCoverage</wcs:CoverageSubtype> <CoverageSubtypeParent xmlns="http://www.opengis.net/wcs/2.0"> <CoverageSubtype>AbstractDiscreteCoverage</CoverageSubtype> <CoverageSubtypeParent> <CoverageSubtype>AbstractCoverage</CoverageSubtype> </CoverageSubtypeParent> </CoverageSubtypeParent> <wcs:nativeFormat>application/octet-stream</wcs:nativeFormat> </wcs:ServiceParameters> </wcs:CoverageDescription> </wcs:CoverageDescriptions>
comment:4 by , 11 years ago
The coverage was loaded as a series of small image tiles (1 sq km) using rasimport. The image tiles do not cover the whole domain.
by , 11 years ago
Attachment: | cir-coverage-some-of-the-holes2.png added |
---|
holes in the pga-cir coverage
comment:5 by , 11 years ago
Looking at the comparable WCS requests for the same extents causing an error in rasdaman 9 WCPS query…
OLD service gives an image:
http://.../petascope?service=WCS&Request=GetCoverage&version=2.0.0&CoverageId=pga_cir&format=image/tiff&subset=x(230000,231000)&subset=y(710000,711000)&
NEW service gives an error:
http://.../rasdaman/ows?service=WCS&Request=GetCoverage&version=2.0.1&CoverageId=pga_cir&format=image/tiff&subset=E(230000,231000)&subset=N(710000,711000)&
<ows:ExceptionReport version="2.0.0" xsd:schemaLocation="http://www.opengis.net/ows/2.0 http://schemas.opengis.net/ows/2.0/owsExceptionReport.xsd" xmlns:ows="http://www.opengis.net/ows/2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink"> <ows:Exception exceptionCode="WcpsError"> <ows:ExceptionText> Error converting WCPS query to rasql query: Invalid coverage Expression, next node: trim - Unknown node for TrimCoverage expression: trim[Invalid coverage Expression, next node: trim - Invalid cell domain element: lower bound -60000 cannot be larger than upper bound -58000] </ows:ExceptionText> </ows:Exception> </ows:ExceptionReport>
Which is an odd error because -60000 is not larger than -58000 in a CRS
comment:6 by , 11 years ago
Hi James,
that's bad.. you are probably hit by the bad critical bug #686, whose fix is included in v9.0.1. Are you running v9.0.0?
comment:7 by , 11 years ago
We are indeed using v9.0.0 so we'll try v9.0.1. (I had thought the v9.0.1 fixes were just to do with upgrading from older v8 installations).
comment:8 by , 11 years ago
I confirm that upgrading to v9.0.1 has fixed the errors in the queries above. So this ticket can be closed. (The 0,0,0 pixels appearing white instead of black seems to be the separate issue #741 of v9+ always setting these to transparent rather than using any explicit nodata parameter set in the WCPS query. That's not a problem in this case.)
comment:9 by , 11 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Hi James,
thanks for the comprehensive report.
Regarding the transparency and black/white differences, I know there is some (currently unilateral) discussion going on, thanks to the (great) post by Marcus.
Regarding the error: I cannot reproduce it… I can successfully run:
Which kind of coverage is
pga_cir
?