ossimlabs / ossim

Core OSSIM (Open Source Software Image Map) package including C++ code for OSSIM library, command-line applications, tests, and build system
MIT License
295 stars 142 forks source link

Incorrect elevation projection when using VRT #289

Closed vilhelmen closed 1 year ago

vilhelmen commented 1 year ago

I'm trying to integrate ASTERv3 into ossim and it appears to be projecting elevation queries incorrectly when interacting with gdal.

ossimImageElevationDatabase takes over two minutes to iterate through all the files required to locate a single point, which is unacceptable. I built a VRT without any special flags and ossim is able to read it as well in ossimImageElevationDatabase, but the results are simply wrong and only ossim seems to be having this issue:

$ ossim-info -P /aster_vrt.conf --height 27.84 -80.48
Opened cell:            /ELEV2/vrts/aster3_relative.vrt
MSL to ellipsoid delta: -27.9172229766846
Height above MSL:       9.00000002799789
Height above ellipsoid: -18.9172229486867
Geoid value:            -27.9172229766846

$ ossim-info -P /aster_dir.conf --height 27.84 -80.48
Opened cell:            /ELEV2/aster3/ASTGTMV003_N27W081_dem.tif
MSL to ellipsoid delta: -27.9172229766846
Height above MSL:       6.00000002831848
Height above ellipsoid: -21.9172229483661
Geoid value:            -27.9172229766846

$ gdallocationinfo -geoloc /ELEV2/vrts/aster3_relative.vrt -80.48 27.84
Report:
  Location: (358272P,198576L)
  Band 1:
    <LocationInfo><File>/ELEV2/vrts/../aster3/ASTGTMV003_N27W081_dem.tif</File></LocationInfo>
    Value: 6

$ gdallocationinfo -geoloc /ELEV2/aster3/ASTGTMV003_N27W081_dem.tif -80.48 27.84
Report:
  Location: (1872P,576L)
  Band 1:
    Value: 6

The full trace is pretty lengthy but the projection at the very bottom (unding rect: ( 83.000000000000014, -179.999722222222090, nan, WGE ), ( -83.000000000023419, 180.000277777828785, nan, WGE )) is clearly wrong.

VRT Lookup Trace

``` DEBUG ossimInit::initializeElevation(): Entered... DEBUG: ossimGeoidManager::loadState(), entering... ossimGeoidNgs::addFile: Adding file = /ELEVATION/geoid99/g1999u01.bin ossimGeoidNgs::addFile: Adding file = /ELEVATION/geoid99/g1999u02.bin ossimGeoidNgs::addFile: Adding file = /ELEVATION/geoid99/g1999u03.bin ossimGeoidNgs::addFile: Adding file = /ELEVATION/geoid99/g1999u04.bin ossimGeoidNgs::addFile: Adding file = /ELEVATION/geoid99/g1999u05.bin ossimGeoidNgs::addFile: Adding file = /ELEVATION/geoid99/g1999u06.bin ossimGeoidNgs::addFile: Adding file = /ELEVATION/geoid99/g1999u07.bin ossimGeoidNgs::addFile: Adding file = /ELEVATION/geoid99/g1999u08.bin ossimGeoidNgs::addFile: Adding file = /ELEVATION/geoid99/g1999a01.bin ossimGeoidNgs::addFile: Adding file = /ELEVATION/geoid99/g1999a02.bin ossimGeoidNgs::addFile: Adding file = /ELEVATION/geoid99/g1999a03.bin ossimGeoidNgs::addFile: Adding file = /ELEVATION/geoid99/g1999a04.bin ossimGeoidNgs::addFile: Adding file = /ELEVATION/geoid99/g1999h01.bin ossimGeoidNgs::addFile: Adding file = /ELEVATION/geoid99/g1999p01.bin Opened geoid grids from: /ELEVATION/geoid99 DEBUG: ossimGeoidManager::loadState() Added geoid dir: /ELEVATION/geoid99 ossimGeoidEgm96::open Entered... ossimGeoidEgm96::open Grid file:/ELEVATION/geoid96/egm96.grd Opened geoid grid: /ELEVATION/geoid96/egm96.grd DEBUG: ossimGeoidManager::loadState() Added geoid egm 96: /ELEVATION/geoid96/egm96.grd DEBUG: ossimGeoidManager::loadState(), returning... DEBUG ossimElevSource::ossimElevSource: entering... DEBUG: theComputeStatsFlag: false DEBUG ossimElevSource::ossimElevSource: returning... DEBUG ossimElevManager::loadState: Entered... DEBUG ossimElevManager::loadState: Looking for key: elevation_manager.elevation_source1 DEBUG ossimElevSource::ossimElevSource: entering... DEBUG: theComputeStatsFlag: false DEBUG ossimElevSource::ossimElevSource: returning... ossimImageElevationDatabase::loadState entered... kwl: datum_grids: /ELEVATION/nadcon5 elevation_manager.elevation_source1.filename: /ELEV2/vrts/aster3_relative.vrt elevation_manager.elevation_source1.type: image_directory elevation_manager.threads: true geoid_99_directory: /ELEVATION/geoid99 geoid_egm_96_grid: /ELEVATION/geoid96/egm96.grd ossim_threads: 4 plugin.file1: /lib/ossim/plugins/libossim_gdal_plugin.so plugin.file2: /lib/ossim/plugins/libossim_openjpeg_plugin.so plugin.file3: /lib/ossim/plugins/libossim_png_plugin.so ossimFileWalker::walk entered root=/ELEV2/vrts/aster3_relative.vrt ossimImageElevationDatabase::processFile entered... file: /ELEV2/vrts/aster3_relative.vrt ossimImageElevationDatabase::processFile file: /ELEV2/vrts/aster3_relative.vrt exited... ossimFileWalker::walk exiting... ossimImageElevationDatabase::loadState result=true DEBUG ossimElevManager::loadState: adding elevation database: ossimImageElevationDatabase: /ELEV2/vrts/aster3_relative.vrt DEBUG ossimElevSource::ossimElevSource: entering... DEBUG: theComputeStatsFlag: false DEBUG ossimElevSource::ossimElevSource: returning... ossimImageElevationDatabase::open entered... Connection string: /ELEV2/vrts/aster3_relative.vrt ossimFileWalker::walk entered root=/ELEV2/vrts/aster3_relative.vrt ossimImageElevationDatabase::processFile entered... file: /ELEV2/vrts/aster3_relative.vrt ossimImageElevationDatabase::processFile file: /ELEV2/vrts/aster3_relative.vrt exited... ossimFileWalker::walk exiting... ossimImageElevationDatabase::open result=true DEBUG ossimElevSource::ossimElevSource: entering... DEBUG: theComputeStatsFlag: false DEBUG ossimElevSource::ossimElevSource: returning... ossimImageElevationDatabase::open entered... Connection string: /ELEV2/vrts/aster3_relative.vrt ossimFileWalker::walk entered root=/ELEV2/vrts/aster3_relative.vrt ossimImageElevationDatabase::processFile entered... file: /ELEV2/vrts/aster3_relative.vrt ossimImageElevationDatabase::processFile file: /ELEV2/vrts/aster3_relative.vrt exited... ossimFileWalker::walk exiting... ossimImageElevationDatabase::open result=true DEBUG ossimElevSource::ossimElevSource: entering... DEBUG: theComputeStatsFlag: false DEBUG ossimElevSource::ossimElevSource: returning... ossimImageElevationDatabase::open entered... Connection string: /ELEV2/vrts/aster3_relative.vrt ossimFileWalker::walk entered root=/ELEV2/vrts/aster3_relative.vrt ossimImageElevationDatabase::processFile entered... file: /ELEV2/vrts/aster3_relative.vrt ossimImageElevationDatabase::processFile file: /ELEV2/vrts/aster3_relative.vrt exited... ossimFileWalker::walk exiting... ossimImageElevationDatabase::open result=true DEBUG ossimInit::initializeElevation(): leaving... ossimDynamicLibrary:71 Loaded library: /lib/ossim/plugins/libossim_gdal_plugin.so ossimImageFileWriter::ossimImageFileWriter entered... OSSIM_ID: $Id: ossimImageFileWriter.cpp 23068 2015-01-07 23:08:29Z okramer $ ossimDynamicLibrary:71 Loaded library: /lib/ossim/plugins/libossim_openjpeg_plugin.so ossimDynamicLibrary:71 Loaded library: /lib/ossim/plugins/libossim_png_plugin.so ossim preferences file: /aster_vrt.conf Version: 1.9.0 20210412 ossimInit::initialize(parser): leaving... ossimInfo::initialize(ossimArgumentParser&) entered... m_kwl: height: (27.84,-80.48,0,WGE) ossimInfo::initialize(ossimArgumentParser&) exit result = true ossimInfo::execute() entered... Map size: 1 DEBUG ossimElevSource::ossimElevSource: entering... DEBUG: theComputeStatsFlag: false DEBUG ossimElevSource::ossimElevSource: returning... ossimImageHandlerRegistry::open(file, trySuffix,openOverview): entered.......... ossimImageHandlerFactory::getImageHandlersBySuffix() -- Trying OVR... ossimImageHandlerFactory::getImageHandlersBySuffix() -- Testing TIF or TIFF... ossimImageHandlerFactory::getImageHandlersBySuffix() -- Testing NTF or NITF... ossimImageHandlerFactory::getImageHandlersBySuffix() -- Testing RPF... ossimImageHandlerFactory::getImageHandlersBySuffix() -- Testing TOC... ossimImageHandlerFactory::getImageHandlersBySuffix() -- Testing JPG or JPEG... ossimImageHandlerFactory::getImageHandlersBySuffix() -- Testing DOQ or DOQQ... ossimImageHandlerFactory::getImageHandlersBySuffix() -- Testing DTn... ossimImageHandlerFactory::getImageHandlersBySuffix() -- Testing HGT... ossimImageHandlerFactory::getImageHandlersBySuffix() -- Testing HRI,HSI... ossimImageHandlerFactory::getImageHandlersBySuffix() -- Testing DEM... ossimImageHandlerFactory::getImageHandlersBySuffix() -- Testing FST... ossimImageHandlerFactory::getImageHandlersBySuffix() -- Testing RAS or RAW or General Raster... ossimImageHandlerFactory::getImageHandlersBySuffix() -- Testing IMG... ossimImageHandlerFactory::getImageHandlersBySuffix() -- Testing CCF... ossimImageHandlerFactory::getImageHandlersBySuffix() -- Testing TIL... ossimImageHandlerFactory::getImageHandlersBySuffix() -- Testing MASK... ossimImageHandlerFactory::getImageHandlersBySuffix() -- Testing TXT... ossimImageHandlerFactory::getImageHandlersBySuffix() -- Testing CSV... ossimImageHandler::ossimImageHandler() DEBUG: OSSIM_ID: $Id: ossimImageHandler.cpp 23013 2014-12-02 19:21:56Z okramer $ ossimGdalTileSource::open() DEBUG: entered ... ossimGdalTileSource::open DEBUG: Opened image: /ELEV2/vrts/aster3_relative.vrt ossimGdalTileSource::open Driver: VRT/Virtual Raster ossimGdalTileSource::getInputScalarType debug: GDAL Type: 3 Input scalar: 13 ossimGdalTileSource::getOutputScalarType debug: Output scalar: 13 ossimGdalTileSource::getInputScalarType debug: GDAL Type: 3 Input scalar: 13 ossimGdalTileSource::getOutputScalarType debug: Output scalar: 13 ossimGdalTileSource::getInputScalarType debug: GDAL Type: 3 Input scalar: 13 ossimGdalTileSource::getOutputScalarType debug: Output scalar: 13 ossimGdalTileSource::getInputScalarType debug: GDAL Type: 3 Input scalar: 13 ossimGdalTileSource::getOutputScalarType debug: Output scalar: 13 ossimImageHandler::completeOpen(): Entered........ ossim::StreamFactoryRegistry::createIstream: ....... entered: /ELEV2/vrts/aster3_relative.omd ossim::StreamFactoryRegistry::createIstream: ....... leaving! ossim::StreamFactoryRegistry::createIstream: ....... entered: /ELEV2/vrts/aster3_relative_e0.omd ossim::StreamFactoryRegistry::createIstream: ....... leaving! ossimGdalTileSource::getInputScalarType debug: GDAL Type: 3 Input scalar: 13 ossimGdalTileSource::getOutputScalarType debug: Output scalar: 13 ossimImageHandler::completeOpen(): Leaving....... Looking for /ELEV2/vrts/aster3_relative_vertices.kwl vertices file... ossim::StreamFactoryRegistry::createIstream: ....... entered: /ELEV2/vrts/aster3_relative_vertices.kwl ossim::StreamFactoryRegistry::createIstream: ....... leaving! ossimGdalTileSource::getInputScalarType debug: GDAL Type: 3 Input scalar: 13 ossimGdalTileSource::getOutputScalarType debug: Output scalar: 13 ossimImageDataFactory::create DEBUG: Caller: ossimGdalTileSource bands: 1 width: 64 height: 64 Scalar type: ossim_sint16 ossimGdalTileSource::getInputScalarType debug: GDAL Type: 3 Input scalar: 13 ossimGdalTileSource::getOutputScalarType debug: Output scalar: 13 ossimGdalTileSource::getInputScalarType debug: GDAL Type: 3 Input scalar: 13 ossimGdalTileSource::getOutputScalarType debug: Output scalar: 13 ossimGdalTileSource::getInputScalarType debug: GDAL Type: 3 Input scalar: 13 ossimGdalTileSource::getOutputScalarType debug: Output scalar: 13 ossimGdalTileSource::getInputScalarType debug: GDAL Type: 3 Input scalar: 13 ossimImageDataFactory::create DEBUG: Caller: ossimGdalTileSource bands: 1 width: 64 height: 64 Scalar type: ossim_sint16 ossimGdalTileSoruce::open data type = 13 min pix 0:ossimGdalTileSource::getInputScalarType debug: GDAL Type: 3 Input scalar: 13 ossimGdalTileSource::getOutputScalarType debug: Output scalar: 13 -32767 max pix 0:ossimGdalTileSource::getInputScalarType debug: GDAL Type: 3 Input scalar: 13 ossimGdalTileSource::getOutputScalarType debug: Output scalar: 13 32767 null pix 0:ossimGdalTileSource::getInputScalarType debug: GDAL Type: 3 Input scalar: 13 ossimGdalTileSource::getOutputScalarType debug: Output scalar: 13 -32768 theTile: ossimS16ImageData::print: m_origin: ( 0, 0 ) Null values: -32768 Min values: -32767 Max values: 32767 width: 64 height: 64 image rectangle: (0,0,64,64,LH) indexed: 0 alpha size: 0 ossimRectilinearDataObject::print: m_numberOfDataComponents: 1 theNumberOfSpatialComponents: 2 m_scalarType: ossim_sint16 ossimDataObject::print: theOwner->getClassName(): ossimGdalTileSource theDataObjectStatus: OSSIM_EMPTY theSingleBandTile: ossimS16ImageData::print: m_origin: ( 0, 0 ) Null values: -32768 Min values: -32767 Max values: 32767 width: 64 height: 64 image rectangle: (0,0,64,64,LH) indexed: 0 alpha size: 0 ossimRectilinearDataObject::print: m_numberOfDataComponents: 1 theNumberOfSpatialComponents: 2 m_scalarType: ossim_sint16 ossimDataObject::print: theOwner->getClassName(): ossimGdalTileSource theDataObjectStatus: OSSIM_EMPTY ossimImageHandlerRegistry::open(file, trySuffix,openOverview): leaving.......... ossimSensorModelFactory::createProjection DEBUG: Testing ossimCoarsGridModel ossimProjectionFactoryBase::createProjectionFromGeometryFile DEBUG: imageFile: /ELEV2/vrts/aster3_relative.vrt entryIdx: 0 DEBUG: No geometry file found. Returning NULL... ossimSensorModelFactory::createProjection DEBUG: testing ossimQuickbirdRpcModel DEBUG ossimSensorModel::ossimSensorModel(geom_kwl): entering... DEBUG ossimSensorModel::ossimSensorModel(geom_kwl): returning... DEBUG ossimNitfFile::parseFile: entered... ossim::StreamFactoryRegistry::createIstream: ....... entered: /ELEV2/vrts/aster3_relative.vrt ossim::StreamFactoryRegistry::createIstream: ....... leaving! ossimNitfFile::parseStream: DEBUG entered... DEBUG ossimNitfFile::parseFile: Not an NITF file! ossimNitfFile::parseStream: DEBUG exit status: false DEBUG ossimNitfFile::parseFile: exit status: false ossimImageHandler::ossimImageHandler() DEBUG: OSSIM_ID: $Id: ossimImageHandler.cpp 23013 2014-12-02 19:21:56Z okramer $ ossimTiffTileSource::open Entered... File: /ELEV2/vrts/aster3_relative.vrt ossim::StreamFactoryRegistry::createIstream: ....... entered: /ELEV2/vrts/aster3_relative.vrt ossim::StreamFactoryRegistry::createIstream: ....... leaving! ossimTiffTileSource::open ERROR: libtiff could not open... ossimSensorModelFactory::createProjection DEBUG: testing ossimIkonosRpcModel DEBUG ossimSensorModel::ossimSensorModel(geom_kwl): entering... DEBUG ossimSensorModel::ossimSensorModel(geom_kwl): returning... ossimImageHandler::ossimImageHandler() DEBUG: OSSIM_ID: $Id: ossimImageHandler.cpp 23013 2014-12-02 19:21:56Z okramer $ ossimTiffTileSource::open Entered... File: /ELEV2/vrts/aster3_relative.vrt ossim::StreamFactoryRegistry::createIstream: ....... entered: /ELEV2/vrts/aster3_relative.vrt ossim::StreamFactoryRegistry::createIstream: ....... leaving! ossimTiffTileSource::open ERROR: libtiff could not open... return status: false DEBUG ossimIkonosRpcModel parseTiffFile: returning... ossim::StreamFactoryRegistry::createIstream: ....... entered: /ELEV2/vrts/aster3_relative.vrt ossim::StreamFactoryRegistry::createIstream: ....... leaving! ossimSensorModelFactory::createProjection DEBUG: testing ossimLandSatModel ossimSensorModelFactory::createProjection DEBUG: testing ossimRS1SarModel DEBUG ossimSensorModel::ossimSensorModel(geom_kwl): entering... DEBUG ossimSensorModel::ossimSensorModel(geom_kwl): returning... Constructor ossimRS1SarModel(ossimFilename) ("/tmp/ossim/ossim/src/projection/ossimRS1SarModel.cpp", line 65) DEBUG: entering... ossimRS1SarModel::initFromCeos() ("/tmp/ossim/ossim/src/projection/ossimRS1SarModel.cpp", line 343) DEBUG: entering... ossimCeosData Constructor #1 ("/tmp/ossim/ossim/src/support_data/ossimCeosData.cpp", line 93) DEBUG: entering... ossimCeosData::loadCeosFile() ("/tmp/ossim/ossim/src/support_data/ossimCeosData.cpp", line 1064) DEBUG: Entered method. ossimCeosData::loadCeosFile() ("/tmp/ossim/ossim/src/support_data/ossimCeosData.cpp", line 1078) DEBUG: ERROR: Cannot open CEOS Volume Directory file: /ELEV2/vrts/vdf_dat.001 ossimCeosData Constructor #1 ("/tmp/ossim/ossim/src/support_data/ossimCeosData.cpp", line 105) DEBUG: returning... ossimSensorModelFactory::createProjection DEBUG: testing ossimSpot5Model ossimSensorModelFactory::createProjection DEBUG: testing ossimPpjFrameSensor ossimSensorModelFactory::createProjection DEBUG: testing ossimAlphaSensor header file: /ELEV2/vrts/aster3_relative.vrt.hdr ossimSensorModelFactory::createProjection DEBUG: No sensor model found. ossimRS1SarModel::deallocateMemory() ("/tmp/ossim/ossim/src/projection/ossimRS1SarModel.cpp", line 1075) DEBUG: entering... ossimRS1SarModel::deallocateMemory() ("/tmp/ossim/ossim/src/projection/ossimRS1SarModel.cpp", line 1084) DEBUG: returning... DEBUG ossimSensorModel::~ossimSensorModel: entering... DEBUG ossimSensorModel::~ossimSensorModel: returning... DEBUG ossimSensorModel::~ossimSensorModel: entering... DEBUG ossimSensorModel::~ossimSensorModel: returning... DEBUG ossimSensorModel::~ossimSensorModel: entering... DEBUG ossimSensorModel::~ossimSensorModel: returning... ossimProjectionFactoryBase::createProjectionFromGeometryFile DEBUG: imageFile: /ELEV2/vrts/aster3_relative.vrt entryIdx: 0 DEBUG: No geometry file found. Returning NULL... ossimProjectionFactoryBase::createProjectionFromGeometryFile DEBUG: imageFile: /ELEV2/vrts/aster3_relative.vrt entryIdx: 0 DEBUG: No geometry file found. Returning NULL... ossimProjectionFactoryBase::createProjectionFromGeometryFile DEBUG: imageFile: /ELEV2/vrts/aster3_relative.vrt entryIdx: 0 DEBUG: No geometry file found. Returning NULL... ossimOgcWktTranslator::toOssimKwl entered... epsg_code: 4326 units: degree ossim_units: degrees ossimOgcWktTranslator::toOssimKwlDEBUG: ossimProj = ossimEquDistCylProjection ossimOgcWktTranslator::toOssimKwl exit status = true ossimGdalProjectionFactory: createProjection KWL = central_meridian: 2.5465851649642e-11 datum: WGE origin_latitude: 0.000277777766044096 pcs_code: 4326 pixel_scale_units: degrees pixel_scale_xy: (0.000277777777777817,0.000277777777777817) pixel_type: area tie_point_units: degrees tie_point_xy: (-179.999861111111,83.0001388888889) type: ossimEquDistCylProjection DEBUG ossimEquDistCylProjection::loadState: Input keyword list is central_meridian: 2.5465851649642e-11 datum: WGE origin_latitude: 0.000277777766044096 pcs_code: 4326 pixel_scale_units: degrees pixel_scale_xy: (0.000277777777777817,0.000277777777777817) pixel_type: area tie_point_units: degrees tie_point_xy: (-179.999861111111,83.0001388888889) type: ossimEquDistCylProjection ossimImageElevationHandler::open DEBUG: mean spacing(meters): 30.8875 unding rect: ( 83.000000000000014, -179.999722222222090, nan, WGE ), ( -83.000000000023419, 180.000277777828785, nan, WGE ) return status: true DEBUG ossimElevSource::ossimElevSource: entering... DEBUG: theComputeStatsFlag: false DEBUG ossimElevSource::ossimElevSource: returning... ossimImageHandlerRegistry::open(file, trySuffix,openOverview): entered.......... ossimImageHandlerFactory::getImageHandlersBySuffix() -- Trying OVR... ossimImageHandlerFactory::getImageHandlersBySuffix() -- Testing TIF or TIFF... ossimImageHandlerFactory::getImageHandlersBySuffix() -- Testing NTF or NITF... ossimImageHandlerFactory::getImageHandlersBySuffix() -- Testing RPF... ossimImageHandlerFactory::getImageHandlersBySuffix() -- Testing TOC... ossimImageHandlerFactory::getImageHandlersBySuffix() -- Testing JPG or JPEG... ossimImageHandlerFactory::getImageHandlersBySuffix() -- Testing DOQ or DOQQ... ossimImageHandlerFactory::getImageHandlersBySuffix() -- Testing DTn... ossimImageHandlerFactory::getImageHandlersBySuffix() -- Testing HGT... ossimImageHandlerFactory::getImageHandlersBySuffix() -- Testing HRI,HSI... ossimImageHandlerFactory::getImageHandlersBySuffix() -- Testing DEM... ossimImageHandlerFactory::getImageHandlersBySuffix() -- Testing FST... ossimImageHandlerFactory::getImageHandlersBySuffix() -- Testing RAS or RAW or General Raster... ossimImageHandlerFactory::getImageHandlersBySuffix() -- Testing IMG... ossimImageHandlerFactory::getImageHandlersBySuffix() -- Testing CCF... ossimImageHandlerFactory::getImageHandlersBySuffix() -- Testing TIL... ossimImageHandlerFactory::getImageHandlersBySuffix() -- Testing MASK... ossimImageHandlerFactory::getImageHandlersBySuffix() -- Testing TXT... ossimImageHandlerFactory::getImageHandlersBySuffix() -- Testing CSV... ossimImageHandler::ossimImageHandler() DEBUG: OSSIM_ID: $Id: ossimImageHandler.cpp 23013 2014-12-02 19:21:56Z okramer $ ossimGdalTileSource::open() DEBUG: entered ... ossimGdalTileSource::open DEBUG: Opened image: /ELEV2/vrts/aster3_relative.vrt ossimGdalTileSource::open Driver: VRT/Virtual Raster ossimGdalTileSource::getInputScalarType debug: GDAL Type: 3 Input scalar: 13 ossimGdalTileSource::getOutputScalarType debug: Output scalar: 13 ossimGdalTileSource::getInputScalarType debug: GDAL Type: 3 Input scalar: 13 ossimGdalTileSource::getOutputScalarType debug: Output scalar: 13 ossimGdalTileSource::getInputScalarType debug: GDAL Type: 3 Input scalar: 13 ossimGdalTileSource::getOutputScalarType debug: Output scalar: 13 ossimGdalTileSource::getInputScalarType debug: GDAL Type: 3 Input scalar: 13 ossimGdalTileSource::getOutputScalarType debug: Output scalar: 13 ossimImageHandler::completeOpen(): Entered........ ossim::StreamFactoryRegistry::createIstream: ....... entered: /ELEV2/vrts/aster3_relative.omd ossim::StreamFactoryRegistry::createIstream: ....... leaving! ossim::StreamFactoryRegistry::createIstream: ....... entered: /ELEV2/vrts/aster3_relative_e0.omd ossim::StreamFactoryRegistry::createIstream: ....... leaving! ossimGdalTileSource::getInputScalarType debug: GDAL Type: 3 Input scalar: 13 ossimGdalTileSource::getOutputScalarType debug: Output scalar: 13 ossimImageHandler::completeOpen(): Leaving....... Looking for /ELEV2/vrts/aster3_relative_vertices.kwl vertices file... ossim::StreamFactoryRegistry::createIstream: ....... entered: /ELEV2/vrts/aster3_relative_vertices.kwl ossim::StreamFactoryRegistry::createIstream: ....... leaving! ossimGdalTileSource::getInputScalarType debug: GDAL Type: 3 Input scalar: 13 ossimGdalTileSource::getOutputScalarType debug: Output scalar: 13 ossimImageDataFactory::create DEBUG: Caller: ossimGdalTileSource bands: 1 width: 64 height: 64 Scalar type: ossim_sint16 ossimGdalTileSource::getInputScalarType debug: GDAL Type: 3 Input scalar: 13 ossimGdalTileSource::getOutputScalarType debug: Output scalar: 13 ossimGdalTileSource::getInputScalarType debug: GDAL Type: 3 Input scalar: 13 ossimGdalTileSource::getOutputScalarType debug: Output scalar: 13 ossimGdalTileSource::getInputScalarType debug: GDAL Type: 3 Input scalar: 13 ossimGdalTileSource::getOutputScalarType debug: Output scalar: 13 ossimGdalTileSource::getInputScalarType debug: GDAL Type: 3 Input scalar: 13 ossimImageDataFactory::create DEBUG: Caller: ossimGdalTileSource bands: 1 width: 64 height: 64 Scalar type: ossim_sint16 ossimGdalTileSoruce::open data type = 13 min pix 0:ossimGdalTileSource::getInputScalarType debug: GDAL Type: 3 Input scalar: 13 ossimGdalTileSource::getOutputScalarType debug: Output scalar: 13 -32767.000000 max pix 0:ossimGdalTileSource::getInputScalarType debug: GDAL Type: 3 Input scalar: 13 ossimGdalTileSource::getOutputScalarType debug: Output scalar: 13 32767.000000 null pix 0:ossimGdalTileSource::getInputScalarType debug: GDAL Type: 3 Input scalar: 13 ossimGdalTileSource::getOutputScalarType debug: Output scalar: 13 -32768.000000 theTile: ossimS16ImageData::print: m_origin: ( 0, 0 ) Null values: -32768.000000 Min values: -32767.000000 Max values: 32767.000000 width: 64 height: 64 image rectangle: (0,0,64,64,LH) indexed: 0 alpha size: 0 ossimRectilinearDataObject::print: m_numberOfDataComponents: 1 theNumberOfSpatialComponents: 2 m_scalarType: ossim_sint16 ossimDataObject::print: theOwner->getClassName(): ossimGdalTileSource theDataObjectStatus: OSSIM_EMPTY theSingleBandTile: ossimS16ImageData::print: m_origin: ( 0, 0 ) Null values: -32768.000000 Min values: -32767.000000 Max values: 32767.000000 width: 64 height: 64 image rectangle: (0,0,64,64,LH) indexed: 0 alpha size: 0 ossimRectilinearDataObject::print: m_numberOfDataComponents: 1 theNumberOfSpatialComponents: 2 m_scalarType: ossim_sint16 ossimDataObject::print: theOwner->getClassName(): ossimGdalTileSource theDataObjectStatus: OSSIM_EMPTY ossimImageHandlerRegistry::open(file, trySuffix,openOverview): leaving.......... ossimSensorModelFactory::createProjection DEBUG: Testing ossimCoarsGridModel ossimProjectionFactoryBase::createProjectionFromGeometryFile DEBUG: imageFile: /ELEV2/vrts/aster3_relative.vrt entryIdx: 0 DEBUG: No geometry file found. Returning NULL... ossimSensorModelFactory::createProjection DEBUG: testing ossimQuickbirdRpcModel DEBUG ossimSensorModel::ossimSensorModel(geom_kwl): entering... DEBUG ossimSensorModel::ossimSensorModel(geom_kwl): returning... DEBUG ossimNitfFile::parseFile: entered... ossim::StreamFactoryRegistry::createIstream: ....... entered: /ELEV2/vrts/aster3_relative.vrt ossim::StreamFactoryRegistry::createIstream: ....... leaving! ossimNitfFile::parseStream: DEBUG entered... DEBUG ossimNitfFile::parseFile: Not an NITF file! ossimNitfFile::parseStream: DEBUG exit status: false DEBUG ossimNitfFile::parseFile: exit status: false ossimImageHandler::ossimImageHandler() DEBUG: OSSIM_ID: $Id: ossimImageHandler.cpp 23013 2014-12-02 19:21:56Z okramer $ ossimTiffTileSource::open Entered... File: /ELEV2/vrts/aster3_relative.vrt ossim::StreamFactoryRegistry::createIstream: ....... entered: /ELEV2/vrts/aster3_relative.vrt ossim::StreamFactoryRegistry::createIstream: ....... leaving! ossimTiffTileSource::open ERROR: libtiff could not open... ossimSensorModelFactory::createProjection DEBUG: testing ossimIkonosRpcModel DEBUG ossimSensorModel::ossimSensorModel(geom_kwl): entering... DEBUG ossimSensorModel::ossimSensorModel(geom_kwl): returning... ossimImageHandler::ossimImageHandler() DEBUG: OSSIM_ID: $Id: ossimImageHandler.cpp 23013 2014-12-02 19:21:56Z okramer $ ossimTiffTileSource::open Entered... File: /ELEV2/vrts/aster3_relative.vrt ossim::StreamFactoryRegistry::createIstream: ....... entered: /ELEV2/vrts/aster3_relative.vrt ossim::StreamFactoryRegistry::createIstream: ....... leaving! ossimTiffTileSource::open ERROR: libtiff could not open... return status: false DEBUG ossimIkonosRpcModel parseTiffFile: returning... ossim::StreamFactoryRegistry::createIstream: ....... entered: /ELEV2/vrts/aster3_relative.vrt ossim::StreamFactoryRegistry::createIstream: ....... leaving! ossimSensorModelFactory::createProjection DEBUG: testing ossimLandSatModel ossimSensorModelFactory::createProjection DEBUG: testing ossimRS1SarModel DEBUG ossimSensorModel::ossimSensorModel(geom_kwl): entering... DEBUG ossimSensorModel::ossimSensorModel(geom_kwl): returning... Constructor ossimRS1SarModel(ossimFilename) ("/tmp/ossim/ossim/src/projection/ossimRS1SarModel.cpp", line 65) DEBUG: entering... ossimRS1SarModel::initFromCeos() ("/tmp/ossim/ossim/src/projection/ossimRS1SarModel.cpp", line 343) DEBUG: entering... ossimCeosData Constructor #1 ("/tmp/ossim/ossim/src/support_data/ossimCeosData.cpp", line 93) DEBUG: entering... ossimCeosData::loadCeosFile() ("/tmp/ossim/ossim/src/support_data/ossimCeosData.cpp", line 1064) DEBUG: Entered method. ossimCeosData::loadCeosFile() ("/tmp/ossim/ossim/src/support_data/ossimCeosData.cpp", line 1078) DEBUG: ERROR: Cannot open CEOS Volume Directory file: /ELEV2/vrts/vdf_dat.001 ossimCeosData Constructor #1 ("/tmp/ossim/ossim/src/support_data/ossimCeosData.cpp", line 105) DEBUG: returning... ossimSensorModelFactory::createProjection DEBUG: testing ossimSpot5Model ossimSensorModelFactory::createProjection DEBUG: testing ossimPpjFrameSensor ossimSensorModelFactory::createProjection DEBUG: testing ossimAlphaSensor header file: /ELEV2/vrts/aster3_relative.vrt.hdr ossimSensorModelFactory::createProjection DEBUG: No sensor model found. ossimRS1SarModel::deallocateMemory() ("/tmp/ossim/ossim/src/projection/ossimRS1SarModel.cpp", line 1075) DEBUG: entering... ossimRS1SarModel::deallocateMemory() ("/tmp/ossim/ossim/src/projection/ossimRS1SarModel.cpp", line 1084) DEBUG: returning... DEBUG ossimSensorModel::~ossimSensorModel: entering... DEBUG ossimSensorModel::~ossimSensorModel: returning... DEBUG ossimSensorModel::~ossimSensorModel: entering... DEBUG ossimSensorModel::~ossimSensorModel: returning... DEBUG ossimSensorModel::~ossimSensorModel: entering... DEBUG ossimSensorModel::~ossimSensorModel: returning... ossimProjectionFactoryBase::createProjectionFromGeometryFile DEBUG: imageFile: /ELEV2/vrts/aster3_relative.vrt entryIdx: 0 DEBUG: No geometry file found. Returning NULL... ossimProjectionFactoryBase::createProjectionFromGeometryFile DEBUG: imageFile: /ELEV2/vrts/aster3_relative.vrt entryIdx: 0 DEBUG: No geometry file found. Returning NULL... ossimProjectionFactoryBase::createProjectionFromGeometryFile DEBUG: imageFile: /ELEV2/vrts/aster3_relative.vrt entryIdx: 0 DEBUG: No geometry file found. Returning NULL... ossimOgcWktTranslator::toOssimKwl entered... epsg_code: 4326 units: degree ossim_units: degrees ossimOgcWktTranslator::toOssimKwlDEBUG: ossimProj = ossimEquDistCylProjection ossimOgcWktTranslator::toOssimKwl exit status = true ossimGdalProjectionFactory: createProjection KWL = central_meridian: 2.5465851649642e-11 datum: WGE origin_latitude: 0.000277777766044096 pcs_code: 4326 pixel_scale_units: degrees pixel_scale_xy: (0.000277777777777817,0.000277777777777817) pixel_type: area tie_point_units: degrees tie_point_xy: (-179.999861111111,83.0001388888889) type: ossimEquDistCylProjection DEBUG ossimEquDistCylProjection::loadState: Input keyword list is central_meridian: 2.5465851649642e-11 datum: WGE origin_latitude: 0.000277777766044096 pcs_code: 4326 pixel_scale_units: degrees pixel_scale_xy: (0.000277777777777817,0.000277777777777817) pixel_type: area tie_point_units: degrees tie_point_xy: (-179.999861111111,83.0001388888889) type: ossimEquDistCylProjection ossimImageElevationHandler::open DEBUG: mean spacing(meters): 30.887514 unding rect: ( 83.000000000000014, -179.999722222222090, nan, WGE ), ( -83.000000000023419, 180.000277777828785, nan, WGE ) return status: true Opened cell: /ELEV2/vrts/aster3_relative.vrt MSL to ellipsoid delta: -27.917222976684570 Height above MSL: 9.000000027997888 Height above ellipsoid: -18.917222948686682 Geoid value: -27.917222976684570 KEY_COUNT: 1 consumedKeys: 1 ossimInfo::execute() exited... ```

Nothing sticks out when comparing vrt and the individual tif's coordinate data

Gdalinfo Summary

``` $gdalinfo /ELEV2/aster3/ASTGTMV003_N27W081_dem.tif Driver: GTiff/GeoTIFF Files: /ELEV2/aster3/ASTGTMV003_N27W081_dem.tif Size is 3601, 3601 Coordinate System is: GEOGCRS["WGS 84", DATUM["World Geodetic System 1984", ELLIPSOID["WGS 84",6378137,298.257223563, LENGTHUNIT["metre",1]]], PRIMEM["Greenwich",0, ANGLEUNIT["degree",0.0174532925199433]], CS[ellipsoidal,2], AXIS["geodetic latitude (Lat)",north, ORDER[1], ANGLEUNIT["degree",0.0174532925199433]], AXIS["geodetic longitude (Lon)",east, ORDER[2], ANGLEUNIT["degree",0.0174532925199433]], ID["EPSG",4326]] Data axis to CRS axis mapping: 2,1 Origin = (-81.000138888888898,28.000138888888898) Pixel Size = (0.000277777777778,-0.000277777777778) Metadata: AREA_OR_POINT=Area Band_1=Band 1 Image Structure Metadata: COMPRESSION=LZW INTERLEAVE=BAND Corner Coordinates: Upper Left ( -81.0001389, 28.0001389) ( 81d 0' 0.50"W, 28d 0' 0.50"N) Lower Left ( -81.0001389, 26.9998611) ( 81d 0' 0.50"W, 26d59'59.50"N) Upper Right ( -79.9998611, 28.0001389) ( 79d59'59.50"W, 28d 0' 0.50"N) Lower Right ( -79.9998611, 26.9998611) ( 79d59'59.50"W, 26d59'59.50"N) Center ( -80.5000000, 27.5000000) ( 80d30' 0.00"W, 27d30' 0.00"N) Band 1 Block=256x256 Type=Int16, ColorInterp=Gray Description = Band 1 Overviews: 1801x1801, 1201x1201, 901x901, 451x451, 401x401, 226x226, 57x57, 45x45 $gdalinfo /ELEV2/vrts/aster3_relative.vrt Driver: VRT/Virtual Raster Files: /ELEV2/vrts/aster3_relative.vrt /ELEV2/vrts/../aster3/ASTGTMV003_N47W120_dem.tif /ELEV2/vrts/../aster3/ASTGTMV003_S76E054_dem.tif /ELEV2/vrts/../aster3/ASTGTMV003_S20E023_dem.tif /ELEV2/vrts/../aster3/ASTGTMV003_N74W042_dem.tif /ELEV2/vrts/../aster3/ASTGTMV003_N61W070_dem.tif . . . Size is 1296001, 597601 Coordinate System is: GEOGCRS["WGS 84", DATUM["World Geodetic System 1984", ELLIPSOID["WGS 84",6378137,298.257223563, LENGTHUNIT["metre",1]]], PRIMEM["Greenwich",0, ANGLEUNIT["degree",0.0174532925199433]], CS[ellipsoidal,2], AXIS["geodetic latitude (Lat)",north, ORDER[1], ANGLEUNIT["degree",0.0174532925199433]], AXIS["geodetic longitude (Lon)",east, ORDER[2], ANGLEUNIT["degree",0.0174532925199433]], ID["EPSG",4326]] Data axis to CRS axis mapping: 2,1 Origin = (-180.000138888889012,83.000138888888898) Pixel Size = (0.000277777777778,-0.000277777777778) Corner Coordinates: Upper Left (-180.0001389, 83.0001389) (180d 0' 0.50"W, 83d 0' 0.50"N) Lower Left (-180.0001389, -83.0001389) (180d 0' 0.50"W, 83d 0' 0.50"S) Upper Right ( 180.0001389, 83.0001389) (180d 0' 0.50"E, 83d 0' 0.50"N) Lower Right ( 180.0001389, -83.0001389) (180d 0' 0.50"E, 83d 0' 0.50"S) Center ( 0.0000000, -0.0000000) ( 0d 0' 0.00"E, 0d 0' 0.00"S) Band 1 Block=128x128 Type=Int16, ColorInterp=Gray ```

Is there a configuration option I'm missing that is causing this? Is there an ossim-preferred VRT-like that ossim is able to build, perhaps using ossim-preproc?

vilhelmen commented 1 year ago

I'm on 2.11.0 but also this is most likely an issue for plugins, need to move it after verifying some things again.