prettymaps - A minimal Python library to draw customized maps from OpenStreetMap data.

Overview

prettymaps

A minimal Python library to draw customized maps from OpenStreetMap data.

Based on osmnx, matplotlib, shapely and vsketch libraries.

Google Colaboratory Demo

Open In Colab

Installation

Install with

$ pip install git+https://github.com/abey79/vsketch#egg=vsketch
$ pip install git+https://github.com/marceloprates/prettymaps.git

Usage example (For more examples, see this Jupyter Notebook):

# Init matplotlib figure
fig, ax = plt.subplots(figsize = (12, 12), constrained_layout = True)

backup = plot(
    # Address:
    'Praça Ferreira do Amaral, Macau',
    # Plot geometries in a circle of radius:
    radius = 1100,
    # Matplotlib axis
    ax = ax,
    # Which OpenStreetMap layers to plot and their parameters:
    layers = {
            # Perimeter (in this case, a circle)
            'perimeter': {},
            # Streets and their widths
            'streets': {
                'width': {
                    'motorway': 5,
                    'trunk': 5,
                    'primary': 4.5,
                    'secondary': 4,
                    'tertiary': 3.5,
                    'residential': 3,
                    'service': 2,
                    'unclassified': 2,
                    'pedestrian': 2,
                    'footway': 1,
                }
            },
            # Other layers:
            #   Specify a name (for example, 'building') and which OpenStreetMap tags to fetch
            'building': {'tags': {'building': True, 'landuse': 'construction'}, 'union': False},
            'water': {'tags': {'natural': ['water', 'bay']}},
            'green': {'tags': {'landuse': 'grass', 'natural': ['island', 'wood'], 'leisure': 'park'}},
            'forest': {'tags': {'landuse': 'forest'}},
            'parking': {'tags': {'amenity': 'parking', 'highway': 'pedestrian', 'man_made': 'pier'}}
        },
        # drawing_kwargs:
        #   Reference a name previously defined in the 'layers' argument and specify matplotlib parameters to draw it
        drawing_kwargs = {
            'background': {'fc': '#F2F4CB', 'ec': '#dadbc1', 'hatch': 'ooo...', 'zorder': -1},
            'perimeter': {'fc': '#F2F4CB', 'ec': '#dadbc1', 'lw': 0, 'hatch': 'ooo...',  'zorder': 0},
            'green': {'fc': '#D0F1BF', 'ec': '#2F3737', 'lw': 1, 'zorder': 1},
            'forest': {'fc': '#64B96A', 'ec': '#2F3737', 'lw': 1, 'zorder': 1},
            'water': {'fc': '#a1e3ff', 'ec': '#2F3737', 'hatch': 'ooo...', 'hatch_c': '#85c9e6', 'lw': 1, 'zorder': 2},
            'parking': {'fc': '#F2F4CB', 'ec': '#2F3737', 'lw': 1, 'zorder': 3},
            'streets': {'fc': '#2F3737', 'ec': '#475657', 'alpha': 1, 'lw': 0, 'zorder': 3},
            'building': {'palette': ['#FFC857', '#E9724C', '#C5283D'], 'ec': '#2F3737', 'lw': .5, 'zorder': 4},
        }
)

Gallery:

Barcelona:

Heerhugowaard:

Barra da Tijuca:

Porto Alegre:

Comments
  • ci: Add publishing workflow with GitHub Actions

    ci: Add publishing workflow with GitHub Actions

    Resolves #67

    Add GHA based workflow to release a sdist and wheel to:

    • TestPyPI on tags
    • PyPI on GitHub releases

    Things that @marceloprates would need to do for this PR to work:


    Example resulting release workflow:

    Locally on main run:

    $ git checkout main && git pull # verify that you're on main and synced with GitHub
    $ <whatever you need to do to bump the release number>  # Matthew uses bump2version on most of his projects, but whatever works here
    $ git push origin main --tags # push the commit and the tag to GitHub, causing TestPyPI to publish
    
    • Got to TestPyPI (https://test.pypi.org/project/prettymaps/) to look if the release looks okay
    • Then on GitHub:
      1. Go to releases: https://github.com/marceloprates/prettymaps/releases
      2. Click "Draft a new release"
      3. On the new page enter the tag you just pushed (e.g. v0.1.0) in the "Tag version" box and the "Release title" box (to make it easy unless you really want to get descriptive)
      4. Enter any release notes and click "Publish release"
    • This then kicks of the publication CD workflow that will use the PyPI API key to publish.
    opened by matthewfeickert 10
  • Error with installation on Python 3.9

    Error with installation on Python 3.9

    If I follow the installation instructions, vsketch works, but for prettymaps I get the following error:

    pip install "git+https://github.com/marceloprates/prettymaps.git"
    Defaulting to user installation because normal site-packages is not writeable
    Collecting git+https://github.com/marceloprates/prettymaps.git
      Cloning https://github.com/marceloprates/prettymaps.git to /tmp/pip-req-build-9bvx3_4y
      Running command git clone -q https://github.com/marceloprates/prettymaps.git /tmp/pip-req-build-9bvx3_4y
    ERROR: Exception:
    Traceback (most recent call last):
      File "/usr/lib/python3.9/site-packages/pip/_internal/cli/base_command.py", line 223, in _main
        status = self.run(options, args)
      File "/usr/lib/python3.9/site-packages/pip/_internal/cli/req_command.py", line 180, in wrapper
        return func(self, options, args)
      File "/usr/lib/python3.9/site-packages/pip/_internal/commands/install.py", line 320, in run
        requirement_set = resolver.resolve(
      File "/usr/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 121, in resolve
        self._result = resolver.resolve(
      File "/usr/lib/python3.9/site-packages/resolvelib/resolvers.py", line 454, in resolve
        state = resolution.resolve(requirements, max_rounds=max_rounds)
      File "/usr/lib/python3.9/site-packages/resolvelib/resolvers.py", line 319, in resolve
        name, crit = self._merge_into_criterion(r, parent=None)
      File "/usr/lib/python3.9/site-packages/resolvelib/resolvers.py", line 176, in _merge_into_criterion
        crit = Criterion.from_requirement(self._p, requirement, parent)
      File "/usr/lib/python3.9/site-packages/resolvelib/resolvers.py", line 80, in from_requirement
        cands = build_iter_view(matches)
      File "/usr/lib/python3.9/site-packages/resolvelib/structs.py", line 148, in build_iter_view
        matches = list(matches)
      File "/usr/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 285, in <genexpr>
        if constraint.is_satisfied_by(c)
      File "/usr/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/base.py", line 66, in is_satisfied_by
        return self.specifier.contains(candidate.version, prereleases=True)
      File "/usr/lib/python3.9/site-packages/packaging/specifiers.py", line 790, in contains
        item = parse(item)
      File "/usr/lib/python3.9/site-packages/packaging/version.py", line 57, in parse
        return Version(version)
      File "/usr/lib/python3.9/site-packages/packaging/version.py", line 296, in __init__
        match = self._regex.search(version)
    TypeError: expected string or bytes-like object
    

    This is within a Miniconda environment using Python 3.9. Is there a way to fix this?

    opened by flxai 9
  • Rendering coastline

    Rendering coastline

    I believe this fixes the issue in #7 . It's difficult to get polygons for the coastline as the polygons will be extremely large and may in some cases have errors (as mentioned on the OSM wiki). The smaller closed polygons with repaired coastlines from OSMCoastline is made available here.

    The water-polygons-split-4326.zip file is 738MB and the extracted .shp file is about 1GB.

    A coastline layer can be used to point to the extracted water_polygons.shp file (using the file_location key) along while using a buffer to ensure the polygons are included (this file needs to be downloaded first). The large buffer does not seem to add that much extra time to the processing as the file is already downloaded.

    'coastline':{
        'file_location':'./water-polygons-split-4326/water-polygons-split-4326/water_polygons.shp',
        'buffer':100000,
        'circle':False
    },
    

    Before this change the map for Eureka, California would look like: image

    and after it looks like: image

    In both these examples I also have water layer as the coastline data does not rivers and bays etc:

    'water': {
        'tags':{
            'waterway': True,
            'water': True,
            'harbour': True,
            'marina': True,
            'bay': True,
            'river': True
        },
        'dilate':100
    },
    
    opened by G21-Goose 4
  • NameError: name 'plt' is not defined

    NameError: name 'plt' is not defined

    Hi. How can I fix this error while generating the script? Thanks.

    Traceback (most recent call last): File "C:\Users\cuyug\Desktop\TroPYcal codes\prettymaps.py", line 4, in <module> from prettymaps import * File "C:\Users\cuyug\Desktop\TroPYcal codes\prettymaps.py", line 17, in <module> layers = plot( NameError: name 'plot' is not defined

    opened by matthewcuyugan 4
  • build: Add MANIFEST.in with prune strategy

    build: Add MANIFEST.in with prune strategy

    • Resolves #65
    • Needed for Issue #67
    * Use `prune **` to remove all files from the sdist
        - c.f. https://packaging.python.org/guides/using-manifest-in/#manifest-in-commands
        - "Setuptools also has undocumented support for ** matching zero or
           more characters including forward slash, backslash, and colon."
    * Manually include all "default" files for a sdist in MANIFEST.in
        - c.f. https://packaging.python.org/guides/using-manifest-in/#how-files-are-included-in-an-sdist
    * Include requirements.txt as not using declartive spec for setup
    
    opened by matthewfeickert 3
  • Rotation

    Rotation

    Hi,

    I love your project, thanks for sharing it! Is there any way to rotate the underlying map? I'm doing a city where the roads are just a few degrees off from alignment with North and I'd love to rotate the image. Any tips?

    Thanks,

    Matt

    opened by mawise 3
  • AttributeError: 'NoneType' object has no attribute 'axis'

    AttributeError: 'NoneType' object has no attribute 'axis'

    First off, thanks for such an interesting project!

    I'm trying to run the examples locally. Getting the following error:

     plot = prettymaps.plot('Stad van de Zon, Heerhugowaard, Netherlands', radius = False)
    /home/ben/.local/lib/python3.8/site-packages/osmnx/geocoder.py:110: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.
      gdf = gdf.append(_geocode_query_to_gdf(q, wr, by_osmid))
    /home/ben/.local/lib/python3.8/site-packages/prettymaps/draw.py:109: ShapelyDeprecationWarning: Iteration over multi-part geometries is deprecated and will be removed in Shapely 2.0. Use the `geoms` property to access the constituent parts of a multi-part geometry.
      layers = dict(zip(k, v))
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/home/ben/.local/lib/python3.8/site-packages/prettymaps/draw.py", line 251, in plot
        ax.axis("off")
    AttributeError: 'NoneType' object has no attribute 'axis'
    

    Any idea how to resolve? Maybe it's an issue with a dependency?

    opened by bensnoozled 2
  • Errror install in windows

    Errror install in windows

    Microsoft Windows [Version 10.0.19042.1165] (c) Microsoft Corporation. All rights reserved.

    E:\API\Python\prettymaps>pip install . Processing e:\api\python\prettymaps DEPRECATION: A future pip version will change local packages to be built in-place without first copying to a temporary directory. We recommend you use --use-feature=in-tree-build to test your packages with this new behavior before it becomes the default. pip 21.3 will remove support for this functionality. You can find discussion regarding this at https://github.com/pypa/pip/issues/7555. Collecting osmnx==1.0.1 Using cached osmnx-1.0.1-py2.py3-none-any.whl (87 kB) Collecting tabulate==0.8.9 Using cached tabulate-0.8.9-py3-none-any.whl (25 kB) Requirement already satisfied: matplotlib>=3.3 in c:\users\chuong.ho\appdata\local\programs\python\python39\lib\site-packages (from osmnx==1.0.1->prettymaps==0.1.3) (3.4.2) Requirement already satisfied: networkx>=2.5 in c:\users\chuong.ho\appdata\local\programs\python\python39\lib\site-packages (from osmnx==1.0.1->prettymaps==0.1.3) (2.6.2) Requirement already satisfied: requests>=2.25 in c:\users\chuong.ho\appdata\local\programs\python\python39\lib\site-packages (from osmnx==1.0.1->prettymaps==0.1.3) (2.26.0) Collecting geopandas>=0.8 Using cached geopandas-0.10.1-py2.py3-none-any.whl (1.0 MB) Requirement already satisfied: pyproj>=2.6 in c:\users\chuong.ho\appdata\local\programs\python\python39\lib\site-packages (from osmnx==1.0.1->prettymaps==0.1.3) (3.2.1) Requirement already satisfied: pandas>=1.1 in c:\users\chuong.ho\appdata\local\programs\python\python39\lib\site-packages (from osmnx==1.0.1->prettymaps==0.1.3) (1.3.0) Requirement already satisfied: numpy>=1.19 in c:\users\chuong.ho\appdata\local\programs\python\python39\lib\site-packages (from osmnx==1.0.1->prettymaps==0.1.3) (1.19.5) Collecting descartes>=1.1 Using cached descartes-1.1.0-py3-none-any.whl (5.8 kB) Requirement already satisfied: Shapely>=1.7 in c:\users\chuong.ho\appdata\local\programs\python\python39\lib\site-packages (from osmnx==1.0.1->prettymaps==0.1.3) (1.7.1) Collecting Rtree>=0.9 Using cached Rtree-0.9.7-cp39-cp39-win_amd64.whl (424 kB) Collecting fiona>=1.8 Using cached Fiona-1.8.20.tar.gz (1.3 MB) ERROR: Command errored out with exit status 1: command: 'c:\users\chuong.ho\appdata\local\programs\python\python39\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_050fd431430e406889c16c99b92467f2\setup.py'"'"'; file='"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_050fd431430e406889c16c99b92467f2\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(file) if os.path.exists(file) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-pip-egg-info-h3f96n44' cwd: C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_050fd431430e406889c16c99b92467f2
    Complete output (1 lines): A GDAL API version must be specified. Provide a path to gdal-config using a GDAL_CONFIG environment variable or use a GDAL_VERSION environment variable. ---------------------------------------- WARNING: Discarding https://files.pythonhosted.org/packages/ec/f7/093890341a7e8fbfcdfa04caf4dfb588ebab32c13ceaa6a3819da79ea106/Fiona-1.8.20.tar.gz#sha256=a70502d2857b82f749c09cb0dea3726787747933a2a1599b5ab787d74e3c143b (from https://pypi.org/simple/fiona/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. Using cached Fiona-1.8.19.tar.gz (1.3 MB) ERROR: Command errored out with exit status 1: command: 'c:\users\chuong.ho\appdata\local\programs\python\python39\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_052864dada4d49fdab2b6c5b82d20a4e\setup.py'"'"'; file='"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_052864dada4d49fdab2b6c5b82d20a4e\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(file) if os.path.exists(file) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-pip-egg-info-7wenzden' cwd: C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_052864dada4d49fdab2b6c5b82d20a4e
    Complete output (1 lines): A GDAL API version must be specified. Provide a path to gdal-config using a GDAL_CONFIG environment variable or use a GDAL_VERSION environment variable. ---------------------------------------- WARNING: Discarding https://files.pythonhosted.org/packages/a0/d9/6042aeb073d11341f7726de0586ff71c13117c34959dcf07bd4ee6d4b93e/Fiona-1.8.19.tar.gz#sha256=b9059e0b29c2e9e6b817e53f941e77e1aca7075f986005d38db307067b60458f (from https://pypi.org/simple/fiona/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. Using cached Fiona-1.8.18.tar.gz (1.3 MB) ERROR: Command errored out with exit status 1: command: 'c:\users\chuong.ho\appdata\local\programs\python\python39\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_4b7375f937b04634936aaa637c9776a5\setup.py'"'"'; file='"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_4b7375f937b04634936aaa637c9776a5\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(file) if os.path.exists(file) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-pip-egg-info-sw9y2agz' cwd: C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_4b7375f937b04634936aaa637c9776a5
    Complete output (1 lines): A GDAL API version must be specified. Provide a path to gdal-config using a GDAL_CONFIG environment variable or use a GDAL_VERSION environment variable. ---------------------------------------- WARNING: Discarding https://files.pythonhosted.org/packages/9f/e8/401cdaa58d862a25c4b3365acf7d2bd7ac77191e3dc9acdcdac0eff20ff0/Fiona-1.8.18.tar.gz#sha256=b732ece0ff8886a29c439723a3e1fc382718804bb057519d537a81308854967a (from https://pypi.org/simple/fiona/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. Using cached Fiona-1.8.17.tar.gz (1.3 MB) ERROR: Command errored out with exit status 1: command: 'c:\users\chuong.ho\appdata\local\programs\python\python39\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_33545010c3784385a13df1e4b985f183\setup.py'"'"'; file='"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_33545010c3784385a13df1e4b985f183\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(file) if os.path.exists(file) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-pip-egg-info-ypserqq5' cwd: C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_33545010c3784385a13df1e4b985f183
    Complete output (1 lines): A GDAL API version must be specified. Provide a path to gdal-config using a GDAL_CONFIG environment variable or use a GDAL_VERSION environment variable. ---------------------------------------- WARNING: Discarding https://files.pythonhosted.org/packages/88/62/69347ba2c41b526e1953c4cb66d51170b2869808863c03af202ba0121670/Fiona-1.8.17.tar.gz#sha256=716201c21246587f374785bec6d6a20a984fe1f6c2b0e83bf15127eb8f724d0c (from https://pypi.org/simple/fiona/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. Using cached Fiona-1.8.16.tar.gz (1.3 MB) ERROR: Command errored out with exit status 1: command: 'c:\users\chuong.ho\appdata\local\programs\python\python39\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_666fe564410948f5adf876ec7f66f4db\setup.py'"'"'; file='"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_666fe564410948f5adf876ec7f66f4db\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(file) if os.path.exists(file) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-pip-egg-info-64_zhkzy' cwd: C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_666fe564410948f5adf876ec7f66f4db
    Complete output (1 lines): A GDAL API version must be specified. Provide a path to gdal-config using a GDAL_CONFIG environment variable or use a GDAL_VERSION environment variable. ---------------------------------------- WARNING: Discarding https://files.pythonhosted.org/packages/1e/60/dfc6115a11338d8aa96cacd8c60635223d9c97d61d556c90acc5dfd663fa/Fiona-1.8.16.tar.gz#sha256=fd6dfb65959becc916e9f6928618bfd59c16cdbc413ece0fbac61489cd11255f (from https://pypi.org/simple/fiona/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. Using cached Fiona-1.8.15.tar.gz (1.3 MB) ERROR: Command errored out with exit status 1: command: 'c:\users\chuong.ho\appdata\local\programs\python\python39\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_309afa8adb3844e581a6fd108665a092\setup.py'"'"'; file='"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_309afa8adb3844e581a6fd108665a092\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(file) if os.path.exists(file) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-pip-egg-info-5thd6d6y' cwd: C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_309afa8adb3844e581a6fd108665a092
    Complete output (1 lines): A GDAL API version must be specified. Provide a path to gdal-config using a GDAL_CONFIG environment variable or use a GDAL_VERSION environment variable. ---------------------------------------- WARNING: Discarding https://files.pythonhosted.org/packages/55/2f/17450ec2c8fcc720a8a3e4d9a383499508475c7cfb90f7eca9fb585ac598/Fiona-1.8.15.tar.gz#sha256=3b1c9b5c834fae2fe947cfaea176db890bc6750d1a6ba9f54d969c19ffcd191e (from https://pypi.org/simple/fiona/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. Using cached Fiona-1.8.14.tar.gz (1.3 MB) ERROR: Command errored out with exit status 1: command: 'c:\users\chuong.ho\appdata\local\programs\python\python39\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_9c864889b74e46e395af43332f981ded\setup.py'"'"'; file='"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_9c864889b74e46e395af43332f981ded\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(file) if os.path.exists(file) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-pip-egg-info-x9981y73' cwd: C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_9c864889b74e46e395af43332f981ded
    Complete output (1 lines): A GDAL API version must be specified. Provide a path to gdal-config using a GDAL_CONFIG environment variable or use a GDAL_VERSION environment variable. ---------------------------------------- WARNING: Discarding https://files.pythonhosted.org/packages/5c/fd/5ec54f2d9b3d5dd23dd443fad5630d6b872e2664814c68b856c47e0d65af/Fiona-1.8.14.tar.gz#sha256=6eac038206c89d2cf5f99ea38b81cc228dc21eac5f47870a9a32d453b0007f4d (from https://pypi.org/simple/fiona/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. Using cached Fiona-1.8.13.post1.tar.gz (1.2 MB) ERROR: Command errored out with exit status 1: command: 'c:\users\chuong.ho\appdata\local\programs\python\python39\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_625c632c31c94fad81d2eb8c2f2bfdd8\setup.py'"'"'; file='"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_625c632c31c94fad81d2eb8c2f2bfdd8\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(file) if os.path.exists(file) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-pip-egg-info-ergnm1zs' cwd: C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_625c632c31c94fad81d2eb8c2f2bfdd8
    Complete output (1 lines): A GDAL API version must be specified. Provide a path to gdal-config using a GDAL_CONFIG environment variable or use a GDAL_VERSION environment variable. ---------------------------------------- WARNING: Discarding https://files.pythonhosted.org/packages/6d/42/f4a7cac53b28fa70e9a93d0e89a24d33e14826dad6644b699362ad84dde0/Fiona-1.8.13.post1.tar.gz#sha256=1a432bf9fd56f089256c010da009c90d4a795c531a848132c965052185336600 (from https://pypi.org/simple/fiona/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. Using cached Fiona-1.8.13.tar.gz (1.2 MB) ERROR: Command errored out with exit status 1: command: 'c:\users\chuong.ho\appdata\local\programs\python\python39\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_29c4d452d6eb40b1a7e462692a4c6a23\setup.py'"'"'; file='"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_29c4d452d6eb40b1a7e462692a4c6a23\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(file) if os.path.exists(file) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-pip-egg-info-9q2f2woq' cwd: C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_29c4d452d6eb40b1a7e462692a4c6a23
    Complete output (1 lines): A GDAL API version must be specified. Provide a path to gdal-config using a GDAL_CONFIG environment variable or use a GDAL_VERSION environment variable. ---------------------------------------- WARNING: Discarding https://files.pythonhosted.org/packages/be/04/31d0a6f03943b1684f32c9b861be40c1fd282468fa6bd54ddf4a774e6b0f/Fiona-1.8.13.tar.gz#sha256=5ec34898c8b983a723fb4e949dd3e0ed7e691c303e51f6bfd61e52ac9ac813ae (from https://pypi.org/simple/fiona/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. Using cached Fiona-1.8.12.tar.gz (1.2 MB) ERROR: Command errored out with exit status 1: command: 'c:\users\chuong.ho\appdata\local\programs\python\python39\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_c09600f4abf74c2fb50d5df2fa5f69ba\setup.py'"'"'; file='"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_c09600f4abf74c2fb50d5df2fa5f69ba\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(file) if os.path.exists(file) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-pip-egg-info-swdhp3b9' cwd: C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_c09600f4abf74c2fb50d5df2fa5f69ba
    Complete output (1 lines): A GDAL API version must be specified. Provide a path to gdal-config using a GDAL_CONFIG environment variable or use a GDAL_VERSION environment variable. ---------------------------------------- WARNING: Discarding https://files.pythonhosted.org/packages/97/d8/feab39987296437fbdc3029fb39752a14355d217d73b93471010b8dd63a3/Fiona-1.8.12.tar.gz#sha256=c9266ddf6ae2a64fcea20014ddf27f800ac07584f2fdb09c2a02f3b3a52e371c (from https://pypi.org/simple/fiona/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. Using cached Fiona-1.8.11.tar.gz (1.2 MB) ERROR: Command errored out with exit status 1: command: 'c:\users\chuong.ho\appdata\local\programs\python\python39\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_0571a7bc32744db0b931764b964fe4c4\setup.py'"'"'; file='"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_0571a7bc32744db0b931764b964fe4c4\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(file) if os.path.exists(file) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-pip-egg-info-6fu79q8p' cwd: C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_0571a7bc32744db0b931764b964fe4c4
    Complete output (1 lines): A GDAL API version must be specified. Provide a path to gdal-config using a GDAL_CONFIG environment variable or use a GDAL_VERSION environment variable. ---------------------------------------- WARNING: Discarding https://files.pythonhosted.org/packages/9d/f4/0a0ddc6174c4a93679b5f1dd3535e7ef8989828e6d5f86112de681f8c87b/Fiona-1.8.11.tar.gz#sha256=1e7ca9e051f5bffa1c43c70d573da9ca223fc076b84fa73380614fc02b9eb7f6 (from https://pypi.org/simple/fiona/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. Using cached Fiona-1.8.10.tar.gz (1.2 MB) ERROR: Command errored out with exit status 1: command: 'c:\users\chuong.ho\appdata\local\programs\python\python39\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_1365b55a12ea4b25b75cdede91a99df1\setup.py'"'"'; file='"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_1365b55a12ea4b25b75cdede91a99df1\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(file) if os.path.exists(file) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-pip-egg-info-iunzox_r' cwd: C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_1365b55a12ea4b25b75cdede91a99df1
    Complete output (1 lines): A GDAL API version must be specified. Provide a path to gdal-config using a GDAL_CONFIG environment variable or use a GDAL_VERSION environment variable. ---------------------------------------- WARNING: Discarding https://files.pythonhosted.org/packages/13/73/f80b491ed8559326fab202a6d6333a3cd6e8be1e9d782bc6c0d03d476457/Fiona-1.8.10.tar.gz#sha256=ff562eb2f3960e21f8c7f050ddd7f47a763869ea14afc2234a40df72666c6a2c (from https://pypi.org/simple/fiona/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. Using cached Fiona-1.8.9.post2.tar.gz (1.2 MB) ERROR: Command errored out with exit status 1: command: 'c:\users\chuong.ho\appdata\local\programs\python\python39\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_ee56f6d962a6413db0422c50f0ba578f\setup.py'"'"'; file='"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_ee56f6d962a6413db0422c50f0ba578f\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(file) if os.path.exists(file) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-pip-egg-info-tjm7fdhg' cwd: C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_ee56f6d962a6413db0422c50f0ba578f
    Complete output (1 lines): A GDAL API version must be specified. Provide a path to gdal-config using a GDAL_CONFIG environment variable or use a GDAL_VERSION environment variable. ---------------------------------------- WARNING: Discarding https://files.pythonhosted.org/packages/9b/52/45e75507660ce0e86176d0f59b659560f687e2c7e9ebf82a10e7dcd2d3b7/Fiona-1.8.9.post2.tar.gz#sha256=210fb038b579fab38f35ddbdd31b9725f4d5099b3edfd4b87c983e5d47b79983 (from https://pypi.org/simple/fiona/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. Using cached Fiona-1.8.9.post1.tar.gz (1.2 MB) ERROR: Command errored out with exit status 1: command: 'c:\users\chuong.ho\appdata\local\programs\python\python39\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_1359b67678084d67b2ca89c79ddd17b7\setup.py'"'"'; file='"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_1359b67678084d67b2ca89c79ddd17b7\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(file) if os.path.exists(file) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-pip-egg-info-ooa655z7' cwd: C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_1359b67678084d67b2ca89c79ddd17b7
    Complete output (1 lines): A GDAL API version must be specified. Provide a path to gdal-config using a GDAL_CONFIG environment variable or use a GDAL_VERSION environment variable. ---------------------------------------- WARNING: Discarding https://files.pythonhosted.org/packages/0e/a4/d9dd7399be809d3990f5000fb6ae43189ea26ae88be1bed3a4c9ddc1becc/Fiona-1.8.9.post1.tar.gz#sha256=d5e0ea0b8addffe9cba4cb59e2bd495b015230e7a1b1597974f5048211930199 (from https://pypi.org/simple/fiona/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. Using cached Fiona-1.8.9.tar.gz (1.2 MB) ERROR: Command errored out with exit status 1: command: 'c:\users\chuong.ho\appdata\local\programs\python\python39\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_d619c53fa56f43b79635847d89f35994\setup.py'"'"'; file='"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_d619c53fa56f43b79635847d89f35994\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(file) if os.path.exists(file) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-pip-egg-info-ecauqsml' cwd: C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_d619c53fa56f43b79635847d89f35994
    Complete output (1 lines): A GDAL API version must be specified. Provide a path to gdal-config using a GDAL_CONFIG environment variable or use a GDAL_VERSION environment variable. ---------------------------------------- WARNING: Discarding https://files.pythonhosted.org/packages/ad/92/dcbd8c54d697c22f299b5af63b6df3acfbd06c6d72e249614c05be99337c/Fiona-1.8.9.tar.gz#sha256=4dd6e2f5327c1174143c7c8594a75d373bc72f2c9a2a6daee312c3186a128add (from https://pypi.org/simple/fiona/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. Using cached Fiona-1.8.8.tar.gz (1.7 MB) ERROR: Command errored out with exit status 1: command: 'c:\users\chuong.ho\appdata\local\programs\python\python39\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_a3a8062f09354830acf3e10ecd5c1982\setup.py'"'"'; file='"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_a3a8062f09354830acf3e10ecd5c1982\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(file) if os.path.exists(file) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-pip-egg-info-ngr2jlya' cwd: C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_a3a8062f09354830acf3e10ecd5c1982
    Complete output (1 lines): A GDAL API version must be specified. Provide a path to gdal-config using a GDAL_CONFIG environment variable or use a GDAL_VERSION environment variable. ---------------------------------------- WARNING: Discarding https://files.pythonhosted.org/packages/94/7f/e288db1ad63d759d494c30caae34f865e0c6927588c490705e91b7134193/Fiona-1.8.8.tar.gz#sha256=711c3be73203b37812992089445a1e4e9d3d6b64e667389f7b15406e15a91e83 (from https://pypi.org/simple/fiona/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. Using cached Fiona-1.8.7.tar.gz (1.7 MB) ERROR: Command errored out with exit status 1: command: 'c:\users\chuong.ho\appdata\local\programs\python\python39\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_07ce050cef53428c8f46416d0cef270e\setup.py'"'"'; file='"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_07ce050cef53428c8f46416d0cef270e\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(file) if os.path.exists(file) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-pip-egg-info-kp9oahob' cwd: C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_07ce050cef53428c8f46416d0cef270e
    Complete output (1 lines): A GDAL API version must be specified. Provide a path to gdal-config using a GDAL_CONFIG environment variable or use a GDAL_VERSION environment variable. ---------------------------------------- WARNING: Discarding https://files.pythonhosted.org/packages/78/62/daafd070aebefa639df247705b97f13f7cfad43895581b5cae41bd886709/Fiona-1.8.7.tar.gz#sha256=a55a23615bad3e142d4e4cda97bb5de83c778a80049222e9dffae93c13b5cf93 (from https://pypi.org/simple/fiona/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. Using cached Fiona-1.8.6.tar.gz (1.7 MB) ERROR: Command errored out with exit status 1: command: 'c:\users\chuong.ho\appdata\local\programs\python\python39\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_6ffc5d017d224c0d817a24c59649601f\setup.py'"'"'; file='"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_6ffc5d017d224c0d817a24c59649601f\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(file) if os.path.exists(file) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-pip-egg-info-ptala907' cwd: C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_6ffc5d017d224c0d817a24c59649601f
    Complete output (1 lines): A GDAL API version must be specified. Provide a path to gdal-config using a GDAL_CONFIG environment variable or use a GDAL_VERSION environment variable. ---------------------------------------- WARNING: Discarding https://files.pythonhosted.org/packages/41/9d/63696e7b1de42aad294d4781199a408bec593d8fdb80a2b4a788c911a33b/Fiona-1.8.6.tar.gz#sha256=fa31dfe8855b9cd0b128b47a4df558f1b8eda90d2181bff1dd9854e5556efb3e (from https://pypi.org/simple/fiona/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. Using cached Fiona-1.8.5.tar.gz (1.7 MB) ERROR: Command errored out with exit status 1: command: 'c:\users\chuong.ho\appdata\local\programs\python\python39\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_77157fb538cd486bb73ad9007c82d7cc\setup.py'"'"'; file='"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_77157fb538cd486bb73ad9007c82d7cc\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(file) if os.path.exists(file) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-pip-egg-info-37eg5b74' cwd: C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_77157fb538cd486bb73ad9007c82d7cc
    Complete output (1 lines): A GDAL API version must be specified. Provide a path to gdal-config using a GDAL_CONFIG environment variable or use a GDAL_VERSION environment variable. ---------------------------------------- WARNING: Discarding https://files.pythonhosted.org/packages/7b/af/1c2c83c4a8363a4ce9fea817b1910b5e071bed012e18257faa2a0ab3cfe7/Fiona-1.8.5.tar.gz#sha256=4f5cc2d449edbbf693c83e24cdada72de7c41297383d16fcc92387eb445e9d35 (from https://pypi.org/simple/fiona/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. Using cached Fiona-1.8.4.tar.gz (1.1 MB) ERROR: Command errored out with exit status 1: command: 'c:\users\chuong.ho\appdata\local\programs\python\python39\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_0ff1ede451774747a34143b7ae4f9665\setup.py'"'"'; file='"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_0ff1ede451774747a34143b7ae4f9665\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(file) if os.path.exists(file) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-pip-egg-info-85iiv2e9' cwd: C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_0ff1ede451774747a34143b7ae4f9665
    Complete output (1 lines): A GDAL API version must be specified. Provide a path to gdal-config using a GDAL_CONFIG environment variable or use a GDAL_VERSION environment variable. ---------------------------------------- WARNING: Discarding https://files.pythonhosted.org/packages/3a/16/84960540e9fce61d767fd2f0f1d95f4c63e99ab5d8fddc308e8b51b059b8/Fiona-1.8.4.tar.gz#sha256=aec9ab2e3513c9503ec123b1a8573bee55fc6a66e2ac07088c3376bf6738a424 (from https://pypi.org/simple/fiona/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. Using cached Fiona-1.8.3.tar.gz (1.1 MB) ERROR: Command errored out with exit status 1: command: 'c:\users\chuong.ho\appdata\local\programs\python\python39\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_11c48561c8674657a685871dd702bce7\setup.py'"'"'; file='"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_11c48561c8674657a685871dd702bce7\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(file) if os.path.exists(file) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-pip-egg-info-0i3c5y80' cwd: C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_11c48561c8674657a685871dd702bce7
    Complete output (1 lines): A GDAL API version must be specified. Provide a path to gdal-config using a GDAL_CONFIG environment variable or use a GDAL_VERSION environment variable. ---------------------------------------- WARNING: Discarding https://files.pythonhosted.org/packages/46/d1/fcdb32513a03abfde0d97fd9782ce0f8cc0540fa6c6ce783e87b94064964/Fiona-1.8.3.tar.gz#sha256=3e831100a23c3b6cd32b98baf0c9e2119d909b44a5cf4533d3625f61dcf2d2b1 (from https://pypi.org/simple/fiona/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. Using cached Fiona-1.8.2.tar.gz (1.2 MB) ERROR: Command errored out with exit status 1: command: 'c:\users\chuong.ho\appdata\local\programs\python\python39\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_be61da90d937453da0bf3303f8bb7b5c\setup.py'"'"'; file='"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_be61da90d937453da0bf3303f8bb7b5c\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(file) if os.path.exists(file) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-pip-egg-info-5hfc7xbs' cwd: C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_be61da90d937453da0bf3303f8bb7b5c
    Complete output (1 lines): A GDAL API version must be specified. Provide a path to gdal-config using a GDAL_CONFIG environment variable or use a GDAL_VERSION environment variable. ---------------------------------------- WARNING: Discarding https://files.pythonhosted.org/packages/25/50/0466d5d83e1859c5ca38351ee932d64cc5635f9d4dad522879e58f4b0018/Fiona-1.8.2.tar.gz#sha256=4c6419b7ac29136708029f6a44b4ccd458735a4d241016c7b1bab41685c08d8f (from https://pypi.org/simple/fiona/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. Using cached Fiona-1.8.1.tar.gz (1.1 MB) ERROR: Command errored out with exit status 1: command: 'c:\users\chuong.ho\appdata\local\programs\python\python39\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_78cc559efb9749e9a45154eb7afa31b0\setup.py'"'"'; file='"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_78cc559efb9749e9a45154eb7afa31b0\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(file) if os.path.exists(file) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-pip-egg-info-lyzn1jqs' cwd: C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_78cc559efb9749e9a45154eb7afa31b0
    Complete output (1 lines): A GDAL API version must be specified. Provide a path to gdal-config using a GDAL_CONFIG environment variable or use a GDAL_VERSION environment variable. ---------------------------------------- WARNING: Discarding https://files.pythonhosted.org/packages/3e/5f/0c6704efeea2ff3fba7f54cc6ec38070157f21bc1cffa7bdfa7c9f6b8f7a/Fiona-1.8.1.tar.gz#sha256=4c34bb4c5cd788aaf14e5484c3b7de407b1a8a7c7b2d29bbb2e8b37931e83b8d (from https://pypi.org/simple/fiona/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. Using cached Fiona-1.8.0.tar.gz (1.4 MB) ERROR: Command errored out with exit status 1: command: 'c:\users\chuong.ho\appdata\local\programs\python\python39\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_106c3693a9a647a08aa846f6cd5a305a\setup.py'"'"'; file='"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_106c3693a9a647a08aa846f6cd5a305a\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(file) if os.path.exists(file) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-pip-egg-info-itumwmim' cwd: C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_106c3693a9a647a08aa846f6cd5a305a
    Complete output (1 lines): A GDAL API version must be specified. Provide a path to gdal-config using a GDAL_CONFIG environment variable or use a GDAL_VERSION environment variable. ---------------------------------------- WARNING: Discarding https://files.pythonhosted.org/packages/2a/bd/c1efc2680f338e5941121c776d6323af6b9698ac739e22ba523cee348a7f/Fiona-1.8.0.tar.gz#sha256=20141a9ece06daa7bb4333fba640c2fe39a49f8aca5492d1da8595d41e91844a (from https://pypi.org/simple/fiona/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. Collecting geopandas>=0.8 Using cached geopandas-0.10.0-py2.py3-none-any.whl (1.0 MB) Using cached geopandas-0.9.0-py2.py3-none-any.whl (994 kB) Using cached geopandas-0.8.2-py2.py3-none-any.whl (962 kB) Collecting fiona Using cached Fiona-1.7.13.tar.gz (731 kB) Requirement already satisfied: python-dateutil>=2.7 in c:\users\chuong.ho\appdata\local\programs\python\python39\lib\site-packages (from matplotlib>=3.3->osmnx==1.0.1->prettymaps==0.1.3) (2.8.1) Requirement already satisfied: cycler>=0.10 in c:\users\chuong.ho\appdata\local\programs\python\python39\lib\site-packages (from matplotlib>=3.3->osmnx==1.0.1->prettymaps==0.1.3) (0.10.0) Requirement already satisfied: pillow>=6.2.0 in c:\users\chuong.ho\appdata\local\programs\python\python39\lib\site-packages (from matplotlib>=3.3->osmnx==1.0.1->prettymaps==0.1.3) (8.3.1) Requirement already satisfied: pyparsing>=2.2.1 in c:\users\chuong.ho\appdata\local\programs\python\python39\lib\site-packages (from matplotlib>=3.3->osmnx==1.0.1->prettymaps==0.1.3) (2.4.7) Requirement already satisfied: kiwisolver>=1.0.1 in c:\users\chuong.ho\appdata\local\programs\python\python39\lib\site-packages (from matplotlib>=3.3->osmnx==1.0.1->prettymaps==0.1.3) (1.3.1) Requirement already satisfied: six in c:\users\chuong.ho\appdata\local\programs\python\python39\lib\site-packages (from cycler>=0.10->matplotlib>=3.3->osmnx==1.0.1->prettymaps==0.1.3) (1.15.0) Requirement already satisfied: pytz>=2017.3 in c:\users\chuong.ho\appdata\local\programs\python\python39\lib\site-packages (from pandas>=1.1->osmnx==1.0.1->prettymaps==0.1.3) (2021.1) Requirement already satisfied: certifi in c:\users\chuong.ho\appdata\local\programs\python\python39\lib\site-packages (from pyproj>=2.6->osmnx==1.0.1->prettymaps==0.1.3) (2021.5.30) Requirement already satisfied: urllib3<1.27,>=1.21.1 in c:\users\chuong.ho\appdata\local\programs\python\python39\lib\site-packages (from requests>=2.25->osmnx==1.0.1->prettymaps==0.1.3) (1.26.6) Requirement already satisfied: charset-normalizer~=2.0.0 in c:\users\chuong.ho\appdata\local\programs\python\python39\lib\site-packages (from requests>=2.25->osmnx==1.0.1->prettymaps==0.1.3) (2.0.4) Requirement already satisfied: idna<4,>=2.5 in c:\users\chuong.ho\appdata\local\programs\python\python39\lib\site-packages (from requests>=2.25->osmnx==1.0.1->prettymaps==0.1.3) (3.2) Requirement already satisfied: cligj>=0.4 in c:\users\chuong.ho\appdata\local\programs\python\python39\lib\site-packages (from fiona->geopandas>=0.8->osmnx==1.0.1->prettymaps==0.1.3) (0.7.2) Requirement already satisfied: click-plugins in c:\users\chuong.ho\appdata\local\programs\python\python39\lib\site-packages (from fiona->geopandas>=0.8->osmnx==1.0.1->prettymaps==0.1.3) (1.1.1) Requirement already satisfied: munch in c:\users\chuong.ho\appdata\local\programs\python\python39\lib\site-packages (from fiona->geopandas>=0.8->osmnx==1.0.1->prettymaps==0.1.3) (2.5.0) Requirement already satisfied: click>=4.0 in c:\users\chuong.ho\appdata\local\programs\python\python39\lib\site-packages (from cligj>=0.4->fiona->geopandas>=0.8->osmnx==1.0.1->prettymaps==0.1.3) (8.0.1) Requirement already satisfied: colorama in c:\users\chuong.ho\appdata\roaming\python\python39\site-packages (from click>=4.0->cligj>=0.4->fiona->geopandas>=0.8->osmnx==1.0.1->prettymaps==0.1.3) (0.4.4) Building wheels for collected packages: prettymaps, fiona Building wheel for prettymaps (setup.py) ... done Created wheel for prettymaps: filename=prettymaps-0.1.3-py3-none-any.whl size=19321 sha256=34b85e667e703d2433e50699f1aa59cace6cbaa0a6d486cd4ec6ac3642e35b9d Stored in directory: C:\Users\Chuong.Ho\AppData\Local\Temp\pip-ephem-wheel-cache-sqhg6u8y\wheels\41\d9\6c\b71b8bf41fac10f034dad9e492451c75945bea8181c0a2345e Building wheel for fiona (setup.py) ... error ERROR: Command errored out with exit status 1: command: 'c:\users\chuong.ho\appdata\local\programs\python\python39\python.exe' -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_f3fb8768b6ca49a587ec16dc50826dc7\setup.py'"'"'; file='"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_f3fb8768b6ca49a587ec16dc50826dc7\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(file) if os.path.exists(file) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' bdist_wheel -d 'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-wheel-wh5jexh4' cwd: C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_f3fb8768b6ca49a587ec16dc50826dc7
    Complete output (48 lines): c:\users\chuong.ho\appdata\local\programs\python\python39\lib\distutils\dist.py:274: UserWarning: Unknown distribution option: 'metadata_version' warnings.warn(msg) c:\users\chuong.ho\appdata\local\programs\python\python39\lib\distutils\dist.py:274: UserWarning: Unknown distribution option: 'requires_python' warnings.warn(msg) c:\users\chuong.ho\appdata\local\programs\python\python39\lib\distutils\dist.py:274: UserWarning: Unknown distribution option: 'requires_external' warnings.warn(msg) running bdist_wheel running build running build_py creating build creating build\lib.win-amd64-3.9 creating build\lib.win-amd64-3.9\fiona copying .\fiona\collection.py -> build\lib.win-amd64-3.9\fiona copying .\fiona\compat.py -> build\lib.win-amd64-3.9\fiona copying .\fiona\crs.py -> build\lib.win-amd64-3.9\fiona copying .\fiona\drvsupport.py -> build\lib.win-amd64-3.9\fiona copying .\fiona\errors.py -> build\lib.win-amd64-3.9\fiona copying .\fiona\inspector.py -> build\lib.win-amd64-3.9\fiona copying .\fiona\rfc3339.py -> build\lib.win-amd64-3.9\fiona copying .\fiona\tool.py -> build\lib.win-amd64-3.9\fiona copying .\fiona\transform.py -> build\lib.win-amd64-3.9\fiona copying .\fiona_init_.py -> build\lib.win-amd64-3.9\fiona creating build\lib.win-amd64-3.9\fiona\fio copying .\fiona\fio\bounds.py -> build\lib.win-amd64-3.9\fiona\fio copying .\fiona\fio\calc.py -> build\lib.win-amd64-3.9\fiona\fio copying .\fiona\fio\cat.py -> build\lib.win-amd64-3.9\fiona\fio copying .\fiona\fio\collect.py -> build\lib.win-amd64-3.9\fiona\fio copying .\fiona\fio\distrib.py -> build\lib.win-amd64-3.9\fiona\fio copying .\fiona\fio\dump.py -> build\lib.win-amd64-3.9\fiona\fio copying .\fiona\fio\env.py -> build\lib.win-amd64-3.9\fiona\fio copying .\fiona\fio\filter.py -> build\lib.win-amd64-3.9\fiona\fio copying .\fiona\fio\helpers.py -> build\lib.win-amd64-3.9\fiona\fio copying .\fiona\fio\info.py -> build\lib.win-amd64-3.9\fiona\fio copying .\fiona\fio\insp.py -> build\lib.win-amd64-3.9\fiona\fio copying .\fiona\fio\load.py -> build\lib.win-amd64-3.9\fiona\fio copying .\fiona\fio\ls.py -> build\lib.win-amd64-3.9\fiona\fio copying .\fiona\fio\main.py -> build\lib.win-amd64-3.9\fiona\fio copying .\fiona\fio\options.py -> build\lib.win-amd64-3.9\fiona\fio copying .\fiona\fio_init_.py -> build\lib.win-amd64-3.9\fiona\fio running build_ext building 'fiona._transform' extension creating build\temp.win-amd64-3.9 creating build\temp.win-amd64-3.9\Release creating build\temp.win-amd64-3.9\Release\fiona C:\Program Files\Microsoft Visual Studio\2022\Preview\VC\Tools\MSVC\14.30.30704\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -Ic:\users\chuong.ho\appdata\local\programs\python\python39\include -Ic:\users\chuong.ho\appdata\local\programs\python\python39\include -IC:\Program Files\Microsoft Visual Studio\2022\Preview\VC\Tools\MSVC\14.30.30704\ATLMFC\include -IC:\Program Files\Microsoft Visual Studio\2022\Preview\VC\Tools\MSVC\14.30.30704\include -IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\shared -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\winrt -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\cppwinrt /EHsc /Tpfiona/_transform.cpp /Fobuild\temp.win-amd64-3.9\Release\fiona/_transform.obj _transform.cpp fiona/_transform.cpp(606): fatal error C1083: Cannot open include file: 'cpl_conv.h': No such file or directory error: command 'C:\Program Files\Microsoft Visual Studio\2022\Preview\VC\Tools\MSVC\14.30.30704\bin\HostX86\x64\cl.exe' failed with exit code 2

    ERROR: Failed building wheel for fiona Running setup.py clean for fiona Successfully built prettymaps Failed to build fiona Installing collected packages: fiona, Rtree, geopandas, descartes, tabulate, osmnx, prettymaps Running setup.py install for fiona ... error ERROR: Command errored out with exit status 1: command: 'c:\users\chuong.ho\appdata\local\programs\python\python39\python.exe' -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_f3fb8768b6ca49a587ec16dc50826dc7\setup.py'"'"'; file='"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_f3fb8768b6ca49a587ec16dc50826dc7\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(file) if os.path.exists(file) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record 'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-record-1lwpvmn3\install-record.txt' --single-version-externally-managed --compile --install-headers 'c:\users\chuong.ho\appdata\local\programs\python\python39\Include\fiona' cwd: C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_f3fb8768b6ca49a587ec16dc50826dc7
    Complete output (18 lines): c:\users\chuong.ho\appdata\local\programs\python\python39\lib\distutils\dist.py:274: UserWarning: Unknown distribution option: 'metadata_version' warnings.warn(msg) c:\users\chuong.ho\appdata\local\programs\python\python39\lib\distutils\dist.py:274: UserWarning: Unknown distribution option: 'requires_python' warnings.warn(msg) c:\users\chuong.ho\appdata\local\programs\python\python39\lib\distutils\dist.py:274: UserWarning: Unknown distribution option: 'requires_external' warnings.warn(msg) running install running build running build_py running build_ext building 'fiona._transform' extension creating build\temp.win-amd64-3.9 creating build\temp.win-amd64-3.9\Release creating build\temp.win-amd64-3.9\Release\fiona C:\Program Files\Microsoft Visual Studio\2022\Preview\VC\Tools\MSVC\14.30.30704\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -Ic:\users\chuong.ho\appdata\local\programs\python\python39\include -Ic:\users\chuong.ho\appdata\local\programs\python\python39\include -IC:\Program Files\Microsoft Visual Studio\2022\Preview\VC\Tools\MSVC\14.30.30704\ATLMFC\include -IC:\Program Files\Microsoft Visual Studio\2022\Preview\VC\Tools\MSVC\14.30.30704\include -IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\shared -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\winrt -IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\cppwinrt /EHsc /Tpfiona/_transform.cpp /Fobuild\temp.win-amd64-3.9\Release\fiona/_transform.obj _transform.cpp fiona/_transform.cpp(606): fatal error C1083: Cannot open include file: 'cpl_conv.h': No such file or directory error: command 'C:\Program Files\Microsoft Visual Studio\2022\Preview\VC\Tools\MSVC\14.30.30704\bin\HostX86\x64\cl.exe' failed with exit code 2 ---------------------------------------- ERROR: Command errored out with exit status 1: 'c:\users\chuong.ho\appdata\local\programs\python\python39\python.exe' -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_f3fb8768b6ca49a587ec16dc50826dc7\setup.py'"'"'; file='"'"'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-install-igb3_xaw\fiona_f3fb8768b6ca49a587ec16dc50826dc7\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(file) if os.path.exists(file) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record 'C:\Users\Chuong.Ho\AppData\Local\Temp\pip-record-1lwpvmn3\install-record.txt' --single-version-externally-managed --compile --install-headers 'c:\users\chuong.ho\appdata\local\programs\python\python39\Include\fiona' Check the logs for full command output.

    E:\API\Python\prettymaps>

    opened by chuongmep 2
  • trees

    trees

    Hi!

    Love the libray!

    Was thinking about using it to make a treasure hunt map for my son and his friends. It's perfect, apart from that I can't quite figure out how to plot individual trees (clues will be hidden in them!). I can see them in open street map, I've figured out the tag I think, I just can't quite figure out how to render them.

    I was wondering - is there something special about rendering this sort of thing? Maybe it's a point, rather than a polygon?

    Thanks again!

    Mike

    opened by mikedewar 2
  • Fix geometry-perimeter intersection

    Fix geometry-perimeter intersection

    Some geometry was removed, even through it was partially in the perimeter such as in issue #46 where not all the river was visible because the last bit partially went out of the perimeter. This seemed to happen when a perimeter was provided and not a point or radius.

    If geometries = geometries.intersection(perimeter) is changed to geometries = geometries.intersection(perimeter).buffer(0) it seems to have behaviour that would be expected.

    Before change image

    After change image

    Also the buffer on the perimeter in get_geometries() and get_streets() was being performed on the longitude and latitude in degrees, not meters. It now projects it, buffers it in meters, then turns it back into degrees for the ox.geometries_from_polygon()/ox.graph_from_polygon().

    The get_streets() function would have streets going over the perimeter when only used with a perimeter. This was because the intersection code wasn't running when only a perimeter was used, and the perimeter was still a GeoDataFrame because the line perimeter = unary_union(ox.project_gdf(perimeter).geometry) was missing.

    opened by G21-Goose 2
  • FileNotFoundError: [Errno 2] No such file or directory: 'C:\Users\cuyug\assets\Permanent_Marker\PermanentMarker-Regular.ttf`

    FileNotFoundError: [Errno 2] No such file or directory: 'C:\Users\cuyug\assets\Permanent_Marker\PermanentMarker-Regular.ttf`

    Can someone help me how to fix these errors? Thanks in advance.

    FileNotFoundError: [Errno 2] No such file or directory: 'C:\Users\cuyug\assets\Permanent_Marker\PermanentMarker-Regular.ttf`

    DeprecationWarning: An exception was ignored while fetching the attributearray_interfacefrom an object of type 'Polygon'. With the exception ofAttributeErrorNumPy will always raise this exception in the future. Raise this deprecation warning to see the original exception. (Warning added NumPy 1.21)

    opened by matthewcuyugan 2
  • use backup

    use backup

    I want to reuse a previously called osm backup dict

    fig, ax = plt.subplots(figsize = (12, 12), constrained_layout = True)
    
    backup01 = plot(
        'Praça Ferreira do Amaral, Macau', radius = 1100,
        ax = ax,
        layers = {
                'perimeter': {},
                'streets': {
                    'custom_filter': '["highway"~"motorway|trunk|primary|secondary|tertiary|residential|service|unclassified|pedestrian|footway"]',
                    'width': {
                        'motorway': 5,
                        'trunk': 5,
                        'primary': 4.5,
                        'secondary': 4,
                        'tertiary': 3.5,
                        'residential': 3,
                        'service': 2,
                        'unclassified': 2,
                        'pedestrian': 2,
                        'footway': 1,
                    }
                },
                'building': {'tags': {'building': True, 'landuse': 'construction'}, 'union': False},
                'water': {'tags': {'natural': ['water', 'bay']}},
                'green': {'tags': {'landuse': 'grass', 'natural': ['island', 'wood'], 'leisure': 'park'}},
                'forest': {'tags': {'landuse': 'forest'}},
                'parking': {'tags': {'amenity': 'parking', 'highway': 'pedestrian', 'man_made': 'pier'}}
            },
            drawing_kwargs = {
                'background': {'fc': '#F2F4CB', 'ec': '#dadbc1', 'hatch': 'ooo...', 'zorder': -1},
                'perimeter': {'fc': '#F2F4CB', 'ec': '#dadbc1', 'lw': 0, 'hatch': 'ooo...',  'zorder': 0},
                'green': {'fc': '#D0F1BF', 'ec': '#2F3737', 'lw': 1, 'zorder': 1},
                'forest': {'fc': '#64B96A', 'ec': '#2F3737', 'lw': 1, 'zorder': 1},
                'water': {'fc': '#a1e3ff', 'ec': '#2F3737', 'hatch': 'ooo...', 'hatch_c': '#85c9e6', 'lw': 1, 'zorder': 2},
                'parking': {'fc': '#F2F4CB', 'ec': '#2F3737', 'lw': 1, 'zorder': 3},
                'streets': {'fc': '#2F3737', 'ec': '#475657', 'alpha': 1, 'lw': 0, 'zorder': 3},
                'building': {'palette': ['#FFC857', '#E9724C', '#C5283D'], 'ec': '#2F3737', 'lw': .5, 'zorder': 4},
            },
    
            osm_credit = {'color': '#2F3737'}
    )
    

    Generates a plot. Now I want to use backup01:

    plot(
        'Praça Ferreira do Amaral, Macau', radius = 1100,
        backup=backup01,
        ax = ax,
        layers = {
                'perimeter': {},
                'streets': {
                    'custom_filter': '["highway"~"motorway|trunk|primary|secondary|tertiary|residential|service|unclassified|pedestrian|footway"]',
                    'width': {
                        'motorway': 5,
                        'trunk': 5,
                        'primary': 4.5,
                        'secondary': 4,
                        'tertiary': 3.5,
                        'residential': 3,
                        'service': 2,
                        'unclassified': 2,
                        'pedestrian': 2,
                        'footway': 1,
                    }
                },
                'building': {'tags': {'building': True, 'landuse': 'construction'}, 'union': False},
                'water': {'tags': {'natural': ['water', 'bay']}},
                'green': {'tags': {'landuse': 'grass', 'natural': ['island', 'wood'], 'leisure': 'park'}},
                'forest': {'tags': {'landuse': 'forest'}},
                'parking': {'tags': {'amenity': 'parking', 'highway': 'pedestrian', 'man_made': 'pier'}}
            },
            drawing_kwargs = {
                'background': {'fc': '#F2F4CB', 'ec': '#dadbc1', 'hatch': 'ooo...', 'zorder': -1},
                'perimeter': {'fc': '#F2F4CB', 'ec': '#dadbc1', 'lw': 0, 'hatch': 'ooo...',  'zorder': 0},
                'green': {'fc': '#D0F1BF', 'ec': '#2F3737', 'lw': 1, 'zorder': 1},
                'forest': {'fc': '#64B96A', 'ec': '#2F3737', 'lw': 1, 'zorder': 1},
                'water': {'fc': '#a1e3ff', 'ec': '#2F3737', 'hatch': 'ooo...', 'hatch_c': '#85c9e6', 'lw': 1, 'zorder': 2},
                'parking': {'fc': '#F2F4CB', 'ec': '#2F3737', 'lw': 1, 'zorder': 3},
                'streets': {'fc': '#2F3737', 'ec': '#475657', 'alpha': 1, 'lw': 0, 'zorder': 3},
                'building': {'palette': ['#FFC857', '#E9724C', '#C5283D'], 'ec': '#2F3737', 'lw': .5, 'zorder': 4},
            },
    
            osm_credit = {'color': '#2F3737'}
    )
    

    Prints:

     'streets': <shapely.geometry.multipolygon.MultiPolygon at 0x180ea384d30>,
     'building': <shapely.geometry.multipolygon.MultiPolygon at 0x180ea384fa0>,
     'water': <shapely.geometry.multipolygon.MultiPolygon at 0x180ea3842b0>,
     'green': <shapely.geometry.multipolygon.MultiPolygon at 0x180ea384550>,
     'forest': <shapely.geometry.multipolygon.MultiPolygon at 0x180ea384ac0>,
     'parking': <shapely.geometry.multipolygon.MultiPolygon at 0x180ea3846d0>}
    

    How do I generate a plot from a saved dict?

    opened by AdrianKriger 0
  • How to get center point for geometries_from_point()

    How to get center point for geometries_from_point()

    I check the boundary example and want to try some other cities, but I can't find how to calculate or get it from OpenStreetMap. Maybe someone knows if there is a quick way to get the center point. Thanks in advance.

    opened by TakiGuan 1
  • Shapely depreciation warnings

    Shapely depreciation warnings

    When I run the demos, I get the following warnings:

    ShapelyDeprecationWarning: __len__ for multi-part geometries is deprecated and will be removed in Shapely 2.0. Check the length of the 'geoms' property instead to get the number of parts of a multi-part geometry. list(lines)

    ShapelyDeprecationWarning: Iteration over multi-part geometries is deprecated and will be removed in Shapely 2.0. Use the 'geoms' property to access the constituent parts of a multi-part geometry. list(lines)

    opened by MauritsDescamps 2
  • from prettymaps import * error

    from prettymaps import * error

    I tried to install prettymaps according to the notebook example. After the installation, when I try to run the notebook, I get the following error:

    `OSError Traceback (most recent call last) /tmp/ipykernel_15713/2931402318.py in 5 6 # Prettymaps ----> 7 from prettymaps import * 8 # Vsketch 9 import vsketch

    ~/anaconda3/envs/py39/lib/python3.9/site-packages/prettymaps/init.py in ----> 1 from .draw import plot

    ~/anaconda3/envs/py39/lib/python3.9/site-packages/prettymaps/draw.py in 20 from collections.abc import Iterable 21 ---> 22 import osmnx as ox 23 import pandas as pd 24 from geopandas import GeoDataFrame

    ~/anaconda3/envs/py39/lib/python3.9/site-packages/osmnx/init.py in 1 """OSMnx init.""" 2 ----> 3 from ._api import * 4 from ._version import version

    ~/anaconda3/envs/py39/lib/python3.9/site-packages/osmnx/_api.py in 1 """Expose most common parts of public API directly in osmnx. namespace.""" 2 ----> 3 from .bearing import add_edge_bearings 4 from .bearing import orientation_entropy 5 from .bearing import plot_orientation

    ~/anaconda3/envs/py39/lib/python3.9/site-packages/osmnx/bearing.py in 5 import numpy as np 6 ----> 7 from . import projection 8 9 # scipy is an optional dependency for entropy calculation

    ~/anaconda3/envs/py39/lib/python3.9/site-packages/osmnx/projection.py in 1 """Project spatial geometries and spatial networks.""" 2 ----> 3 import geopandas as gpd 4 import numpy as np 5 from pyproj import CRS

    ~/anaconda3/envs/py39/lib/python3.9/site-packages/geopandas/init.py in ----> 1 from geopandas._config import options # noqa 2 3 from geopandas.geoseries import GeoSeries # noqa 4 from geopandas.geodataframe import GeoDataFrame # noqa 5 from geopandas.array import points_from_xy # noqa

    ~/anaconda3/envs/py39/lib/python3.9/site-packages/geopandas/_config.py in 107 use_pygeos = Option( 108 key="use_pygeos", --> 109 default_value=_default_use_pygeos(), 110 doc=( 111 "Whether to use PyGEOS to speed up spatial operations. The default is True "

    ~/anaconda3/envs/py39/lib/python3.9/site-packages/geopandas/_config.py in _default_use_pygeos() 93 94 def _default_use_pygeos(): ---> 95 import geopandas._compat as compat 96 97 return compat.USE_PYGEOS

    ~/anaconda3/envs/py39/lib/python3.9/site-packages/geopandas/_compat.py in 9 import pyproj 10 import shapely ---> 11 import shapely.geos 12 13

    ~/anaconda3/envs/py39/lib/python3.9/site-packages/shapely/geos.py in 82 geos_whl_so = sorted(geos_whl_so) 83 CDLL(geos_whl_so[0]) ---> 84 _lgeos = CDLL(geos_whl_so[-1]) 85 LOG.debug("Found GEOS DLL: %r, using it.", _lgeos) 86

    ~/anaconda3/envs/py39/lib/python3.9/ctypes/init.py in init(self, name, mode, handle, use_errno, use_last_error, winmode) 380 381 if handle is None: --> 382 self._handle = _dlopen(self._name, mode) 383 else: 384 self._handle = handle

    OSError: libgeos-5781ad74.so.3.10.2: cannot open shared object file: No such file or directory`

    opened by nikogamulin 0
Releases(v0.1.3)
Owner
Marcelo de Oliveira Rosa Prates
PhD in Machine Learning from the Federal University of Rio Grande do Sul (UFRGS). Passionate about deep learning, education and generative art.
Marcelo de Oliveira Rosa Prates
Python Data. Leaflet.js Maps.

folium Python Data, Leaflet.js Maps folium builds on the data wrangling strengths of the Python ecosystem and the mapping strengths of the Leaflet.js

6k Jan 02, 2023
A python package that extends Google Earth Engine.

A python package that extends Google Earth Engine GitHub: https://github.com/davemlz/eemont Documentation: https://eemont.readthedocs.io/ PyPI: https:

David Montero Loaiza 307 Jan 01, 2023
A light-weight, versatile XYZ tile server, built with Flask and Rasterio :earth_africa:

Terracotta is a pure Python tile server that runs as a WSGI app on a dedicated webserver or as a serverless app on AWS Lambda. It is built on a modern

DHI GRAS 531 Dec 28, 2022
Open Data Cube analyses continental scale Earth Observation data through time

Open Data Cube Core Overview The Open Data Cube Core provides an integrated gridded data analysis environment for decades of analysis ready earth obse

Open Data Cube 410 Dec 13, 2022
Python bindings and utilities for GeoJSON

geojson This Python library contains: Functions for encoding and decoding GeoJSON formatted data Classes for all GeoJSON Objects An implementation of

Jazzband 765 Jan 06, 2023
ESMAC diags - Earth System Model Aerosol-Cloud Diagnostics Package

Earth System Model Aerosol-Cloud Diagnostics Package This Earth System Model (ES

Pacific Northwest National Laboratory 1 Jan 04, 2022
Constraint-based geometry sketcher for blender

Geometry Sketcher Constraint-based sketcher addon for Blender that allows to create precise 2d shapes by defining a set of geometric constraints like

1.7k Jan 02, 2023
h3-js provides a JavaScript version of H3, a hexagon-based geospatial indexing system.

h3-js The h3-js library provides a pure-JavaScript version of the H3 Core Library, a hexagon-based geographic grid system. It can be used either in No

Uber Open Source 648 Jan 07, 2023
A Python tool to display geolocation information in the traceroute.

IP2Trace Python IP2Trace Python is a Python tool allowing user to get IP address information such as country, region, city, latitude, longitude, zip c

IP2Location 22 Jan 08, 2023
Client library for interfacing with USGS datasets

USGS API USGS is a python module for interfacing with the US Geological Survey's API. It provides submodules to interact with various endpoints, and c

Amit Kapadia 104 Dec 30, 2022
Histogram matching plugin for rasterio

rio-hist Histogram matching plugin for rasterio. Provides a CLI and python module for adjusting colors based on histogram matching in a variety of col

Mapbox 75 Sep 23, 2022
Python script to locate mobile number

Python script to locate mobile number How to use this script run the command to install the required libraries pip install -r requirements.txt run the

Shekhar Gupta 8 Oct 10, 2022
A part of HyRiver software stack for handling geospatial data manipulations

Package Description Status PyNHD Navigate and subset NHDPlus (MR and HR) using web services Py3DEP Access topographic data through National Map's 3DEP

Taher Chegini 5 Dec 14, 2022
Documentation and samples for ArcGIS API for Python

ArcGIS API for Python ArcGIS API for Python is a Python library for working with maps and geospatial data, powered by web GIS. It provides simple and

Esri 1.4k Dec 30, 2022
Create Siege configuration files from Cloud Optimized GeoTIFF.

cogeo-siege Documentation: Source Code: https://github.com/developmentseed/cogeo-siege Description Create siege configuration files from Cloud Optimiz

Development Seed 3 Dec 01, 2022
ArcGIS Python Toolbox for WhiteboxTools

WhiteboxTools-ArcGIS ArcGIS Python Toolbox for WhiteboxTools. This repository is related to the ArcGIS Python Toolbox for WhiteboxTools, which is an A

Qiusheng Wu 190 Dec 30, 2022
A Python package for delineating nested surface depressions from digital elevation data.

Welcome to the lidar package lidar is Python package for delineating the nested hierarchy of surface depressions in digital elevation models (DEMs). I

Qiusheng Wu 166 Jan 03, 2023
Wraps GEOS geometry functions in numpy ufuncs.

PyGEOS PyGEOS is a C/Python library with vectorized geometry functions. The geometry operations are done in the open-source geometry library GEOS. PyG

362 Dec 23, 2022
Python 台灣行政區地圖 (2021)

Python 台灣行政區地圖 (2021) 以 python 讀取政府開放平台的 ShapeFile 地圖資訊。歡迎引用或是協作 另有縣市資訊、村里資訊與各種行政地圖資訊 例如: 直轄市、縣市界線(TWD97經緯度) 鄉鎮市區界線(TWD97經緯度) | 政府資料開放平臺: https://data

WeselyOng 12 Sep 27, 2022
Python bindings and utilities for GeoJSON

geojson This Python library contains: Functions for encoding and decoding GeoJSON formatted data Classes for all GeoJSON Objects An implementation of

Jazzband 763 Dec 26, 2022