3

I am not completly new to GIS (was taught ArcGIS at Uni) but I would still consider myself (especially compared to all these experts here) a newbie in QGIS or PostGIS.

I want to display the windspeed of typhoons with the help of buffers along their tracks. I used PostGIS to combine the points of the typhoons to Lines ( like in this post). Anyhow, if I buffer the lines, buffer segments from the same typhoon overlap or leave gaps. And I need to change that (Here is a link to a picture showing my problem)

My idea was to create a single line for each typhoon, buffer the line and then split the buffer with the help of my point layer. I need the information on windspeed broken down to the points rather than just an average for the complete typhoon track.

Is there a way to split polygons with the help of point layers? And if not, a way to somehow interpolate the buffer segments that I have right now to close gaps and cut overlapping parts? Doing this manually is not an option at I have to work with typhoon data from 1945-2013.

EDIT: So... if I buffer the lines in Quantum I kind of"solved" the problem of gaps. So I "just" need to interpolate/cut the overlapping parts at the beginning/end of each segment (see picture: http://postimg.org/image/maca8nrc7/ )

1 Answer 1

4

I believe you might be working your problem using the wrong tactic.

Not being an expert in Postgis either, I would:

  • Put the points data in a Postgis Database;
  • Buffer the points according to their windspeed with St_Buffer;

enter image description here

  • Agregate the pairs of adjacent polygon using ST_Collect and somekind of point order attribute;
  • Pass the result by a St_ConvexHull to create a polygon around them;

enter image description here

  • Pass the result by a St_Union, grouping by typhon name or code.

enter image description here

Assuming that my typhon_points table has the columns, "typhon_name", "n_order" (to represent the order of each point in a typhon) and "windspeed", the SQL code to obtain the above procedure would be something like this:

SELECT
    f.typhon_name,
    St_Union(St_ConvexHull(St_Collect(f.geom,g.geom))) as geom
FROM
    (SELECT
        typhon_name,
        St_Buffer (geom, windspeed * 200) as geom,
        n_order
    FROM
        typhon_points) as f,
    (SELECT
        typhon_name,
        St_Buffer (geom, windspeed * 200) as geom,
        n_order
    FROM
        typhon_points) as g
WHERE
    f.typhon_name = g.typhon_name
    AND
    f.n_order = g.n_order - 1
GROUP BY
    f.typhon_name

Hope it helps.

6
  • Thanks very much. Sometimes all it needs is a different perspective. I like your approach very much, I am not sure if I can actually calculate the distance for a given windspeed though. I only have an equation for Windspeed at a given Radius. I will try to convert it then, I guess. Thank you very much again for the qick response. I will post my results when I am finished!
    – hannah
    Jun 21, 2013 at 0:48
  • Unfortunatelly, the equation is not invertible and I cannot use this approach. I can only calculate the windspeed for a given radius. However not the radius of a given windspeed. Hence, I need to create the buffer for every segment including different values for the windspeed. Any ideas How to split a Buffer???
    – hannah
    Jun 25, 2013 at 0:28
  • Hannah, could you please update your question in order to clarify how is your input data organized, and exactly what you want to represent? I got lost :-P Jun 25, 2013 at 8:57
  • Oh Sure. Sorry for the confusion. Well, my initial input is a point layer that includes data on the location of the typhoon at a certain time and different parameters (like pressure, Radius of max windspeeds, max Windspeeds etc) that with the help of an equation by Gregg Holland can estimate the windspeed of the typhoon at a given(!) distance. It is not invertible however (only nummerically and that is not an option in my case either) so that I cannot calculate the distance for a given windspeed (thats what you, Alexandre, suggested in your approach).
    – hannah
    Jun 26, 2013 at 0:39
  • I can make a line for every typhoontrack in GIS, but since the windspeed for a given distance vary within one track, I cannot just buffer the whole track/line but have to buffer every segment (like shown in the pictures). This however leads to overlapping buffers which would eventually lead to an overestimation in the exposure to typhoons for that area. So I need to find a way to split the buffer of one typhoon at every point so that I can add the attributes for that segment. I know it is confusing. It took me a while to figure out the whole problem as well
    – hannah
    Jun 26, 2013 at 0:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.