Reproject, Resample, or Subset?


#1

Hi,

I’m trying to generate a GPT workflow. I don’t have a complete functioning GPT file yet, so I’m posting here and not in the GPT sub-forum. Please let me know if you’d like to see GPT questions in the sub-forum or only mature workflows.

I’m trying to reproject a Sentinel 3 scene to a specific projection, subset, and resolution. Specifically, I am trying to match this description;

Map Projection: Sinusoidal
Map Reference Latitude: 0
Map Reference Longitude: 0
Map Equatorial Radius: 6371007.181 ;wgs84 meters
Map Origin X: -3335851.559000007
Map Origin Y: 10007554.676999498
Grid Map Origin Column: -0.5
Grid Map Origin Row: -0.5
Grid Map Units per cell: 500
Grid Width: 7200
Grid Height: 7200

I’ve determined that the “Sinusoidal” refers to the MODIS global sinusoidal grid (see image here: https://nsidc.org/data/docs/daac/mod10_modis_snow/landgrid.html ) and I’m looking at Greenland which is under Tiles h15v00 through h17v02.

I can re-project to the MODIS Sinusoidal grid and downsample to 500 m resolution with a GPT element of:

   <node id="Reproject">
     <operator>Reproject</operator>
     <sources>
       <source>BandSelect</source>
     </sources>
     <parameters>
       <crs>PROJCS["MODIS Sinusoidal",
       GEOGCS["WGS 84",
       DATUM["WGS_1984",
       SPHEROID["WGS 84",6378137,298.257223563,
       AUTHORITY["EPSG","7030"]],
       AUTHORITY["EPSG","6326"]],
       PRIMEM["Greenwich",0,
       AUTHORITY["EPSG","8901"]],
       UNIT["degree",0.01745329251994328,
       AUTHORITY["EPSG","9122"]],
       AUTHORITY["EPSG","4326"]],
       PROJECTION["Sinusoidal"],
       PARAMETER["false_easting",0.0],
       PARAMETER["false_northing",0.0],
       PARAMETER["central_meridian",0.0],
       PARAMETER["semi_major",6371007.181],
       PARAMETER["semi_minor",6371007.181],
       UNIT["m",1.0],
       AUTHORITY["SR-ORG","6974"]]</crs>
       <resampling>Nearest</resampling>
       <orthorectify>false</orthorectify>
       <noDataValue>NaN</noDataValue>
       <includeTiePointGrids>false</includeTiePointGrids>
       <addDeltaBands>false</addDeltaBands>
       <pixelSizeX>500.0</pixelSizeX>
       <pixelSizeY>500.0</pixelSizeY>
     </parameters>
   </node>

What I’m now having trouble with is how to shift this to the exact offsets and trim to 7200 x 7200 pixels. Do I set -pnorthing to Map Origin Y? And same for easting and X?. And use the Reproject operator width and height? Or should this be done in separate GPT operators such as Resample and Subset?

Thanks,

-k.


#2

You’re right you need to set the referencePixelX/Y with map values.
I’ve chosen slightly different values especially for Y, the northing.
With the value, you have provided, the map past the pole and the reprojection module couldn’t handle this.
I’ve attached the parameters I’ve used.
greenland_sinusoidal_params.xml (1.6 KB)

That’s how the result looks like: