How about creating a set of polygons equal in shape to your grid cells, and then intersect the line string with each polygon that it touches? You can use a spatial index (STRtree) to speed up finding candidate polygons.
Martin

Pete Ballack wrote:
Hello,
I posted the same question on the geotools-user-list and Michael Bedward responded as follows "However, I suggest you pose the same question on the JTS list where
Martin Davis and the other geometric gurus might be able to help."
So here is my message...

I painted a small Graphic that should help to understand my current problem (I didn't want to post it on the mailing list directly)

Here is the Link to the graphic.
http://bayimg.com/oaNDJAaBn


I created a GridCoverage with a specified cellsize to rasterize an area

double width = envelope.getWidth(); // i.e. 1000m
double height = envelope.getHeight(); // i.e. 1000m

int numCellX = (int) Math.floor( width / cellSize ); // cellSize i.e. 10m
int numCellY = (int) Math.floor( height / cellSize );

WritableRaster raster = RasterFactory.createBandedRaster(
                DataBuffer.TYPE_FLOAT,
                numCellX, numCellY, 1, null );

GridCoverage2D gridCoverage = factory.create( "My coverage",
                raster,
                envelope );


Now my Problem:

The values of a cell in the raster depends on the length of the LineString covering the cell. (in my Image the green part of the LineString would determine the value of d;2)

I belive that their is no function available doing that.
So my idea to solve my problem is some workaround I'm not really satisfied with.

1.create a graph corresponding to the raster (width, height and cellsize)
2.for a given LineString find all intersection points with the created graph
3.for all following intersection points (i, i+1)
       a.calculate the length -> value for the cell
b.get the middle point between (i, i+1) to find the corresponding cell
       c.add value to cell

Maybe somebody has a smarter idea to solve my problem.

Thanks
Pete
here is the link to my posting on the geotools-mailing-list
http://n2.nabble.com/Intersections-of-cells-in-a-GridCoverage-with-a-LineString-td2405815.html
------------------------------------------------------------------------

_______________________________________________
jts-devel mailing list
[email protected]
http://lists.refractions.net/mailman/listinfo/jts-devel

--
Martin Davis
Senior Technical Architect
Refractions Research, Inc.
(250) 383-3022

Hello,
I posted the same question on the geotools-user-list and Michael Bedward responded as follows "However, I suggest you pose the same question on the JTS list where
Martin Davis and the other geometric gurus might be able to help."
So here is my message...

I painted a small Graphic that should help to understand my current problem (I didn't want to post it on the mailing list directly)

Here is the Link to the graphic.
http://bayimg.com/oaNDJAaBn


I created a GridCoverage with a specified cellsize to rasterize an area

double width = envelope.getWidth(); // i.e. 1000m
double height = envelope.getHeight(); // i.e. 1000m

int numCellX = (int) Math.floor( width / cellSize ); // cellSize i.e. 10m
int numCellY = (int) Math.floor( height / cellSize );

WritableRaster raster = RasterFactory.createBandedRaster(
                DataBuffer.TYPE_FLOAT,
                numCellX, numCellY, 1, null );

GridCoverage2D gridCoverage = factory.create( "My coverage",
                raster,
                envelope );


Now my Problem:

The values of a cell in the raster depends on the length of the LineString covering the cell. (in my Image the green part of the LineString would determine the value of d;2)

I belive that their is no function available doing that.
So my idea to solve my problem is some workaround I'm not really satisfied with.

1.create a graph corresponding to the raster (width, height and cellsize)
2.for a given LineString find all intersection points with the created graph
3.for all following intersection points (i, i+1)
       a.calculate the length -> value for the cell
b.get the middle point between (i, i+1) to find the corresponding cell
       c.add value to cell

Maybe somebody has a smarter idea to solve my problem.

Thanks
Pete
here is the link to my posting on the geotools-mailing-list
http://n2.nabble.com/Intersections-of-cells-in-a-GridCoverage-with-a-LineString-td2405815.html
------------------------------------------------------------------------

_______________________________________________
jts-devel mailing list
[email protected]
http://lists.refractions.net/mailman/listinfo/jts-devel

--
Martin Davis
Senior Technical Architect
Refractions Research, Inc.
(250) 383-3022

Hello,
I posted the same question on the geotools-user-list and Michael Bedward responded as follows "However, I suggest you pose the same question on the JTS list where
Martin Davis and the other geometric gurus might be able to help."
So here is my message...

I painted a small Graphic that should help to understand my current problem (I didn't want to post it on the mailing list directly)

Here is the Link to the graphic.
http://bayimg.com/oaNDJAaBn


I created a GridCoverage with a specified cellsize to rasterize an area

double width = envelope.getWidth(); // i.e. 1000m
double height = envelope.getHeight(); // i.e. 1000m

int numCellX = (int) Math.floor( width / cellSize ); // cellSize i.e. 10m
int numCellY = (int) Math.floor( height / cellSize );

WritableRaster raster = RasterFactory.createBandedRaster(
                DataBuffer.TYPE_FLOAT,
                numCellX, numCellY, 1, null );

GridCoverage2D gridCoverage = factory.create( "My coverage",
                raster,
                envelope );


Now my Problem:

The values of a cell in the raster depends on the length of the LineString covering the cell. (in my Image the green part of the LineString would determine the value of d;2)

I belive that their is no function available doing that.
So my idea to solve my problem is some workaround I'm not really satisfied with.

1.create a graph corresponding to the raster (width, height and cellsize)
2.for a given LineString find all intersection points with the created graph
3.for all following intersection points (i, i+1)
       a.calculate the length -> value for the cell
b.get the middle point between (i, i+1) to find the corresponding cell
       c.add value to cell

Maybe somebody has a smarter idea to solve my problem.

Thanks
Pete
here is the link to my posting on the geotools-mailing-list
http://n2.nabble.com/Intersections-of-cells-in-a-GridCoverage-with-a-LineString-td2405815.html
------------------------------------------------------------------------

_______________________________________________
jts-devel mailing list
[email protected]
http://lists.refractions.net/mailman/listinfo/jts-devel

--
Martin Davis
Senior Technical Architect
Refractions Research, Inc.
(250) 383-3022

Hello,
I posted the same question on the geotools-user-list and Michael Bedward responded as follows "However, I suggest you pose the same question on the JTS list where
Martin Davis and the other geometric gurus might be able to help."
So here is my message...

I painted a small Graphic that should help to understand my current problem (I didn't want to post it on the mailing list directly)

Here is the Link to the graphic.
http://bayimg.com/oaNDJAaBn


I created a GridCoverage with a specified cellsize to rasterize an area

double width = envelope.getWidth(); // i.e. 1000m
double height = envelope.getHeight(); // i.e. 1000m

int numCellX = (int) Math.floor( width / cellSize ); // cellSize i.e. 10m
int numCellY = (int) Math.floor( height / cellSize );

WritableRaster raster = RasterFactory.createBandedRaster(
                DataBuffer.TYPE_FLOAT,
                numCellX, numCellY, 1, null );

GridCoverage2D gridCoverage = factory.create( "My coverage",
                raster,
                envelope );


Now my Problem:

The values of a cell in the raster depends on the length of the LineString covering the cell. (in my Image the green part of the LineString would determine the value of d;2)

I belive that their is no function available doing that.
So my idea to solve my problem is some workaround I'm not really satisfied with.

1.create a graph corresponding to the raster (width, height and cellsize)
2.for a given LineString find all intersection points with the created graph
3.for all following intersection points (i, i+1)
       a.calculate the length -> value for the cell
b.get the middle point between (i, i+1) to find the corresponding cell
       c.add value to cell

Maybe somebody has a smarter idea to solve my problem.

Thanks
Pete
here is the link to my posting on the geotools-mailing-list
http://n2.nabble.com/Intersections-of-cells-in-a-GridCoverage-with-a-LineString-td2405815.html
------------------------------------------------------------------------

_______________________________________________
jts-devel mailing list
[email protected]
http://lists.refractions.net/mailman/listinfo/jts-devel

--
Martin Davis
Senior Technical Architect
Refractions Research, Inc.
(250) 383-3022

_______________________________________________
jts-devel mailing list
[email protected]
http://lists.refractions.net/mailman/listinfo/jts-devel

Reply via email to