ThinkGeo.com    |     Documentation    |     Premium Support

IsoLines GridDefinition has "NoDataValue" in constructor but how does it work

The IsoLines sample application shows a value of "-9999" in the "NoDataValue" parameter of the constructor.  When I supply data with this value included to indicate "NoDataValue" for a cell in the rows and columns, it seems to treat the "-9999" as a valid data setting and my grid isolines are all compressed to a single value plus a isoline for this "-9999" value.


What is the meaning of the "NoDataValue" property in the GridDefinition class?  How do I create data points in the cells when I do not have a valid value in the range of my values for isolines?  Are there additional settings that are required in the other IsoLine classes (ClassBreakStyle??) to ignore the "NoDataValue" cells?


 


Richard


 



Ok. After several very long days (including 14 hours today) and a lot of trial and error, I believe I have finally figured out how the NoDataValue should work. 


My problem is that my input data is a rectangular grid of points with a point for every cell in the grid.  However some of these points containing a null value for the data.  What I thought the GridDefinition was looking for was to plug in the value specified in the NoDataValue property in all the cells where the value was null. The GridDefintion would then ignore the cells with the special NoDataValue setting. 


Instead, it appears that what the GridDefinition is expecting is that the dictionary of input values will just not include points for the cells where the value is NoDataValue (null in my case).  So every cell will not have a point in the dictionary. 


I still do not know what the NoDataValue property in the GridDefinition is used for but my isolines are not showing a line for this value which it did when I was filling in the value in my Dictionary of input.


It is so wonderful having a product with documentation to help out with this stuff!


Richard



Richard, 
  
 We are working for your problem. 
  
 Thanks for your post. 
  
 Regards, 
  
 Don

Richard, 
  
 Currently the NoDataValue property is only used in the GridInterpolationModel. So for example when I generate grid cells from the given points, some of the cells might be filled in with -9999 meaning no data there.  In the released sample on wiki we are using InverseDistanceWeightedGridInterpolationModel with Double.MaxValue to be the SearchRadius, which is why in that sample we don’t have this -9999 in the grid we generated.  
  
 You are right we were not thoroughly considering this NoDataValue property, so if the grid cell has this -9999 no data value it will also participate in the calculation. We’ve just make some changes by adding a static method GridFeatureSource.ReplaceNoDataValue() with which you can replace the NoDataValue using a given GridInterpolationModel, also in both GridIsoLineLayer and DynamicIsoLineLayer we are calling this method internally, with which this issue should be gone. Those changes will be available since 5.5.68.0 and please have another try. 
  
 Thanks, 
  
 Ben