ITADN

Rasters.write: of 3D Matrix error

#1037OpenAquaPore 创建于 2025-10-31
bug
A
AquaPorecommented
######################## # Rasters.write: of 3D Matrix error The **Rasters.write** works amazingly for 2D matrix data, but I am having issues when trying to write a 3D dimension Z. I am questioning if I am doing something wrong? Many thanks for any help you may provide. ######################## # Simplification of the code ```julia Longitude = DimensionalData.X(LinRange(Coord_X_Left: ΔX: Coord_X_Right); sampling=DimensionalData.Intervals(DimensionalData.Center()), crs=Metadatas.Crs_GeoFormat) Latitude = DimensionalData.Y(LinRange(Coord_Y_Top: ΔY: Coord_Y_Bottom); sampling=DimensionalData.Intervals(DimensionalData.Center()), crs=Metadatas.Crs_GeoFormat) Z = DimensionalData.X(LinRange(1:1:4); sampling=DimensionalData.Intervals(DimensionalData.Center()), crs=Metadatas.Crs_GeoFormat) MapLayer = Rasters.Raster((Longitude, Latitude, Z), crs=Metadatas.Crs_GeoFormat) Rasters.write(Path_Output, MapLayer; ext=".tiff", force=true, verbose=false) ``` # Error message ```julia ArgumentError: no valid permutation of dimensions Stacktrace: [1] permutedims(B::Array{Float64, 3}, perm::Tuple{Int64, Int64}) @ Base .\multidimensional.jl:1672 [2] permutedims @ C:\Users\jpollacco.local\.julia\packages\DimensionalData\hv9KC\src\array\methods.jl:257 [inlined] [3] _maybe_permute_to_gdal(A::Raster{Float64, 3, Tuple{X{Projected{Float64, LinRange{Float64, Int64}, DimensionalData.Dimensions.Lookups.ForwardOrdered, DimensionalData.Dimensions.Lookups.Regular{Float64}, DimensionalData.Dimensions.Lookups.Intervals{DimensionalData.Dimensions.Lookups.Center}, DimensionalData.Dimensions.Lookups.NoMetadata, WellKnownText{GeoFormatTypes.CRS}, Nothing, X{Colon}}}, Y{Projected{Float64, LinRange{Float64, Int64}, DimensionalData.Dimensions.Lookups.ReverseOrdered, DimensionalData.Dimensions.Lookups.Regular{Float64}, DimensionalData.Dimensions.Lookups.Intervals{DimensionalData.Dimensions.Lookups.Center}, DimensionalData.Dimensions.Lookups.NoMetadata, WellKnownText{GeoFormatTypes.CRS}, Nothing, Y{Colon}}}, X{Projected{Int64, LinRange{Int64, Int64}, DimensionalData.Dimensions.Lookups.ForwardOrdered, DimensionalData.Dimensions.Lookups.Regular{Float64}, DimensionalData.Dimensions.Lookups.Intervals{DimensionalData.Dimensions.Lookups.Center}, DimensionalData.Dimensions.Lookups.NoMetadata, WellKnownText{GeoFormatTypes.CRS}, Nothing, X{Colon}}}}, Tuple{}, Array{Float64, 3}, Symbol, DimensionalData.Dimensions.Lookups.NoMetadata, Nothing}, dims::Tuple{X{Projected{Float64, LinRange{Float64, Int64}, DimensionalData.Dimensions.Lookups.ForwardOrdered, DimensionalData.Dimensions.Lookups.Regular{Float64}, DimensionalData.Dimensions.Lookups.Intervals{DimensionalData.Dimensions.Lookups.Center}, DimensionalData.Dimensions.Lookups.NoMetadata, WellKnownText{GeoFormatTypes.CRS}, Nothing, X{Colon}}}, Y{Projected{Float64, LinRange{Float64, Int64}, DimensionalData.Dimensions.Lookups.ReverseOrdered, DimensionalData.Dimensions.Lookups.Regular{Float64}, DimensionalData.Dimensions.Lookups.Intervals{DimensionalData.Dimensions.Lookups.Center}, DimensionalData.Dimensions.Lookups.NoMetadata, WellKnownText{GeoFormatTypes.CRS}, Nothing, Y{Colon}}}}) @ RastersArchGDALExt C:\Users\jpollacco.local\.julia\packages\Rasters\5ShjB\ext\RastersArchGDALExt\gdal_source.jl:604 [4] _maybe_permute_to_gdal(A::Raster{Float64, 3, Tuple{X{Projected{Float64, LinRange{Float64, Int64}, DimensionalData.Dimensions.Lookups.ForwardOrdered, DimensionalData.Dimensions.Lookups.Regular{Float64}, DimensionalData.Dimensions.Lookups.Intervals{DimensionalData.Dimensions.Lookups.Center}, DimensionalData.Dimensions.Lookups.NoMetadata, WellKnownText{GeoFormatTypes.CRS}, Nothing, X{Colon}}}, Y{Projected{Float64, LinRange{Float64, Int64}, DimensionalData.Dimensions.Lookups.ReverseOrdered, DimensionalData.Dimensions.Lookups.Regular{Float64}, DimensionalData.Dimensions.Lookups.Intervals{DimensionalData.Dimensions.Lookups.Center}, DimensionalData.Dimensions.Lookups.NoMetadata, WellKnownText{GeoFormatTypes.CRS}, Nothing, Y{Colon}}}, X{Projected{Int64, LinRange{Int64, Int64}, DimensionalData.Dimensions.Lookups.ForwardOrdered, DimensionalData.Dimensions.Lookups.Regular{Float64}, DimensionalData.Dimensions.Lookups.Intervals{DimensionalData.Dimensions.Lookups.Center}, DimensionalData.Dimensions.Lookups.NoMetadata, WellKnownText{GeoFormatTypes.CRS}, Nothing, X{Colon}}}}, Tuple{}, Array{Float64, 3}, Symbol, DimensionalData.Dimensions.Lookups.NoMetadata, Nothing}) @ RastersArchGDALExt C:\Users\jpollacco.local\.julia\packages\Rasters\5ShjB\ext\RastersArchGDALExt\gdal_source.jl:601 [5] write(filename::String, ::Rasters.GDALsource, A::Raster{Float64, 3, Tuple{X{Projected{Float64, LinRange{Float64, Int64}, DimensionalData.Dimensions.Lookups.ForwardOrdered, DimensionalData.Dimensions.Lookups.Regular{Float64}, DimensionalData.Dimensions.Lookups.Intervals{DimensionalData.Dimensions.Lookups.Center}, DimensionalData.Dimensions.Lookups.NoMetadata, WellKnownText{GeoFormatTypes.CRS}, Nothing, X{Colon}}}, Y{Projected{Float64, LinRange{Float64, Int64}, DimensionalData.Dimensions.Lookups.ReverseOrdered, DimensionalData.Dimensions.Lookups.Regular{Float64}, DimensionalData.Dimensions.Lookups.Intervals{DimensionalData.Dimensions.Lookups.Center}, DimensionalData.Dimensions.Lookups.NoMetadata, WellKnownText{GeoFormatTypes.CRS}, Nothing, Y{Colon}}}, X{Projected{Int64, LinRange{Int64, Int64}, DimensionalData.Dimensions.Lookups.ForwardOrdered, DimensionalData.Dimensions.Lookups.Regular{Float64}, DimensionalData.Dimensions.Lookups.Intervals{DimensionalData.Dimensions.Lookups.Center}, DimensionalData.Dimensions.Lookups.NoMetadata, WellKnownText{GeoFormatTypes.CRS}, Nothing, X{Colon}}}}, Tuple{}, Array{Float64, 3}, Symbol, DimensionalData.Dimensions.Lookups.NoMetadata, Nothing}; force::Bool, verbose::Bool, write::Bool, missingval::Nothing, scale::Rasters.NoKW, offset::Rasters.NoKW, coerce::Rasters.NoKW, eltype::Type, f::typeof(identity), kw::@Kwargs{ext::String}) @ RastersArchGDALExt C:\Users\jpollacco.local\.julia\packages\Rasters\5ShjB\ext\RastersArchGDALExt\gdal_source.jl:74 [6] write(filename::String, A::Raster{Float64, 3, Tuple{X{Projected{Float64, LinRange{Float64, Int64}, DimensionalData.Dimensions.Lookups.ForwardOrdered, DimensionalData.Dimensions.Lookups.Regular{Float64}, DimensionalData.Dimensions.Lookups.Intervals{DimensionalData.Dimensions.Lookups.Center}, DimensionalData.Dimensions.Lookups.NoMetadata, WellKnownText{GeoFormatTypes.CRS}, Nothing, X{Colon}}}, Y{Projected{Float64, LinRange{Float64, Int64}, DimensionalData.Dimensions.Lookups.ReverseOrdered, DimensionalData.Dimensions.Lookups.Regular{Float64}, DimensionalData.Dimensions.Lookups.Intervals{DimensionalData.Dimensions.Lookups.Center}, DimensionalData.Dimensions.Lookups.NoMetadata, WellKnownText{GeoFormatTypes.CRS}, Nothing, Y{Colon}}}, X{Projected{Int64, LinRange{Int64, Int64}, DimensionalData.Dimensions.Lookups.ForwardOrdered, DimensionalData.Dimensions.Lookups.Regular{Float64}, DimensionalData.Dimensions.Lookups.Intervals{DimensionalData.Dimensions.Lookups.Center}, DimensionalData.Dimensions.Lookups.NoMetadata, WellKnownText{GeoFormatTypes.CRS}, Nothing, X{Colon}}}}, Tuple{}, Array{Float64, 3}, Symbol, DimensionalData.Dimensions.Lookups.NoMetadata, Nothing}; source::Rasters.GDALsource, missingval::Rasters.NoKW, kw::@Kwargs{ext::String, force::Bool, verbose::Bool}) @ Rasters C:\Users\jpollacco.local\.julia\packages\Rasters\5ShjB\src\write.jl:67 [7] LOOKUPTABLE_2_MAPS(; Dem_Resample::Raster{Float64, 2, Tuple{X{Projected{Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, DimensionalData.Dimensions.Lookups.ForwardOrdered, DimensionalData.Dimensions.Lookups.Regular{Float64}, DimensionalData.Dimensions.Lookups.Intervals{DimensionalData.Dimensions.Lookups.Center}, DimensionalData.Dimensions.Lookups.NoMetadata, WellKnownText{GeoFormatTypes.CRS}, Nothing, X{Colon}}}, Y{Projected{Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, DimensionalData.Dimensions.Lookups.ReverseOrdered, DimensionalData.Dimensions.Lookups.Regular{Float64}, DimensionalData.Dimensions.Lookups.Intervals{DimensionalData.Dimensions.Lookups.Center}, DimensionalData.Dimensions.Lookups.NoMetadata, WellKnownText{GeoFormatTypes.CRS}, Nothing, Y{Colon}}}}, Tuple{Rasters.Band{DimensionalData.Dimensions.Lookups.Categorical{Int64, UnitRange{Int64}, DimensionalData.Dimensions.Lookups.ForwardOrdered, DimensionalData.Dimensions.Lookups.NoMetadata}}}, SubArray{Float64, 2, Matrix{Float64}, Tuple{UnitRange{Int64}, UnitRange{Int64}}, false}, Symbol, DimensionalData.Dimensions.Lookups.Metadata{Rasters.GDALsource, Dict{String, Any}}, Float64}, Latitude::Y{DimensionalData.Dimensions.Lookups.AutoLookup{Float64, LinRange{Float64, Int64}, @NamedTuple{sampling::DimensionalData.Dimensions.Lookups.Intervals{DimensionalData.Dimensions.Lookups.Center}, crs::WellKnownText{GeoFormatTypes.CRS}}}}, Longitude::X{DimensionalData.Dimensions.Lookups.AutoLookup{Float64, LinRange{Float64, Int64}, @NamedTuple{sampling::DimensionalData.Dimensions.Lookups.Intervals{DimensionalData.Dimensions.Lookups.Center}, crs::WellKnownText{GeoFormatTypes.CRS}}}}, ShpLayer::Symbol, Metadatas::Main.geoRaster.METADATA, Param_Crs::WellKnownText{GeoFormatTypes.CRS}, Path_Input_Map::String, Path_Lookup::String, Path_Root::String, Subcatchment::Raster{Float64, 2, Tuple{X{Projected{Float64, LinRange{Float64, Int64}, DimensionalData.Dimensions.Lookups.ForwardOrdered, DimensionalData.Dimensions.Lookups.Regular{Float64}, DimensionalData.Dimensions.Lookups.Intervals{DimensionalData.Dimensions.Lookups.Center}, DimensionalData.Dimensions.Lookups.NoMetadata, WellKnownText{GeoFormatTypes.CRS}, Nothing, X{Colon}}}, Y{Projected{Float64, LinRange{Float64, Int64}, DimensionalData.Dimensions.Lookups.ReverseOrdered, DimensionalData.Dimensions.Lookups.Regular{Float64}, DimensionalData.Dimensions.Lookups.Intervals{DimensionalData.Dimensions.Lookups.Center}, DimensionalData.Dimensions.Lookups.NoMetadata, WellKnownText{GeoFormatTypes.CRS}, Nothing, Y{Colon}}}}, Tuple{}, Matrix{Float64}, Symbol, DimensionalData.Dimensions.Lookups.NoMetadata, Float64}, TitleMap::String, ΔX::Int64, 🎏_Plots::Bool, 🎏_Progress::Bool, Boundary::Symbol, Colormap::Symbol, Missingval::Float64, N_Layer::Int64) @ Main.geoLookuptable d:\JOE\MAIN\MODELS\WFLOW\WflowDataJoe\WflowRaster.jl\src\Julia\GeoLookuptable.jl:137 [8] top-level scope @ d:\JOE\MAIN\MODELS\WFLOW\WflowDataJoe\WflowRaster.jl\src\jl_notebook_cell_df34fa98e69747e1a8f8a730347b8e2f_X66sZmlsZQ==.jl:12 ```
0 条评论