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