我成功地从OSM下载了一个行星文件,并将其转换为o5m格式,并使用OSM转换,并进一步删除了其中的所有作者信息,以使文件大小更小。我试图从整个世界的数据库中获取每一个POI,所以我对城市、城镇、公路、道路等不感兴趣,只对生活设施感兴趣。
首先,我试图通过使用渗透性来实现这一点,它似乎能够实现我想做的事情,只是它总是内存不足,因为文件太大,无法处理。(我可以将文件分割成更小的文件,但如果可能的话,我希望避免这样做)。
我尝试使用osmfilter进行实验,在那里,我设法过滤掉了每个节点,其中包含一个标签名为闭合性,但我有几个问题无法解决:
答:如果我使用以下命令:
osmfilter planet.o5m -v --keep-tags="amenity=" -o=amenities.osm它保存了所有节点,并过滤掉了所有在其名称中没有方便性的标记。
b.如果我使用这个命令:
osmfilter planet.o5m -v --keep-tags="all amenity=" -o=amenities.osm现在,它过滤掉所有不具有闭合性标记的节点,但也过滤掉匹配节点中的所有附加标记,这些节点包含我需要的信息(例如POI的名称或描述)。
c.如果我使用这个命令:
osmfilter planet.o5m -v --keep-tags="all amenity= all name=" -o=amenities.osm过滤掉每个节点,这些节点的标签中有名字或功能,这给我留下了几个有名字的城市或高速公路(我不需要的数据)。
我还试着用AND操作符将其分隔开,但它说,在筛选标记时,我不能使用和操作符。你知道我怎样才能达到预期的结果吗?
最后请注意:我正在运行一个Windows 7系统,所以没有一个基于Linux的程序可以帮助我:
发布于 2015-01-09 23:22:34
请尝试--keep=选项而不是--keep-tags选项。后者对文件中保存的对象没有影响。
例如:
osmfilter planet.o5m --keep="amenity= and name=" -o=amenities.osm
只保留有舒适标签和名称标签的对象。
请注意,所有依赖对象也将在输出文件中。例如,如果存在带有请求标记的with对象,则该方法的每个节点也将位于输出文件中。这对于关系及其依赖方式和节点也是有效的。如果您不想这样做,请添加--ignore-dependencies
在这里可以找到更多的信息:https://wiki.openstreetmap.org/wiki/Osmfilter
发布于 2017-08-08 14:45:10
osmfilter inputfile.osm --keep-nodes="amenity=" --keep-tags="all amenity= name=" --ignore-dependencies -o=outputfile.osm这正是你想要的:
保持具有标记允许性的节点(--保持节点)
只保存有关设施和名称的信息(--保留标签)
https://stackoverflow.com/questions/27839020
复制相似问题