Page 4 of 5

l2gen products

Posted: Mon Apr 27, 2020 1:09 pm America/New_York
by gnwiii
Java performance is sensitive to memory allocations.  Both the GUI and gpt.sh use the same Graph Processing Framework (GPF) libraries, so "Proper Parameters Prevent PXXX Poor Performance".  Java memory allocation is a tricky topic, but for starters, you should compare the values of the "-Xmx" option used by the SeaDAS 7 GUI from seadas.vmoptions with the value in your .  On a system used for small teaching examples:

% grep Xmx seadas.vmoptions gpt.sh
seadas.vmoptions:# -Xmx512m
seadas.vmoptions:-Xmx1024M
gpt.sh:    -Xmx1024M \


Here, the hash (#) indicates a line that has been commented out.   These can be considered starting values.   If you encounter performance problems, try doubling the values until performance is acceptable without exceeding 60% of the system memory.   If your system has minimal RAM (4GB for linux) you may need to add RAM.   Reducing the size of your level-2 files will lower memory demands for GPF processing.  

If your gpt.sh script already has the same setting as your GUI, you may be attempting to use more memory than is installed on the system.  Linux can use swapping to temporarily stores areas of memory to disk, but this is very slow.   On lower spec machines you may not be able to use the GUI and gpt.sh efficiently at the same time.   There are many tools that can be used to monitor system memory usage.   You can use the free command in a terminal window:
$ free -m
              total        used        free      shared  buff/cache   available
Mem:           6256          63        3344           0        2849        5906
Swap:          2048           0        2048


Consult the references for your distribution for GUI tools.

l2gen products

Posted: Mon Apr 27, 2020 2:13 pm America/New_York
by OB SeaDAS - knowles
In addition to possible memory allocation differences between the GUI and command line gpt run of Reprojection, the GUI run of Reprojection can be extremely fast if you choose to NOT save the target file.  In this GUI case, the target file is "virtual" and reprojection does not actually occur until a band of the target is actually viewed in the GUI, and even then reprojection only occurs in the target band being viewed, not the full file.

When running gpt, you might also choose to close the SeaDAS GUI application during the run for possible better use of the memory so as to not have 2 simultaneous instances of seadas going.

Danny

l2gen products

Posted: Mon Apr 27, 2020 4:04 pm America/New_York
by avmehta
Thanks Danny.
I am running the GUI and gpt on two different computers.
I am note sure that only rasters reprojected are the ones you view! I open an L2 file (.nc) in GUI created by l2gen on my Linux machine via a batch job, just select the file and choose raster-->reproject! There is an option to save the reprojected file that I use and I do get a 'reprojected' file with all the rasters!

Thanks.
Amita

l2gen products

Posted: Mon Apr 27, 2020 5:20 pm America/New_York
by gnwiii
Are both computers processing files on local disks or is one using files shared on a network drive?   Does one system have a rotating magentic media disk and the other a modern solid-state disk?   Perhaps the computer you use for gpt is just older and slower than the one you use for the GUI.  Even with identical hardware, newer Java versions may be faster at some operations.   Also, Java on Windows may use runtime libraries better matched to the hardware.  On linux, Java may be built to run on a wider range of hardware and miss optimizations for recent processor models.

l2gen products

Posted: Wed Apr 29, 2020 8:21 am America/New_York
by OB.DAAC-EDL - SeanBailey
The L2 file format is the same for extracts (subset) as for non-extracted data, so to the reprojecton tool they are the same.  There is no issue reprojecting  data subsetted at the L2 step.

Sean

l2gen products

Posted: Wed Apr 29, 2020 8:58 am America/New_York
by avmehta
Great! Thanks for clarifying this, Sean.
Amita

l2gen products

Posted: Wed Apr 29, 2020 11:46 am America/New_York
by OB SeaDAS - knowles
This is correct Amita.  If you save the file then the reprojection occurs for all bands.  As I mentioned, if you create a "virtual" file (not saved but just in the GUI) then the reprojection does not occur until you view the band.

thanks
Danny

l2gen products

Posted: Wed May 20, 2020 6:57 pm America/New_York
by swathy
I was trying to reproject L2 SST files downloaded from Oceacolor website. It is showing the following error. It will be great if any of you could help.
OS: Windows
Command line code:FOR %X in (I:\DINEOF\BOB\test\*.nc) DO (gpt reproject.xml -Ssource="%X" -f 'GeoTIFF' -Ptarget="I:\DINEOF\BOB\test\test2\%~nX.tif")
Error :
I:\DINEOF\BOB\test>(gpt reproject.xml -Ssource="I:\DINEOF\BOB\test\AQUA_MODIS.20
071229T071507.L2.SST.x.nc" -f 'GeoTIFF' -Ptarget="I:\DINEOF\BOB\test\test2\AQUA_
MODIS.20071229T071507.L2.SST.x.tif" )
04:11:29.614 [main] DEBUG ucar.nc2.NetcdfFile - Using IOSP ucar.nc2.iosp.hdf5.H5
iosp
04:11:29.678 [main] DEBUG ucar.nc2.NetcdfFile - Using IOSP ucar.nc2.iosp.hdf5.H5
iosp
04:11:29.712 [main] DEBUG ucar.nc2.NetcdfFile - Using IOSP ucar.nc2.iosp.hdf5.H5
iosp
04:11:29.739 [main] DEBUG ucar.nc2.NetcdfFile - Using IOSP ucar.nc2.iosp.hdf5.H5
iosp
04:11:29.759 [main] DEBUG ucar.nc2.NetcdfFile - Using IOSP ucar.nc2.iosp.hdf5.H5
iosp
04:11:29.781 [main] DEBUG ucar.nc2.NetcdfFile - Using IOSP ucar.nc2.iosp.hdf5.H5
iosp

Error: java.lang.NullPointerException

I:\DINEOF\BOB\test>(gpt reproject.xml -Ssource="I:\DINEOF\BOB\test\AQUA_MODIS.20
071230T080006.L2.SST.x.nc" -f 'GeoTIFF' -Ptarget="I:\DINEOF\BOB\test\test2\AQUA_
MODIS.20071230T080006.L2.SST.x.tif" )
04:11:31.687 [main] DEBUG ucar.nc2.NetcdfFile - Using IOSP ucar.nc2.iosp.hdf5.H5
iosp
04:11:31.752 [main] DEBUG ucar.nc2.NetcdfFile - Using IOSP ucar.nc2.iosp.hdf5.H5
iosp
04:11:31.787 [main] DEBUG ucar.nc2.NetcdfFile - Using IOSP ucar.nc2.iosp.hdf5.H5
iosp
04:11:31.814 [main] DEBUG ucar.nc2.NetcdfFile - Using IOSP ucar.nc2.iosp.hdf5.H5
iosp
04:11:31.834 [main] DEBUG ucar.nc2.NetcdfFile - Using IOSP ucar.nc2.iosp.hdf5.H5
iosp

Error: java.lang.NullPointerException

XML file used :

<graph id="ReprojectionGraph">
  <version>1.0</version>
  <node id="reprojectNode">
    <operator>Reproject</operator>
    <sources>
    <source>${source}</source>
   </sources>
    <parameters>
    <wktFile/>
    <crs>GEOGCS["WGS 84",
      DATUM["World Geodetic System 1984",
      SPHEROID["WGS 84", 6378137.0, 298.257223563, AUTHORITY["EPSG","7030"]],
      AUTHORITY["EPSG","6326"]],
      PRIMEM["Greenwich", 0.0, AUTHORITY["EPSG","8901"]],
      UNIT["degree", 0.017453292519943295],
      AXIS["Geodetic longitude", EAST],
      AXIS["Geodetic latitude", NORTH],
      AUTHORITY["EPSG","4326"]]</crs>
    <resampling>Nearest</resampling>
    <orthorectify>false</orthorectify>
    <noDataValue>NaN</noDataValue>
    <includeTiePointGrids>true</includeTiePointGrids>
    <addDeltaBands>false</addDeltaBands>
  </parameters>
  </node>
</graph>

Thanking you in advance

l2gen products

Posted: Fri May 22, 2020 11:01 am America/New_York
by OB SeaDAS - knowles
I downloaded the file (https://oceandata.sci.gsfc.nasa.gov/ob/getfile/AQUA_MODIS.20071229T071507.L2.SST.nc) and ran it on my mac with no problem.

I used your graph file and the command line I used is:
gpt reproject.xml -Ssource=AQUA_MODIS.20071229T071507.L2.SST.nc -f GeoTIFF -Ptarget=AQUA_MODIS.20071229T071507.L2.SST_reprojected.tif

I do see an "x" in your file name likely indicating an extract.  I don't believe this is the issue but to rule it out perhaps try running it on the unextracted file.

thanks
Danny

l2gen products

Posted: Fri May 22, 2020 1:17 pm America/New_York
by swathy
Hi Danny,
Thank you for your response. Unfortunately, it didn't work for me. I downloaded the file from your link and tried with your command line with the same graph file I posted earlier. However I got the following error.

I:\DINEOF\BOB\test>gpt reproject.xml -Ssource=AQUA_MODIS.20071229T071507.L2.SST.
nc -f GeoTIFF -Ptarget=AQUA_MODIS.20071229T071507.L2.SST_reprojected.tif
22:48:15.019 [main] DEBUG ucar.nc2.NetcdfFile - Using IOSP ucar.nc2.iosp.hdf5.H5
iosp

Error: null