如何在Python中从latlong反转地理代码(县级名称)

2024-06-01 05:25:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我用的是纽约市的旅行数据。我想把数据中长期存在的数据转换成纽约市各自的行政区。我特别想知道其中一次旅行中是否有纽约机场(拉瓜迪亚/肯尼迪机场)。在

我知道googlemapsapi,甚至像Geopy这样的库都得到了反向地理编码。然而,其中大多数都给出了城市和国家级别的编码。在

我想从lat long中提取行政区或机场(如皇后区、曼哈顿、肯尼迪机场、拉瓜迪亚等)的名称。我有很长的接送地点。在

下面是pandas dataframe中的一个示例数据集。在

    VendorID    lpep_pickup_datetime    Lpep_dropoff_datetime   Store_and_fwd_flag  RateCodeID  Pickup_longitude    Pickup_latitude Dropoff_longitude   Dropoff_latitude    Passenger_count Trip_distance   Fare_amount Extra   MTA_tax Tip_amount  Tolls_amount    Ehail_fee   improvement_surcharge   Total_amount    Payment_type    Trip_type
0   2   2015-09-01 00:02:34 2015-09-01 00:02:38 N   5   -73.979485  40.684956   -73.979431  40.685020   1   0.00    7.8 0.0 0.0 1.95    0.0 NaN 0.0 9.75    1   2.0
1   2   2015-09-01 00:04:20 2015-09-01 00:04:24 N   5   -74.010796  40.912216   -74.010780  40.912212   1   0.00    45.0    0.0 0.0 0.00    0.0 NaN 0.0 45.00   1   2.0
2   2   2015-09-01 00:01:50 2015-09-01 00:04:24 N   1   -73.921410  40.766708   -73.914413  40.764687   1   0.59    4.0 0.5 0.5 0.50    0.0 NaN 0.3 5.80    1   1.0
In [5]:

您也可以在此处找到数据:

http://www.nyc.gov/html/tlc/html/about/trip_record_data.shtml

经过一番研究,我发现我可以利用googlemapsapi,获取县甚至机构级别的数据。在

下面是我写的代码:

一个mapper函数,用于从googleapi获取lat long passed的地理代码数据

^{pr2}$

然而,我最初有1.4毫米的记录。完成这件事花了很多时间。所以我减到了20万。即使这样也要花很多时间。所以我减到了115K。即使那样也花了太多时间。在

所以现在我把数据降到了50K,但是这个样本很难代表整个数据的分布。在

我想知道有没有更好更快的方法来获取拉特朗的反向地理代码。我没有使用Spark,因为我在本地mac上运行它。所以使用Spark可能不会给单机带来那么多的速度优势。请告知。在


Tags: 数据代码编码datetime时间nanamount地理