geojson地区gps点的分类

geoClass的Python项目详细描述


地理上的

geoclassy包是根据使用带有OpenStreetMap data的geojson文件对已知gps坐标的点进行分类的需要而开发的。使用geojson格式作为输入,该包还可以用于不同于openstreetmap的源文件。

使用示例:

  • 找到城市中拥有最多Airbnb床位的社区;
  • 按关键客户能力领域对客户进行分类;
  • 某省道路交通事故过滤;
  • 特定城市的空气质量评估;
  • 受飓风影响的城市名单。

联系人

如果您想联系本模块的作者,只需向support@simboli.eu发送电子邮件即可。 如果您想阅读有关此软件包的最新消息,可以与Simboli.EU博客保持联系。

更改日志

版本0.0.5(beta)

  • 小码减肥法;
  • 添加了项目文档。

版本0.0.4(beta)

第一个可下载版本:

  • 项目已添加到PyPI

版本<;=0.0.3

用于调试和主测试的测试版本。

数据源

该模块被设计为接受openstreetmap数据库中的geojson文件作为输入。这些数据可以通过多种方式提取,我最喜欢的一些方法如下:

  • GeoJSON页面从simboli.eu下载;
  • 跨线桥涡轮;
  • 多边形openstreetmap fr.

本网站上的geojson页面

这是下载完整且准备好使用geojson文件来提供geoclassy包的最简单方法。所有可用的geojson文件都可以在this page上找到。如果你需要一些特定的文件,请给我发邮件,我会尽力帮你的。

跨线桥涡轮增压器

这是一个强大的工具,我可以说,这是一个最好的工具,你可以学习如果你想在数据科学工作使用地理数据。这个平台可以在this page上找到,那里还有一个有用的查询向导,供首次使用该工具的用户使用。 查询应该用overpass xml或overpass ql编写,一个gettingstarted guideexamples cookbook来自openstreetmap。

多边形OpenStreetMap fr

如果您是一个数据呆子(如果您使用这个包,那么您可能是),那么您可以考虑在项目中包含this direct link来执行跨线桥查询。请注意,链接的教程演示了如何用json提取数据,如果要与geoclassy一起使用,还必须用geojson转换数据。

要求

模块要正常工作,还需要安装shapely模块和json模块。

如果没有,在继续之前必须安装它们。json是一个内置包,因此您的python安装应该已经包含了它,shapely可以通过它的Pypi page下载。

安装

作为大多数python模块,geoclassy可以通过简单的pip安装程序installated,只需使用以下命令:pip install geoClassy

导入

导入此模块的最佳方法如下

fromgeoClassyimportsingleasgCs

GeoClassy软件包的用法

必要条件()

此方法不接受任何参数,并尝试导入shapely和json包,因为使用geoclassy模块需要它们。

gCs.requisites()
Json module correctly imported
Shapely Geometry module correctly imported

加载文件(fname)

当程序读取geojson文件(路径应存储在变量fname中或直接在两个分支之间写入)并为文件中定义的每个闭合区域构建n个多边形时,此方法是第一个在程序中使用的方法。

如果geojson文件位于保存python脚本的同一文件夹中,则只能使用文件名:

GEOJSON_PATH='USA New York City neightborhoods 20190127.geojson'gCs.loadFile(GEOJSON_PATH)

否则,您可以指定完整路径:

GEOJSON_PATH='/home/Paul/geoClassy_documentation/USA New York City neightborhoods 20190127.geojson'gCs.loadFile(GEOJSON_PATH)

numpoly()

它只显示了导入到我们系统中的多边形的数量。

gCs.numPoly()
55  polygons loaded

checkpoly()

此方法打印加载文件步骤中加载的多边形列表,并打印它们是否有效。

gCs.checkPoly()
Polygon 0 : Marble Hill
ok
Polygon 1 : Times Square
ok
Polygon 2 : Flatiron District
ok
Polygon 3 : Inwood
ok
Polygon 4 : Fort George
ok
Polygon 5 : Hudson Heights
ok
Polygon 6 : Washington Heights
ok
Polygon 7 : Sugar Hill
ok
Polygon 8 : Hamilton Heights
ok
Polygon 9 : Manhattanville
ok
Polygon 10 : Morningside Heights
ok
Polygon 11 : Manhattan Valley
ok
Polygon 12 : Harlem
ok
Polygon 13 : East Harlem
ok
Polygon 14 : Carnegie Hill
ok
Polygon 15 : Yorkville
ok
Polygon 16 : Upper West Side
ok
Polygon 17 : Lincoln Square
ok
Polygon 18 : Columbus Circle
ok
Polygon 19 : Upper East Side
ok
Polygon 20 : Lenox Hill
ok
Polygon 21 : Midtown
ok
Polygon 22 : Midtown East
ok
Polygon 23 : Turtle Bay
ok
Polygon 24 : Tudor City
ok
Polygon 25 : Murray Hill
ok
Polygon 26 : Hudson Yards
ok
Polygon 27 : Hell's Kitchen
ok
Polygon 28 : Garment District
ok
Polygon 29 : Herald Square
ok
Polygon 30 : Koreatown
ok
Polygon 31 : Midtown South
ok
Polygon 32 : NoMad
ok
Polygon 33 : Rose Hill
ok
Polygon 34 : Kips Bay
ok
Polygon 35 : Stuy Town
ok
Polygon 36 : Gramercy
ok
Polygon 37 : Union Square
ok
Polygon 38 : Chelsea
ok
Polygon 39 : Meatpacking District
ok
Polygon 40 : Alphabet City
ok
Polygon 41 : East Village
ok
Polygon 42 : NoHo
ok
Polygon 43 : Greenwich Village
ok
Polygon 44 : West Village
ok
Polygon 45 : Hudson Square
ok
Polygon 46 : SoHo
ok
Polygon 47 : Little Italy
ok
Polygon 48 : Lower East Side
ok
Polygon 49 : Chinatown
ok
Polygon 50 : TriBeCa
ok
Polygon 51 : Civic Center
ok
Polygon 52 : Two Bridges
ok
Polygon 53 : Financial District
ok
Polygon 54 : Battery Park City
ok

polylist()

此方法打印存储在geojson文件中的所有多边形。

gCs.polyList()
['Marble Hill',
 'Times Square',
 'Flatiron District',
 'Inwood',
 'Fort George',
 'Hudson Heights',
 'Washington Heights',
 'Sugar Hill',
 'Hamilton Heights',
 'Manhattanville',
 'Morningside Heights',
 'Manhattan Valley',
 'Harlem',
 'East Harlem',
 'Carnegie Hill',
 'Yorkville',
 'Upper West Side',
 'Lincoln Square',
 'Columbus Circle',
 'Upper East Side',
 'Lenox Hill',
 'Midtown',
 'Midtown East',
 'Turtle Bay',
 'Tudor City',
 'Murray Hill',
 'Hudson Yards',
 "Hell's Kitchen",
 'Garment District',
 'Herald Square',
 'Koreatown',
 'Midtown South',
 'NoMad',
 'Rose Hill',
 'Kips Bay',
 'Stuy Town',
 'Gramercy',
 'Union Square',
 'Chelsea',
 'Meatpacking District',
 'Alphabet City',
 'East Village',
 'NoHo',
 'Greenwich Village',
 'West Village',
 'Hudson Square',
 'SoHo',
 'Little Italy',
 'Lower East Side',
 'Chinatown',
 'TriBeCa',
 'Civic Center',
 'Two Bridges',
 'Financial District',
 'Battery Park City']

您还可以使用制作多边形列表:

Names=gCs.polyList()print(Names)
['Marble Hill', 'Times Square', 'Flatiron District', 'Inwood', 'Fort George', 'Hudson Heights', 'Washington Heights', 'Sugar Hill', 'Hamilton Heights', 'Manhattanville', 'Morningside Heights', 'Manhattan Valley', 'Harlem', 'East Harlem', 'Carnegie Hill', 'Yorkville', 'Upper West Side', 'Lincoln Square', 'Columbus Circle', 'Upper East Side', 'Lenox Hill', 'Midtown', 'Midtown East', 'Turtle Bay', 'Tudor City', 'Murray Hill', 'Hudson Yards', "Hell's Kitchen", 'Garment District', 'Herald Square', 'Koreatown', 'Midtown South', 'NoMad', 'Rose Hill', 'Kips Bay', 'Stuy Town', 'Gramercy', 'Union Square', 'Chelsea', 'Meatpacking District', 'Alphabet City', 'East Village', 'NoHo', 'Greenwich Village', 'West Village', 'Hudson Square', 'SoHo', 'Little Italy', 'Lower East Side', 'Chinatown', 'TriBeCa', 'Civic Center', 'Two Bridges', 'Financial District', 'Battery Park City']

获取名称(纬度,经度)

它显示包含点(纬度、经度)的多边形的名称。如果点在外部,则打印每个未知多边形。

# Empire State BuildinggCs.getNames(40.748417,-73.985833)
'Midtown South'

此方法也可用于pandas数据帧:

importpandasaspdimportnumpyasnpdf=pd.DataFrame(np.array([['Ghostbusters Firehouse',40.719646,-74.006297],['New York Public Library',40.752042,-73.993447],['White house',38.8976998,-77.0365535]]),columns=['description','latitude','longitude'])df
<;样式范围>; .dataframe tbody tr th:仅为{ 垂直对齐:中间; }
.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}
<;/样式>;
descriptionlatitudelongitude
0Ghostbusters Firehouse40.719646-74.006297
1New York Public Library40.752042-73.993447
2White house38.8976998-77.0365535
df['zone']=df.apply(lambdarow:gCs.getNames(pd.to_numeric(row.latitude),pd.to_numeric(row.longitude)),axis=1)df
<;样式范围>; .dataframe tbody tr th:仅为{ 垂直对齐:中间; }
.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}
<;/样式>;
descriptionlatitudelongitudezone
0Ghostbusters Firehouse40.719646-74.006297TriBeCa
1New York Public Library40.752042-73.993447Chelsea
2White house38.8976998-77.0365535unknown

last revision of this document: 2019-02-10

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Intellij通过方法中的包查找用法   java中VS代码和打包命名的问题   将java CMS功能集成到具有高度动态内容的网站(Lucene/Mysql/Nosql)的策略   oracle的java类强制转换异常。jdbc。驾驶员OracleConnection   字节码向JVM添加上指令   如何在抽象类中执行java方法?   java是否可以在apache访问日志中排除指定的GET参数?(作者:W7开发环境)   java如何获取已安装音频播放器的列表?   尝试向HS学生展示如何使用Java访问MS数据库   使用正则表达式java对给定行中的特定字符串进行计数   java JOOQ Select查询中的Select计数   方法Java,如何从二维双精度数组中找到特定值?   获取图像URL的java正则表达式   java在切换到新的窗口驱动程序后找不到元素