微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何通过与特定国家/地区相交的路径来筛选轨道路径?

如何解决如何通过与特定国家/地区相交的路径来筛选轨道路径?

我有大量的轨道路径文件,每个文件包含63,000个经纬度坐标列表,这些列表构成了像this这样的轨道路径。

这些文件是HDF文件,包含两个列表,依次列出一个63k纬度点和一个63k经度点。 Here is a sample file.

要选择纬度和经度坐标,请使用以下代码

hdf = SD(FILEPATH,SDC.READ)
lat = hdf.select('Latitude')
lon = hdf.select('Longitude')

我需要能够过滤掉这些文件,以便只有轨道路径与格陵兰岛国家相交的文件

目前,我的工作效率极低,我的解决方案现在遍历每个文件路径的每个点,并检查该点是否在格陵兰岛之内,如果确实如此,则将其添加文件列表中。这可能要花费数小时才能完成,这就是代码从现在开始的本质。

#poly is a polygon around Greenland. 
coords = [(-55,59.5),(-55,67.5),(-60,75),(-73.25,79.2),(-67.5,80.82),(-65.34,81.23),(-62,82),(-60.25,84),(-10,(-17,(-30,59.5)]
poly = polygon(coords)
latlon = zip(latitude,longitude)
for index,lalo in enumerate(latlon):
     if (poly.contains(Point(lalo[1],lalo[0]))):
          greenland_files.append(f)
          break

有什么想法吗?

解决方法

如果您的轨道上的点是按顺序排序的(我假设它们必须是排序的),则可以尝试某种搜索技术。例如,如果您所有的轨道点都从东向西移动(反之亦然,但始终如一),并且如果您可以找到一个保证在格陵兰岛以东且保证在格陵兰岛以西的点,那么您应该可以进行搜索在这些点之间。

我意识到这些情况会变得很奇怪,因为如果您走的足够远,地球上的任何一点都同时在格陵兰的东西方,但是我也不知道您的轨道路径是如何构成的(每次的起点都是相同的) ?他们总是从东向西前进还是从东向西前进?等)。

编辑:要快速找到两个多边形之间的交点,可以使用以下算法:https://dl.acm.org/doi/abs/10.1145/800141.804662

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。