Thank you Michael,

nevertheless I still remain having one problem which I don't understand. 
This is my code:

         FeatureCollection<SimpleFeatureType,SimpleFeature> collection =
           RasterToVectorProcess.process(cov, band, bounds, 
outsideValues, insideEdges, null);

         FeatureIterator<SimpleFeature> iterator = collection.features();
         try {
             while( iterator.hasNext() ){
                 SimpleFeature feature = iterator.next();
                 
System.out.println(feature.getDefaultGeometry().getClass());
             }
         }
         finally {
             iterator.close();
         }

         GeometryFactory gf = new GeometryFactory();
         MultiPolygon mp = gf.createMultiPolygon( collection.toArray(new 
Polygon[0]) );

This is the output it gives me:

1) many info logs about EPSG initialization - is there a way to get rid 
of it? E.g. set the geotools log level to warning?

Jul 26, 2011 10:22:08 PM org.geotools.gce.geotiff.GeoTiffReader getHRInfo
WARNING: Coordinate Reference System is not available
Jul 26, 2011 10:22:08 PM 
org.geotools.referencing.factory.epsg.ThreadedEpsgFactory <init>
INFO: Setting the EPSG factory 
org.geotools.referencing.factory.epsg.DefaultFactory to a 1800000ms timeout
Jul 26, 2011 10:22:08 PM 
org.geotools.referencing.factory.epsg.ThreadedEpsgFactory <init>
INFO: Setting the EPSG factory 
org.geotools.referencing.factory.epsg.ThreadedHsqlEpsgFactory to a 
1800000ms timeout
Jul 26, 2011 10:22:08 PM 
org.geotools.referencing.factory.epsg.ThreadedHsqlEpsgFactory 
createDataSource
INFO: Building new data source for 
org.geotools.referencing.factory.epsg.ThreadedHsqlEpsgFactory
Jul 26, 2011 10:22:08 PM 
org.geotools.referencing.factory.epsg.ThreadedHsqlEpsgFactory 
createBackingStore
INFO: Building backing store for 
org.geotools.referencing.factory.epsg.ThreadedHsqlEpsgFactory

2) Then it print's out that the class of the simplefeatures in my 
collection is:
class com.vividsolutions.jts.geom.Polygon
class com.vividsolutions.jts.geom.Polygon

3) And then it falls at line: "MultiPolygon mp = gf.createMultiPolygon( 
collection.toArray(new Polygon[0]) );" raising exception of incorrect 
storing (allthought the types seems to correspond).
Exception in thread "main" java.lang.ArrayStoreException: 
org.geotools.feature.simple.SimpleFeatureImpl
     at java.util.AbstractCollection.toArray(AbstractCollection.java:171)
     at 
org.geotools.feature.DefaultFeatureCollection.toArray(DefaultFeatureCollection.java:586)
     at event.App.main(App.java:91)


Jiri Novak

On 07/26/2011 09:18 PM, Michael Bedward wrote:
> Hi Jiri,
>
> Yes, there is a slightly easier method...
>
> GeometryFactory gf = new GeometryFactory();
> MultiPolygon mp = gf.createMultiPolygon( myCollection.toArray( new
> Polygon[0] ) );
>
> Michael
>
>
> On 27 July 2011 01:05, Jiří Novák<[email protected]>  wrote:
>> Hi Michael,
>>
>> thanks a lot, it works! I had there "stupid typo" :)
>>
>> I am vectorizing the following way:
>>         final File file = new
>> File("/home/jirka/hibernate-spatial/event-tutorial/test2.tif");
>>
>>         AbstractGridFormat format = GridFormatFinder.findFormat(file);
>>         AbstractGridCoverage2DReader reader = format.getReader(file);
>>
>>         GridCoverage2D cov = reader.read(null);
>>         int band = Integer.valueOf(0);
>>         Envelope bounds = cov.getEnvelope();
>>         Set<Double>  outsideValues = Collections.singleton(1.0d);
>>         boolean insideEdges = Boolean.TRUE;
>>
>>         FeatureCollection<SimpleFeatureType,SimpleFeature>  collection =
>>           RasterToVectorProcess.process(cov, band, bounds, outsideValues,
>> insideEdges, null);
>>
>> Next step I need to achieve is to merge the created feature collection into
>> one multipolygon. I was trying an example from process module documentation:
>>
>>         // 3 is one more then the current number of cpu cores
>>         ProcessExecutor backgroundExecutor = Processors.newProcessExecutor(
>> 3, null );
>>         org.geotools.process.Process buffer = Processors.createProcess( new
>> NameImpl("gt","buffer") );
>>         Map<String,Object>  input = new KVP("features", collection, "buffer",
>> 0.00 );
>>         Progress progress = backgroundExecutor.submit( buffer, input );
>>
>>         if( progress.getProgress() == Progress.WORKING )
>>             System.out.println( "Progress: Working");
>>         else
>>             System.out.println( "Progress:"+progress.getProgress() + "percent
>> complete" );
>>
>>         Map<String,Object>  result = progress.get();
>>         SimpleFeatureCollection resultFeatureCollection =
>> (SimpleFeatureCollection result.get("features");
>>
>> But doesn't work for me:
>>     Progress:0.0percent completeException in thread "main"
>>     java.util.concurrent.ExecutionException: java.lang.NullPointerException:
>> geom1 parameter required
>>         at
>> org.geotools.process.ProgressTask$Synchronizer.innerGet(ProgressTask.java:218)
>>         at org.geotools.process.ProgressTask.get(ProgressTask.java:76)
>>         at org.geotools.process.ProgressTask.get(ProgressTask.java:39)
>>         at event.App.main(App.java:72)
>>     Caused by: java.lang.NullPointerException: geom1 parameter required
>>         at
>> org.geotools.process.literal.BufferProcess.execute(BufferProcess.java:57)
>>         at
>> org.geotools.process.ProgressTask$Synchronizer.innerRun(ProgressTask.java:301)
>>         at org.geotools.process.ProgressTask.run(ProgressTask.java:120)
>>         at
>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>>         at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>>         at java.lang.Thread.run(Thread.java:662)
>>
>> What am I doing wrong? Or is there some better way to do it?
>>
>> Thank you very much,
>> Jiri Novak
>>
>> On 07/25/2011 11:27 PM, Michael Bedward wrote:
>>> Hi Jiri,
>>>
>>> Please see this page in the user guide about WorldImageReader and let
>>> us know if it helps or not:
>>> http://docs.geotools.org/latest/userguide/library/coverage/image.html
>>>
>>> Michael
>>>
>>>
>>> On 26 July 2011 06:22, Jiří Novák<[email protected]>    wrote:
>>>> Providing a .tfw file alongside with .tif didn't work for me. Is there
>>>> some
>>>> special way to tell geotools it exists or should be detected implicitly?
>>>>
>>>> Jiri Novak
>>>>
>>>> On 07/25/2011 11:26 AM, Jiří Novák wrote:
>>>>> Hi,
>>>>>
>>>>> thank you both for replying.
>>>>>
>>>>>>>   your image does not have either a proper grid-to-world transformation
>>>>>>>   or a proper coordinate reference system.
>>>>>>>   You should try to add a proper tfw[1] file to it.
>>>>> Problem is that I can not change the way how the tifs gets created, we
>>>>> have a closed library for transforming it from proper binary format
>>>>> which
>>>>> specification I don't know :(
>>>>> Third party just give us those tifs and an information file with the
>>>>> coordinates of bottom left and upper right corner for the affine
>>>>> transformation to JTSK (Krovak) which looks like that:
>>>>>
>>>>> 1163999.872425 763749.745142 1165000.000203 765000.000334 JTSK
>>>>>
>>>>> It's posible to add somehow this information into the (geo)tif and use
>>>>> the
>>>>> standard approach in geotools or do I have to follow the way Michael
>>>>> planted
>>>>> - it's using plain JAI library and then (somehow?) convert it to
>>>>> geotools's
>>>>> SimpleFeatureCollection?
>>>>>
>>>>> Thank you,
>>>>> Jiri Novak
>>>>>
>>>>> On 07/25/2011 05:48 AM, Simone Giannecchini wrote:
>>>>>> Ciao Jiri,
>>>>>> your image does not have either a proper grid-to-world transformation
>>>>>> or a proper coordinate reference system.
>>>>>> You should try to add a proper tfw[1] file to it.
>>>>>>
>>>>>> Regards,
>>>>>> Simone Giannecchini
>>>>>> [1] http://en.wikipedia.org/wiki/World_file
>>>>>> -------------------------------------------------------
>>>>>> Ing. Simone Giannecchini
>>>>>> GeoSolutions S.A.S.
>>>>>> Founder
>>>>>>
>>>>>> Via Poggio alle Viti 1187
>>>>>> 55054  Massarosa (LU)
>>>>>> Italy
>>>>>>
>>>>>> phone: +39 0584 962313
>>>>>> fax:      +39 0584 962313
>>>>>> mob:    +39 333 8128928
>>>>>>
>>>>>> http://www.geo-solutions.it
>>>>>> http://geo-solutions.blogspot.com/
>>>>>> http://www.youtube.com/user/GeoSolutionsIT
>>>>>> http://www.linkedin.com/in/simonegiannecchini
>>>>>> http://twitter.com/simogeo
>>>>>>
>>>>>> -------------------------------------------------------
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Mon, Jul 25, 2011 at 9:45 AM, Michael Bedward
>>>>>> <[email protected]>      wrote:
>>>>>>> Hi Jiri
>>


------------------------------------------------------------------------------
Got Input?   Slashdot Needs You.
Take our quick survey online.  Come on, we don't ask for help often.
Plus, you'll get a chance to win $100 to spend on ThinkGeek.
http://p.sf.net/sfu/slashdot-survey
_______________________________________________
Geotools-gt2-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users

Reply via email to