3

我正在尝试打开2010、2011 和 2012 年的NYC LION 地理数据库文件。

我用 geopandas 成功打开了 2012 和 2011 地理数据库,但是我无法打开 2010 版本。

我试过直接使用 fiona,但我一直收到类似的错误。

import geopandas as gpd
import pandas as pd
import matplotlib.pyplot as plt
import os
import sys
import requests
from zipfile import ZipFile as zzip
import fiona
sys.path.append(os.path.realpath('..'))

path = r"https://www1.nyc.gov/assets/planning/download/zip/data-maps/open-data/nyc_lion10aav.zip"
r = requests.get(path)
    # open method to open a file on your system and write the contents
    with open("../input_data/nyc_lion10aav.zip", "wb") as file:
        file.write(r.content)
    # opening the zip file in READ mode 
    with zzip("../input_data/nyc_lion10aav.zip", 'r') as file: 
        # printing all the contents of the zip file 
        #file.printdir() 
        path = "../input_data/nyc_lion10aav"
        os.mkdir(path)
        # extracting all the files 
        #rint('Extracting all the files now...') 
        file.extractall(path) 
        print('Done!')

fp = r"../input_data/nyc_lion10aav/lion/lion.gdb"
lion_gdf = gpd.read_file(fp, driver='OpenFileGDB', layer='lion')

fp = r"../input_data/nyc_lion10aav/lion/lion.gdb"
file = fiona.open(fp, driver='OpenFileGDB', layer='lion')

笔记本

当我在笔记本中运行它时,我预计它会像 2011 年和 2012 年的地理数据库一样通过。我一直在这里和 fiona 的 github 问题上搜索,看看其他人是否有类似的问题以及是否有解决方案。但是我对使用这些库还很陌生,所以我并不真正了解回溯以找出问题所在。

---------------------------------------------------------------------------
CPLE_OpenFailedError                      Traceback (most recent call last)
fiona/_shim.pyx in fiona._shim.gdal_open_vector()

fiona/_err.pyx in fiona._err.exc_wrap_pointer()

CPLE_OpenFailedError: ../input_data/nyc_lion10aav/lion/lion.gdb: Permission denied

During handling of the above exception, another exception occurred:

DriverError                               Traceback (most recent call last)
<ipython-input-14-f49f8c92c671> in <module>
      1 fp = r"../input_data/nyc_lion10aav/lion/lion.gdb"
----> 2 lion_gdf = gpd.read_file(fp, driver='OpenFileGDB', layer='lion')

~\AppData\Local\Continuum\anaconda3\envs\geo\lib\site-packages\geopandas\io\file.py in read_file(filename, bbox, **kwargs)
     75 
     76     with fiona_env():
---> 77         with reader(path_or_bytes, **kwargs) as features:
     78 
     79             # In a future Fiona release the crs attribute of features will

~\AppData\Local\Continuum\anaconda3\envs\geo\lib\site-packages\fiona\env.py in wrapper(*args, **kwargs)
    394     def wrapper(*args, **kwargs):
    395         if local._env:
--> 396             return f(*args, **kwargs)
    397         else:
    398             if isinstance(args[0], str):

~\AppData\Local\Continuum\anaconda3\envs\geo\lib\site-packages\fiona\__init__.py in open(fp, mode, driver, schema, crs, encoding, layer, vfs, enabled_drivers, crs_wkt, **kwargs)
    251         if mode in ('a', 'r'):
    252             c = Collection(path, mode, driver=driver, encoding=encoding,
--> 253                            layer=layer, enabled_drivers=enabled_drivers, **kwargs)
    254         elif mode == 'w':
    255             if schema:

~\AppData\Local\Continuum\anaconda3\envs\geo\lib\site-packages\fiona\collection.py in __init__(self, path, mode, driver, schema, crs, encoding, layer, vsi, archive, enabled_drivers, crs_wkt, ignore_fields, ignore_geometry, **kwargs)
    157             if self.mode == 'r':
    158                 self.session = Session()
--> 159                 self.session.start(self, **kwargs)
    160             elif self.mode in ('a', 'w'):
    161                 self.session = WritingSession()

fiona/ogrext.pyx in fiona.ogrext.Session.start()

fiona/_shim.pyx in fiona._shim.gdal_open_vector()

DriverError: ../input_data/nyc_lion10aav/lion/lion.gdb: Permission denied
4

0 回答 0