Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue reading a NC-file in 0.5.2 #449

Closed
mauro3 opened this issue May 15, 2023 · 4 comments
Closed

Issue reading a NC-file in 0.5.2 #449

mauro3 opened this issue May 15, 2023 · 4 comments

Comments

@mauro3
Copy link
Collaborator

mauro3 commented May 15, 2023

This does not work anymore on 0.5.2

julia> using Downloads, Rasters; Downloads.download("https://people.ee.ethz.ch/~werderm/903870/nc.nc", "nc.nc")                                                                                                           
"nc.nc"                                                                                                                                                                                         
                                                                                                                                                                                                
julia> RasterStack("nc.nc")                                                                                                                                                                     
ERROR: MethodError: no method matching Raster(::Char, ::Tuple{}, ::Tuple{}, ::Symbol, ::DimensionalData.Dimensions.LookupArrays.Metadata{Rasters.NCDsource, Dict{String, Any}}, ::Missing)      
...

on 0.5.1 it works fine (Julia 1.9.0). Note the file is about 800MB.

Here the stacktrace:

julia> RasterStack("nc.nc")                                                                                                                                                            [129/485]
ERROR: MethodError: no method matching Raster(::Char, ::Tuple{}, ::Tuple{}, ::Symbol, ::DimensionalData.Dimensions.LookupArrays.Metadata{Rasters.NCDfile, Dict{String, Any}}, ::Missing)        
                                                                                                                                                                                                
Closest candidates are:                                                                                                                                                                         
  Raster(::A, ::D, ::R, ::Na, ::Me, ::Mi) where {T, N, D<:Tuple, R<:Tuple, A<:AbstractArray{T, N}, Na, Me, Mi}                                                                                  
   @ Rasters ~/.julia/packages/Rasters/U9GgU/src/array.jl:251                                                                                                                                   
  Raster(::Any, ::Tuple; name, kw...)                                                                                                                                                           
   @ Rasters ~/.julia/packages/Rasters/U9GgU/src/array.jl:270                                                                                                                                   
  Raster(::Any, ::AbstractString, ::Any; crs, mappedcrs, dims, refdims, name, metadata, missingval, source, write, lazy)                                                                        
   @ Rasters ~/.julia/packages/Rasters/U9GgU/src/array.jl:295                                                                                                                                   
  ...                                                                                                                                                                                           
                                                                                                                                                                                                
Stacktrace:                                                                                                                                                                                     
  [1] rebuild(A::Raster{Char, 0, Tuple{}, Tuple{}, CommonDataModel.CFVariable{Char, 0, NCDatasets.Variable{Char, 0, NCDatasets.NCDataset{Nothing}}, NCDatasets.Attributes{NCDatasets.NCDataset{N
othing}}, NamedTuple{(:fillvalue, :missing_values, :scale_factor, :add_offset, :calendar, :time_origin, :time_factor), Tuple{Nothing, Tuple{}, Vararg{Nothing, 5}}}}, Symbol, DimensionalData.Di
mensions.LookupArrays.Metadata{Rasters.NCDfile, Dict{String, Any}}, Missing}, data::Char, dims::Tuple{}, refdims::Tuple{}, name::Symbol, metadata::DimensionalData.Dimensions.LookupArrays.Metad
ata{Rasters.NCDfile, Dict{String, Any}}, missingval::Missing)                                                                                                                                   
    @ Rasters ~/.julia/packages/Rasters/U9GgU/src/array.jl:105                                                                                                                                  
  [2] rebuild(A::Raster{Char, 0, Tuple{}, Tuple{}, CommonDataModel.CFVariable{Char, 0, NCDatasets.Variable{Char, 0, NCDatasets.NCDataset{Nothing}}, NCDatasets.Attributes{NCDatasets.NCDataset{N
othing}}, NamedTuple{(:fillvalue, :missing_values, :scale_factor, :add_offset, :calendar, :time_origin, :time_factor), Tuple{Nothing, Tuple{}, Vararg{Nothing, 5}}}}, Symbol, DimensionalData.Di
mensions.LookupArrays.Metadata{Rasters.NCDfile, Dict{String, Any}}, Missing}, data::Char, dims::Tuple{}, refdims::Tuple{}, name::Symbol, metadata::DimensionalData.Dimensions.LookupArrays.Metad
ata{Rasters.NCDfile, Dict{String, Any}})                                                                                                                                                        
    @ Rasters ~/.julia/packages/Rasters/U9GgU/src/array.jl:105                                                                                                                                  
  [3] rebuild (repeats 4 times)                                                                                                                                                                 
    @ ~/.julia/packages/DimensionalData/pS9IE/src/array/array.jl:52 [inlined]                                                                                                                   
  [4] modify(f::Type{Array}, A::Raster{Char, 0, Tuple{}, Tuple{}, CommonDataModel.CFVariable{Char, 0, NCDatasets.Variable{Char, 0, NCDatasets.NCDataset{Nothing}}, NCDatasets.Attributes{NCDatas
ets.NCDataset{Nothing}}, NamedTuple{(:fillvalue, :missing_values, :scale_factor, :add_offset, :calendar, :time_origin, :time_factor), Tuple{Nothing, Tuple{}, Vararg{Nothing, 5}}}}, Symbol, Dim
ensionalData.Dimensions.LookupArrays.Metadata{Rasters.NCDfile, Dict{String, Any}}, Missing})                                                                                                    
    @ Rasters ~/.julia/packages/Rasters/U9GgU/src/array.jl:123                                                                                                                                  
  [5] (::Rasters.var"#98#100"{UnionAll})(a::Raster{Char, 0, Tuple{}, Tuple{}, CommonDataModel.CFVariable{Char, 0, NCDatasets.Variable{Char, 0, NCDatasets.NCDataset{Nothing}}, NCDatasets.Attrib
utes{NCDatasets.NCDataset{Nothing}}, NamedTuple{(:fillvalue, :missing_values, :scale_factor, :add_offset, :calendar, :time_origin, :time_factor), Tuple{Nothing, Tuple{}, Vararg{Nothing, 5}}}},
 Symbol, DimensionalData.Dimensions.LookupArrays.Metadata{Rasters.NCDfile, Dict{String, Any}}, Missing})                                                                                        
    @ Rasters ~/.julia/packages/Rasters/U9GgU/src/stack.jl:326                                  
  [6] map(f::Rasters.var"#98#100"{UnionAll}, t::Tuple{Raster{Char, 0, Tuple{}, Tuple{}, CommonDataModel.CFVariable{Char, 0, NCDatasets.Variable{Char, 0, NCDatasets.NCDataset{Nothing}},[96/485]
ets.Attributes{NCDatasets.NCDataset{Nothing}}, NamedTuple{(:fillvalue, :missing_values, :scale_factor, :add_offset, :calendar, :time_origin, :time_factor), Tuple{Nothing, Tuple{}, Vararg{Nothi
ng, 5}}}}, Symbol, DimensionalData.Dimensions.LookupArrays.Metadata{Rasters.NCDfile, Dict{String, Any}}, Missing}, Raster{Int8, 2, Tuple{X{Mapped{Int32, Vector{Int32}, DimensionalData.Dimensio
ns.LookupArrays.ForwardOrdered, DimensionalData.Dimensions.LookupArrays.Regular{Int32}, DimensionalData.Dimensions.LookupArrays.Points, DimensionalData.Dimensions.LookupArrays.Metadata{Rasters
.NCDfile, Dict{String, Any}}, EPSG, EPSG, X{Colon}}}, Y{Mapped{Int32, Vector{Int32}, DimensionalData.Dimensions.LookupArrays.ReverseOrdered, DimensionalData.Dimensions.LookupArrays.Regular{Int
32}, DimensionalData.Dimensions.LookupArrays.Points, DimensionalData.Dimensions.LookupArrays.Metadata{Rasters.NCDfile, Dict{String, Any}}, EPSG, EPSG, Y{Colon}}}}, Tuple{}, CommonDataModel.CFV
ariable{Int8, 2, NCDatasets.Variable{Int8, 2, NCDatasets.NCDataset{Nothing}}, NCDatasets.Attributes{NCDatasets.NCDataset{Nothing}}, NamedTuple{(:fillvalue, :missing_values, :scale_factor, :add
_offset, :calendar, :time_origin, :time_factor), Tuple{Nothing, Tuple{}, Vararg{Nothing, 5}}}}, Symbol, DimensionalData.Dimensions.LookupArrays.Metadata{Rasters.NCDfile, Dict{String, Any}}, Mi
ssing}, Raster{Float32, 2, Tuple{X{Mapped{Int32, Vector{Int32}, DimensionalData.Dimensions.LookupArrays.ForwardOrdered, DimensionalData.Dimensions.LookupArrays.Regular{Int32}, DimensionalData.
Dimensions.LookupArrays.Points, DimensionalData.Dimensions.LookupArrays.Metadata{Rasters.NCDfile, Dict{String, Any}}, EPSG, EPSG, X{Colon}}}, Y{Mapped{Int32, Vector{Int32}, DimensionalData.Dim
ensions.LookupArrays.ReverseOrdered, DimensionalData.Dimensions.LookupArrays.Regular{Int32}, DimensionalData.Dimensions.LookupArrays.Points, DimensionalData.Dimensions.LookupArrays.Metadata{Ra
sters.NCDfile, Dict{String, Any}}, EPSG, EPSG, Y{Colon}}}}, Tuple{}, CommonDataModel.CFVariable{Float32, 2, NCDatasets.Variable{Float32, 2, NCDatasets.NCDataset{Nothing}}, NCDatasets.Attribute
s{NCDatasets.NCDataset{Nothing}}, NamedTuple{(:fillvalue, :missing_values, :scale_factor, :add_offset, :calendar, :time_origin, :time_factor), Tuple{Nothing, Tuple{}, Vararg{Nothing, 5}}}}, Sy
mbol, DimensionalData.Dimensions.LookupArrays.Metadata{Rasters.NCDfile, Dict{String, Any}}, Missing}, Raster{Float32, 2, Tuple{X{Mapped{Int32, Vector{Int32}, DimensionalData.Dimensions.LookupA
rrays.ForwardOrdered, DimensionalData.Dimensions.LookupArrays.Regular{Int32}, DimensionalData.Dimensions.LookupArrays.Points, DimensionalData.Dimensions.LookupArrays.Metadata{Rasters.NCDfile, 
Dict{String, Any}}, EPSG, EPSG, X{Colon}}}, Y{Mapped{Int32, Vector{Int32}, DimensionalData.Dimensions.LookupArrays.ReverseOrdered, DimensionalData.Dimensions.LookupArrays.Regular{Int32}, Dimen
sionalData.Dimensions.LookupArrays.Points, DimensionalData.Dimensions.LookupArrays.Metadata{Rasters.NCDfile, Dict{String, Any}}, EPSG, EPSG, Y{Colon}}}}, Tuple{}, CommonDataModel.CFVariable{Fl
oat32, 2, NCDatasets.Variable{Float32, 2, NCDatasets.NCDataset{Nothing}}, NCDatasets.Attributes{NCDatasets.NCDataset{Nothing}}, NamedTuple{(:fillvalue, :missing_values, :scale_factor, :add_off
set, :calendar, :time_origin, :time_factor), Tuple{Nothing, Tuple{}, Vararg{Nothing, 5}}}}, Symbol, DimensionalData.Dimensions.LookupArrays.Metadata{Rasters.NCDfile, Dict{String, Any}}, Missin
g}, Raster{Float32, 2, Tuple{X{Mapped{Int32, Vector{Int32}, DimensionalData.Dimensions.LookupArrays.ForwardOrdered, DimensionalData.Dimensions.LookupArrays.Regular{Int32}, DimensionalData.Dime
nsions.LookupArrays.Points, DimensionalData.Dimensions.LookupArrays.Metadata{Rasters.NCDfile, Dict{String, Any}}, EPSG, EPSG, X{Colon}}}, Y{Mapped{Int32, Vector{Int32}, DimensionalData.Dimensi
ons.LookupArrays.ReverseOrdered, DimensionalData.Dimensions.LookupArrays.Regular{Int32}, DimensionalData.Dimensions.LookupArrays.Points, DimensionalData.Dimensions.LookupArrays.Metadata{Raster
s.NCDfile, Dict{String, Any}}, EPSG, EPSG, Y{Colon}}}}, Tuple{}, CommonDataModel.CFVariable{Float32, 2, NCDatasets.Variable{Float32, 2, NCDatasets.NCDataset{Nothing}}, NCDatasets.Attributes{NC
Datasets.NCDataset{Nothing}}, NamedTuple{(:fillvalue, :missing_values, :scale_factor, :add_offset, :calendar, :time_origin, :time_factor), Tuple{Nothing, Tuple{}, Vararg{Nothing, 5}}}}, Symbol
, DimensionalData.Dimensions.LookupArrays.Metadata{Rasters.NCDfile, Dict{String, Any}}, Missing}, Raster{Union{Missing, Float32}, 2, Tuple{X{Mapped{Int32, Vector{Int32}, DimensionalData.Dimens
ions.LookupArrays.ForwardOrdered, DimensionalData.Dimensions.LookupArrays.Regular{Int32}, DimensionalData.Dimensions.LookupArrays.Points, DimensionalData.Dimensions.LookupArrays.Metadata{Raste
rs.NCDfile, Dict{String, Any}}, EPSG, EPSG, X{Colon}}}, Y{Mapped{Int32, Vector{Int32}, DimensionalData.Dimensions.LookupArrays.ReverseOrdered, DimensionalData.Dimensions.LookupArrays.Regular{I
nt32}, DimensionalData.Dimensions.LookupArrays.Points, DimensionalData.Dimensions.LookupArrays.Metadata{Rasters.NCDfile, Dict{String, Any}}, EPSG, EPSG, Y{Colon}}}}, Tuple{}, CommonDataModel.C
FVariable{Union{Missing, Float32}, 2, NCDatasets.Variable{Float32, 2, NCDatasets.NCDataset{Nothing}}, NCDatasets.Attributes{NCDatasets.NCDataset{Nothing}}, NamedTuple{(:fillvalue, :missing_val
ues, :scale_factor, :add_offset, :calendar, :time_origin, :time_factor), Tuple{Float32, Tuple{}, Vararg{Nothing, 5}}}}, Symbol, DimensionalData.Dimensions.LookupArrays.Metadata{Rasters.NCDfile
, Dict{String, Any}}, Missing}, Raster{Union{Missing, Int16}, 2, Tuple{X{Mapped{Int32, Vector{Int32}, DimensionalData.Dimensions.LookupArrays.ForwardOrdered, DimensionalData.Dimensions.LookupA
rrays.Regular{Int32}, DimensionalData.Dimensions.LookupArrays.Points, DimensionalData.Dimensions.LookupArrays.Metadata{Rasters.NCDfile, Dict{String, Any}}, EPSG, EPSG, X{Colon}}}, Y{Mapped{Int
32, Vector{Int32}, DimensionalData.Dimensions.LookupArrays.ReverseOrdered, DimensionalData.Dimensions.LookupArrays.Regular{Int32}, DimensionalData.Dimensions.LookupArrays.Points, DimensionalDa
ta.Dimensions.LookupArrays.Metadata{Rasters.NCDfile, Dict{String, Any}}, EPSG, EPSG, Y{Colon}}}}, Tuple{}, CommonDataModel.CFVariable{Union{Missing, Int16}, 2, NCDatasets.Variable{Int16, 2, NC
Datasets.NCDataset{Nothing}}, NCDatasets.Attributes{NCDatasets.NCDataset{Nothing}}, NamedTuple{(:fillvalue, :missing_values, :scale_factor, :add_offset, :calendar, :time_origin, :time_factor),
 Tuple{Int16, Tuple{}, Vararg{Nothing, 5}}}}, Symbol, DimensionalData.Dimensions.LookupArrays.Metadata{Rasters.NCDfile, Dict{String, Any}}, Missing}, Raster{Int8, 2, Tuple{X{Mapped{Int32, Vect
or{Int32}, DimensionalData.Dimensions.LookupArrays.ForwardOrdered, DimensionalData.Dimensions.LookupArrays.Regular{Int32}, DimensionalData.Dimensions.LookupArrays.Points, DimensionalData.Dimen
sions.LookupArrays.Metadata{Rasters.NCDfile, Dict{String, Any}}, EPSG, EPSG, X{Colon}}}, Y{Mapped{Int32, Vector{Int32}, DimensionalData.Dimensions.LookupArrays.ReverseOrdered, DimensionalData.
Dimensions.LookupArrays.Regular{Int32}, DimensionalData.Dimensions.LookupArrays.Points, DimensionalData.Dimensions.LookupArrays.Metadata{Rasters.NCDfile, Dict{String, Any}}, EPSG, EPSG, Y{Colo
n}}}}, Tuple{}, CommonDataModel.CFVariable{Int8, 2, NCDatasets.Variable{Int8, 2, NCDatasets.NCDataset{Nothing}}, NCDatasets.Attributes{NCDatasets.NCDataset{Nothing}}, NamedTuple{(:fillvalue, :
missing_values, :scale_factor, :add_offset, :calendar, :time_origin, :time_factor), Tuple{Nothing, Tuple{}, Vararg{Nothing, 5}}}}, Symbol, DimensionalData.Dimensions.LookupArrays.Metadata{Rast
ers.NCDfile, Dict{String, Any}}, Missing}, Raster{Int16, 2, Tuple{X{Mapped{Int32, Vector{Int32}, DimensionalData.Dimensions.LookupArrays.ForwardOrdered, DimensionalData.Dimensions.LookupArrays
.Regular{Int32}, DimensionalData.Dimensions.LookupArrays.Points, DimensionalData.Dimensions.LookupArrays.Metadata{Rasters.NCDfile, Dict{String, Any}}, EPSG, EPSG, X{Colon}}}, Y{Mapped{Int32, V
ector{Int32}, DimensionalData.Dimensions.LookupArrays.ReverseOrdered, DimensionalData.Dimensions.LookupArrays.Regular{Int32}, DimensionalData.Dimensions.LookupArrays.Points, DimensionalData.Di
mensions.LookupArrays.Metadata{Rasters.NCDfile, Dict{String, Any}}, EPSG, EPSG, Y{Colon}}}}, Tuple{}, CommonDataModel.CFVariable{Int16, 2, NCDatasets.Variable{Int16, 2, NCDatasets.NCDataset{No
thing}}, NCDatasets.Attributes{NCDatasets.NCDataset{Nothing}}, NamedTuple{(:fillvalue, :missing_values, :scale_factor, :add_offset, :calendar, :time_origin, :time_factor), Tuple{Nothing, Tuple
{}, Vararg{Nothing, 5}}}}, Symbol, DimensionalData.Dimensions.LookupArrays.Metadata{Rasters.NCDfile, Dict{String, Any}}, Missing}})
    @ Base ./tuple.jl:276
  [8] #97
    @ ~/.julia/packages/Rasters/U9GgU/src/stack.jl:326 [inlined]
  [9] #open#101
    @ ~/.julia/packages/Rasters/U9GgU/src/stack.jl:333 [inlined]
 [10] open
    @ ~/.julia/packages/Rasters/U9GgU/src/stack.jl:331 [inlined]
 [11] modify(f::Type, s::RasterStack{Rasters.FileStack{Rasters.NCDfile, (:mapping, :mask, :firn, :surface, :thickness, :bed, :errbed, :source, :geoid), String, NTuple{9, Union}, Tuple{Tuple{},
 Vararg{Tuple{Int64, Int64}, 8}}, Tuple{DiskArrays.GridChunks{0}, Vararg{DiskArrays.GridChunks{2}, 8}}, NTuple{9, DiskArrays.Unchunked}}, Tuple{X{Mapped{Int32, Vector{Int32}, DimensionalData.D
imensions.LookupArrays.ForwardOrdered, DimensionalData.Dimensions.LookupArrays.Regular{Int32}, DimensionalData.Dimensions.LookupArrays.Points, DimensionalData.Dimensions.LookupArrays.Metadata{
Rasters.NCDfile, Dict{String, Any}}, EPSG, EPSG, X{Colon}}}, Y{Mapped{Int32, Vector{Int32}, DimensionalData.Dimensions.LookupArrays.ReverseOrdered, DimensionalData.Dimensions.LookupArrays.Regu
lar{Int32}, DimensionalData.Dimensions.LookupArrays.Points, DimensionalData.Dimensions.LookupArrays.Metadata{Rasters.NCDfile, Dict{String, Any}}, EPSG, EPSG, Y{Colon}}}}, Tuple{}, NamedTuple{(
:mapping, :mask, :firn, :surface, :thickness, :bed, :errbed, :source, :geoid), Tuple{Tuple{}, Vararg{Tuple{X{Colon}, Y{Colon}}, 8}}}, DimensionalData.Dimensions.LookupArrays.Metadata{Rasters.N
CDfile, Dict{String, Any}}, NamedTuple{(:mapping, :mask, :firn, :surface, :thickness, :bed, :errbed, :source, :geoid), NTuple{9, DimensionalData.Dimensions.LookupArrays.Metadata{Rasters.NCDfil
e, Dict{String, Any}}}}, Missing})
    @ Rasters ~/.julia/packages/Rasters/U9GgU/src/stack.jl:325
 [12] read(x::RasterStack{Rasters.FileStack{Rasters.NCDfile, (:mapping, :mask, :firn, :surface, :thickness, :bed, :errbed, :source, :geoid), String, NTuple{9, Union}, Tuple{Tuple{}, Vararg{Tup
le{Int64, Int64}, 8}}, Tuple{DiskArrays.GridChunks{0}, Vararg{DiskArrays.GridChunks{2}, 8}}, NTuple{9, DiskArrays.Unchunked}}, Tuple{X{Mapped{Int32, Vector{Int32}, DimensionalData.Dimensions.L
ookupArrays.ForwardOrdered, DimensionalData.Dimensions.LookupArrays.Regular{Int32}, DimensionalData.Dimensions.LookupArrays.Points, DimensionalData.Dimensions.LookupArrays.Metadata{Rasters.NCD
file, Dict{String, Any}}, EPSG, EPSG, X{Colon}}}, Y{Mapped{Int32, Vector{Int32}, DimensionalData.Dimensions.LookupArrays.ReverseOrdered, DimensionalData.Dimensions.LookupArrays.Regular{Int32},
 DimensionalData.Dimensions.LookupArrays.Points, DimensionalData.Dimensions.LookupArrays.Metadata{Rasters.NCDfile, Dict{String, Any}}, EPSG, EPSG, Y{Colon}}}}, Tuple{}, NamedTuple{(:mapping, :
mask, :firn, :surface, :thickness, :bed, :errbed, :source, :geoid), Tuple{Tuple{}, Vararg{Tuple{X{Colon}, Y{Colon}}, 8}}}, DimensionalData.Dimensions.LookupArrays.Metadata{Rasters.NCDfile, Dic
t{String, Any}}, NamedTuple{(:mapping, :mask, :firn, :surface, :thickness, :bed, :errbed, :source, :geoid), NTuple{9, DimensionalData.Dimensions.LookupArrays.Metadata{Rasters.NCDfile, Dict{Str
ing, Any}}}}, Missing})
    @ Rasters ~/.julia/packages/Rasters/U9GgU/src/read.jl:9
 [13] RasterStack(filename::String; dims::Nothing, refdims::Tuple{}, metadata::Nothing, crs::Nothing, mappedcrs::Nothing, layerdims::Nothing, layermetadata::Nothing, missingval::Nothing, sourc
e::Type, name::Nothing, keys::Nothing, layersfrom::Nothing, resize::Nothing, lazy::Bool, ext::Nothing)
    @ Rasters ~/.julia/packages/Rasters/U9GgU/src/stack.jl:286
 [14] RasterStack(filename::String)
    @ Rasters ~/.julia/packages/Rasters/U9GgU/src/stack.jl:241
 [15] top-level scope
    @ REPL[2]:1
@rafaqz
Copy link
Owner

rafaqz commented May 16, 2023

Ok the short term fix is to use lazy=true and just avoid loading that variable.

r = RasterStack("nc.nc"; lazy=true)                                                                                                                                                                     

Long term I need to look for grid_mapping attributes and ignore the variable they point to, which is mapping here. This is the same as for ignoring bounds variables of dimensions.

I think this got through in the past because lazy=true was the default behaviour.

@rafaqz
Copy link
Owner

rafaqz commented May 16, 2023

I have a fix whenever github is up for pushing again.

But if you have a smaller file or know how to make a file with grid_mapping using NCDatasets.jl it would be good to be able to write a test for this.

@mauro3
Copy link
Collaborator Author

mauro3 commented May 17, 2023

Converting this a file t.txt with this content

netcdf tt {
dimensions:
        y = 1 ;
        x = 1 ;
variables:
        char mapping ;
                mapping:grid_mapping_name = "polar_stereographic" ;
                mapping:latitude_of_projection_origin = -90. ;
                mapping:standard_parallel = -71. ;
                mapping:straight_vertical_longitude_from_pole = 0. ;
                mapping:semi_major_axis = 6378273. ;
                mapping:inverse_flattening = 298.27940504282 ;
                mapping:false_easting = 0. ;
                mapping:false_northing = 0. ;
        byte mask(y, x) ;
                mask:long_name = "mask" ;
                mask:grid_mapping = "mapping" ;
                mask:valid_range = 0b, 4b ;
                mask:flag_values = 0b, 1b, 2b, 3b, 4b ;

// global attributes:

data:

 mapping = "" ;

 mask =
  0 ;
}

into an ncfile with

ncgen t.txt -o nc.nc

produces a file which errors.

@rafaqz
Copy link
Owner

rafaqz commented May 17, 2023

Thanks

@rafaqz rafaqz closed this as completed May 27, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants