Flipped views and raster exports on western hemisphere?

Hi, I’m a fresh new user of ESA’s S1 data.
I’m trying to do some change detection over two S1 GRD datasets of 2014 and 2015 on the Brazilian Amazon (negative lat,long). My actual concern is that the images that SNAP and S1TBX display are flipped on the x axis. That is normal as I’m seeing data on ‘satellite coordinates’…so, first question: is there a way to switch to ‘world coordinates’ an image view?
Well, after giving up looking for a geographical mode of view I did all my processing. Unfortunately,when I exported the results to a tiff file, the raster was flipped (again, in the x axis) and misplaced.
Maybe I’m doing something wrong, as I am a complete newbie here. Looking at the Geocoding data (see below) I’ve noticed that the right and left latitudes are swapped…maybe that’s a clue…
Thanks for your help
J

Additional info:

This is one of the datasets i’m working on:
S1A_IW_GRDH_1SDV_20150909T092234_20150909T092304_007636_00A95E_E8D0

And this is the Geocoding text:
Center latitude 3°26’38" S
Center longitude 55°31’ W
Upper left latitude 2°46’35" S
Upper left longitude 54°12’58" W
Upper right latitude 2°17’35" S
Upper right longitude 56°25’37" W
Lower left latitude 4°35’44" S
Lower left longitude 54°36’27" W
Lower right latitude 4°06’24" S
Lower right longitude 56°49’16" W

WKT of the image CRS FITTED_CS[“Image CS based on WGS84(DD)”,
PARAM_MT[],
GEOGCS[“WGS84(DD)”,
DATUM[“WGS84”,
SPHEROID[“WGS84”, 6378137.0, 298.257223563]],
PRIMEM[“Greenwich”, 0.0],
UNIT[“degree”, 0.017453292519943295],
AXIS[“Geodetic longitude”, EAST],
AXIS[“Geodetic latitude”, NORTH]]]
WKT of the geographical CRS GEOGCS[“WGS84(DD)”,
DATUM[“WGS84”,
SPHEROID[“WGS84”, 6378137.0, 298.257223563]],
PRIMEM[“Greenwich”, 0.0],
UNIT[“degree”, 0.017453292519943295],
AXIS[“Geodetic longitude”, EAST],
AXIS[“Geodetic latitude”, NORTH]]

The product uses a tie-point based geo-coding.

Name of latitude tie-point grid latitude
Name of longitude tie-point grid longitude
Crossing 180 degree meridian false

Geographic coordinates (lat,lon) are computed from pixel coordinates (x,y)
by linear interpolation between tie points.
Pixel coordinates (x,y) are computed from geographic coordinates (lat,lon)
by polynomial approximations for 2 tile(s).

========================
Approximation for tile 1

Center latitude -3.5650706020268528 degree
Center longitude -54.96420285196015 degree
RMSE for X 0.23343038897618015 pixels
RMSE for Y 0.14407191702321942 pixels
Max. error for X 0.5253731796409249 pixels
Max. error for Y 0.3821834700393083 pixels

Approximation for tile 2

Center latitude -3.3342079040077 degree
Center longitude -56.01500839657254 degree
RMSE for X 0.27197194792120877 pixels
RMSE for Y 0.1420029368523063 pixels
Max. error for X 0.8554294598543493 pixels
Max. error for Y 0.35586737788980827 pixels

What’s the processing you applied to the product? Did you geocode with
Terrain Correction before exporting to GeoTiff?

I didn’t…should I? I will try right now. Anyway, this won’t solve the x-axis flipped image problem. I’d prefer to work with my data in a geographical reference system, rather than in pixel (satelite) coordinates. Is there any mean to swap between these two kinds of reprensetation?.

Thanks for your help
J

Yes, terrain correction aka range-Doppler geocoding are names for the transformation from radar coordinates into a map geometry representation.

I would recommend the following processing steps (these can be combined into a “Graph” and run in a single operation)

  • Calibrate (under Radar - Radiometric)
  • Range-Doppler Terrain Correction (under Radar - Geometric - Terrain Correction)
  • Linear to dB conversion (under Raster - Data Conversion)

Please study the tutorials starting from the SAR basics with Sentinel-1:

http://step.esa.int/main/doc/tutorials/sentinel-1-toolbox-tutorials/

Marcus

Ok folks, I thank you very much for your advice, next week I’ll apply your suggestions and I’ll give feedback, I’m in a field trip right now.
Marcus, any specific advice on change detection workflows for GRD images?

I would try ratio-images made from pre- and post-change acquisitions.

1 Like

I have tried this step but have issues.
There seems to be no pixel spacing information in the processing parameters.

Here’s the error log

org.esa.snap.framework.gpf.OperatorException: Terrain-Correction: Metadata radar_frequency has not been set
at org.esa.snap.gpf.OperatorUtils.catchOperatorException(OperatorUtils.java:385)
at org.esa.s1tbx.sar.gpf.geometric.RangeDopplerGeocodingOp.initialize(RangeDopplerGeocodingOp.java:318)
at org.esa.snap.framework.gpf.internal.OperatorContext.initializeOperator(OperatorContext.java:500)
at org.esa.snap.framework.gpf.internal.OperatorContext.getTargetProduct(OperatorContext.java:279)
at org.esa.snap.framework.gpf.Operator.getTargetProduct(Operator.java:350)
at org.esa.snap.framework.gpf.GPF.createProductNS(GPF.java:311)
at org.esa.snap.framework.gpf.GPF.createProduct(GPF.java:286)
at org.esa.snap.framework.gpf.GPF.createProduct(GPF.java:265)
at org.esa.snap.graphbuilder.rcp.dialogs.SingleOperatorDialog.createTargetProduct(SingleOperatorDialog.java:168)
[catch] at org.esa.snap.graphbuilder.rcp.dialogs.SingleOperatorDialog.onApply(SingleOperatorDialog.java:283)
at org.esa.snap.framework.ui.AbstractDialog.lambda$initUI$8(AbstractDialog.java:494)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:159)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

The tutorial applies to SLC data.
I assumed that GRD would already have applied this transformation.

Thanks

Jon

@carver712 what are you trying to achieve?

Simply to correct the inverted x axis to the standard geographical view

Please use the tools that are made for the task, namely ellipsoid geocoding or terrain correction (with a DEM). Consult the tutorials and the help for details.

I’ve tried both of those steps and get the above error.
I’ll download some more data and try that out, maybe there is a particular error in the metedata of this image.