nmangue / NGrib

NGrib is a .NET library to read GRIB (GRid in Binary) files. GRIB is a gridded data standard from WMO (World Meteorological Organisation) and is used by many meteorological organisation. Fork of GribCS.
GNU Lesser General Public License v3.0
17 stars 10 forks source link

PolarStereographicGridDefinition.EnumerateGridPoints Not Implemented Exception - when reader.GetDatasetValues is called #5

Open AquaNerd opened 2 years ago

AquaNerd commented 2 years ago

I am getting a not implemented exception while using the GetDatasetsValues. Mostly to test how complete the library is and what yet needs to be implemented to make it fully functional for my usecase. Are there plans to complete some of this work in the near future? And am I using it correctly? ReadMessages and ReadAllDatasets seems to do most of what I need but now wondering if those are iterating through all the data completely. I would like to help, but interested in your feedback.

image

nmangue commented 2 years ago

The way you read the data is ok. However there are many ways to encode data values in a grib file. It seems that the template used by your dataset is not yet supported

Could you provide the full stack trace and the value of DataSet.DataRepresentationSection.TemplateNumber ? If possible, could you also share the file you are reading ?

AquaNerd commented 2 years ago

@nmangue thanks for getting back to me so quickly. Here is where I am pulling the grib2 files from. https://nomads.ncep.noaa.gov/pub/data/nccf/com/pcpanl/prod/

An example file out of those are https://nomads.ncep.noaa.gov/pub/data/nccf/com/pcpanl/prod/pcpanl.20220211/st4_conus.2022021114.01h.grb2

AquaNerd commented 2 years ago

@nmangue I am finding out that the original not implemented exception is due to the contents of the file include using the polarStereographicGridDefinition template which here is not yet implemented. https://github.com/nmangue/NGrib/blob/cf1e780155ab17faab98484d9c1b1ab0f18896bd/src/NGrib/Grib2/Templates/GridDefinitions/0020_PolarStereographicProjectionGridDefinition.cs#L83

I assume that was put there as a placeholder for the point when you ran into a need to implement it. As in, you didn't have example data to use in order to set it up. Correct?

nmangue commented 2 years ago

That is correct ! Would you try to implement this functionality ? You can use the NetCDF Java implementation as a reference : Grib2Gds.java@983

AquaNerd commented 2 years ago

@nmangue in due time. But for my use case, I am limited on time. I guess I will keep an eye out if you or someone else beats me to it.

That is correct ! Would you try to implement this functionality ? You can use the NetCDF Java implementation as a reference : Grib2Gds.java@983

Also there is a bit more to it then just copy pasting into c# code. I have not dug into it far enough to determine what is comparable to the projection interface and AbstractProjection base class that is used for the stereographic projection.