OSMnx设置Overpass时间参数引发内存不足错误的代码排查求助
OSMnx设置Overpass时间参数引发内存不足错误的代码排查求助
我最近碰到个棘手的问题:当我给ox.settings.overpass_settings加上历史日期参数后,Overpass API总是抛出内存不足的错误,但只要注释掉这行设置代码,程序就能顺畅运行。想请大伙帮我看看代码里是不是有哪里写错了?
先贴出我的代码片段:
import osmnx as ox import shapely import datetime date=datetime.datetime.fromisoformat("2023-12-31T10:15:23.355030") poli="POLYGON ((12.492709372340677 41.916655635027965, 12.495766040251999 41.99143760629819, 12.76378053852936 41.984419025131984, 12.754692779733519 41.78305304410847, 12.487561402159495 41.79004473805951, 12.48453188956227 41.715248372182295, 12.21767031884794 41.72151888179064, 12.224974122071886 41.92295004575664, 12.492709372340677 41.916655635027965))" ox.settings.requests_timeout=200 ox.settings.use_cache=False ox.settings.log_console = True ox.settings.overpass_settings=f"[out:json][timeout:{ox.settings.requests_timeout}][date:\"{date}\"]" geom=shapely.wkt.loads(poli) tags={"highway":"residential"} features = ox.features_from_polygon( geom, tags, ) print(len(features))
只要注释掉第10行(设置overpass_settings的那行),代码就能正常输出结果,但加上这行就会触发Overpass的内存不足错误。我怀疑是不是日期格式不符合要求,或者参数构造有问题?
我自己试了几个排查方向,还没解决:
- 把timeout从60调到200秒,没用,还是触发OOM
- 确认过多边形的WKT格式是正确的,没有语法错误
- 只请求了
highway:residential这一个标签,不算多
有没有朋友遇到过类似的问题?或者能帮我指出代码里的错误?
内容来源于stack exchange




