Ticket #163 (closed defect: fixed)

Opened 20 months ago

Last modified 20 months ago

BoundingBoxData xml parser fails during the

Reported by: rdirienzo Owned by:
Priority: blocker Milestone:
Component: zoo-kernel Version: 1.6.0-rc1
Keywords: BoundingBoxData xmp parser Cc:

Description (last modified by djay) (diff)

During the parsing request, Zoo-kernel fails on "BoundingBoxData" In the example attached the XML

 <wps:Input>
            <ows:Identifier>SubsetBoundingBox</ows:Identifier>
            <wps:Data>
                <wps:BoundingBoxData ows:crs="urn:ogc:def:crs:EPSG:6.6:4326" ows:dimensions="2">
                    <ows:LowerCorner>12.513 41.87</ows:LowerCorner>
                    <ows:UpperCorner>14.996 43.333</ows:UpperCorner>
                </wps:BoundingBoxData>
            </wps:Data>
        </wps:Input>

Has been parsed:


MAP => [SubsetBoundingBox]
 * CONTENT [SubsetBoundingBox]
encoding: utf-8
value:



minOccurs: 1
maxOccurs: 1
CRS: urn:ogc:def:crs:EPSG:6.6:4326

POST XML:

<wps:Execute version="1.0.0" service="WPS" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://www.opengis.net/wps/1.0.0" 
    xmlns:wfs="http://www.opengis.net/wfs" 
    xmlns:wps="http://www.opengis.net/wps/1.0.0" 
    xmlns:ows="http://www.opengis.net/ows/1.1" 
    xmlns:gml="http://www.opengis.net/gml" 
    xmlns:ogc="http://www.opengis.net/ogc" 
    xmlns:wcs="http://www.opengis.net/wcs/1.1.1" 
    xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="http://www.opengis.net/wps/1.0.0 http://schemas.opengis.net/wps/1.0.0/wpsAll.xsd">
    <ows:Identifier>geohazards_tep_dcs_rss_snap_s1_insar_snap_s1_ifg_overall_1_2</ows:Identifier>
    <wps:DataInputs>
        <wps:Input>
            <ows:Identifier>master</ows:Identifier>
            <wps:Data>
                <wps:LiteralData>
                    <![CDATA[https://catalog.terradue.com/sentinel1/search?format=json&uid=S1A_IW_SLC__1SDV_20160821T051116_20160821T051143_012694_013F33_53E5]]>
                </wps:LiteralData>
            </wps:Data>
        </wps:Input>
        <wps:Input>
            <ows:Identifier>slave</ows:Identifier>
            <wps:Data>
                <wps:LiteralData>
                    <![CDATA[https://catalog.terradue.com/sentinel1/search?format=json&uid=S1A_IW_SLC__1SDV_20160902T051117_20160902T051144_012869_014526_DFB4]]>
                </wps:LiteralData>
            </wps:Data>
        </wps:Input>
        <wps:Input>
            <ows:Identifier>polarisation</ows:Identifier>
            <wps:Data>
                <wps:LiteralData>
                    <![CDATA[VV]]>
                </wps:LiteralData>
            </wps:Data>
        </wps:Input>
        <wps:Input>
            <ows:Identifier>orbittype</ows:Identifier>
            <wps:Data>
                <wps:LiteralData>
                    <![CDATA[Sentinel Restituted (Auto Download)]]>
                </wps:LiteralData>
            </wps:Data>
        </wps:Input>
        <wps:Input>
            <ows:Identifier>cohWinAz</ows:Identifier>
            <wps:Data>
                <wps:LiteralData>
                    <![CDATA[6]]>
                </wps:LiteralData>
            </wps:Data>
        </wps:Input>
        <wps:Input>
            <ows:Identifier>cohWinRg</ows:Identifier>
            <wps:Data>
                <wps:LiteralData>
                    <![CDATA[20]]>
                </wps:LiteralData>
            </wps:Data>
        </wps:Input>
        <wps:Input>
            <ows:Identifier>demtype</ows:Identifier>
            <wps:Data>
                <wps:LiteralData>
                    <![CDATA[SRTM 3Sec]]>
                </wps:LiteralData>
            </wps:Data>
        </wps:Input>
        <wps:Input>
            <ows:Identifier>performPhaseFiltering</ows:Identifier>
            <wps:Data>
                <wps:LiteralData>
                    <![CDATA[true]]>
                </wps:LiteralData>
            </wps:Data>
        </wps:Input>
        <wps:Input>
            <ows:Identifier>nAzLooks</ows:Identifier>
            <wps:Data>
                <wps:LiteralData>
                    <![CDATA[1]]>
                </wps:LiteralData>
            </wps:Data>
        </wps:Input>
        <wps:Input>
            <ows:Identifier>nRgLooks</ows:Identifier>
            <wps:Data>
                <wps:LiteralData>
                    <![CDATA[4]]>
                </wps:LiteralData>
            </wps:Data>
        </wps:Input>
        <wps:Input>
            <ows:Identifier>performPhaseUnwrapping</ows:Identifier>
            <wps:Data>
                <wps:LiteralData>
                    <![CDATA[true]]>
                </wps:LiteralData>
            </wps:Data>
        </wps:Input>
        <wps:Input>
            <ows:Identifier>SubsetBoundingBox</ows:Identifier>
            <wps:Data>
                <wps:BoundingBoxData ows:crs="urn:ogc:def:crs:EPSG:6.6:4326" ows:dimensions="2">
                    <ows:LowerCorner>12.513 41.87</ows:LowerCorner>
                    <ows:UpperCorner>14.996 43.333</ows:UpperCorner>
                </wps:BoundingBoxData>
            </wps:Data>
        </wps:Input>
        <wps:Input>
            <ows:Identifier>pixelSpacingInMeter</ows:Identifier>
            <wps:Data>
                <wps:LiteralData>
                    <![CDATA[15.0]]>
                </wps:LiteralData>
            </wps:Data>
        </wps:Input>
        <wps:Input>
            <ows:Identifier>_T2Username</ows:Identifier>
            <wps:Data>
                <wps:LiteralData>
                    <![CDATA[eboissier]]>
                </wps:LiteralData>
            </wps:Data>
        </wps:Input>
    </wps:DataInputs>
    <wps:ResponseForm>
        <wps:ResponseDocument storeExecuteResponse="true" status="true">
            <wps:Output mimeType="application/opensearchdescription+xml">
                <ows:Identifier>result_osd</ows:Identifier>
            </wps:Output>
        </wps:ResponseDocument>
    </wps:ResponseForm>
</wps:Execute>

Zoo params map dump:

[rdirienzo@0cbcb8659202 zoo-bin]$ ./zoo_loader.cgi < /Projects/work/request.xml
MAP => [master]
 * CONTENT [master]
encoding: utf-8
value: https://catalog.terradue.com/sentinel1/search?format=json&uid=S1A_IW_SLC__1SDV_20160821T051116_20160821T051143_012694_013F33_53E5
minOccurs: 1
maxOccurs: 1
dataType: string
inRequest: true
 * CHILD [master]
MAP => [slave]
 * CONTENT [slave]
encoding: utf-8
value: https://catalog.terradue.com/sentinel1/search?format=json&uid=S1A_IW_SLC__1SDV_20160902T051117_20160902T051144_012869_014526_DFB4
minOccurs: 1
maxOccurs: 1
dataType: string
inRequest: true
 * CHILD [slave]
MAP => [polarisation]
 * CONTENT [polarisation]
encoding: utf-8
value: VV
minOccurs: 1
maxOccurs: 1
dataType: string
AllowedValues: VV,VH,HH,HV
inRequest: true
 * CHILD [polarisation]
MAP => [orbittype]
 * CONTENT [orbittype]
encoding: utf-8
value: Sentinel Restituted (Auto Download)
minOccurs: 1
maxOccurs: 1
dataType: string
AllowedValues: Sentinel Precise (Auto Download),Sentinel Restituted (Auto Download)
inRequest: true
 * CHILD [orbittype]
MAP => [cohWinAz]
 * CONTENT [cohWinAz]
encoding: utf-8
value: 6
minOccurs: 1
maxOccurs: 1
dataType: string
inRequest: true
 * CHILD [cohWinAz]
MAP => [cohWinRg]
 * CONTENT [cohWinRg]
encoding: utf-8
value: 20
minOccurs: 1
maxOccurs: 1
dataType: string
inRequest: true
 * CHILD [cohWinRg]
MAP => [demtype]
 * CONTENT [demtype]
encoding: utf-8
value: SRTM 3Sec
minOccurs: 1
maxOccurs: 1
dataType: string
AllowedValues: SRTM 3Sec
inRequest: true
 * CHILD [demtype]
MAP => [performPhaseFiltering]
 * CONTENT [performPhaseFiltering]
encoding: utf-8
value: true
minOccurs: 1
maxOccurs: 1
dataType: string
AllowedValues: true,false
inRequest: true
 * CHILD [performPhaseFiltering]
MAP => [nAzLooks]
 * CONTENT [nAzLooks]
encoding: utf-8
value: 1
minOccurs: 1
maxOccurs: 1
dataType: string
inRequest: true
 * CHILD [nAzLooks]
MAP => [nRgLooks]
 * CONTENT [nRgLooks]
encoding: utf-8
value: 4
minOccurs: 1
maxOccurs: 1
dataType: string
inRequest: true
 * CHILD [nRgLooks]
MAP => [performPhaseUnwrapping]
 * CONTENT [performPhaseUnwrapping]
encoding: utf-8
value: true
minOccurs: 1
maxOccurs: 1
dataType: string
AllowedValues: true,false
inRequest: true
 * CHILD [performPhaseUnwrapping]
MAP => [SubsetBoundingBox]
 * CONTENT [SubsetBoundingBox]
encoding: utf-8
value:



minOccurs: 1
maxOccurs: 1
CRS: urn:ogc:def:crs:EPSG:6.6:4326
inRequest: true
 * CHILD [SubsetBoundingBox]
MAP => [pixelSpacingInMeter]
 * CONTENT [pixelSpacingInMeter]
encoding: utf-8
value: 15.0
minOccurs: 1
maxOccurs: 1
dataType: string
inRequest: true
 * CHILD [pixelSpacingInMeter]
MAP => [_T2Username]
 * CONTENT [_T2Username]
encoding: utf-8
value: eboissier
minOccurs: 1
maxOccurs: 1
dataType: string
inRequest: true
 * CHILD [_T2Username]
X-Powered-By: ZOO@ZOO-Project
Content-Type: text/xml; charset=UTF-8
Status: 200 OK

Zoo cfg file:

[geohazards_tep_dcs_rss_snap_s1_insar_snap_s1_ifg_overall_1_2]
	Title = SNAP Sentinel-1 IW SLC Interferogram and Displacements
	Abstract = This service provides the interferometric processor for the Sentinel-1 TOPSAR IW data performed through SNAP. SNAP is a common architecture for all Sentinel Toolboxes, which is ideal for Earth Observation processing and analysis. WARNING: the TIFF output products will be automatically deleted after 2 weeks; this does not apply to results published on Zenodo.
	processVersion = 1.2
	storeSupported = true
	statusSupported = true
	serviceType = C
	serviceProvider = geohazards_tep_dcs_rss_snap_s1_insar_snap_s1_ifg_overall_1_2.zo
<DataInputs>
	[master]
	Title = Master product reference
	Abstract = Define the master product reference to be processed with SNAP
	minOccurs = 1
	maxOccurs = 1
	<LiteralData>
		dataType = string
		<Default>
		</Default>
	</LiteralData>
</DataInputs>
<DataInputs>
	[slave]
	Title = Slave product reference
	Abstract = Define the slave product reference to be processed with SNAP
	minOccurs = 1
	maxOccurs = 1
	<LiteralData>
		dataType = string
		<Default>
		</Default>
	</LiteralData>
</DataInputs>
<DataInputs>
	[polarisation]
	Title = Product polarisation
	Abstract = Define the product polarisation
	minOccurs = 1
	maxOccurs = 1
	<LiteralData>
		dataType = string
		AllowedValues = VV,VH,HH,HV
		<Default>
			value = VV
		</Default>
	</LiteralData>
</DataInputs>
<DataInputs>
	[orbittype]
	Title = Orbit type
	Abstract = Define the orbit source for the Orbit Correction. NOTE: Precise orbit is available after 20 days of the data acquisition time.
	minOccurs = 1
	maxOccurs = 1
	<LiteralData>
		dataType = string
		AllowedValues = Sentinel Precise (Auto Download),Sentinel Restituted (Auto Download)
		<Default>
			value = Sentinel Restituted (Auto Download)
		</Default>
	</LiteralData>
</DataInputs>
<DataInputs>
	[cohWinAz]
	Title = Azimuth coherence window size
	Abstract = Define the coherence estimation azimuth window size for the Interferogram processing [integer number of pixels]
	minOccurs = 1
	maxOccurs = 1
	<LiteralData>
		dataType = string
		<Default>
			value = 6
		</Default>
	</LiteralData>
</DataInputs>
<DataInputs>
	[cohWinRg]
	Title = Range coherence window size
	Abstract = Define the coherence estimation range window size for the Interferogram processing [integer number of pixels]
	minOccurs = 1
	maxOccurs = 1
	<LiteralData>
		dataType = string
		<Default>
			value = 20
		</Default>
	</LiteralData>
</DataInputs>
<DataInputs>
	[demtype]
	Title = DEM type
	Abstract = Define the DEM source for the Back-Geocoding Coregistration, Topographic Phase Removal and Terrain Correction processing. NOTE: SRTM valid in the [-56 deg,+60 deg] range of latitudes.
	minOccurs = 1
	maxOccurs = 1
	<LiteralData>
		dataType = string
		AllowedValues = SRTM 3Sec
		<Default>
			value = SRTM 3Sec
		</Default>
	</LiteralData>
</DataInputs>
<DataInputs>
	[performPhaseFiltering]
	Title = Perform phase filtering
	Abstract = Select if the Goldstein phase filtering has to be performed
	minOccurs = 1
	maxOccurs = 1
	<LiteralData>
		dataType = string
		AllowedValues = true,false
		<Default>
			value = true
		</Default>
	</LiteralData>
</DataInputs>
<DataInputs>
	[nAzLooks]
	Title = Azimuth Multilook factor
	Abstract = Define the multilook factor applied for Azimuth direction in the Multilooking processing [integer]
	minOccurs = 1
	maxOccurs = 1
	<LiteralData>
		dataType = string
		<Default>
			value = 1
		</Default>
	</LiteralData>
</DataInputs>
<DataInputs>
	[nRgLooks]
	Title = Range Multilook factor
	Abstract = Define the multilook factor applied for Range direction in the Multilooking processing [integer]
	minOccurs = 1
	maxOccurs = 1
	<LiteralData>
		dataType = string
		<Default>
			value = 4
		</Default>
	</LiteralData>
</DataInputs>
<DataInputs>
	[performPhaseUnwrapping]
	Title = Perform phase unwrapping
	Abstract = Select if the phase unwrapping (through SNAPHU) has to be performed
	minOccurs = 1
	maxOccurs = 1
	<LiteralData>
		dataType = string
		AllowedValues = true,false
		<Default>
			value = false
		</Default>
	</LiteralData>
</DataInputs>
<DataInputs>
	[SubsetBoundingBox]
	Title = Subset Bounding Box for Unwrapping
	Abstract = xxxxxDefine the area of interest for the Phase Unwrapping processing [lon_min,lat_min,lon_max,lat_max]. NOTE: Area is limited to 0.25*0.25 degrees around the center.
	minOccurs = 1
	maxOccurs = 1
	<BoundingBoxData>
		<Default>
			CRS = urn:ogc:def:crs:EPSG:6.6:4326
		</Default>
		<Supported>
			CRS = urn:ogc:def:crs:EPSG:6.6:4326
		<Supported>
	</BoundingBoxData>
</DataInputs>
<DataInputs>
	[pixelSpacingInMeter]
	Title = Pixel spacing in meters
	Abstract = Define the pixel spacing for the Terrain-Correction processing [meters]
	minOccurs = 1
	maxOccurs = 1
	<LiteralData>
		dataType = string
		<Default>
			value = 15.0
		</Default>
	</LiteralData>
</DataInputs>

<DataInputs>
	[_T2Username]
	Title = User name
	Abstract = Valid username
	minOccurs = 1
	maxOccurs = 1
	<LiteralData>
		dataType = string
		<Default>
		</Default>
	</LiteralData>
</DataInputs>

<DataOutputs>
	[result_osd]
	Title = OpenSearch Description to the Results
	Abstract = OpenSearch Description to the Results
<ComplexOutput>
	<Default>
                MimeType = application/opensearchdescription+xml
	</Default>
	<Supported>
			MimeType = application/opensearchdescription+xml
	</Supported>
</ComplexOutput>
</DataOutputs>

Attachments (2)

request.xml (4.9 KB) - added by rdirienzo 20 months ago.
request.zcfg (5.3 KB) - added by rdirienzo 20 months ago.

Download all attachments as: .zip

Change History

Changed 20 months ago by rdirienzo

Changed 20 months ago by rdirienzo

  Changed 20 months ago by djay

  • status changed from new to closed
  • resolution set to fixed

The revision r866 should solve your issue. Is it possible for you to try this version?

On the other hand, I would like to ask why do you use LiteralData? rather than ComplexData? for inputs such as master and slave? Indeed, you can use the "xlink:href" attribute of the input reference node to have direct access to the value rather than having to download the input data from your service code.

  Changed 20 months ago by rdirienzo

After the first tests, the problem seems solved. Thanks for your help and celerity.

follow-up: ↓ 4   Changed 20 months ago by rdirienzo

  • status changed from closed to reopened
  • resolution fixed deleted

Hi, the patch works only when the BoundingBoxData? maxOccurs=1. With value upper 1 the Zoo's map loses the value. Input: wps:Input> <ows:Identifier>SubsetBoundingBox?</ows:Identifier> <wps:Data> <wps:BoundingBoxData dimensions="2" > <ows:LowerCorner>12.513 41.87</ows:LowerCorner> <ows:UpperCorner>14.996 43.333</ows:UpperCorner> </wps:BoundingBoxData> </wps:Data> </wps:Input> <wps:Input> <ows:Identifier>SubsetBoundingBox?</ows:Identifier> <wps:Data> <wps:BoundingBoxData dimensions="2" > <ows:LowerCorner>2.513 21.87</ows:LowerCorner> <ows:UpperCorner>74.996 13.333</ows:UpperCorner> </wps:BoundingBoxData> </wps:Data> </wps:Input>

dumpMaps(inputs): MAP => [SubsetBoundingBox?]

encoding: utf-8 size: 196 dimensions: 2 LowerCorner?: 12.513 41.87 UpperCorner?: 14.996 43.333 value: <?xml version="1.0" encoding="utf-8"?> <wps:BoundingBoxData dimensions="2"> <ows:LowerCorner>12.513 41.87</ows:LowerCorner> <ows:UpperCorner>14.996 43.333</ows:UpperCorner> </wps:BoundingBoxData>

length: 2 size_1: 195 value_1: <?xml version="1.0" encoding="utf-8"?> <wps:BoundingBoxData dimensions="2"> <ows:LowerCorner>2.513 21.87</ows:LowerCorner> <ows:UpperCorner>74.996 13.333</ows:UpperCorner> </wps:BoundingBoxData>

encoding_1: utf-8 isArray: true minOccurs: 1 maxOccurs: 5 CRS: urn:ogc:def:crs:EPSG:6.6:4326 CRS_1: urn:ogc:def:crs:EPSG:6.6:4326 inRequest: true

Are printed only the LowerCorner? and UpperCorner? of 1 input

in reply to: ↑ 3   Changed 20 months ago by djay

  • status changed from reopened to closed
  • resolution set to fixed

Replying to rdirienzo:

<wps:Input>
 <ows:Identifier>SubsetBoundingBox</ows:Identifier>
 <wps:Data>
 <wps:BoundingBoxData dimensions="2" >
 <ows:LowerCorner>12.513 41.87</ows:LowerCorner>
 <ows:UpperCorner>14.996 43.333</ows:UpperCorner>
 </wps:BoundingBoxData>
 </wps:Data>
 </wps:Input>
 <wps:Input>
 <ows:Identifier>SubsetBoundingBox</ows:Identifier>
 <wps:Data>
 <wps:BoundingBoxData dimensions="2" >
 <ows:LowerCorner>2.513 21.87</ows:LowerCorner>
 <ows:UpperCorner>74.996 13.333</ows:UpperCorner>
 </wps:BoundingBoxData>
 </wps:Data>
 </wps:Input>
dumpMaps(inputs):
 MAP => [SubsetBoundingBox]
  * CONTENT [SubsetBoundingBox]
 encoding: utf-8
 size: 196
 dimensions: 2
 LowerCorner: 12.513 41.87
 UpperCorner: 14.996 43.333
 value: <?xml version="1.0" encoding="utf-8"?>
 <wps:BoundingBoxData dimensions="2">
 <ows:LowerCorner>12.513 41.87</ows:LowerCorner>
 <ows:UpperCorner>14.996 43.333</ows:UpperCorner>
 </wps:BoundingBoxData>
 
 length: 2
 size_1: 195
 value_1: <?xml version="1.0" encoding="utf-8"?>
 <wps:BoundingBoxData dimensions="2">
 <ows:LowerCorner>2.513 21.87</ows:LowerCorner>
 <ows:UpperCorner>74.996 13.333</ows:UpperCorner>
 </wps:BoundingBoxData>
 
 encoding_1: utf-8
 isArray: true
 minOccurs: 1
 maxOccurs: 5
 CRS: urn:ogc:def:crs:EPSG:6.6:4326
 CRS_1: urn:ogc:def:crs:EPSG:6.6:4326
 inRequest: true
  * CHILD [SubsetBoundingBox]

Are printed only the LowerCorner? and UpperCorner? of 1 input

Please, can you try using the r868? It should solve the issue of missing values for the LowerCorner and UpperCorner fields.

  Changed 20 months ago by djay

  • description modified (diff)

I have updated the initial ticket's content to use a code block for an easier read.

  Changed 20 months ago by rdirienzo

The issue is solved. Thanks for your help and apology me for my ugly ticket

Note: See TracTickets for help on using tickets.

Search

Context Navigation

ZOO Sponsors

http://www.zoo-project.org/trac/chrome/site/img/geolabs-logo.pnghttp://www.zoo-project.org/trac/chrome/site/img/neogeo-logo.png http://www.zoo-project.org/trac/chrome/site/img/apptech-logo.png http://www.zoo-project.org/trac/chrome/site/img/3liz-logo.png http://www.zoo-project.org/trac/chrome/site/img/gateway-logo.png

Become a sponsor !

Knowledge partners

http://www.zoo-project.org/trac/chrome/site/img/ocu-logo.png http://www.zoo-project.org/trac/chrome/site/img/gucas-logo.png http://www.zoo-project.org/trac/chrome/site/img/polimi-logo.png http://www.zoo-project.org/trac/chrome/site/img/fem-logo.png http://www.zoo-project.org/trac/chrome/site/img/supsi-logo.png http://www.zoo-project.org/trac/chrome/site/img/cumtb-logo.png

Become a knowledge partner

Related links

http://zoo-project.org/img/ogclogo.png http://zoo-project.org/img/osgeologo.png