Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [udig-devel] GeoTiff fast render

Hi Jody

Thanks for your tips. Today i've been trying to do rendering speed up.

I have been getting closer to final result, but rendering speed is not sufficient for my purpose.

So what i have been done is compressing and adding more tiles on my geotiff.
Then i have been done
you mentioned:
"
dump them all into a single folder and use the image moasic wizard".

And i have been trying to do tile caches.

So to last you mentioned was a "
uDig also responds well to overlays.", could you describe a more what you mentioning on this "uDig also responds well to overlays."


Regaards

Kokkonen





From: Jody Garnett [mailto:jody.garnett@xxxxxxxxx]
To: User-friendly Desktop Internet GIS [mailto:udig-devel@xxxxxxxxxxxxxxxxxxxxx]
Sent: Fri, 01 Apr 2011 16:01:53 +0300
Subject: Re: [udig-devel] GeoTiff fast render

I would reiterate the request made of Ruben; we need a developer with large rasters to experiment with options so we can determine sensible defaults.

Or failing that we need a developer to make a style editor page for the settings so a volunteer can test out different options?

-- 
Jody Garnett

On Friday, 1 April 2011 at 9:18 PM, Devrim Baris Acar wrote:

Hi,
Apart from Jody's recommendations I  would also try adding overviews to the geotiff images, use gdal_addo from gdal tools for this purpose.
Another option would be to setup a geoserver instance and build pyramids. That will also speed up a lot, I am serving 30x78 mb geotiffs with this option.

Just my 2 cents,

Devrim Baris Acar



On Fri, Apr 1, 2011 at 12:00, Jody Garnett <jody.garnett@xxxxxxxxx> wrote:
We have a tiling cache for working with tile servers (all kinds of tile servers). You can configure it to work on disk or memory.

 
There is some low level control of the Java Advanced Imagining tile cache used for rendering raster; I was talking to about this a month ago with Rueben (but we have not made the preferences available to users).

> I will try and add a configuration property for you on the weekend I guess; it is the best I can do without being hired :-) > > For your part can you test from the udig trunk code base (ie do you have a checkout or are you just working from the SDK?) Also do you have a mapserver URL we can test against? > I have tried to understand the FilterEncodingPreProcessor, but I am having some dificulties. I have created a filter composed by a fid filter and a comparation filter. My goal is to have them encoded on the same xml filter, but no luck. I have tried the 3 compliance levels, hoping that after accepting each visitor (one for each level) in the filter, I would be able to invoke visitor.getFilter and obtain the new filter, hopefully one of them encoded as I want, but I guess I didnt unerstand this correctly, right? > Thanks for looking at it; please take your example code and output to the geotools-user list and we can take up discussion there. > > I suspect we will need a two part solution: > - a parameter to set compliance level for WFSDataStoreFactory > - an understanding of what FilterEncodingPreProcessor is doing > > > CODE: > > org.geotools.xml.Configuration conf2 = new org.geotools.filter.v1_1.OGCConfiguration(); > > FilterFactory2 factory = CommonFactoryFinder.getFilterFactory2(null); > String fid1 = "FID.1"; > Filter fidFilter= createFidFilter("FID.1"); > Filter normalFilter = CQL.toFilter("id = 1"); > FFilter filter = factory.and( fidFilter, normalFilter); > > FilterEncodingPreProcessor visitor1 = new FilterEncodingPreProcessor(XMLHandlerHints.VALUE_FILTER_COMPLIANCE_LOW); > FilterEncodingPreProcessor visitor2 = new FilterEncodingPreProcessor(XMLHandlerHints.VALUE_FILTER_COMPLIANCE_MEDIUM); > FFilterEncodingPreProcessor visitor3 = new FilterEncodingPreProcessor(XMLHandlerHints.VALUE_FILTER_COMPLIANCE_HIGH); > > System.out.println(""LOW"); > Filters.accept(filter, visitor1); > org.geotools.xml.Encoder encoder = new org.geotools.xml.Encoder(conf2); > encoder.setIndenting(true); > encoder.setIndentSize(2); > encoder.encode(visitor1.getFilter(), org.geotools.filter.v1_1.OGC.Filter, System.out ); > encoder = new org.geotools.xml.Encoder(conf2); > encoder.setIndenting(true); > encoder.setIndentSize(2); > encoder.encode( visitor1.getFFidFilter(), org.geotools.filter.v1_1.OGC.Filter, System.out ); > > System.out.println("MEDIUM"); > Filters.accept(filter, visitor2); > encoder =D new org.geotools.xml.Encoder(conf2); > encoder.setIndenting(true); > encoder.setIndentSize(2); > encoder.encode( visitor2.getFilter(), org.geotools.filter.v1_1.OGC.Filter, System.out ); > encoder = new org.geotools.xml.Encoder(conf2); > encoder.setIndenting(true); > encoder.setIndentSize(2); > encoder.encode( visitor2.getFidFilter(), org.geotools.filter.v1_1.OGC.Filter, System.out ); > > System.out.println(""HIGH"); > Filters.accept(filter, visitor3); > encoder = new org.geotools.xml.Encoder(conf2); > encoder.setIndenting(true); > encoder.setIndentSize(2); > encoder.encode( visitor3.getFilter(), org.geotools.filter.v1_0.OGC.Filter, System.out ); > encoder = new org.geotools.xml.Encoder(conf2); > encoder.setIndenting(true); > encoder.setIndentSize(2); > encoder.encode( visitor3.getFFidFilter(), org.geotools.filter.v1_1.OGC.Filter, System.out ); > > OUTPUT: > > > LOW > > > > > id > 1 > > > > > > MEDIUM > > > > > > > HIGH > > > > > > > > Maybe I can ask questions about this visitor in the geotools list? > Anyways thanks for helping because this looks like it is what I need to fix my problem with mapserver requests :) > > Joaquín > ________________________________________ > De: udig-devel-bounces@xxxxxxxxxxxxxxxxxxxxx [udig-devel-bounces@xxxxxxxxxxxxxxxxxxxxx] En nombre de Jody Garnett [jody.garnett@xxxxxxxxx] > Enviado el: jueves, 07 de abril de 2011 12:07 > Para: User-friendly Desktop Internet GIS > Asunto: Re: [udig-devel] What happens after layer.setfilter(filter) > > Hi Joaquín: > > We may have more luck of lenient is set to false (ie we do not want to be lenient on how requests are constructed). Truth be told I dived right into the GeoTools code to see how the requests were constructed; and did not pay attention if there is an easy way to get from here to there. > > We may end up writing one? > > -- > Jody Garnett > > > On Thursday, 7 April 2011 at 7:53 PM, Joaquín Rodriguez-Guerra Urcelay wrote: > > Hi Jody, > > I am sorry, but I get a bit lost with the strict setting, is it a connection parameter? if so, the one that looks more similar to strict might be lenient, but it is already set to true by default.... > > I played with this code for a while (adding strict=true to the url, I really dont know where else to put it), trying to create a filter composed by a fid filter and normal filters, but they never get mixed up in the same filter :( , I dont know how you managed to do it uDig. > Perhaps stepping through the code will help answer that question? > > Let us try a different track and look at where the filter / xml code takes place: > - http://svn.osgeo.org/geotools/trunk/modules/library/xml/src/test/java/org/geotools/xml/filter/FilterEncodingPreProcessorTest.java > > Do those test cases line up with your expectations? > > It seems to come down to configuration line such as: > > > visitor = new FilterEncodingPreProcessor(XMLHandlerHints.VALUE_FILTER_COMPLIANCE_MEDIUM); > > > So if you can sort out what compliance level you would like we can add a connection parameter to allow it to be configured in that manner? > > You could also take this up on the geotools users list, where Gabriel who looks after this module on occasion may be able to help? > > Jody > > > ______________________ > This message including any attachments may contain confidential > information, according to our Information Security Management System, > and intended solely for a specific individual to whom they are addressed. > Any unauthorised copy, disclosure or distribution of this message > is strictly forbidden. If you have received this transmission in error, > please notify the sender immediately and delete it. > > ______________________ > Este mensaje, y en su caso, cualquier fichero anexo al mismo, > puede contener informacion clasificada por su emisor como confidencial > en el marco de su Sistema de Gestion de Seguridad de la > Informacion siendo para uso exclusivo del destinatario, quedando > prohibida su divulgacion copia o distribucion a terceros sin la > autorizacion expresa del remitente. Si Vd. ha recibido este mensaje > erroneamente, se ruega lo notifique al remitente y proceda a su borrado. > Gracias por su colaboracion. > > ______________________ > > _______________________________________________ > User-friendly Desktop Internet GIS (uDig) > http://udig.refractions.net > http://lists.refractions.net/mailman/listinfo/udig-devel > > > ______________________ > This message including any attachments may contain confidential > information, according to our Information Security Management System, > and intended solely for a specific individual to whom they are addressed. > Any unauthorised copy, disclosure or distribution of this message > is strictly forbidden. If you have received this transmission in error, > please notify the sender immediately and delete it. > > ______________________ > Este mensaje, y en su caso, cualquier fichero anexo al mismo, > puede contener informacion clasificada por su emisor como confidencial > en el marco de su Sistema de Gestion de Seguridad de la > Informacion siendo para uso exclusivo del destinatario, quedando > prohibida su divulgacion copia o distribucion a terceros sin la > autorizacion expresa del remitente. Si Vd. ha recibido este mensaje > erroneamente, se ruega lo notifique al remitente y proceda a su borrado. > Gracias por su colaboracion. > > ______________________ > > _______________________________________________ > User-friendly Desktop Internet GIS (uDig) > http://udig.refractions.net > http://lists.refractions.net/mailman/listinfo/udig-devel > --4da7c633_7724c67e_bb Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline
Okay we got our patch into GeoTools trunk. So next up we need to wait for the nightly build to deploy the 8-SNAPSHOT; and then try it out.
I am not sure if one of the other developers has changed net.refractions.udig.libs to use 8-SNAPSHOT yet; but we can find out.

To try things out you can use the generic geotools datastore wizard it will give you access to two new parameters; the parameters are documented here:
- http://docs.geotools.org/latest/userguide/guide/library/data/wfs.html

- wfs strategy - we can change this to force the system to use "mapserver" strategy; your server initially did not work because your executable is called *mywfs*; and the automatic code was looking for "mapserver" :-) You can now override this setting using this new parameter; and that may be enough for things to work out for you.

- filter compliance; we hooked up direct control of the filter compliance setting - but only for WFS 1.0 - so you can tell us if this is needed or not. If it is not useful we will remove it.

-- 
Jody Garnett

On Friday, 8 April 2011 at 7:09 PM, Joaquín Rodriguez-Guerra Urcelay wrote:

Thank you Jody!

I signed up in github and checked-out udig-platform in case you find the time to do any modification that I can test :)

I installed a mapserver and set up a layer connected to a mysql server in a test machine that we have:

http://212.0.113.22:8080/cgi-bin/mywfs?WIDTH=512&SERVICE=WFS&VERSION=1.0.0&REQUEST=GetCapabilities

I am now going to write to the geotools-user list to discuss the FilterEncodingPreProcessor

Joaquín

________________________________________
De: udig-devel-bounces@xxxxxxxxxxxxxxxxxxxxx [udig-devel-bounces@xxxxxxxxxxxxxxxxxxxxx] En nombre de Jody Garnett [jody.garnett@xxxxxxxxx]
Enviado el: viernes, 08 de abril de 2011 1:45
Para: User-friendly Desktop Internet GIS
Asunto: Re: [udig-devel] What happens after layer.setfilter(filter)

I went through the udig basic renderer code trying to find where the bbox filter (screen box) is added to initial fid filter, but it seems to me like this is done in the geotool's streaming renderer, does it make any sense??

Yes; we use the geotools rendering engine to draw wfs. It combines any filters we have in our style; with the current screen bounds to request features.

I don't think the problem is with the filter; it is with how we encode it (ie write out the xml request).

I will try and add a configuration property for you on the weekend I guess; it is the best I can do without being hired :-)

For your part can you test from the udig trunk code base (ie do you have a checkout or are you just working from the SDK?) Also do you have a mapserver URL we can test against?
I have tried to understand the FilterEncodingPreProcessor, but I am having some dificulties. I have created a filter composed by a fid filter and a comparation filter. My goal is to have them encoded on the same xml filter, but no luck. I have tried the 3 compliance levels, hoping that after accepting each visitor (one for each level) in the filter, I would be able to invoke visitor.getFilter and obtain the new filter, hopefully one of them encoded as I want, but I guess I didnt unerstand this correctly, right?
Thanks for looking at it; please take your example code and output to the geotools-user list and we can take up discussion there.

I suspect we will need a two part solution:
- a parameter to set compliance level for WFSDataStoreFactory
- an understanding of what FilterEncodingPreProcessor is doing


CODE:

org.geotools.xml.Configuration conf2 = new org.geotools.filter.v1_1.OGCConfiguration();

FilterFactory2 factory = CommonFactoryFinder.getFilterFactory2(null);
String fid1 = "FID.1";
Filter fidFilter= createFidFilter("FID.1");
Filter normalFilter = CQL.toFilter("id = 1");
FFilter filter = factory.and( fidFilter, normalFilter);

FilterEncodingPreProcessor visitor1 = new FilterEncodingPreProcessor(XMLHandlerHints.VALUE_FILTER_COMPLIANCE_LOW);
FilterEncodingPreProcessor visitor2 = new FilterEncodingPreProcessor(XMLHandlerHints.VALUE_FILTER_COMPLIANCE_MEDIUM);
FFilterEncodingPreProcessor visitor3 = new FilterEncodingPreProcessor(XMLHandlerHints.VALUE_FILTER_COMPLIANCE_HIGH);

System.out.println(""LOW");
Filters.accept(filter, visitor1);
org.geotools.xml.Encoder encoder = new org.geotools.xml.Encoder(conf2);
encoder.setIndenting(true);
encoder.setIndentSize(2);
encoder.encode(visitor1.getFilter(), org.geotools.filter.v1_1.OGC.Filter, System.out );
encoder = new org.geotools.xml.Encoder(conf2);
encoder.setIndenting(true);
encoder.setIndentSize(2);
encoder.encode( visitor1.getFFidFilter(), org.geotools.filter.v1_1.OGC.Filter, System.out );

System.out.println("MEDIUM");
Filters.accept(filter, visitor2);
encoder =D new org.geotools.xml.Encoder(conf2);
encoder.setIndenting(true);
encoder.setIndentSize(2);
encoder.encode( visitor2.getFilter(), org.geotools.filter.v1_1.OGC.Filter, System.out );
encoder = new org.geotools.xml.Encoder(conf2);
encoder.setIndenting(true);
encoder.setIndentSize(2);
encoder.encode( visitor2.getFidFilter(), org.geotools.filter.v1_1.OGC.Filter, System.out );

System.out.println(""HIGH");
Filters.accept(filter, visitor3);
encoder = new org.geotools.xml.Encoder(conf2);
encoder.setIndenting(true);
encoder.setIndentSize(2);
encoder.encode( visitor3.getFilter(), org.geotools.filter.v1_0.OGC.Filter, System.out );
encoder = new org.geotools.xml.Encoder(conf2);
encoder.setIndenting(true);
encoder.setIndentSize(2);
encoder.encode( visitor3.getFFidFilter(), org.geotools.filter.v1_1.OGC.Filter, System.out );

OUTPUT:


LOW
<?xml version="1.0" encoding="UTF-8"?>
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml">
<ogc:And>
<ogc:PropertyIsEqualTo matchCase="true">
<ogc:PropertyName>id</ogc:PropertyName>
<ogc:Literal>1</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:And>
</ogc:Filter>
<?xml version="1.0" encoding="UTF-8"?>
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml"/>
MEDIUM
<?xml version="1.0" encoding="UTF-8"?>
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml"/>
<?xml version="1.0" encoding="UTF-8"?>
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml">
<ogc:FeatureId fid="FID.1"/>
</ogc:Filter>
HIGH
<?xml version="1.0" encoding="UTF-8"?>
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml"/>
<?xml version="1.0" encoding="UTF-8"?>
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml">
<ogc:FeatureId fid="FID.1"/>
</ogc:Filter>

Maybe I can ask questions about this visitor in the geotools list?
Anyways thanks for helping because this looks like it is what I need to fix my problem with mapserver requests :)

Joaquín
________________________________________
De: udig-devel-bounces@xxxxxxxxxxxxxxxxxxxxx<mailto:udig-devel-bounces@xxxxxxxxxxxxxxxxxxxxx> [udig-devel-bounces@xxxxxxxxxxxxxxxxxxxxx<mailto:udig-devel-bounces@xxxxxxxxxxxxxxxxxxxxx>] En nombre de Jody Garnett [jody.garnett@xxxxxxxxx<mailto:jody.garnett@xxxxxxxxx>]
Enviado el: jueves, 07 de abril de 2011 12:07
Para: User-friendly Desktop Internet GIS
Asunto: Re: [udig-devel] What happens after layer.setfilter(filter)

Hi Joaquín:

We may have more luck of lenient is set to false (ie we do not want to be lenient on how requests are constructed). Truth be told I dived right into the GeoTools code to see how the requests were constructed; and did not pay attention if there is an easy way to get from here to there.

We may end up writing one?

--
Jody Garnett


On Thursday, 7 April 2011 at 7:53 PM, Joaquín Rodriguez-Guerra Urcelay wrote:

Hi Jody,

I am sorry, but I get a bit lost with the strict setting, is it a connection parameter? if so, the one that looks more similar to strict might be lenient, but it is already set to true by default....

I played with this code for a while (adding strict=true to the url, I really dont know where else to put it), trying to create a filter composed by a fid filter and normal filters, but they never get mixed up in the same filter :( , I dont know how you managed to do it uDig.
Perhaps stepping through the code will help answer that question?

Let us try a different track and look at where the filter / xml code takes place:
- http://svn.osgeo.org/geotools/trunk/modules/library/xml/src/test/java/org/geotools/xml/filter/FilterEncodingPreProcessorTest.java

Do those test cases line up with your expectations?

It seems to come down to configuration line such as:


visitor = new FilterEncodingPreProcessor(XMLHandlerHints.VALUE_FILTER_COMPLIANCE_MEDIUM);


So if you can sort out what compliance level you would like we can add a connection parameter to allow it to be configured in that manner?

You could also take this up on the geotools users list, where Gabriel who looks after this module on occasion may be able to help?

Jody


______________________
This message including any attachments may contain confidential
information, according to our Information Security Management System,
and intended solely for a specific individual to whom they are addressed.
Any unauthorised copy, disclosure or distribution of this message
is strictly forbidden. If you have received this transmission in error,
please notify the sender immediately and delete it.

______________________
Este mensaje, y en su caso, cualquier fichero anexo al mismo,
puede contener informacion clasificada por su emisor como confidencial
en el marco de su Sistema de Gestion de Seguridad de la
Informacion siendo para uso exclusivo del destinatario, quedando
prohibida su divulgacion copia o distribucion a terceros sin la
autorizacion expresa del remitente. Si Vd. ha recibido este mensaje
erroneamente, se ruega lo notifique al remitente y proceda a su borrado.
Gracias por su colaboracion.

______________________

_______________________________________________
User-friendly Desktop Internet GIS (uDig)
http://udig.refractions.net
http://lists.refractions.net/mailman/listinfo/udig-devel


______________________
This message including any attachments may contain confidential
information, according to our Information Security Management System,
and intended solely for a specific individual to whom they are addressed.
Any unauthorised copy, disclosure or distribution of this message
is strictly forbidden. If you have received this transmission in error,
please notify the sender immediately and delete it.

______________________
Este mensaje, y en su caso, cualquier fichero anexo al mismo,
puede contener informacion clasificada por su emisor como confidencial
en el marco de su Sistema de Gestion de Seguridad de la
Informacion siendo para uso exclusivo del destinatario, quedando
prohibida su divulgacion copia o distribucion a terceros sin la
autorizacion expresa del remitente. Si Vd. ha recibido este mensaje
erroneamente, se ruega lo notifique al remitente y proceda a su borrado.
Gracias por su colaboracion.

______________________

_______________________________________________
User-friendly Desktop Internet GIS (uDig)
http://udig.refractions.net
http://lists.refractions.net/mailman/listinfo/udig-devel

--4da7c633_7724c67e_bb--

Back to the top