Split outside segment region

Hi everyone,

I am currently applying the following simple graph to some S3 SLSTR LST data:

<graph id="S3">
  <version>1.0</version>

  <node id="Read_SLSTR">
    <operator>Read</operator>
    <parameters>
      <file>${SLSTRsource}/xfdumanifest.xml</file>
      <formatName>Sen3</formatName>
    </parameters>
  </node>

  <node id="Reproject_SLSTR">
    <operator>Reproject</operator>
    <sources>
      <source>Read_SLSTR</source>
    </sources>
    <parameters>
      <crs>EPSG:4326</crs>
      <resampling>Nearest</resampling>
      <noDataValue>NaN</noDataValue>
      <includeTiePointGrids>true</includeTiePointGrids>
    </parameters>
  </node>

  <node id="Subset_01">
    <operator>Subset</operator>
    <sources>
      <source>Reproject_SLSTR</source>
    </sources>
    <parameters>
      <sourceBands>LST</sourceBands>
    </parameters>
  </node>

  <node id="Write_01">
    <operator>Write</operator>
    <sources><sourceProduct>Subset_01</sourceProduct></sources>
    <parameters><file>${targetFolder}/test.tif</file><formatName>GeoTIFF</formatName></parameters>
  </node>

</graph>

but get the following error log applying it to e.g. S3A_SL_2_LST____20220320T015843_20220320T020143_20220321T180339_0179_083_160_1440_LN2_O_NT_004.SEN3:

java.lang.IllegalArgumentException: attempt to split outside segment region
        at org.esa.snap.core.dataio.geocoding.inverse.Segment.split_x(Segment.java:77)
        at org.esa.snap.core.dataio.geocoding.inverse.PixelQuadTreeInverse.splitAtAntiMeridian(PixelQuadTreeInverse.java:430)
        at org.esa.snap.core.dataio.geocoding.inverse.PixelQuadTreeInverse.calculateSegmentation(PixelQuadTreeInverse.java:264)
        at org.esa.snap.core.dataio.geocoding.inverse.PixelQuadTreeInverse.calculateSegmentation(PixelQuadTreeInverse.java:279)
        at org.esa.snap.core.dataio.geocoding.inverse.PixelQuadTreeInverse.calculateSegmentation(PixelQuadTreeInverse.java:278)
        at org.esa.snap.core.dataio.geocoding.inverse.PixelQuadTreeInverse.calculateSegmentation(PixelQuadTreeInverse.java:279)
        at org.esa.snap.core.dataio.geocoding.inverse.PixelQuadTreeInverse.calculateSegmentation(PixelQuadTreeInverse.java:278)
        at org.esa.snap.core.dataio.geocoding.inverse.PixelQuadTreeInverse.calculateSegmentation(PixelQuadTreeInverse.java:278)
        at org.esa.snap.core.dataio.geocoding.inverse.PixelQuadTreeInverse.calculateSegmentation(PixelQuadTreeInverse.java:278)
        at org.esa.snap.core.dataio.geocoding.inverse.PixelQuadTreeInverse.calculateSegmentation(PixelQuadTreeInverse.java:278)
        at org.esa.snap.core.dataio.geocoding.inverse.PixelQuadTreeInverse.calculateSegmentation(PixelQuadTreeInverse.java:238)
        at org.esa.snap.core.dataio.geocoding.inverse.PixelQuadTreeInverse.initialize(PixelQuadTreeInverse.java:532)
        at org.esa.snap.core.dataio.geocoding.ComponentGeoCoding.initialize(ComponentGeoCoding.java:293)
        at org.esa.s3tbx.dataio.s3.slstr.SlstrLstProductFactory.setPixelGeoCoding(SlstrLstProductFactory.java:109)
        at org.esa.s3tbx.dataio.s3.slstr.SlstrLstProductFactory.setGeoCoding(SlstrLstProductFactory.java:84)
        at org.esa.s3tbx.dataio.s3.AbstractProductFactory.createProduct(AbstractProductFactory.java:132)
        at org.esa.s3tbx.dataio.s3.Sentinel3ProductReader.createProduct(Sentinel3ProductReader.java:102)
        at org.esa.s3tbx.dataio.s3.Sentinel3ProductReader.readProductNodesImpl(Sentinel3ProductReader.java:90)
        at org.esa.snap.core.dataio.AbstractProductReader.readProductNodes(AbstractProductReader.java:178)
        at org.esa.snap.core.gpf.common.ReadOp.initialize(ReadOp.java:168)
        at org.esa.snap.core.gpf.internal.OperatorContext.initializeOperator(OperatorContext.java:528)
        at org.esa.snap.core.gpf.internal.OperatorContext.getTargetProduct(OperatorContext.java:298)
        at org.esa.snap.core.gpf.Operator.getTargetProduct(Operator.java:385)
        at org.esa.snap.core.gpf.graph.NodeContext.initTargetProduct(NodeContext.java:77)
        at org.esa.snap.core.gpf.graph.GraphContext.initNodeContext(GraphContext.java:199)
        at org.esa.snap.core.gpf.graph.GraphContext.initNodeContext(GraphContext.java:182)
        at org.esa.snap.core.gpf.graph.GraphContext.initNodeContext(GraphContext.java:182)
        at org.esa.snap.core.gpf.graph.GraphContext.initNodeContext(GraphContext.java:182)
        at org.esa.snap.core.gpf.graph.GraphContext.initOutput(GraphContext.java:166)
        at org.esa.snap.core.gpf.graph.GraphContext.<init>(GraphContext.java:85)
        at org.esa.snap.core.gpf.graph.GraphContext.<init>(GraphContext.java:58)
        at org.esa.snap.core.gpf.graph.GraphProcessor.executeGraph(GraphProcessor.java:118)
        at org.esa.snap.core.gpf.main.DefaultCommandLineContext.executeGraph(DefaultCommandLineContext.java:86)
        at org.esa.snap.core.gpf.main.CommandLineTool.executeGraph(CommandLineTool.java:547)
        at org.esa.snap.core.gpf.main.CommandLineTool.runGraph(CommandLineTool.java:391)
        at org.esa.snap.core.gpf.main.CommandLineTool.runGraphOrOperator(CommandLineTool.java:287)
        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:60)
        at org.esa.snap.core.gpf.main.GPT.main(GPT.java:37)
        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:84)
        at com.install4j.runtime.launcher.UnixLauncher.start(UnixLauncher.java:66)
        at install4j.org.esa.snap.runtime.Launcher_gpt.main(Unknown Source)

Error: attempt to split outside segment region

the error message is clear, but I somehow don’t manage to backtrack it… Any help would be much appreciated!

I work with:

SNAP Release version 8.0
Java version: 1.8.0_242

Thank you a lot in advance,
Adrien

I am not sure this will change the error message, since you are subsetting by band and not by AOI , but if I were you, I would try to reproject after the subset.

1 Like

Hi @abruescas ! Thank you a lot for your message! But unfortunately it indeed didn’t solve the issue…!

Hi @marpet! Any idea on that issue by any chance? Have you seen this Error: attempt to split outside segment region before? Any help on that would be very useful, thank you a lot in advance!

This message is related to the pole. If the pole is contained in the data, the geo-coding has difficulties with it.
But I think this has been fixed for the upcoming SNAP release.
I’ll try to verify this in the coming days. I’m downloading it right now.
But I wonder if it is a reasonable LST product when checking it on SciHub,

1 Like

Thank you a lot for your help @marpet!

But I think this has been fixed for the upcoming SNAP release.

Very nice news!

But I wonder if it is a reasonable LST product when checking it on SciHub,

No indeed it doesn’t have any valid LST data because it is completely over the ocean, that happens because I do a bulk processing of a lot of scenes, some without land at all.

HI @AdrienWehrle
I’m sorry. I forgot to reply to you but was not reminded by another post where the user has the same issue.
In the dev-version of SNAP9 it works. So, not long anymore and you can use the data too.