yeesian / ArchGDAL.jl

A high level API for GDAL - Geospatial Data Abstraction Library
https://yeesian.github.io/ArchGDAL.jl/stable/
Other
137 stars 25 forks source link

add GDT_Int8 data type #423

Closed tiemvanderdeure closed 1 month ago

tiemvanderdeure commented 1 month ago

A Signed Int8 data type was added in GDAL 3.7: https://gdal.org/development/rfc/rfc87_signed_int8.html

This PR adds support for this datatype.

The GDALDataType enum defined in this package does not completely match the enum in the latest version of GDAL (I found it here: https://gdal.org/doxygen/gdal_8h.html).

For now I just added GDT_Int8 as field 14 and moved GDT_TypeCount to field 15. I'm not sure what consequences it would have to change the other fields?

rafaqz commented 1 month ago

@meggart DiskArrays 0.4 is creating some issues still, we really need that version fix

felixcremer commented 1 month ago

The DiskArrays compat is fixed in General and the tests could be rerun on 1.6

rafaqz commented 1 month ago

Int8 was added to GDAL here: https://github.com/OSGeo/gdal/pull/6634

yeesian commented 1 month ago

Thank you!

asinghvi17 commented 1 month ago

It looks like this is causing precompiles to fail for me on Mac M1, possibly the compat bounds on GDAL.jl were too loose. I seem to have some other package issues as well though.

ERROR: LoadError: UndefVarError: `GDT_Int8` not defined
Stacktrace:
  [1] eval
    @ ./boot.jl:385 [inlined]
  [2] eval
    @ ~/.julia/packages/ArchGDAL/SiT9o/src/ArchGDAL.jl:1 [inlined]
  [3] _broadcast_getindex_evalf
    @ ./broadcast.jl:709 [inlined]
  [4] _broadcast_getindex
    @ ./broadcast.jl:682 [inlined]
  [5] getindex
    @ ./broadcast.jl:636 [inlined]
  [6] copyto_nonleaf!(dest::Vector{ArchGDAL.GDALDataType}, bc::Base.Broadcast.Broadcasted{Base.Broadcast.DefaultArrayStyle{1}, Tuple{Base.OneTo{Int64}}, typeof(ArchGDAL.eval), Tuple{Base.Broadcast.Extruded{Vector{Any}, Tuple{Bool}, Tuple{Int64}}}}, iter::Base.OneTo{Int64}, state::Int64, count::Int64)
    @ Base.Broadcast ./broadcast.jl:1098
  [7] copy
    @ ./broadcast.jl:950 [inlined]
  [8] materialize
    @ ./broadcast.jl:903 [inlined]
  [9] (::ArchGDAL.var"#1#5")(a::Expr)
    @ ArchGDAL ./none:0
 [10] iterate(g::Base.Generator{NTuple{16, Expr}, ArchGDAL.var"#1#5"}, s::Int64)
    @ Base ./generator.jl:47
 [11] var"@convert"(__source__::LineNumberNode, __module__::Module, args::Vararg{Any})
    @ ArchGDAL ~/.julia/packages/ArchGDAL/SiT9o/src/utils.jl:102
 [12] include(mod::Module, _path::String)
    @ Base ./Base.jl:495
 [13] include(x::String)
    @ ArchGDAL ~/.julia/packages/ArchGDAL/SiT9o/src/ArchGDAL.jl:1
 [14] top-level scope
    @ ~/.julia/packages/ArchGDAL/SiT9o/src/ArchGDAL.jl:17
visr commented 1 month ago

Yes looks like #425

rafaqz commented 1 month ago

Yeah we forgot to add lower bounds. Its not a new change but there must still be ways to get the old binaries