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
Deal with Bing Maps Tiles and Pixels / WGS 84 coordinates conversions, and generate grid Shapefiles

PyBingTiles This is a small toolkit in order to deal with Bing Tiles, used i.e. by Facebook for their Data for Good datasets. Install Clone this repos

Shoichi 1 Dec 08, 2021
Mmdb-server - An open source fast API server to lookup IP addresses for their geographic location

mmdb-server mmdb-server is an open source fast API server to lookup IP addresses

Alexandre Dulaunoy 67 Nov 25, 2022
Asynchronous Client for the worlds fastest in-memory geo-database Tile38

This is an asynchonous Python client for Tile38 that allows for fast and easy interaction with the worlds fastest in-memory geodatabase Tile38.

Ben 53 Dec 29, 2022
This GUI app was created to show the detailed information about the weather in any city selected by user

WeatherApp Content Brief description Tools Features Hotkeys How it works Screenshots Ways to improve the project Installation Brief description This G

TheBugYouCantFix 5 Dec 30, 2022
A Jupyter - Leaflet.js bridge

ipyleaflet A Jupyter / Leaflet bridge enabling interactive maps in the Jupyter notebook. Usage Selecting a basemap for a leaflet map: Loading a geojso

Jupyter Widgets 1.3k Dec 27, 2022
Geospatial Image Processing for Python

GIPPY Gippy is a Python library for image processing of geospatial raster data. The core of the library is implemented as a C++ library, libgip, with

GIPIT 83 Aug 19, 2022
Use Mapbox GL JS to visualize data in a Python Jupyter notebook

Location Data Visualization library for Jupyter Notebooks Library documentation at https://mapbox-mapboxgl-jupyter.readthedocs-hosted.com/en/latest/.

Mapbox 620 Dec 15, 2022
Imperial Valley Geomorphology Map

Roughly maps the extent of basins, basin edges, and mountains in the Imperial Valley by grouping terrain classes from the Iwahashi et al. 2021 California terrian classification model.

0 Dec 13, 2022
Spatial Interpolation Toolbox is a Python-based GUI that is able to interpolate spatial data in vector format.

Spatial Interpolation Toolbox This is the home to Spatial Interpolation Toolbox, a graphical user interface (GUI) for interpolating geographic vector

Michael Ward 2 Nov 01, 2021
This is a simple python code to get IP address and its location using python

IP address & Location finder @DEV/ED : Pavan Ananth Sharma Dependencies: ip2geotools Note: use pip install ip2geotools to install this in your termin

Pavan Ananth Sharma 2 Jul 05, 2022
scalable analysis of images and time series

thunder scalable analysis of image and time series analysis in python Thunder is an ecosystem of tools for the analysis of image and time series data

thunder-project 813 Dec 29, 2022
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
Bacon - Band-limited Coordinate Networks for Multiscale Scene Representation

BACON: Band-limited Coordinate Networks for Multiscale Scene Representation Project Page | Video | Paper Official PyTorch implementation of BACON. BAC

Stanford Computational Imaging Lab 144 Dec 29, 2022
A Python framework for building geospatial web-applications

Hey there, this is Greppo... A Python framework for building geospatial web-applications. Greppo is an open-source Python framework that makes it easy

Greppo 304 Dec 27, 2022
peartree: A library for converting transit data into a directed graph for sketch network analysis.

peartree 🍐 🌳 peartree is a library for converting GTFS feed schedules into a representative directed network graph. The tool uses Partridge to conve

Kuan Butts 183 Dec 29, 2022
A modern, geometric typeface by @chrismsimpson (last commit @ 85fa625 Jun 9, 2020 before deletion)

Metropolis A modern, geometric typeface. Influenced by other popular geometric, minimalist sans-serif typefaces of the new millenium. Designed for opt

Darius 183 Dec 25, 2022
Spectral decomposition for characterizing long-range interaction profiles in Hi-C maps

Inspectral Spectral decomposition for characterizing long-range interaction prof

Nezar Abdennur 6 Dec 13, 2022
The geospatial toolkit for redistricting data.

maup maup is the geospatial toolkit for redistricting data. The package streamlines the basic workflows that arise when working with blocks, precincts

Metric Geometry and Gerrymandering Group 60 Dec 05, 2022
pure-Python (Numpy optional) 3D coordinate conversions for geospace ecef enu eci

Python 3-D coordinate conversions Pure Python (no prerequistes beyond Python itself) 3-D geographic coordinate conversions and geodesy. API similar to

Geospace code 292 Dec 29, 2022