ThinkGeo.com    |     Documentation    |     Premium Support

Layers of GeoTiffs and Lower/Upper Threshold

I recently emailed a question (below is slightly modified version):



Let's say I have a collection of geotiffs; perhaps 200-300 files.  The files cover a large area like southern california and they come in about 4 different scales.  As the user zooms in and out will ThinkGeo display the files for each appropriate scale?  Are these things I need to some how keep track of and handle myself?  For example, I can load all of these files in ArcMap and as I zoom in the tiles not shown are simply not drawn (they are clipped) and when I reach a certain given scale all tiles that are for that scale are drawn and others are ignored.  Is that something I have to handle myself?  I'm asking because I don't think it is working for me but if it is supposed to work that way then I am doing something wrong.


I got a useful reponse that I really appreciate (leaving out other unrelated info again):



If you have 4 GeoTiffs (one for each different scale) for the same exact area then you will need to set the upper and lower threshold for each layer to tell the map control which range of scale when you want the Geotifff displayed.  You would do this with the code below:

            GeoTiffRasterLayer myTiff = new GeoTiffRasterLayer(@"C:\MyTiff.Tif");
            myTiff.LowerThreshold = 0;
            myTiff.UpperThreshold = 10000;


I can do this manually and it works but I can't ask the user to know these scales.  The one thing I can't seem to resolve is how to get the scales to use for the LowerThreshold and UpperThreshold.  There do not appear to be anything in the API to do this.  I also looked at the GDAL library and I can't really understand how to put anything together for this purpose.


Any suggestions out there?


Thanks!


Matthew Hanna


 



Matthew, 
  
   I believe that we could write some code to automatically calculate the applicable scales for you.  I am unaware of any embedded GeoTiff information that defines the upper and lower scale.  I guess that Arcview might have some intelligent default??  
  
    My idea would be to look at the world extent of each GeoTiff and based on the canvas size determine what the ratio of what you see to the scale.  In this way instead of setting a scale you would set a ration like the upper being 10:1 and the lower being 1:10.  This would be applied to all of the files so you would never need to know the real extents or scales just that you don’t want to display the image when you zoom out and it makes the real image small then the ratio.  What I am unsure about is the transition between images in the same area but at different scales, and when the optimal cut off could be.  it is hard to say without knowing the exact data.  
  
   One other thing is that i am pretty sure we have some kind of multi geotiff layer that allows you to build an index of sorts for a directory of geotiffs and it allows you to use one layer instead of multiple ones.  The indexing speed the drawing up a bit because there are less layers we need to query, not that lots of layers are slow but it may be more manageable.  Let me see what I can put together by Monday for some sample code and try my ideas out.  Let me know if you have any questions as my explanation may be a bit hard to follow. 
  
 David

Thank you.  I appreciate the effort.  I am still trying to work out a solution myself.  I plan to examine the open source code for an application called FalconView.  Might find an answer there.  I'll share if I learn anything.  A ThinkGeo oriented solution would be the best I believe.


Thanks again,


Matthew



Hello Matthew, 
  
 I’m sorry David is very busy this week, he will try to make the sample code if the time is free, but we can’t make a promise for the timeline, I’m really sorry for the inconvenience. 
  
 If you find some good workaround, you can post here and let’s figure out together. 
  
 Regards, 
  
 Gary