Translate WCS getcoverage from url-based to WPS xml-based

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Translate WCS getcoverage from url-based to WPS xml-based

gis_wild
Hi all,

I want to make wcs:GetCoverage for EPSG:3857 imagemosaic layer via WPS for 2
band geotiff with enabled time dimension. I need to make it via xml because
it is subprocess that I then pass to another WPS process.
I want to do trimming on X,Y and slicing on time dimension. I figured out
that trimming on X, Y doesnt work properly, in example provided I removed
time slicing from xml.

I am able to successfully make request using URL, example:
http://$myhost/wcs?service=WCS&version=2.0.1&request=GetCoverage&CoverageId=$mylayer&subset=time%28%222018-07-05T18%3A28%3A49Z%22%29&subset=Y%28%226624142.1205998%22%2C%226627044.61116465%22%29&subset=X%28%22-12634038.6283464%22%2C%22-12631578.4675999%22%29&subsettingcrs=http%3A//www.opengis.net/def/crs/EPSG/0/3857&format=geotiff 
 - works fast and makes what I need.

Nevertheless, when I try to make the same request with wps xml based, i have
Failed to read the coverage $mylayer
org.geotools.referencing.operation.projection.ProjectionException: Latitude
6538310°55.6'N is too close to a pole.

My XML is:
<?xml version="1.0" encoding="UTF-8"?>
<wcs:GetCoverage
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://www.opengis.net/wcs/2.0
     http://schemas.opengis.net/wcs/2.0/wcsAll.xsd"
   xmlns="http://www.opengis.net/wcs/2.0"
   xmlns:wcs="http://www.opengis.net/wcs/2.0"
   xmlns:wcscrs="http://www.opengis.net/wcs/crs/1.0"
   xmlns:geotiff="http://www.opengis.net/gmlcov/geotiff/1.0"
   service="WCS"
   version="2.0.1">
    <wcs:CoverageId>$mylayer</wcs:CoverageId>
    <wcs:trimDimension>
     <wcs:dimension>X</wcs:dimension>
     <wcs:trimLow>-12634495.04</wcs:trimLow>
     <wcs:trimHigh>-12631901.29</wcs:trimHigh>
     </wcs:trimDimension>
     <wcs:trimDimension>
     <wcs:dimension>Y</wcs:dimension>
     <wcs:trimLow>6682245.66</wcs:trimLow>
     <wcs:trimHigh>6684794.46</wcs:trimHigh>
     </wcs:trimDimension>
    <wcs:format>image/geotiff</wcs:format>
     <wcs:Extension>
       
<wcscrs:subsettingCrs>http://www.opengis.net/def/crs/EPSG/0/3857</wcscrs:subsettingCrs>
       
<wcscrs:outputCrs>http://www.opengis.net/def/crs/EPSG/0/3857</wcscrs:outputCrs>
     </wcs:Extension>
</wcs:GetCoverage>

I tried different combinations of wcscrs:subsettingCrs/wcscrs:outputCrs -
hasn't helped yet.

I understand that the issue is about axises in 3857 projection, and I read
all the posts on the forum about that. But I am still not able to make valid
WPS/XML-based request.

DescribeCoverage output:
<wcs:CoverageDescriptions xmlns:wcs="http://www.opengis.net/wcs/2.0"
xmlns:ows="http://www.opengis.net/ows/2.0"
xmlns:gml="http://www.opengis.net/gml/3.2"
xmlns:gmlcov="http://www.opengis.net/gmlcov/1.0"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:swe="http://www.opengis.net/swe/2.0"
xmlns:wcsgs="http://www.geoserver.org/wcsgs/2.0" xsi:schemaLocation="
http://www.opengis.net/wcs/2.0
http://schemas.opengis.net/wcs/2.0/wcsDescribeCoverage.xsd
http://www.geoserver.org/wcsgs/2.0
http://geoserver-771577001.eu-west-1.elb.amazonaws.com:80/schemas/wcs/2.0/wcsgs.xsd">
<wcs:CoverageDescription gml:id="mylayer">
<gml:boundedBy>
<gml:EnvelopeWithTimePeriod
srsName="http://www.opengis.net/def/crs/EPSG/0/3857" axisLabels="X Y time"
uomLabels="m m s" srsDimension="2">
<gml:lowerCorner>-1.28817255590626E7 6538670.92797535</gml:lowerCorner>
<gml:upperCorner>-1.24747668423408E7 6950077.28094544</gml:upperCorner>
<gml:beginPosition>2018-07-05T12:00:00.000Z</gml:beginPosition>
<gml:endPosition>2018-07-05T18:28:49.000Z</gml:endPosition>
</gml:EnvelopeWithTimePeriod>
</gml:boundedBy>
<wcs:CoverageId>mylayer</wcs:CoverageId>
<gml:coverageFunction>
<gml:GridFunction>
<gml:sequenceRule axisOrder="+1 +2">Linear</gml:sequenceRule>
<gml:startPoint>0 0</gml:startPoint>
</gml:GridFunction>
</gml:coverageFunction>
<gmlcov:metadata>
<gmlcov:Extension>
<wcsgs:TimeDomain default="2018-07-05T18:28:49.000Z">
<gml:TimeInstant gml:id="mylayer_td_0">
<gml:timePosition>2018-07-05T12:00:00.000Z</gml:timePosition>
</gml:TimeInstant>
<gml:TimeInstant gml:id="mylayer_td_1">
<gml:timePosition>2018-07-05T18:28:49.000Z</gml:timePosition>
</gml:TimeInstant>
</wcsgs:TimeDomain>
</gmlcov:Extension>
</gmlcov:metadata>
<gml:domainSet>
<gml:RectifiedGrid gml:id="grid00__mylayer" dimension="2">
<gml:limits>
<gml:GridEnvelope>
<gml:low>0 0</gml:low>
<gml:high>8417 8508</gml:high>
</gml:GridEnvelope>
</gml:limits>
<gml:axisLabels>i j</gml:axisLabels>
<gml:origin>
<gml:Point gml:id="p00__mylayer"
srsName="http://www.opengis.net/def/crs/EPSG/0/3857">
<gml:pos>-1.2881701387126468E7 6950053.109009308</gml:pos>
</gml:Point>
</gml:origin>
<gml:offsetVector
srsName="http://www.opengis.net/def/crs/EPSG/0/3857">48.34387226440572
0.0</gml:offsetVector>
<gml:offsetVector srsName="http://www.opengis.net/def/crs/EPSG/0/3857">0.0
-48.34387226440572</gml:offsetVector>
</gml:RectifiedGrid>
</gml:domainSet>
<gmlcov:rangeType>
<swe:DataRecord>
<swe:field name="BAND1">
<swe:Quantity>
<swe:description>BAND1</swe:description>
<swe:nilValues>
<swe:NilValues>
<swe:nilValue
reason="http://www.opengis.net/def/nil/OGC/0/unknown">0.0</swe:nilValue>
</swe:NilValues>
</swe:nilValues>
<swe:uom code="W.m-2.Sr-1"/>
<swe:constraint>
<swe:AllowedValues>
<swe:interval>0 255</swe:interval>
</swe:AllowedValues>
</swe:constraint>
</swe:Quantity>
</swe:field>
<swe:field name="BAND2">
<swe:Quantity>
<swe:description>BAND2</swe:description>
<swe:nilValues>
<swe:NilValues>
<swe:nilValue
reason="http://www.opengis.net/def/nil/OGC/0/unknown">0.0</swe:nilValue>
</swe:NilValues>
</swe:nilValues>
<swe:uom code="W.m-2.Sr-1"/>
<swe:constraint>
<swe:AllowedValues>
<swe:interval>0 255</swe:interval>
</swe:AllowedValues>
</swe:constraint>
</swe:Quantity>
</swe:field>
</swe:DataRecord>
</gmlcov:rangeType>
<wcs:ServiceParameters>
<wcs:CoverageSubtype>RectifiedGridCoverage</wcs:CoverageSubtype>
<wcs:nativeFormat>image/tiff</wcs:nativeFormat>
</wcs:ServiceParameters>
</wcs:CoverageDescription>
</wcs:CoverageDescriptions>

Thank you.




--
Sent from: http://osgeo-org.1560.x6.nabble.com/GeoServer-User-f3786390.html


_______________________________________________
Geoserver-users mailing list

Please make sure you read the following two resources before posting to this list:
- Earning your support instead of buying it, but Ian Turton: http://www.ianturton.com/talks/foss4g.html#/
- The GeoServer user list posting guidelines: http://geoserver.org/comm/userlist-guidelines.html

If you want to request a feature or an improvement, also see this: https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer


[hidden email]
https://lists.sourceforge.net/lists/listinfo/geoserver-users
Reply | Threaded
Open this post in threaded view
|

Re: Translate WCS getcoverage from url-based to WPS xml-based

geowolf
Hi,
thinking out loud, if the GET request works, why not use in the WPS?
WPS Execute can do both GET and POST requests

Cheers
Andrea


On Thu, Jan 24, 2019 at 11:13 AM gis_wild <[hidden email]> wrote:
Hi all,

I want to make wcs:GetCoverage for EPSG:3857 imagemosaic layer via WPS for 2
band geotiff with enabled time dimension. I need to make it via xml because
it is subprocess that I then pass to another WPS process.
I want to do trimming on X,Y and slicing on time dimension. I figured out
that trimming on X, Y doesnt work properly, in example provided I removed
time slicing from xml.

I am able to successfully make request using URL, example:
http://$myhost/wcs?service=WCS&version=2.0.1&request=GetCoverage&CoverageId=$mylayer&subset=time%28%222018-07-05T18%3A28%3A49Z%22%29&subset=Y%28%226624142.1205998%22%2C%226627044.61116465%22%29&subset=X%28%22-12634038.6283464%22%2C%22-12631578.4675999%22%29&subsettingcrs=http%3A//www.opengis.net/def/crs/EPSG/0/3857&format=geotiff
 - works fast and makes what I need.

Nevertheless, when I try to make the same request with wps xml based, i have
Failed to read the coverage $mylayer
org.geotools.referencing.operation.projection.ProjectionException: Latitude
6538310°55.6&amp;apos;N is too close to a pole.

My XML is:
<?xml version="1.0" encoding="UTF-8"?>
<wcs:GetCoverage
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://www.opengis.net/wcs/2.0
     http://schemas.opengis.net/wcs/2.0/wcsAll.xsd"
   xmlns="http://www.opengis.net/wcs/2.0"
   xmlns:wcs="http://www.opengis.net/wcs/2.0"
   xmlns:wcscrs="http://www.opengis.net/wcs/crs/1.0"
   xmlns:geotiff="http://www.opengis.net/gmlcov/geotiff/1.0"
   service="WCS"
   version="2.0.1">
    <wcs:CoverageId>$mylayer</wcs:CoverageId>
    <wcs:trimDimension>
     <wcs:dimension>X</wcs:dimension>
     <wcs:trimLow>-12634495.04</wcs:trimLow>
     <wcs:trimHigh>-12631901.29</wcs:trimHigh>
     </wcs:trimDimension>
     <wcs:trimDimension>
     <wcs:dimension>Y</wcs:dimension>
     <wcs:trimLow>6682245.66</wcs:trimLow>
     <wcs:trimHigh>6684794.46</wcs:trimHigh>
     </wcs:trimDimension>
    <wcs:format>image/geotiff</wcs:format>
     <wcs:Extension>

<wcscrs:subsettingCrs>http://www.opengis.net/def/crs/EPSG/0/3857</wcscrs:subsettingCrs>

<wcscrs:outputCrs>http://www.opengis.net/def/crs/EPSG/0/3857</wcscrs:outputCrs>
     </wcs:Extension>
</wcs:GetCoverage>

I tried different combinations of wcscrs:subsettingCrs/wcscrs:outputCrs -
hasn't helped yet.

I understand that the issue is about axises in 3857 projection, and I read
all the posts on the forum about that. But I am still not able to make valid
WPS/XML-based request.

DescribeCoverage output:
<wcs:CoverageDescriptions xmlns:wcs="http://www.opengis.net/wcs/2.0"
xmlns:ows="http://www.opengis.net/ows/2.0"
xmlns:gml="http://www.opengis.net/gml/3.2"
xmlns:gmlcov="http://www.opengis.net/gmlcov/1.0"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:swe="http://www.opengis.net/swe/2.0"
xmlns:wcsgs="http://www.geoserver.org/wcsgs/2.0" xsi:schemaLocation="
http://www.opengis.net/wcs/2.0
http://schemas.opengis.net/wcs/2.0/wcsDescribeCoverage.xsd
http://www.geoserver.org/wcsgs/2.0
http://geoserver-771577001.eu-west-1.elb.amazonaws.com:80/schemas/wcs/2.0/wcsgs.xsd">
<wcs:CoverageDescription gml:id="mylayer">
<gml:boundedBy>
<gml:EnvelopeWithTimePeriod
srsName="http://www.opengis.net/def/crs/EPSG/0/3857" axisLabels="X Y time"
uomLabels="m m s" srsDimension="2">
<gml:lowerCorner>-1.28817255590626E7 6538670.92797535</gml:lowerCorner>
<gml:upperCorner>-1.24747668423408E7 6950077.28094544</gml:upperCorner>
<gml:beginPosition>2018-07-05T12:00:00.000Z</gml:beginPosition>
<gml:endPosition>2018-07-05T18:28:49.000Z</gml:endPosition>
</gml:EnvelopeWithTimePeriod>
</gml:boundedBy>
<wcs:CoverageId>mylayer</wcs:CoverageId>
<gml:coverageFunction>
<gml:GridFunction>
<gml:sequenceRule axisOrder="+1 +2">Linear</gml:sequenceRule>
<gml:startPoint>0 0</gml:startPoint>
</gml:GridFunction>
</gml:coverageFunction>
<gmlcov:metadata>
<gmlcov:Extension>
<wcsgs:TimeDomain default="2018-07-05T18:28:49.000Z">
<gml:TimeInstant gml:id="mylayer_td_0">
<gml:timePosition>2018-07-05T12:00:00.000Z</gml:timePosition>
</gml:TimeInstant>
<gml:TimeInstant gml:id="mylayer_td_1">
<gml:timePosition>2018-07-05T18:28:49.000Z</gml:timePosition>
</gml:TimeInstant>
</wcsgs:TimeDomain>
</gmlcov:Extension>
</gmlcov:metadata>
<gml:domainSet>
<gml:RectifiedGrid gml:id="grid00__mylayer" dimension="2">
<gml:limits>
<gml:GridEnvelope>
<gml:low>0 0</gml:low>
<gml:high>8417 8508</gml:high>
</gml:GridEnvelope>
</gml:limits>
<gml:axisLabels>i j</gml:axisLabels>
<gml:origin>
<gml:Point gml:id="p00__mylayer"
srsName="http://www.opengis.net/def/crs/EPSG/0/3857">
<gml:pos>-1.2881701387126468E7 6950053.109009308</gml:pos>
</gml:Point>
</gml:origin>
<gml:offsetVector
srsName="http://www.opengis.net/def/crs/EPSG/0/3857">48.34387226440572
0.0</gml:offsetVector>
<gml:offsetVector srsName="http://www.opengis.net/def/crs/EPSG/0/3857">0.0
-48.34387226440572</gml:offsetVector>
</gml:RectifiedGrid>
</gml:domainSet>
<gmlcov:rangeType>
<swe:DataRecord>
<swe:field name="BAND1">
<swe:Quantity>
<swe:description>BAND1</swe:description>
<swe:nilValues>
<swe:NilValues>
<swe:nilValue
reason="http://www.opengis.net/def/nil/OGC/0/unknown">0.0</swe:nilValue>
</swe:NilValues>
</swe:nilValues>
<swe:uom code="W.m-2.Sr-1"/>
<swe:constraint>
<swe:AllowedValues>
<swe:interval>0 255</swe:interval>
</swe:AllowedValues>
</swe:constraint>
</swe:Quantity>
</swe:field>
<swe:field name="BAND2">
<swe:Quantity>
<swe:description>BAND2</swe:description>
<swe:nilValues>
<swe:NilValues>
<swe:nilValue
reason="http://www.opengis.net/def/nil/OGC/0/unknown">0.0</swe:nilValue>
</swe:NilValues>
</swe:nilValues>
<swe:uom code="W.m-2.Sr-1"/>
<swe:constraint>
<swe:AllowedValues>
<swe:interval>0 255</swe:interval>
</swe:AllowedValues>
</swe:constraint>
</swe:Quantity>
</swe:field>
</swe:DataRecord>
</gmlcov:rangeType>
<wcs:ServiceParameters>
<wcs:CoverageSubtype>RectifiedGridCoverage</wcs:CoverageSubtype>
<wcs:nativeFormat>image/tiff</wcs:nativeFormat>
</wcs:ServiceParameters>
</wcs:CoverageDescription>
</wcs:CoverageDescriptions>

Thank you.




--
Sent from: http://osgeo-org.1560.x6.nabble.com/GeoServer-User-f3786390.html


_______________________________________________
Geoserver-users mailing list

Please make sure you read the following two resources before posting to this list:
- Earning your support instead of buying it, but Ian Turton: http://www.ianturton.com/talks/foss4g.html#/
- The GeoServer user list posting guidelines: http://geoserver.org/comm/userlist-guidelines.html

If you want to request a feature or an improvement, also see this: https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer


[hidden email]
https://lists.sourceforge.net/lists/listinfo/geoserver-users


--

Regards, Andrea Aime == GeoServer Professional Services from the experts! Visit http://goo.gl/it488V for more information. == Ing. Andrea Aime @geowolf Technical Lead GeoSolutions S.A.S. Via di Montramito 3/A 55054 Massarosa (LU) phone: +39 0584 962313 fax: +39 0584 1660272 mob: +39 339 8844549 http://www.geo-solutions.it http://twitter.com/geosolutions_it ------------------------------------------------------- Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se potesse darmene notizia. This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone or e-mail.



_______________________________________________
Geoserver-users mailing list

Please make sure you read the following two resources before posting to this list:
- Earning your support instead of buying it, but Ian Turton: http://www.ianturton.com/talks/foss4g.html#/
- The GeoServer user list posting guidelines: http://geoserver.org/comm/userlist-guidelines.html

If you want to request a feature or an improvement, also see this: https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer


[hidden email]
https://lists.sourceforge.net/lists/listinfo/geoserver-users
Reply | Threaded
Open this post in threaded view
|

Re: Translate WCS getcoverage from url-based to WPS xml-based

gis_wild
Hi Andrea,

I didn't know that GET works as well for WPS (via reference).

Thank you!





--
Sent from: http://osgeo-org.1560.x6.nabble.com/GeoServer-User-f3786390.html


_______________________________________________
Geoserver-users mailing list

Please make sure you read the following two resources before posting to this list:
- Earning your support instead of buying it, but Ian Turton: http://www.ianturton.com/talks/foss4g.html#/
- The GeoServer user list posting guidelines: http://geoserver.org/comm/userlist-guidelines.html

If you want to request a feature or an improvement, also see this: https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer


[hidden email]
https://lists.sourceforge.net/lists/listinfo/geoserver-users