我想确定这个星球(或其给定子集)上所有向西(+/- 20-30度)的海滩。
我的想法是使用OSM作为数据源。提取所有带有标签“ natural = beach”的多边形,可以为我提供标记为海滩的所有区域的数据集/ shapefile。到目前为止,一切都很好。
我也知道我可以使用海岸线数据(例如,来自OSM或Natural Earth的数据)来识别海滩的朝向。
缓冲海滩形状以校正较小的不匹配,并将其与海岸线相交,应为我提供有关形状朝向水的一侧的数据。使用所有相交点的最大/最小值应该使我对方位有一个了解。(90度+/- 20-30度就可以了...)
那就是我迷路的地方...
我首选的工具是QGIS,但PostGIS也可以。
周围有人有聪明的主意如何解决这个难题吗?
4
而不是使用缓冲区。难道不是很容易弄清楚如何将shapefile中的所有项目向东移动一点,然后在海岸线shapefile和海滩shapefile之间运行相交吗?它们只会在海滩朝西的地方重叠。
—
Tim Couwelier 2014年
蒂姆-好主意。不确定它是否真的适用于“奇怪”的几何形状。我收到了另一个想法:将草丛中的v.net用作海岸线和海滩多边形的质心,将质心捕捉到最近的线(或在postgis中)。现在您有一条线代表方向。使用trig计算从质心的起点到直线终点的方位。尽管不错,但它并不完全在QGIS内部。还有更聪明的主意吗?
—
jdoe 2014年
如果您可以找到一种将海岸线转化为一系列点数据和海滩质心的方法,则可以按以下说明尝试“最近邻分析”:link而不是像示例中那样连接属性,请确保有x,匹配的两个数据集的y值。使用字段计算器,您可以找到质心和最接近点的x和y值之间的相对差。根据x差的符号,您可以知道它是西边还是东边,并基于diff(y)/ diff(x)的西边比率。
—
Tim Couwelier 2014年
假设我用完了一些字符,那就去了:如果质心x值>海岸线点x值,则海滩朝西。两者的x和y坐标可以让您计算相对于y轴的角度:(y2-y1)/(x2-x1)为您提供直线的倾斜度,您可以将其转换回度数
—
Tim Couwelier
您可以栅格化数据,将开阔水域的值设置为零,将海滩设置为1,然后运行Terrain Analysis-> Aspect工具。您将获得向下倾斜方向的栅格,并能够选择足够“西移”的像元。
—
WxMacMan 2014年