Ticket #163 (closed defect: fixed) — at Version 5

Opened 6 years ago

Last modified 6 years 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>

Change History

Changed 6 years ago by rdirienzo

Changed 6 years ago by rdirienzo

  Changed 6 years 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 6 years ago by rdirienzo

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

follow-up: ↓ 4   Changed 6 years 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 6 years 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 6 years ago by djay

  • description modified (diff)

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

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