ThinkGeo.com    |     Documentation    |     Premium Support

Kriging Gridding Problem

Hi,


I picked up your Kriging sample and started trying it on some real data examples.  Unfortunately, when I started varying my cell size, I ran into some invalid operations exceptions which are being unhandled within the GenerateGrid method of the GridFeatureSource.  Here's the error.


System.InvalidOperationException was unhandled

  Message=The matrix cannot be inversed, please check if the input data is valid. For example 2 points with different values should not have the same coordination.

  Source=MapSuiteCore

  StackTrace:

       at ThinkGeo.MapSuite.Core.KrigingGridInterpolationModel.iSk=(Int32 iik=, Double iyk=, Double jCk=)

       at ThinkGeo.MapSuite.Core.KrigingGridInterpolationModel.InterpolateCore(RectangleShape cellExtent, GridDefinition gridDefinition)

       at ThinkGeo.MapSuite.Core.GridInterpolationModel.Interpolate(RectangleShape cellExtent, GridDefinition gridDefinition)

       at ohM=.cig=.dCg=(Object dSg=)

       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)

       at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()

       at System.Threading.ThreadPoolWorkQueue.Dispatch()

       at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

  InnerException:


I modified your sample to reproduce this with my dataset.  Can you please look at it?


Thanks,


Damian



IsolinesWithKriging.zip (1.35 MB)

Hi Damian, 
  
 Thanks for your detailed informaiton and demo, we have reproduced the problem you mentioned, but have a difficulty to fix it now, we are still working on it, please wait for hours, and any progress i will update it here. 
  
 Thanks, 
 Johnny

Hi Damian,  



It's an issue when we generate grid file.


We have fixed it and you can get the change from our development package 6.0.361.0 or any higher version.


Any question please let us know.


Thanks, 



Don



Hi Don, 
  
 I tried using the new 6.0.366.0 version and I found that it took 20 min to render and then didn’t display.  I then went back to the original file with the same doesn’t display result.  The .grid files were generated each time and look okay to me. 
  
 If I revert back to the previous library version, the program runs as expected with the original wells dataset and I see the contours on the screen. 
  
 Using the new library, if I try and click Generate, I get the following error: 
  
 System.IO.FileNotFoundException was unhandled 
   Message=Could not load file or assembly ‘Microsoft.SqlServer.Types, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91’ or one of its dependencies. The system cannot find the file specified. 
   Source=MapSuiteCore 
   FileName=Microsoft.SqlServer.Types, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91 
   FusionLog==== Pre-bind state information === 
 LOG: User = emgs-dhite\dhite 
 LOG: DisplayName = Microsoft.SqlServer.Types, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91 
  (Fully-specified) 
 LOG: Appbase = file:///C:/Users/dhite/Documents/Visual Studio 2010/Projects/MapSuiteExamples/IsolinesWithKriging/IsoLinesWithKriging/bin/Debug/ 
 LOG: Initial PrivatePath = NULL 
 Calling assembly : MapSuiteCore, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null. 
 === 
 LOG: This bind starts in default load context. 
 LOG: No application configuration file found. 
 LOG: Using host configuration file:  
 LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config. 
 LOG: Post-policy reference: Microsoft.SqlServer.Types, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91 
 LOG: The same bind was seen before, and was failed with hr = 0x80070002. 
  
   StackTrace: 
        at ThinkGeo.MapSuite.Core.IsoLineLayer.GetIsoFeatures(GridCell[,] gridMatrix, IEnumerable`1 isoLineLevels, String dataValueColumnName, IsoLineType isoLineType, Double noDataValue) 
        at ThinkGeo.MapSuite.Core.GridIsoLineLayer.GetFeaturesForDrawingCore(GeoCanvas canvas, Collection`1 labelsInAllLayers) 
        at ThinkGeo.MapSuite.Core.IsoLineLayer.DrawCore(GeoCanvas canvas, Collection`1 labelsInAllLayers) 
        at ThinkGeo.MapSuite.Core.Layer.Draw(GeoCanvas canvas, Collection`1 labelsInAllLayers) 
        at ThinkGeo.MapSuite.Core.MapEngine.9U0=(Layer 9k0=, Object 900=) 
        at ThinkGeo.MapSuite.Core.MapEngine.AEI=(IEnumerable`1 8E0=, Bitmap 8U0=, GeographyUnit 8k0=, Boolean 800=) 
        at ThinkGeo.MapSuite.Core.MapEngine.DrawStaticLayers(Bitmap gdiPlusBitmap, GeographyUnit mapUnit) 
        at Sample.DrawImage() in C:\Users\dhite\Documents\Visual Studio 2010\Projects\MapSuiteExamples\IsolinesWithKriging\IsoLinesWithKriging\Sample.cs:line 246 
        at Sample.btnGenerateGridFile_Click(Object sender, EventArgs e) in C:\Users\dhite\Documents\Visual Studio 2010\Projects\MapSuiteExamples\IsolinesWithKriging\IsoLinesWithKriging\Sample.cs:line 303 
        at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) 
        at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) 
        at System.Windows.Forms.Control.WndProc(Message& m) 
        at System.Windows.Forms.ButtonBase.WndProc(Message& m) 
        at System.Windows.Forms.Button.WndProc(Message& m) 
        at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) 
        at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg) 
        at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData) 
        at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context) 
        at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context) 
        at IsoLinesWithKriging.Program.Main() in C:\Users\dhite\Documents\Visual Studio 2010\Projects\MapSuiteExamples\IsolinesWithKriging\IsoLinesWithKriging\Program.cs:line 16 
        at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args) 
        at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() 
        at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx) 
        at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 
        at System.Threading.ThreadHelper.ThreadStart() 
   InnerException:  


Hi Damian, 
  
 It looks generate grid file works for you now? 
  
 I think the contours don’t shows because the render code in your sample, in fact I tried render with your data and grid file in our isoline sample(wiki.thinkgeo.com/wiki/Map_Suite_Services_Edition_Layers_%26_FeatureSources_Samples#Isolines) which skip generate grid and shows the contours succeed before. I think you can tried that and look whether some code make it don’t works. 
  
 About your exception, I haven’t got how to reproduce it now, but from the exception information, it looks casued by miss Microsoft.SqlServer.Types dll. You can try copy the Microsoft.SqlServer.Types.dll to your bin folder for solve it. This dll should be in our latest install package. 
  
 Thanks 
  
 Don

Don, 
  
 The sample I provided was the same as in the project “Isolines with Kriging” found here: wiki.thinkgeo.com/wiki/File:ServicesEditionSample_IsolinesWithKriging_CS_120914.zip 
  
 My only changes to this project were to update the lib to 6.0.366.0, to point to my test file, to change the cell size to 1000m and to set the display extent to the new data rather than the fixed one.  I didn’t do anything to effect the display. 
  
 Updating the sql lib actually helped to show the original data file again, but it still wouldn’t display my data. 
  
 And more importantly the time to process my tiny little 5Mb bathy file to a .grd is still ~20 minutes.  Did you see a similar result?  If so, then this is unacceptably slow to be saying this product can contour data effectively.  Please use my data for testing and not the GrayCountyIrrigationWellDepths.csv file. 
  
 Regards, 
 Damian

Hi Damian, 
  
 It looks  6.0.366.0 have some problem when generate grid file. 
  
 I tried it today and found all the values in grid file is the same generated by 366.  
  
 Could you please try to generate grid file by 6.0.371.0 today and let me know whether that works for you. 
  
 I change the sample and change current extent to (4.500005556, -49.00000833, 5.999997222, -50.85947778), have’t set cell size to 1000m when test. 
  
 The effect looks not so well but it works and the lines shows. For make it looks better we can did some adjust later after it works for you. 
  
 Any question please let me know. 
  
 Regards, 
  
 Don

Hi Don, 
  
 I had to leave this issue for a little while, but I confirm that it is still not working as expected.  When you test, I have some requests: 
  
 1.  Use my dataset 
 2.  Make the cell size 1000m 
  
 In this way, we can hope for same results and full understanding of the extents of the issue. 
  
 And, I am using library 7.0.0.42 now. 
  
 Thanks, 
 Damian 
  


Hi Damian, 
  
 I will test it under 7.0 using a better machine using your data and set cell size 1000m. 
  
 I will update the post and let you know if I reproduce it. 
  
 Regards, 
  
 Don 


Hello Summer, 
  
 I’m going to close this topic out.  I’ve been able to generate grid files now with the new code, but I have found my subsequent problem to be with creating specific isoline levels.  As such, I will open up a new topic. 
  
 Thanks, 
 Damian

Hi Daminan 
  
 Greate to hear the problem is sorted out. 
  
 if you have any more question , please feel free to let us know. 
  
 Best Regards 
  
 Summer