AIRCentre / SARProcessing.jl

MIT License
31 stars 3 forks source link

Use DimensionalData.jl in the data structs #66

Open lupemba opened 1 year ago

lupemba commented 1 year ago

We should be able to use the DimensionalData.jl to store the complex values of each burst.

Then we can use the dimensional axis for azimuth time and range. This might save us some conversions and make the offset obsolete

The data struct could be some thing like

struct Sentinel1SLC <: SingleLookComplex
    metadata::Sentinel1MetaData
    bursts::AbstractVector{Sentinel1Burst}
end

mutable struct Sentinel1Burst
    burst_infomation::BurstInfomation
    data::AbstractDimArray
    deramped::Bool
end
lupemba commented 1 year ago

Hi @felixcremer

Is AbstractDimArray flexible enough for the things you might want to test with this package?

felixcremer commented 1 year ago

I think, that AbstractDimArray should be flexible enough because it is just a wrapper around any Array type which in most of our cases should be a DiskArray. For most of the things that I want to test with this package it is more important that we leave the element type of the data array as a type parameter, so that we can play around with that a bit more. I might open a new issue for that next week.

lupemba commented 1 year ago

The inSAR will only work if the element type supports the complex number operations. So maybe it could be something like

mutable struct Sentinel1Burst{T} where T <: Complex
    burst_infomation::BurstInfomation
    data::AbstractDimArray{Complex}
    deramped::Bool
end

Complex is already a parametric type for "Real" numbers Complex{T<:Real} <: Number