Hei Alberto,

I changed the RasterImageLayer class to allow for dynamic loading.
I haven't tested fully if it works as expected. Can you have a look.
With respect to this I chose now some arbitrary values for
        maxPixelsForFastDisplayMode
so we can change it...

I have also added the changes to read ASCII grids.

Also if you want I can give you write access to our SVN. I think you 
will do the right thing... ;)

next I will look at the coloring.
Have a good 2 weeks (holidays I assume ;).

stefan

Alberto De Luca wrote:
>   Stefan,
> 
> thank you for your plug-in, I'm looking forth to have a look at it. And 
> about trasparency, I believe that something can be done with the 
> RasterImageLayer class, I'll give it a try...
> I'll be away for 2 weeks, so I hope I'll be able to get back to this 
> stuff when I'm back.
> 
> Alberto
> 
> On 05/08/2010 19:05, Stefan Steiniger wrote:
>> Hei Alberto,
>>
>> i-loading small images:
>> interesting proposal, need to look at it when I have time. (still 
>> hoping for the weekend)
>>
>> ii-coloring:
>> the coloring is similar to what I did based on Paul Plouy's code - so 
>> I guess this is the way to go. I zip all classes and attach them. It 
>> contains also a color editor from pirol, but I didn't use it yet.
>>
>> iii-Transparency for no-data is also an open issue - don't know if 
>> that info is somewhere stored with RasterImageLayer. In Sextante it is...
>>
>>
>> cheers,
>> stefan
>>
>> Alberto De Luca wrote:
>>>  Stefan,
>>>
>>> thank you for your quick reply. A couple of things about raster display:
>>>
>>> 1) when panning, only small images are reloaded. To avoid this, in 
>>> RasterImageLayer.java we could just call #setNeedToKeepImage(true) 
>>> when the following condition is true (around line 300):
>>>
>>> this.origImageWidth * this.origImageHeight) < 
>>> RasterImageLayer.getMaxPixelsForFastDisplayMode()     // faster 
>>> display (uses more RAM) for small images
>>>
>>> This way, we'd speed up the display of small images without the risk 
>>> of finishing memory up.
>>>
>>> 2) The parameter maxPixelsForFastDisplayMode has a fixed value of 
>>> 250000. Maybe we could make this value dependent on available memory, 
>>> so the concept of "small image" won't be absolute but dependent on 
>>> system resources.
>>>
>>>
>>> With respect to raster symbology, I'd be interested to see your work. 
>>> I've done a bit of work on raster symbology myself, it's just 
>>> preliminary work, but I'd like to share it with you to see if it can 
>>> be useful. I'm attaching here just a simple plug-in (source and jar 
>>> in the rar archive) that allows to chose from a list of color models 
>>> and repaints the selected raster consequently using a stretch 
>>> renderer. There is only one color model available, and the color 
>>> values are hardcoded. So you just select a raster layer from the 
>>> layer list, start the plug-in from the tools menu, pick a color model 
>>> and hit ok. The only problem is that you need to zoom in or out to 
>>> see the changes in raster symbology! There used to be a method in the 
>>> RasterImageLayer class, #forceRepaint that did the refresh, but I 
>>> can't find it anymore... Plus I need to figure out how to show nodata 
>>> cells as transparent. If you find this approach acceptable, I'd like 
>>> to extend the tool so to allow the user to create and edit color 
>>> models, both for stretched renderers and for class renderers. The 
>>> models would then be saved as ascii filed (xml maybe).
>>>
>>> Alberto
>>>
>>> On 04/08/2010 18:57, Stefan Steiniger wrote:
>>>> Hei Alberto,
>>>>
>>>> I hope to integrate your changes towards the weekend - if that works 
>>>> for
>>>> you.
>>>> And yes, I noticed too that the images are (most often) read for very
>>>> pan or zoom operation to save memory. I discovered this when I did the
>>>> coloring of the image and when I did a pan all the colors where gone -
>>>> so I need to set
>>>>
>>>>      layer.setNeedToKeepImage(true);
>>>>
>>>> and then it is not reloaded from file.
>>>> However, so the easy fix may be to just set this option right after
>>>> loading the file in #loadImage(). But then we might run into memory
>>>> problems if several images are loaded... need to think about it.
>>>>
>>>> but if you have suggestions let me know.
>>>>
>>>> stefan
>>>>
>>>> Alberto De Luca wrote:
>>>>>   Stefan,
>>>>>
>>>>> I had a look at your work, it seems great. To carry it a bit further I
>>>>> wrote a new class (GridAscii) to add reading capabilities for the  
>>>>> ESRI
>>>>> ASCII GRID format. Consequently, I modified the following classes:
>>>>>
>>>>> AddRasterImageLayerWizard.java
>>>>> RasterImageLayer.java
>>>>> SelectRasterImageFilePanel.java
>>>>>
>>>>> I also did a bit of clean-up to the GridFloat class: following your
>>>>> work, I replaced the double[][] array with a Raster object. So you can
>>>>> now read the raster directly from GridFloat (and GridAscii as well)
>>>>> without need of any conversion. You can find all the java files 
>>>>> attached
>>>>> to this email.
>>>>>
>>>>> It seems to me that the RasterImageLayer class makes a very 
>>>>> conservative
>>>>> use of memory, favouring disk access to memory consumption. I was 
>>>>> doing
>>>>> some tests using a 2000x2000 ASCII GRID file (roughly 35 MB on 
>>>>> disk) and
>>>>> noticed that it is read 2 times from disk during the loading phase
>>>>> (because it's big, smaller images are read just once). Plus, if I want
>>>>> to retrieve the pixel values later, the image is read again from disk.
>>>>> This can slow things down quite a bit, do you think we could come up
>>>>> with a faster solution?
>>>>>
>>>>> Thanks a bunch
>>>>> Alberto
>>>>>
>>>>>
>>>>>
>>>>> On 03/08/2010 19:04, Stefan Steiniger wrote:
>>>>>> Hei Alberto,
>>>>>>
>>>>>> I did some changes to the model yesterday night.
>>>>>> Instead of a double array I used "Raster".
>>>>>> I adde getRasterData() to the RasterImageLayer class. Subsequently I
>>>>>> also changed the retrieval method in Sextante.
>>>>>> I.e. instead of
>>>>>>      m_Raster = layer.getImage().getData();
>>>>>> i use now
>>>>>>      m_Raster = layer.getRasterData();
>>>>>>
>>>>>> I have done only some preliminary tests and most of the stuff 
>>>>>> worked as
>>>>>> far as I can assess (i.e. I fixed broken functions). However more
>>>>>> testing is probably needed.
>>>>>>
>>>>>> stefan
>>>>>>
>>>>>> Alberto De Luca wrote:
>>>>>>> Stefan,
>>>>>>>
>>>>>>> thank you for you time. About your doubts:
>>>>>>>
>>>>>>>> - you change finally the image loaded. This means that the 
>>>>>>>> data/image
>>>>>>>> delivered to sextante will contain the scaled values.
>>>>>>>>
>>>>>>> When you need to pass over the data/image to sextante, you could 
>>>>>>> always
>>>>>>> retrieve the actual raster data. The rescaling of the data is 
>>>>>>> done for
>>>>>>> display purposes only. Sure, you couldn't instantiate an
>>>>>>> OpenJUMPSextanteRasterLayer from a RasterImageLayer (like you do 
>>>>>>> in your
>>>>>>> class CreatePolygonGridFromSelectedImageLayerPlugIn.java), you'd 
>>>>>>> need to
>>>>>>> use a different constructor and a couple of other methods to set 
>>>>>>> image
>>>>>>> properties and data. But still it would be feasible. Or am I 
>>>>>>> missing the
>>>>>>> point here?
>>>>>>>> - you assume that the data loaded have only one band, so you 
>>>>>>>> need only
>>>>>>>> one array.
>>>>>>>>
>>>>>>> You're right. But we could replace the single array with a series of
>>>>>>> arrays, each of them storing the cell values of a single band. It 
>>>>>>> should
>>>>>>> be feasible. I'd give it a try to see if it can be done. What do you
>>>>>>> reckon?
>>>>>>>
>>>>>>>> Mhm.. not sure what to do, maybe we modify the RasterImage 
>>>>>>>> method such
>>>>>>>> way that images/data with one band will always be GridFloat files?
>>>>>>>> But then we still would need to ensure that Sextante will get the
>>>>>>>> correct values? Or we change the Sextante interface-classes. I 
>>>>>>>> actually
>>>>>>>> talked to Victor a few weeks earlier, and it may be the better
>>>>>>>> option to
>>>>>>>> have the interface classes maintained by us? [which means more
>>>>>>>> work... ;)]
>>>>>>>>
>>>>>>> Don't know, I'd prefer to spend some more time on the topic and 
>>>>>>> try to
>>>>>>> find a more general solution keeping the sextante classes 
>>>>>>> untouched...
>>>>>>>
>>>>>>> Thanks again
>>>>>>> Alberto
>>>>>>>
>>>>>> ------------------------------------------------------------------------------
>>>>>>  
>>>>>>
>>>>>>
>>>>>> The Palm PDK Hot Apps Program offers developers who use the
>>>>>> Plug-In Development Kit to bring their C/C++ apps to Palm for a share
>>>>>> of $1 Million in cash or HP Products. Visit us here for more details:
>>>>>> http://p.sf.net/sfu/dev2dev-palm
>>>>>> _______________________________________________
>>>>>> Jump-pilot-devel mailing list
>>>>>> Jump-pilot-devel@lists.sourceforge.net
>>>>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>>>>>
>>>>> ------------------------------------------------------------------------ 
>>>>>
>>>>>
>>>>> ------------------------------------------------------------------------------
>>>>>  
>>>>>
>>>>> The Palm PDK Hot Apps Program offers developers who use the
>>>>> Plug-In Development Kit to bring their C/C++ apps to Palm for a share
>>>>> of $1 Million in cash or HP Products. Visit us here for more details:
>>>>> http://p.sf.net/sfu/dev2dev-palm
>>>>>
>>>>>
>>>>> ------------------------------------------------------------------------ 
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Jump-pilot-devel mailing list
>>>>> Jump-pilot-devel@lists.sourceforge.net
>>>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>>> ------------------------------------------------------------------------------
>>>>  
>>>>
>>>> The Palm PDK Hot Apps Program offers developers who use the
>>>> Plug-In Development Kit to bring their C/C++ apps to Palm for a share
>>>> of $1 Million in cash or HP Products. Visit us here for more details:
>>>> http://p.sf.net/sfu/dev2dev-palm
>>>> _______________________________________________
>>>> Jump-pilot-devel mailing list
>>>> Jump-pilot-devel@lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>>>
>>>
>>> ------------------------------------------------------------------------
>>>
>>> ------------------------------------------------------------------------------
>>>  
>>>
>>> The Palm PDK Hot Apps Program offers developers who use the
>>> Plug-In Development Kit to bring their C/C++ apps to Palm for a share
>>> of $1 Million in cash or HP Products. Visit us here for more details:
>>> http://p.sf.net/sfu/dev2dev-palm
>>>
>>>
>>> ------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> Jump-pilot-devel mailing list
>>> Jump-pilot-devel@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>
>>
>> ------------------------------------------------------------------------------
>> The Palm PDK Hot Apps Program offers developers who use the
>> Plug-In Development Kit to bring their C/C++ apps to Palm for a share
>> of $1 Million in cash or HP Products. Visit us here for more details:
>> http://p.sf.net/sfu/dev2dev-palm
>>
>>
>> _______________________________________________
>> Jump-pilot-devel mailing list
>> Jump-pilot-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
> 
> ------------------------------------------------------------------------
> 
> ------------------------------------------------------------------------------
> This SF.net email is sponsored by 
> 
> Make an app they can't live without
> Enter the BlackBerry Developer Challenge
> http://p.sf.net/sfu/RIM-dev2dev 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Jump-pilot-devel mailing list
> Jump-pilot-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

------------------------------------------------------------------------------
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to