ThinkGeo.com    |     Documentation    |     Premium Support

Plotting wind probabilities

Our product needs to plot wind probabilities on a map, and we have been playing with IsoLines to do that.  However, I'm not convinced that IsoLines is the best product to get this done.  What other components of MapSuite might be suited for this task?  Our data consists of lat/lon points, and the wind probability percentage, in CSV form.


 


Here is an example of what the resulting map would look like:


nhc.noaa.gov/refresh/gra...0#contents


 


 


One other thing:  In using IsoLines to do this plotting, I cannot seem to get the rings to fill in.  I'm using the following code, but only to outline rings display:


 


For i As Integer = 0 To colors.Count - 2


                Dim style As New LineStyle(New GeoPen(colors(i + 1), 3))


                Dim areaSty As New AreaStyle(New GeoSolidBrush(GeoColor.StandardColors.Blue))


 


                Dim styles As New ObjectModel.Collection(Of Core.Style)


                styles.Add(style)


                styles.Add(areaSty)


                classBreakLineStyle.ClassBreaks.Add(New ClassBreak(isoLineLevels(i), styles))


            Next


 


Thanks,


Dib


 



Dib, 
  
 Two things come to mind immediately…MapShapes would be useful because each individual shape has its own ZoomLevels so each can be styled separately, or it could be an InMemoryFeatureLayer with a Feature attribute column containing the probability percent hooked up to a ValueStyle to assign different colors to shapes based on that attribute. 
  
 Allen

Hi guys, 
  
 Thanks for your help on this Allen, but is might not be fit for this scenario cause you don’t know the overlapping levels of each ring.  
  
 Dib, I think the IsoLines is the best product to do this, can you send me your csv file that I can try to make a sample for you? 
  
 Thanks, 
  
 Edgar

The shapes might be helpful, but the data doesn’t always put the points into the proper order, so I’m getting some oddly shaped polygons.  Is there an object that will connect all the dots, then use a fill brush to color in the whole area? 
  
 Also, I am trying out the same idea but using a grid.  What do the Power and SearchRadius parameters for the InverseDistanceWeightedGridInterpolationModel do?  Playing with their values, I am getting better results, but I can’t find an explanation of what they are, or how to use them. 
  
 Thanks 


Edgar, 
  
 Sure, I understand…just throwing out some ideas that might lead in the right direction!   
  
 I’ve never used it in MapSuite (I have in SQL Server), but you might create a MultipointShape and use the ConvexHull method to get a RingShape that creates, according to the documentation, “the smallest convex ring that contains all the points in the shape”.  I have never used RingShapes but I presume you can use them in the same way as the other shape types.  It sounds like this would eliminate the problem with the ordering of the points and simply “throw a blanket” over all of them instead of trying to create a polygon. 
  
 Allen

Edgar, 
  
 A couple issues with the isoLines: the first is getting them to fill in.  Adding an areaStyle didnt seem to do anything.  Also, I’m not sure it is the correct product for the result we are looking for, as zooming in causes changes that don’t look like what we want. 
  
 I’ve had success with a GridFeatureLayer, but the drawing time is the problem, as there can be a lot of data points.  Playing with the  Power and SearchRadius parameters of the InverseDistanceWeightedGridInterpolationModel has helped, but I can’t find any documentation on what they do, or how best to use them.  Any info on them, or on how to speed up the map refresh, would be great. 
  
 I’d be happy to send you the CSV file. 
  
 Dib 


That’s good Allen, ConvexHull is a good idea to get a valid polygon, thanks again for helping on the post. 
  
 Dib,  
  
 One grid’s value is depend on the points around it, the searchradius represent the max distance of a point to search, the bigger the value is, the more accurate the result is. The Power parameter is to determine the affection of one point to a grid. The bigger the Power is, the less affection is. 
  
 It would be great if you send us the CSV file and a sample shows how you use the GridFeatureLayer, so we can do something with the sample to help you. 
  
 Thanks, 
  
 Edgar

Edgar, where should I send the file and code?

If the file’s size is less than 500k you can attach it here, otherwise you can send it to forumsupport@thinkgeo.com.

Dib,


I've confirmed that the IsoLineLayer is not fit for you requirement as its performance is not good and it's very hard to convert the lines to polygons. However, I got your second Email, telling me you were using points to display, but il will be ugly when zooming in. So I modified your code to use the polygon, which looks more close to what you want, but it'll be ugly when zooming in, please get the attached code first and have at ry.


Regards,


Edgar



WinProbs.txt (11.1 KB)

Edgar, 
  
 Thanks for the help.  I ended up just plotting each point with a square symbol, and adjusting the size for each zoom level.  Results came out rather nicely.

Hello Dib, 
  
 You are welcome, please feel free to let us know your problem. 
  
 Regards, 
  
 Gary