Skip to content

EPT Pipeline fails at execute step after validation #84

Closed
@freddyAtPacify

Description

@freddyAtPacify

The following pipeline fails in native code during the call to execute. But the same pipeline works when called using pdal tool from command line.

Pipeline:

    {
        "type": "readers.stac",
        "filename": "https://usgs-lidar-stac.s3-us-west-2.amazonaws.com/ept/item_collection.json",
        "reader_args": [
            {
                "type": "readers.ept",
                "bounds": "([-71.1356958302804, -71.1354910531836], [42.4274301810906, 42.4277093379612], [0, 30])/EPSG:4326",
                "threads": "3"
            }
        ],
        "item_ids": ["MA_CentralEastern_1_2021", "MA_CentralEastern_2_2021"],
        "properties": {
            "pc:type": ["lidar","sonar"],
            "pc:encoding": "ept"
        },
        "asset_names": ["ept.json"]
    },
    {
        "type": "filters.range",
        "limits": "Classification[0:15]"
    },
    {
        "type": "writers.text",
        "format": "csv",
        "order": "X,Y,Z",
        "keep_unspecified": "false",
        "filename": "output.csv"
    } }

The result in running it from Java is the following failure in native code:

Problematic frame:

C  [libpdalcpp.16.3.0.dylib+0x2dafde]  pdal::connector::Connector::get(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) const+0x1e

Here is the stack call:

C  [libpdalcpp.16.3.0.dylib+0x2dafde]  pdal::connector::Connector::get(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) const+0x1e
C  [libpdalcpp.16.3.0.dylib+0x2db165]  pdal::connector::Connector::getJson(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) const+0x2f
C  [libpdalcpp.16.3.0.dylib+0x161e76]  pdal::EptReader::overlaps()+0x154
C  [libpdalcpp.16.3.0.dylib+0x162777]  pdal::EptReader::ready(pdal::BasePointTable&)+0x1d9
C  [libpdalcpp.16.3.0.dylib+0x291933]  pdal::Stage::execute(pdal::BasePointTable&, std::__1::set<std::__1::shared_ptr<pdal::PointView>, pdal::PointViewLess, std::__1::allocator<std::__1::shared_ptr<pdal::PointView> > >&)+0x1c1
C  [libpdalcpp.16.3.0.dylib+0x290dae]  pdal::Stage::execute(pdal::BasePointTable&)+0x2ac
C  [libpdalcpp.16.3.0.dylib+0x26fde4]  pdal::PipelineManager::execute(pdal::ExecMode)+0x9c
C  [libpdalcpp.16.3.0.dylib+0x26ff31]  pdal::PipelineManager::execute()+0xb
C  [libpdaljni.2.6.dylib+0x4e22]  libpdaljava::PipelineExecutor::execute()+0x12
C  [libpdaljni.2.6.dylib+0xafa0]  Java_io_pdal_Pipeline_execute+0x40
j  io.pdal.Pipeline.execute()V+0

I am using the following libraries:

pda_2.13-2.6.1
pdal-native-2.6.1
pdal-scala_2.13-2.6.1

The Java code intializes the pipeline and ensure that the pipeline .validate() returns true.

The same pipeline works when called from the command line as follows:
pdal pipeline --input inputFile.json
Where inputFile.json contains the pipeline above

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinghelp wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions