FlhMci for OLCI


#1

Hi,

I am trying to run FlhMci using GPT with OLCI L1 data using the command line below.

gpt FlhMci -PlowerBaselineBandName=Oa12_radiance -PupperBaselineBandName=Oa10_radiance -PsignalBandName=Oa11_radiance -PslopeBandName=MCI_slope -Ssource="/home/seadas/OLCI/PRODUCT/S3A_OL_1_EFR____20170318T153045_20170318T153345_20170319T194807_0179_015_282_2160_MAR_O_NT_002.SEN3/xfdumanifest.xml" -t “test.dim”

I tried with and without the preset option Ppreset=“OLCI_L1b_MCI”

But receive the error below, can you advise what I’m missing?

INFO: org.esa.snap.core.gpf.operators.tooladapter.ToolAdapterIO: Initializing external tool adapters
SEVERE: org.esa.s2tbx.dataio.gdal.GDALInstaller: The GDAL library is available only on Windows operation system.
java.lang.IllegalArgumentException: [name] is null
at org.esa.snap.core.util.Guardian.assertNotNull(Guardian.java:67)
at org.esa.snap.core.datamodel.ProductNode.(ProductNode.java:60)
at org.esa.snap.core.datamodel.ProductNode.(ProductNode.java:49)
at org.esa.snap.core.datamodel.DataNode.(DataNode.java:50)
at org.esa.snap.core.datamodel.RasterDataNode.(RasterDataNode.java:172)
at org.esa.snap.core.datamodel.AbstractBand.(AbstractBand.java:48)
at org.esa.snap.core.datamodel.Band.(Band.java:90)
at org.esa.snap.core.datamodel.Product.addBand(Product.java:1143)
at org.esa.snap.core.gpf.pointop.PointOperator$ProductConfigurerImpl.addBand(PointOperator.java:633)
at org.esa.s3tbx.processor.flh_mci.FlhMciOp.configureTargetProduct(FlhMciOp.java:132)
at org.esa.snap.core.gpf.pointop.PointOperator.initialize(PointOperator.java:92)
at org.esa.snap.core.gpf.internal.OperatorContext.initializeOperator(OperatorContext.java:486)
at org.esa.snap.core.gpf.internal.OperatorContext.getTargetProduct(OperatorContext.java:273)
at org.esa.snap.core.gpf.Operator.getTargetProduct(Operator.java:387)
at org.esa.snap.core.gpf.main.CommandLineTool.runOperator(CommandLineTool.java:306)
at org.esa.snap.core.gpf.main.CommandLineTool.runGraphOrOperator(CommandLineTool.java:284)
at org.esa.snap.core.gpf.main.CommandLineTool.run(CommandLineTool.java:188)
at org.esa.snap.core.gpf.main.CommandLineTool.run(CommandLineTool.java:121)
at org.esa.snap.core.gpf.main.GPT.run(GPT.java:54)
at org.esa.snap.core.gpf.main.GPT.main(GPT.java:34)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.esa.snap.runtime.Launcher.lambda$run$0(Launcher.java:55)
at org.esa.snap.runtime.Engine.runClientCode(Engine.java:189)
at org.esa.snap.runtime.Launcher.run(Launcher.java:51)
at org.esa.snap.runtime.Launcher.main(Launcher.java:31)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.exe4j.runtime.LauncherEngine.launch(LauncherEngine.java:62)
at com.install4j.runtime.launcher.UnixLauncher.main(UnixLauncher.java:57)

Error: [name] is null


#2

What’s missing is the lineHeightBandName parameter. Add

-PlineHeightBandName=MCI

But the error message could definitely be better. And/or the parameter could have meaningful default value. Same for slopeBandName.


#3

ah of course, I should have noticed that. thanks! but yes I agree on the error message :slight_smile:


#4

Hopefully not another simple omission…I have FlhMci working from gpt directly but when I call an xml file that includes the flhmci using

gpt.sh “/home/seadas/OLCI/Scripts/OLCI_SubMCItoCHL.xml” -t $outfile -Ssource=$S3file

I get the error message:

Error: SPI not found for operator ‘FlhMci’

I’ve attached the .xml fileOLCI_SubMCItoCHL.xml (1.8 KB)


#5

The graph works for me. I just needed to fix the expression in the BandMaths operator.
It should be

…quality_flags_land || quality_flags_bright || quality_flags_invalid…

I see seadas in your path to the xml. Is it possible that you call the gpt of SeaDAS?


#6

yes that was it, it was calling SeaDAS gpt. thanks!