Hi Jiri,

You are using the most recent milestone release rather than the
snapshot (daily) version. That explains the spurious logging messages
which were fixed more recently.  The vectorizing code hasn't changed
since the milestone release so you're not missing anything there.

You won't need to union polygons, dissolve boundaries etc with the
polygons returned by RasterToVectorProcess. Since they are derived
from raster regions there will be no covering intersections or
adjacent polys with the same value.

To gather the individual polygons from the feature collection and
create a MultiPolygon...

        SimpleFeatureIterator featureIter = fc.features();
        List<Polygon> polyList = new ArrayList<Polygon>();
        try {
            while (featureIter.hasNext()) {
                polyList.add((Polygon) featureIter.next().getDefaultGeometry());
            }
        } finally {
            featureIter.close();
        }

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

If your input image has a value that you want to treat as outside /
nodata, you can specify this using the outsideValues arg of the
RasterToVectorProcess.process method to avoid creating polygons for
nodata regions. Alternatively you can just vectorize everything and
test the value of the "gridvalue" attribute in the feature collection.
For example...

            while (featureIter.hasNext()) {
                SimpleFeature feature = featureIter.next();
                // skip polygons for outside value 0
                if (((Number)
feature.getAttribute("gridvalue")).intValue() == 0) {
                    polyList.add((Polygon) feature.getDefaultGeometry());
                }
            }

You could also something similar if you have a number of different
grid values and want to create a separate MultiPolygon for each.

Michael

On 27 July 2011 12:25, Jiří Novák <[email protected]> wrote:
> Hi Michael,
>
> thanks for leading me :)
>
> Also answering inlines...
>
> On 07/26/2011 11:19 PM, Michael Bedward wrote:
>>
>> Hi Jiri,
>>
>> Please see my comments inline:
>>
>>> 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]) );
>>
>> Ah... I've given you a bum steer sorry. I hadn't ready your previous
>> email and was thinking you were using the JAITools operator with
>> Collection<Polygon>  output. Sorry about that.
>>
>> The RasterToVectorProcess is giving you a SimpleFeatureCollection
>> where the Geometry type is Polygon. Do you want to convert each of
>> these to individual MultiPolygons or combine all of them into a single
>> MultiPolygon ?  I just want to check so that I don't send you off in
>> the wrong direction again :)
>>
> I need to obtain just one MultiPolygon as the combination (dissolve/merge)
> of those in SimpleFeatureCollection.
>>>
>>> 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?
>>
>> Those log messages were recently changed to Level.FINE on trunk
>> (8.0-SNAPSHOT). Are you using the most recent binaries ?
>>
> I hope so, I am using this maven configuration:
> ...
> <!-- === Versions of used frameworks and libraries === -->
> <properties>
>    ...
> <org.geotools.version>8.0-M1</org.geotools.version>
>    ...
> </properties>
>
> <repositories>
> <repository>
> <id>OSGEO GeoTools repo</id>
> <url>http://download.osgeo.org/webdav/geotools</url>
> </repository>
>    ...
> </repositories>
>
> Is the right repository for the latest artifacts?
>
> Jiri
>>>
>>> 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).
>>
>> That's because I told you to do the wrong thing.
>>
>> Michael
>
>

------------------------------------------------------------------------------
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