From 0b1e2a1423fd37c96d2049546529e2a081049a7e Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Wed, 24 Jun 2020 14:20:50 +0200 Subject: [PATCH 001/316] DOC/RLS: start changelog for 0.8.0 release (#1468) Co-authored-by: Martin Fleischmann --- CHANGELOG.md | 93 ++++++++++++++++++++++++++++++++++++++++++ doc/source/install.rst | 3 +- 2 files changed, 95 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index eabe5d5..64e0a1c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,99 @@ Changelog ========= +Version 0.8.0 (June 24, 2020) +----------------------------- + +**Experimental**: optional use of PyGEOS to speed up spatial operations (#1155). +PyGEOS is a faster alternative for Shapely (being contributed back to a future +version of Shapely), and is used in element-wise spatial operations and for +spatial index in e.g. `sjoin` (#1343, #1401, #1421, #1427, #1428). See the +[installation docs](https://geopandas.readthedocs.io/en/latest/install.html#using-the-optional-pygeos-dependency) +for more info and how to enable it. + +New features and improvements: + +- IO enhancements: + - New `GeoDataFrame.to_postgis()` method to write to PostGIS database (#1248). + - New Apache Parquet and Feather file format support (#1180, #1435) + - Allow appending to files with `GeoDataFrame.to_file` (#1229). + - Add support for the `ignore_geometry` keyword in `read_file` to only read + the attribute data. If set to True, a pandas DataFrame without geometry is + returned (#1383). + - `geopandas.read_file` now supports reading from file-like objects (#1329). + - `GeoDataFrame.to_file` now supports specifying the CRS to write to the file + (#802). By default it still uses the CRS of the GeoDataFrame. + - New `chunksize` keyword in `geopandas.read_postgis` to read a query in + chunks (#1123). +- Improvements related to geometry columns and CRS: + - Any column of the GeoDataFrame that has a "geometry" dtype is now returned + as a GeoSeries. This means that when having multiple geometry columns, not + only the "active" geometry column is returned as a GeoSeries, but also + accessing another geometry column (`gdf["other_geom_column"]`) gives a + GeoSeries (#1336). + - Multiple geometry columns in a GeoDataFrame can now each have a different + CRS. The global `gdf.crs` attribute continues to returns the CRS of the + "active" geometry column. The CRS of other geometry columns can be accessed + from the column itself (eg `gdf["other_geom_column"].crs`) (#1339). + - New `set_crs()` method on GeoDataFrame/GeoSeries to set the CRS of naive + geometries (#747). +- Improvements related to plotting: + - The y-axis is now scaled depending on the center of the plot when using a + geographic CRS, instead of using an equal aspect ratio (#1290). + - When passing a column of categorical dtype to the `column=` keyword of the + GeoDataFrame `plot()`, we now honor all categories and its order (#1483). + In addition, a new `categories` keyword allows to specify all categories + and their order otherwise (#1173). + - For choropleths using a classification scheme (using `scheme=`), the + `legend_kwds` accept two new keywords to control the formatting of the + legend: `fmt` with a format string for the bin edges (#1253), and `labels` + to pass fully custom class labels (#1302). +- New `covers()` and `covered_by()` methods on GeoSeries/GeoDataframe for the + equivalent spatial predicates (#1460, #1462). +- GeoPandas now warns when using distance-based methods with data in a + geographic projection (#1378). + +Deprecations: + +- When constructing a GeoSeries or GeoDataFrame from data that already has a + CRS, a deprecation warning is raised when both CRS don't match, and in the + future an error will be raised in such a case. You can use the new `set_crs` + method to override an existing CRS. See + [the docs](https://geopandas.readthedocs.io/en/latest/projections.html#projection-for-multiple-geometry-columns). +- The helper functions in the `geopandas.plotting` module are deprecated for + public usage (#656). +- The `geopandas.io` functions are deprecated, use the top-level `read_file` and + `to_file` instead (#1407). +- The set operators (`&`, `|`, `^`, `-`) are deprecated, use the + `intersection()`, `union()`, `symmetric_difference()`, `difference()` methods + instead (#1255). +- The `sindex` for empty dataframe will in the future return an empty spatial + index instead of `None` (#1438). +- The `objects` keyword in the `intersection` method of the spatial index + returned by the `sindex` attribute is deprecated and will be removed in the + future (#1440). + +Bug fixes: + +- Fix the `total_bounds()` method to ignore missing and empty geometries (#1312). +- Fix `geopandas.clip` when masking with non-overlapping area resulting in an + empty GeoDataFrame (#1309, #1365). +- Fix error in `geopandas.sjoin` when joining on an empty geometry column (#1318). +- CRS related fixes: `pandas.concat` preserves CRS when concatenating GeoSeries + objects (#1340), preserve the CRS in `geopandas.clip` (#1362) and in + `GeoDataFrame.astype` (#1366). +- Fix bug in `GeoDataFrame.explode()` when 'level_1' is one of the column names + (#1445). +- Better error message when rtree is not installed (#1425). +- Fix bug in `GeoSeries.equals()` (#1451). +- Fix plotting of multi-part geometries with additional style keywords (#1385). + +And we now have a [Code of Conduct](https://github.com/geopandas/geopandas/blob/master/CODE_OF_CONDUCT.md)! + +GeoPandas 0.8.0 is the last release to support Python 3.5. The next release +will require Python 3.6, pandas 0.24, numpy 1.15 and shapely 1.6 or higher. + + Version 0.7.0 (February 16, 2020) --------------------------------- diff --git a/doc/source/install.rst b/doc/source/install.rst index 33f9df4..d02463a 100644 --- a/doc/source/install.rst +++ b/doc/source/install.rst @@ -194,7 +194,8 @@ More specifically, whether the speedups are used or not is determined by: The use of PyGEOS is experimental! Although it is passing all tests, there might still be issues and not all functions of GeoPandas will - already benefit from speedups. But trying this out is very welcome! + already benefit from speedups (one known issue: the `to_crs` coordinate + transformations lose the z coordinate). But trying this out is very welcome! Any issues you encounter (but also reports of successful usage are interesting!) can be reported at https://gitter.im/geopandas/geopandas or https://github.com/geopandas/geopandas/issues From 0d2c621516d8fc0f6eddac7aeb6bf6d9fea78bb9 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Wed, 24 Jun 2020 15:26:54 +0200 Subject: [PATCH 002/316] RLS: v0.8.0 From 5eb66a2d9f03536c964b305d09b95d3284e59f5e Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Wed, 24 Jun 2020 17:19:39 +0200 Subject: [PATCH 003/316] DOC: add sections for PostGIS and Parquet/Feather to io.rst docs (#1485) --- doc/source/io.rst | 73 ++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 59 insertions(+), 14 deletions(-) diff --git a/doc/source/io.rst b/doc/source/io.rst index 1316d6d..b22b0dd 100644 --- a/doc/source/io.rst +++ b/doc/source/io.rst @@ -1,24 +1,32 @@ .. _io: Reading and Writing Files -========================================= - - +========================= Reading Spatial Data --------------------- -*geopandas* can read almost any vector-based spatial data format including ESRI shapefile, GeoJSON files and more using the command:: +*geopandas* can read almost any vector-based spatial data format including ESRI +shapefile, GeoJSON files and more using the command:: geopandas.read_file() -which returns a GeoDataFrame object. (This is possible because *geopandas* makes use of the great `fiona `_ library, which in turn makes use of a massive open-source program called `GDAL/OGR `_ designed to facilitate spatial data transformations). +which returns a GeoDataFrame object. This is possible because *geopandas* makes +use of the great `fiona `_ +library, which in turn makes use of a massive open-source program called +`GDAL/OGR `_ designed to facilitate spatial data +transformations. -Any arguments passed to :func:`geopandas.read_file` after the file name will be passed directly to ``fiona.open``, which does the actual data importation. In general, :func:`geopandas.read_file` is pretty smart and should do what you want without extra arguments, but for more help, type:: +Any arguments passed to :func:`geopandas.read_file` after the file name will be +passed directly to ``fiona.open``, which does the actual data importation. In +general, :func:`geopandas.read_file` is pretty smart and should do what you want +without extra arguments, but for more help, type:: import fiona; help(fiona.open) -Among other things, one can explicitly set the driver (shapefile, GeoJSON) with the ``driver`` keyword, or pick a single layer from a multi-layered file with the ``layer`` keyword:: +Among other things, one can explicitly set the driver (shapefile, GeoJSON) with +the ``driver`` keyword, or pick a single layer from a multi-layered file with +the ``layer`` keyword:: countries_gdf = geopandas.read_file("package.gpkg", layer='countries') @@ -37,11 +45,13 @@ If the dataset is in a folder in the ZIP file, you have to append its name:: zipfile = "zip:///Users/name/Downloads/gadm36_AFG_shp.zip!data" -If there are multiple datasets in a folder in the ZIP file, you also have to specify the filename:: +If there are multiple datasets in a folder in the ZIP file, you also have to +specify the filename:: zipfile = "zip:///Users/name/Downloads/gadm36_AFG_shp.zip!data/gadm36_AFG_1.shp" -It is also possible to read any file-like objects with a ``read()`` method, such as a file handler (e.g. via built-in ``open`` function) or ``StringIO``:: +It is also possible to read any file-like objects with a ``read()`` method, such +as a file handler (e.g. via built-in ``open`` function) or ``StringIO``:: filename = "test.geojson" file = open(filename) @@ -53,9 +63,6 @@ You can also read path objects:: path_object = pathlib.path(filename) df = geopandas.read_file(path_object) -*geopandas* can also get data from a PostGIS database using the :func:`geopandas.read_postgis` command. - - Reading subsets of the data ~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -172,9 +179,47 @@ by using the :meth:`geopandas.GeoDataFrame.to_postgis` method. countries_gdf.to_file("package.gpkg", layer='countries', driver="GPKG") cities_gdf.to_file("package.gpkg", layer='cities', driver="GPKG") -**Writing to PostGIS**:: + +Spatial databases +----------------- + +*geopandas* can also get data from a PostGIS database using the +:func:`geopandas.read_postgis` command. + +Writing to PostGIS:: from sqlalchemy import create_engine db_connection_url = "postgres://myusername:mypassword@myhost:5432/mydatabase"; engine = create_engine(db_connection_url) - countries_gdf.to_postgis(name="countries_table", con=engine) + countries_gdf.to_postgis("countries_table", con=engine) + + +Apache Parquet and Feather file formats +--------------------------------------- + +.. versionadded:: 0.8.0 + +GeoPandas supports writing and reading the Apache Parquet and Feather file +formats. + +`Apache Parquet `__ is an efficient, columnar +storage format (originating from the Hadoop ecosystem). It is a widely used +binary file format for tabular data. The Feather file format is the on-disk +representation of the `Apache Arrow `__ memory +format, an open standard for in-memory columnar data. + +The :func:`geopandas.read_parquet`, :func:`geopandas.read_feather`, +:meth:`GeoDataFrame.to_parquet` and :meth:`GeoDataFrame.to_feather` methods +enable fast roundtrip from GeoPandas to those binary file formats, preserving +the spatial information. + +.. warning:: + + This is an initial implementation of Parquet file support and + associated metadata. This is tracking version 0.1.0 of the metadata + specification at: + https://github.com/geopandas/geo-arrow-spec + + This metadata specification does not yet make stability promises. As such, + we do not yet recommend using this in a production setting unless you are + able to rewrite your Parquet or Feather files. From eaae17f7177620fea9cdc3467826ee30c3aa2f65 Mon Sep 17 00:00:00 2001 From: Charlie Date: Wed, 24 Jun 2020 12:17:12 -0400 Subject: [PATCH 004/316] ENH: Adds warning for .shp column length limit (#1475) * Adds warning for .shp column length limit Warns user that a geodataframe column exceeds 10 characters and will be truncated when saving to shapefile. * Adds warning for .shp column length limit Warns user that a geodataframe column exceeds 10 characters and will be truncated when saving to shapefile. * Fixes style issues that caused CI failure * Update geopandas/io/tests/test_file.py Co-authored-by: Brendan Ward * Adds warning for .shp column length limit Warns user that a geodataframe column exceeds 10 characters and will be truncated when saving to shapefile. * Fixes style issues that caused CI failure * Adds stack level and ESRI Shapefile to to_file warning * Typo fix * black * flake8 Co-authored-by: Brendan Ward Co-authored-by: Martin Fleischmann --- geopandas/io/file.py | 9 +++++++++ geopandas/io/tests/test_file.py | 16 ++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/geopandas/io/file.py b/geopandas/io/file.py index 04a1b68..47e938b 100644 --- a/geopandas/io/file.py +++ b/geopandas/io/file.py @@ -1,6 +1,7 @@ from distutils.version import LooseVersion import io +import warnings import numpy as np import pandas as pd @@ -241,6 +242,14 @@ def _to_file( crs = pyproj.CRS.from_user_input(crs) else: crs = df.crs + + if driver == "ESRI Shapefile" and any([len(c) > 10 for c in df.columns.tolist()]): + warnings.warn( + "Column names longer than 10 characters will be truncated when saved to " + "ESRI Shapefile.", + stacklevel=3, + ) + with fiona_env(): crs_wkt = None try: diff --git a/geopandas/io/tests/test_file.py b/geopandas/io/tests/test_file.py index 8207d32..d7b1b5e 100644 --- a/geopandas/io/tests/test_file.py +++ b/geopandas/io/tests/test_file.py @@ -243,6 +243,22 @@ def test_to_file_schema(tmpdir, df_nybb): assert result_schema == schema +def test_to_file_column_len(tmpdir, df_points): + """ + Ensure that a warning about truncation is given when a geodataframe with + column names longer than 10 characters is saved to shapefile + """ + tempfilename = os.path.join(str(tmpdir), "test.shp") + + df = df_points.iloc[:1].copy() + df["0123456789A"] = ["the column name is 11 characters"] + + with pytest.warns( + UserWarning, match="Column names longer than 10 characters will be truncated" + ): + df.to_file(tempfilename, driver="ESRI Shapefile") + + @pytest.mark.parametrize("driver,ext", driver_ext_pairs) def test_append_file(tmpdir, df_nybb, df_null, driver, ext): """ Test to_file with append mode and from_file """ From b5ed1a41782220c9c8704e1cbae6636871027b4e Mon Sep 17 00:00:00 2001 From: abonte <6319051+abonte@users.noreply.github.com> Date: Sat, 27 Jun 2020 14:04:21 +0200 Subject: [PATCH 005/316] DOC: docstring examples geom_type, bounds, total_bounds (#1482) * add docstring example for is_empty * add docstring examples * fix docstrings --- geopandas/base.py | 43 +++++++++++++++++++++++++++++++++++---- geopandas/geodataframe.py | 4 ++-- 2 files changed, 41 insertions(+), 6 deletions(-) diff --git a/geopandas/base.py b/geopandas/base.py index 7bb014f..da87a89 100644 --- a/geopandas/base.py +++ b/geopandas/base.py @@ -149,8 +149,22 @@ class GeoPandasBase(object): @property def geom_type(self): - """Returns a ``Series`` of strings specifying the `Geometry Type` of each - object.""" + """ + Returns a ``Series`` of strings specifying the `Geometry Type` of each + object. + + Examples + -------- + >>> from shapely.geometry import Point, Polygon, LineString + >>> d = {'geometry': [Point(2, 1), Polygon([(0, 0), (1, 1), (1, 0)]), + ... LineString([(0, 0), (1, 1)])]} + >>> gdf = geopandas.GeoDataFrame(d, crs="EPSG:4326") + >>> gdf.geom_type + 0 Point + 1 Polygon + 2 LineString + dtype: object + """ return _delegate_property("geom_type", self) @property @@ -181,8 +195,8 @@ class GeoPandasBase(object): value: >>> from shapely.geometry import Point - >>> d = {'geometry': [Point(), Point(2,1), None]} - >>> gdf = gpd.GeoDataFrame(d, crs="EPSG:4326") + >>> d = {'geometry': [Point(), Point(2, 1), None]} + >>> gdf = geopandas.GeoDataFrame(d, crs="EPSG:4326") >>> gdf geometry 0 GEOMETRYCOLLECTION EMPTY @@ -571,6 +585,18 @@ class GeoPandasBase(object): ``maxy`` values containing the bounds for each geometry. See ``GeoSeries.total_bounds`` for the limits of the entire series. + + Examples + -------- + >>> from shapely.geometry import Point, Polygon, LineString + >>> d = {'geometry': [Point(2, 1), Polygon([(0, 0), (1, 1), (1, 0)]), + ... LineString([(0, 1), (1, 2)])]} + >>> gdf = geopandas.GeoDataFrame(d, crs="EPSG:4326") + >>> gdf.bounds + minx miny maxx maxy + 0 2.0 1.0 2.0 1.0 + 1 0.0 0.0 1.0 1.0 + 2 0.0 1.0 1.0 2.0 """ bounds = GeometryArray(self.geometry.values).bounds return DataFrame( @@ -584,6 +610,15 @@ class GeoPandasBase(object): See ``GeoSeries.bounds`` for the bounds of the geometries contained in the series. + + Examples + -------- + >>> from shapely.geometry import Point, Polygon, LineString + >>> d = {'geometry': [Point(3, -1), Polygon([(0, 0), (1, 1), (1, 0)]), +. ... LineString([(0, 1), (1, 2)])]} + >>> gdf = geopandas.GeoDataFrame(d, crs="EPSG:4326") + >>> gdf.total_bounds + array([ 0., -1., 3., 2.]) """ return GeometryArray(self.geometry.values).total_bounds diff --git a/geopandas/geodataframe.py b/geopandas/geodataframe.py index ea08567..cbeb610 100644 --- a/geopandas/geodataframe.py +++ b/geopandas/geodataframe.py @@ -64,8 +64,8 @@ class GeoDataFrame(GeoPandasBase, DataFrame): Constructing GeoDataFrame from a dictionary. >>> from shapely.geometry import Point - >>> d = {'col1': ['name1', 'name2'], 'geometry': [Point(1,2), Point(2,1)]} - >>> gdf = gpd.GeoDataFrame(d, crs="EPSG:4326") + >>> d = {'col1': ['name1', 'name2'], 'geometry': [Point(1, 2), Point(2, 1)]} + >>> gdf = geopandas.GeoDataFrame(d, crs="EPSG:4326") >>> gdf col1 geometry 0 name1 POINT (1.00000 2.00000) From b0381e1f4a6b7c75d6a20403b448d53e2d6ca9c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B6nke=20Schmachtel?= <60307383+srenoes@users.noreply.github.com> Date: Tue, 30 Jun 2020 12:34:21 +0300 Subject: [PATCH 006/316] DOC: Travis doc link fix (#1499) * Update CONTRIBUTING.md changed getting started url * Update contributing.rst changed getting started with travis link --- CONTRIBUTING.md | 2 +- doc/source/contributing.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 383103a..9507a77 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -26,7 +26,7 @@ In particular, when submitting a pull request: Travis will be visible on a pull request. If you want to enable Travis CI on your own fork, please read the pandas guidelines link above or the - [getting started docs](http://about.travis-ci.org/docs/user/getting-started/). + [getting started docs](https://docs.travis-ci.com/user/tutorial/). - New functionality should include tests. Please write reasonable tests for your code and make sure that they pass on your pull request. diff --git a/doc/source/contributing.rst b/doc/source/contributing.rst index 99db144..8f74ee0 100644 --- a/doc/source/contributing.rst +++ b/doc/source/contributing.rst @@ -25,7 +25,7 @@ In particular, when submitting a pull request: Travis will be visible on a pull request. If you want to enable Travis CI on your own fork, please read the pandas guidelines link above or the - `getting started docs `_. + `getting started docs `_. - New functionality should include tests. Please write reasonable tests for your code and make sure that they pass on your pull request. From 89908f8439c6531757860848ebbd4df8622f70ce Mon Sep 17 00:00:00 2001 From: Adrian Garcia Badaracco <1755071+adriangb@users.noreply.github.com> Date: Fri, 3 Jul 2020 12:34:00 -0500 Subject: [PATCH 007/316] REF: refactor sjoin as per #1463 (#1470) * REF: refactor sjoin as per #1463 * PR comments + variablize OPs * rename var * PR feedback * Note new op values in docs * doc fixes * finish line --- doc/source/mergingdata.rst | 15 +++-- geopandas/tools/sjoin.py | 117 +++++++++++++++++++++++++++++-------- 2 files changed, 103 insertions(+), 29 deletions(-) diff --git a/doc/source/mergingdata.rst b/doc/source/mergingdata.rst index 82cdcb2..6726e0f 100644 --- a/doc/source/mergingdata.rst +++ b/doc/source/mergingdata.rst @@ -95,11 +95,18 @@ Sjoin Arguments **op** -The ``op`` argument specifies how ``geopandas`` decides whether or not to join the attributes of one object to another. There are three different join options as follows: +The ``op`` argument specifies how ``geopandas`` decides whether or not to join the attributes of one object to another, based on their geometric relationship. -* `intersects`: The attributes will be joined if the boundary and interior of the object intersect in any way with the boundary and/or interior of the other object. -* `within`: The attributes will be joined if the object’s boundary and interior intersect *only* with the interior of the other object (not its boundary or exterior). -* `contains`: The attributes will be joined if the object’s interior contains the boundary and interior of the other object and their boundaries do not touch at all. +The values for ``op`` correspond to the names of geometric binary predicates and depend on the spatial index implementation. + +The default spatial index in GeoPandas currently supports the following values for ``op``: + +* `intersects` +* `contains` +* `within` +* `touches` +* `crosses` +* `overlaps` You can read more about each join type in the `Shapely documentation `__. diff --git a/geopandas/tools/sjoin.py b/geopandas/tools/sjoin.py index 8e01410..067fc79 100644 --- a/geopandas/tools/sjoin.py +++ b/geopandas/tools/sjoin.py @@ -22,13 +22,41 @@ def sjoin( * 'inner': use intersection of keys from both dfs; retain only left_df geometry column op : string, default 'intersects' - Binary predicate, one of {'intersects', 'contains', 'within'}. - See http://shapely.readthedocs.io/en/latest/manual.html#binary-predicates. + Binary predicate. Valid values are determined by the spatial index used. + You can check the valid values in `left_df` or `right_df` as + `left_df.sindex.valid_query_predicates` or + `right_df.sindex.valid_query_predicates` lsuffix : string, default 'left' Suffix to apply to overlapping column names (left GeoDataFrame). rsuffix : string, default 'right' Suffix to apply to overlapping column names (right GeoDataFrame). + """ + _basic_checks(left_df, right_df, how, lsuffix, rsuffix) + indices = _geom_predicate_query(left_df, right_df, op) + + joined = _frame_join(indices, left_df, right_df, how, lsuffix, rsuffix) + + return joined + + +def _basic_checks(left_df, right_df, how, lsuffix, rsuffix): + """Checks the validity of join input parameters. + + `how` must be one of the valid options. + `'index_'` concatenated with `lsuffix` or `rsuffix` must not already + exist as columns in the left or right data frames. + + Parameters + ------------ + left_df : GeoDataFrame + right_df : GeoData Frame + how : str, one of 'left', 'right', 'inner' + join type + lsuffix : str + left index suffix + rsuffix : str + right index suffix """ if not isinstance(left_df, GeoDataFrame): raise ValueError( @@ -43,20 +71,14 @@ def sjoin( allowed_hows = ["left", "right", "inner"] if how not in allowed_hows: raise ValueError( - '`how` was "%s" but is expected to be in %s' % (how, allowed_hows) - ) - - allowed_ops = ["contains", "within", "intersects"] - if op not in allowed_ops: - raise ValueError( - '`op` was "%s" but is expected to be in %s' % (op, allowed_ops) + '`how` was "{}" but is expected to be in {}'.format(how, allowed_hows) ) if not _check_crs(left_df, right_df): - _crs_mismatch_warn(left_df, right_df, stacklevel=3) + _crs_mismatch_warn(left_df, right_df, stacklevel=4) - index_left = "index_%s" % lsuffix - index_right = "index_%s" % rsuffix + index_left = "index_{}".format(lsuffix) + index_right = "index_{}".format(rsuffix) # due to GH 352 if any(left_df.columns.isin([index_left, index_right])) or any( @@ -67,7 +89,23 @@ def sjoin( " joined".format(index_left, index_right) ) - # query index + +def _geom_predicate_query(left_df, right_df, op): + """Compute geometric comparisons and get matching indices. + + Parameters + ---------- + left_df : GeoDataFrame + right_df : GeoDataFrame + op : string + Binary predicate to query. + + Returns + ------- + DataFrame + DataFrame with matching indices in + columns named `_key_left` and `_key_right`. + """ with warnings.catch_warnings(): # We don't need to show our own warning here # TODO remove this once the deprecation has been enforced @@ -90,41 +128,70 @@ def sjoin( if sindex: l_idx, r_idx = sindex.query_bulk(input_geoms, predicate=predicate, sort=False) - result = pd.DataFrame({"_key_left": l_idx, "_key_right": r_idx}) + indices = pd.DataFrame({"_key_left": l_idx, "_key_right": r_idx}) else: # when sindex is empty / has no valid geometries - result = pd.DataFrame(columns=["_key_left", "_key_right"], dtype=float) + indices = pd.DataFrame(columns=["_key_left", "_key_right"], dtype=float) if op == "within": # within is implemented as the inverse of contains # flip back the results - result = result.rename( + indices = indices.rename( columns={"_key_left": "_key_right", "_key_right": "_key_left"} ) + return indices + + +def _frame_join(indices, left_df, right_df, how, lsuffix, rsuffix): + """Join the GeoDataFrames at the DataFrame level. + + Parameters + ---------- + indices : DataFrame + Indexes returned by the geometric join. + Must have columns `_key_left` and `_key_right` + with integer indices representing the matches + from `left_df` and `right_df` respectively. + left_df : GeoDataFrame + right_df : GeoDataFrame + lsuffix : string + Suffix to apply to overlapping column names (left GeoDataFrame). + rsuffix : string + Suffix to apply to overlapping column names (right GeoDataFrame). + how : string + The type of join to use on the DataFrame level. + + Returns + ------- + GeoDataFrame + Joined GeoDataFrame. + """ # the spatial index only allows limited (numeric) index types, but an # index in geopandas may be any arbitrary dtype. so reset both indices now # and store references to the original indices, to be reaffixed later. # GH 352 + index_left = "index_{}".format(lsuffix) left_df = left_df.copy(deep=True) try: left_index_name = left_df.index.name left_df.index = left_df.index.rename(index_left) except TypeError: index_left = [ - "index_%s" % lsuffix + str(pos) + "index_{}".format(lsuffix + str(pos)) for pos, ix in enumerate(left_df.index.names) ] left_index_name = left_df.index.names left_df.index = left_df.index.rename(index_left) left_df = left_df.reset_index() + index_right = "index_{}".format(rsuffix) right_df = right_df.copy(deep=True) try: right_index_name = right_df.index.name right_df.index = right_df.index.rename(index_right) except TypeError: index_right = [ - "index_%s" % rsuffix + str(pos) + "index_{}".format(rsuffix + str(pos)) for pos, ix in enumerate(right_df.index.names) ] right_index_name = right_df.index.names @@ -133,14 +200,14 @@ def sjoin( # perform join on the dataframes if how == "inner": - result = result.set_index("_key_left") + indices = indices.set_index("_key_left") joined = ( - left_df.merge(result, left_index=True, right_index=True) + left_df.merge(indices, left_index=True, right_index=True) .merge( right_df.drop(right_df.geometry.name, axis=1), left_on="_key_right", right_index=True, - suffixes=("_%s" % lsuffix, "_%s" % rsuffix), + suffixes=("_{}".format(lsuffix), "_{}".format(rsuffix)), ) .set_index(index_left) .drop(["_key_right"], axis=1) @@ -151,15 +218,15 @@ def sjoin( joined.index.name = left_index_name elif how == "left": - result = result.set_index("_key_left") + indices = indices.set_index("_key_left") joined = ( - left_df.merge(result, left_index=True, right_index=True, how="left") + left_df.merge(indices, left_index=True, right_index=True, how="left") .merge( right_df.drop(right_df.geometry.name, axis=1), how="left", left_on="_key_right", right_index=True, - suffixes=("_%s" % lsuffix, "_%s" % rsuffix), + suffixes=("_{}".format(lsuffix), "_{}".format(rsuffix)), ) .set_index(index_left) .drop(["_key_right"], axis=1) @@ -173,7 +240,7 @@ def sjoin( joined = ( left_df.drop(left_df.geometry.name, axis=1) .merge( - result.merge( + indices.merge( right_df, left_on="_key_right", right_index=True, how="right" ), left_index=True, From 83fe10e762a98220aca8d52ee9839119d06240a0 Mon Sep 17 00:00:00 2001 From: Ian Rose Date: Thu, 9 Jul 2020 12:03:47 -0700 Subject: [PATCH 008/316] Ensure no warning about geometry column not holding geometries when writing to postgis (#1498) --- geopandas/io/sql.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/geopandas/io/sql.py b/geopandas/io/sql.py index 16996c7..8aa7969 100644 --- a/geopandas/io/sql.py +++ b/geopandas/io/sql.py @@ -248,8 +248,12 @@ def _convert_to_ewkb(gdf, geom_name, srid): geoms = [dumps(geom, srid=srid, hex=True) for geom in gdf[geom_name]] - gdf[geom_name] = geoms - return gdf + # The gdf will warn that the geometry column doesn't hold in-memory geometries + # now that they are EWKB, so convert back to a regular dataframe to avoid warning + # the user that the dtypes are unexpected. + df = pd.DataFrame(gdf, copy=False) + df[geom_name] = geoms + return df def _psql_insert_copy(tbl, conn, keys, data_iter): From a99bbca7f82255955d05939157336cea974e35d3 Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Thu, 9 Jul 2020 20:06:50 +0100 Subject: [PATCH 009/316] REGR: *Sampled plotting scheme fails (#1487) --- geopandas/plotting.py | 2 +- geopandas/tests/test_plotting.py | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/geopandas/plotting.py b/geopandas/plotting.py index cc5168a..330da9d 100644 --- a/geopandas/plotting.py +++ b/geopandas/plotting.py @@ -916,7 +916,7 @@ def _mapclassify_choro(values, scheme, **classification_kwds): if "k" not in spec.args: del classification_kwds["k"] try: - binning = scheme_class(values, **classification_kwds) + binning = scheme_class(np.asarray(values), **classification_kwds) except TypeError: raise TypeError("Invalid keyword argument for %r " % scheme) return binning diff --git a/geopandas/tests/test_plotting.py b/geopandas/tests/test_plotting.py index 23d1896..660693b 100644 --- a/geopandas/tests/test_plotting.py +++ b/geopandas/tests/test_plotting.py @@ -902,6 +902,8 @@ class TestMapclassifyPlotting: import mapclassify # noqa except ImportError: pytest.importorskip("mapclassify") + cls.classifiers = list(mapclassify.classifiers.CLASSIFIERS) + cls.classifiers.remove("UserDefined") pth = get_path("naturalearth_lowres") cls.df = read_file(pth) cls.df["NEGATIVES"] = np.linspace(-10, 10, len(cls.df.index)) @@ -970,6 +972,11 @@ class TestMapclassifyPlotting: ax = self.df.plot(column="NEGATIVES", scheme=scheme, k=3, legend=True) assert len(ax.get_legend().get_texts()) == 3 + def test_schemes(self): + # test if all available classifiers pass + for scheme in self.classifiers: + self.df.plot(column="pop_est", scheme=scheme, legend=True) + def test_classification_kwds(self): ax = self.df.plot( column="pop_est", From 9f1e5ec34df14489d833bcb49d15bf55e0aa9546 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Sat, 11 Jul 2020 21:11:54 +0200 Subject: [PATCH 010/316] TST: skip argmin/argmax extension array tests (#1514) --- geopandas/tests/test_extension_array.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/geopandas/tests/test_extension_array.py b/geopandas/tests/test_extension_array.py index 5bb8882..754c484 100644 --- a/geopandas/tests/test_extension_array.py +++ b/geopandas/tests/test_extension_array.py @@ -497,6 +497,18 @@ class TestMethods(extension_tests.BaseMethodsTests): def test_argsort_missing_array(self): pass + @no_sorting + def test_argmin_argmax(self): + pass + + @no_sorting + def test_argmin_argmax_empty_array(self): + pass + + @no_sorting + def test_argmin_argmax_all_na(self): + pass + class TestCasting(extension_tests.BaseCastingTests): pass From 5a9107cbfda48244044cac20f20ab0bb78d3a0a0 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Wed, 15 Jul 2020 16:47:12 +0200 Subject: [PATCH 011/316] BUG: fix un-pickling of GeoDataFrames written by older geopandas versions (#1511) --- geopandas/array.py | 7 ++ geopandas/geodataframe.py | 22 ++++ ...5.1_pd-0.25.3_py-3.7.3_x86_64_linux.pickle | Bin 0 -> 1542 bytes ...6.3_pd-0.25.3_py-3.8.0_x86_64_linux.pickle | Bin 0 -> 1594 bytes ....7.0_pd-1.0.4_py-3.7.6_x86_64_linux.pickle | Bin 0 -> 1638 bytes ....8.0_pd-1.0.5_py-3.8.3_x86_64_linux.pickle | Bin 0 -> 1647 bytes .../io/tests/generate_legacy_storage_files.py | 98 ++++++++++++++++++ geopandas/io/tests/test_pickle.py | 60 +++++++++++ 8 files changed, 187 insertions(+) create mode 100644 geopandas/io/tests/data/pickle/0.5.1_pd-0.25.3_py-3.7.3_x86_64_linux.pickle create mode 100644 geopandas/io/tests/data/pickle/0.6.3_pd-0.25.3_py-3.8.0_x86_64_linux.pickle create mode 100644 geopandas/io/tests/data/pickle/0.7.0_pd-1.0.4_py-3.7.6_x86_64_linux.pickle create mode 100644 geopandas/io/tests/data/pickle/0.8.0_pd-1.0.5_py-3.8.3_x86_64_linux.pickle create mode 100644 geopandas/io/tests/generate_legacy_storage_files.py create mode 100644 geopandas/io/tests/test_pickle.py diff --git a/geopandas/array.py b/geopandas/array.py index 75c44e8..516cdbf 100644 --- a/geopandas/array.py +++ b/geopandas/array.py @@ -384,6 +384,13 @@ class GeometryArray(ExtensionArray): self.data = geoms self.base = None + else: + + def __setstate__(self, state): + if "_crs" not in state: + state["_crs"] = None + self.__dict__.update(state) + # ------------------------------------------------------------------------- # Geometry related methods # ------------------------------------------------------------------------- diff --git a/geopandas/geodataframe.py b/geopandas/geodataframe.py index cbeb610..de1ca27 100644 --- a/geopandas/geodataframe.py +++ b/geopandas/geodataframe.py @@ -329,6 +329,28 @@ class GeoDataFrame(GeoPandasBase, DataFrame): # column called 'geometry' without geometry self._crs = None if not value else CRS.from_user_input(value) + def __setstate__(self, state): + # overriding DataFrame method for compat with older pickles (CRS handling) + if isinstance(state, dict): + if "_metadata" in state and "crs" in state["_metadata"]: + metadata = state["_metadata"] + metadata[metadata.index("crs")] = "_crs" + if "crs" in state and "_crs" not in state: + crs = state.pop("crs") + state["_crs"] = CRS.from_user_input(crs) if crs is not None else crs + + super().__setstate__(state) + + # for some versions that didn't yet have CRS at array level -> crs is set + # at GeoDataFrame level with '_crs' (and not 'crs'), so without propagating + # to the GeoSeries/GeometryArray + try: + if self.crs is not None: + if self.geometry.values.crs is None: + self.crs = self.crs + except Exception: + pass + @classmethod def from_file(cls, filename, **kwargs): """Alternate constructor to create a ``GeoDataFrame`` from a file. diff --git a/geopandas/io/tests/data/pickle/0.5.1_pd-0.25.3_py-3.7.3_x86_64_linux.pickle b/geopandas/io/tests/data/pickle/0.5.1_pd-0.25.3_py-3.7.3_x86_64_linux.pickle new file mode 100644 index 0000000000000000000000000000000000000000..1d97ad597a4b064da16b16741709e4e365a906a6 GIT binary patch literal 1542 zcmdUuOHUL*5P)ZPXJ8>1Vhji|F(w{ZIgIj%QDa;pD8Y#%!Lyn4%r;va=CPRvuqX*0 zfSB~f&>qxZ;!p7GAK~snt9oV)tV{4}AEv9Py1HIp9T=Z}nwnbsvM$D2%}qB0?zVUw zN->FBheb`6S|~MH#x@fcaw*1EdAx$h=jwPO@4S~}Zn|_wikqd8A1B;uM;T8d7Nl0l zBG%$biuO-~*x!0toTaj_zrhEl&KoxQE>A6wrRZ|hjrfkc7U4fMfGfi6$>iB698W}f z*y&ozZ8^zVN48pL~|;!2N;1E+Gascnunqmwh|YWheES-0PnaDJV5yB(1HU1>=emc n@KM3ikI>hF2*Eb&z%F!QPmDZUf4%x>abfOpUQ)@>y#Av&ZoS<#E8g#PC_b z+B{Cs{+<`Q&mZMysq7n1@qww6hAsY@Cx*ikbU9)N{FVJ6z;9>(W1`xV$#W%lJP~Am z)HRe}Kl9QKi(}SBe|F5>Fi6rkb5k@IRdrE{AxutPIh3ZhFIRL&zL%S_Vd`dSU%~}Z zZKd6alS%3E4ZLIOxxOs)ZE0E7!=Jd+kJ(J6^MSI^u>|$sRpj_tR067-l^x*YFfOJC zZS)8JOQAyG;l4h9%j)Jb< zLciS?x<;X|OzAlZTB+E}#V#p@@joyWRUJbLe4fVLyG02V25|m#AZ3i|imJ_I0xaTQ zmw-~XMie3;*pUsjBMX~yWkTpmE%Q??_R*X3Q@c^J*|E3_+GKDrydapGa&MMj&c0nU|5~ zrl|Yv*hVEzN8QOf$ZmjQHSszw;YZ}<>}3>s1Z(gDQo^+O%Cm&JRI!m)DTZktieVkL zvCvEn2)Y$zmnLvRjW{*Wc0(`o16vWwVb_8^Xk?BUqW=QA3zdAlVF*T0qCthfSCGa= zwHjtbz1L((#XnZfIm%(yf_YPe1+xr`|Az6_35?;+$@wcF{_>gDw`RV7Z!W6!qe&3M z>e+~%X6!#9Q1lT9~C?1PUjBRPUkikg0wz7Avw-oQ5Oz+2cA!)qH))^9B>E?k#L Jhsd1F_yvtaF2n!; literal 0 HcmV?d00001 diff --git a/geopandas/io/tests/data/pickle/0.7.0_pd-1.0.4_py-3.7.6_x86_64_linux.pickle b/geopandas/io/tests/data/pickle/0.7.0_pd-1.0.4_py-3.7.6_x86_64_linux.pickle new file mode 100644 index 0000000000000000000000000000000000000000..7d61b0eff2bb067b32752859c2e92b0d03443726 GIT binary patch literal 1638 zcmdUvTTc@~6o9+EQ3yzk0U;*F#0M%5t6XB#7>gDpy0Mb-Xv}7|9eRp;b1!NmRd@hm zGU0_WQJ?%9{sf=>Bm4tBXLhSlYVg%b+Bv&t&Ys(MW;_4!SuvwlSC++StGQuDz|9u- z94RJo^O@UZp^j3MMQkHr4wqtdm3zzh_)t9_%4<84%nK%+k>YY{)bIkXx7~;bF0(`3 zVJ>U&AVm8Iw%2&^Bzcy~zWf|NFm=+f$=~o$w^)cSM@*N$HXph84h>*T6nZjw&L@s1 z+}QCuy7KG9cGPA;z&hy940ywH!zhRw5t@sFIw-{uCZ~=ZN+Yu?tC}VEWnGpH&B*Rb zxF`zEsN-`o$v(Y>XACXT=Y+N;Yqi?rpSaYYQHiAWfwIuB1f}0q zxR@T4XTaPRC0eKbSaL916NNBhL4^KAK8!qH8aWa;3Yz*RN53!$)06~U>ZPC=xjhM2 zM7G@*`rW?JGZcDtN=rz{WYayD?vhd%{{ur>)iI>N;Ze}JpO#Qz02fXNlEbL3s@hD3 zzzDYgm$|@_z`&tdohLX!wS5Fh%imx@;Ia}YgDpx^X2X;mvGj+o7k@y|5Rx2~~Ii zVlv@{F;SoV4?g)5eD;s<5A>YbMWNQngHF=U**$ai+`cp0`FD+CMy;+ai{WNt-HL!) zP3}2TjN|4rx4}Xkr3Q=GdcYhm#qcus7V+_+dOVcZb|je>EIK2_<jE}d2uqGP|;>*>YdjWZBS+ z?5>21qR@ysJ|~mx(_47P&=P%4Xj{@W&BxzysXwC`waB|vH#6SD zkHe^#?3ZW2+$JSjqy0p3Fl~xL7_lHi{~{koo-d6Y2^7wp0xlh=pc%P6 z30Fk6)f4*Np3pNCdUZleNXTTS~pETfIDT+7rnR$IiO-P<0(GrG5(WVIq zCH4&?5XBd)9h2s^C^^l*LM4t#$&OnHv5R6MY`5yfAt9JR7*pt*uml0b#B2JN$Dtz5 zLU5%Rq`^q1cF@9tGc_sb7S_a=nse%)RrlJl<5~(+E($D)uuNSEYbI<%Ikv?BT@6$_ z$fs={fFYDmZoT%w_%4FJv86yL;Mh@oAM)mqBs^Q-0aZH*1 z_<`1!O0s{g%&GOQLQKQr8HoKIxqk^HcHx}g@dNLV;)6uD|`m2RBDrIpp?JM(k1 zH{~wg8~>5ngC1sKgF52CKDgLkk~iVK;;fgxPkrfwE$G5)cmq3x5PU|44q`jje*i{3 BM5h1% literal 0 HcmV?d00001 diff --git a/geopandas/io/tests/generate_legacy_storage_files.py b/geopandas/io/tests/generate_legacy_storage_files.py new file mode 100644 index 0000000..cc39273 --- /dev/null +++ b/geopandas/io/tests/generate_legacy_storage_files.py @@ -0,0 +1,98 @@ +""" +Script to create the data and write legacy storage (pickle) files. + +Based on pandas' generate_legacy_storage_files.py script. + +To use this script, create an environment for which you want to +generate pickles, activate the environment, and run this script as: + +$ python geopandas/geopandas/io/tests/generate_legacy_storage_files.py \ + geopandas/geopandas/io/tests/data/pickle/ pickle + +This script generates a storage file for the current arch, system, + +The idea here is you are using the *current* version of the +generate_legacy_storage_files with an *older* version of geopandas to +generate a pickle file. We will then check this file into a current +branch, and test using test_pickle.py. This will load the *older* +pickles and test versus the current data that is generated +(with master). These are then compared. + +""" +import os +import pickle +import platform +import sys + +import pandas as pd + +import geopandas +from shapely.geometry import Point + + +def create_pickle_data(): + """ create the pickle data """ + + # custom geometry column name + gdf_the_geom = geopandas.GeoDataFrame( + {"a": [1, 2, 3], "the_geom": [Point(1, 1), Point(2, 2), Point(3, 3)]}, + geometry="the_geom", + ) + + # with crs + gdf_crs = geopandas.GeoDataFrame( + {"a": [0.1, 0.2, 0.3], "geometry": [Point(1, 1), Point(2, 2), Point(3, 3)]}, + crs="EPSG:4326", + ) + + return dict(gdf_the_geom=gdf_the_geom, gdf_crs=gdf_crs) + + +def platform_name(): + return "_".join( + [ + str(geopandas.__version__), + "pd-" + str(pd.__version__), + "py-" + str(platform.python_version()), + str(platform.machine()), + str(platform.system().lower()), + ] + ) + + +def write_legacy_pickles(output_dir): + print( + "This script generates a storage file for the current arch, system, " + "and python version" + ) + print("geopandas version: {}").format(geopandas.__version__) + print(" output dir : {}".format(output_dir)) + print(" storage format: pickle") + + pth = "{}.pickle".format(platform_name()) + + fh = open(os.path.join(output_dir, pth), "wb") + pickle.dump(create_pickle_data(), fh, pickle.DEFAULT_PROTOCOL) + fh.close() + + print("created pickle file: {}".format(pth)) + + +def main(): + if len(sys.argv) != 3: + exit( + "Specify output directory and storage type: generate_legacy_" + "storage_files.py " + ) + + output_dir = str(sys.argv[1]) + storage_type = str(sys.argv[2]) + + if storage_type == "pickle": + write_legacy_pickles(output_dir=output_dir) + else: + exit("storage_type must be one of {'pickle'}") + + +if __name__ == "__main__": + main() diff --git a/geopandas/io/tests/test_pickle.py b/geopandas/io/tests/test_pickle.py new file mode 100644 index 0000000..081d0ad --- /dev/null +++ b/geopandas/io/tests/test_pickle.py @@ -0,0 +1,60 @@ +""" +See generate_legacy_storage_files.py for the creation of the legacy files. + +""" +from distutils.version import LooseVersion +import glob +import os +import pathlib + +import pandas as pd + +import pyproj + +import pytest +from geopandas.testing import assert_geodataframe_equal +from geopandas import _compat as compat + + +DATA_PATH = pathlib.Path(os.path.dirname(__file__)) / "data" + + +@pytest.fixture(scope="module") +def current_pickle_data(): + # our current version pickle data + from .generate_legacy_storage_files import create_pickle_data + + return create_pickle_data() + + +files = glob.glob(str(DATA_PATH / "pickle" / "*.pickle")) + + +@pytest.fixture(params=files, ids=[p.split("/")[-1] for p in files]) +def legacy_pickle(request): + return request.param + + +@pytest.mark.skipif( + compat.USE_PYGEOS or (str(pyproj.__version__) < LooseVersion("2.4")), + reason=( + "pygeos-based unpickling currently only works for pygeos-written files; " + "old pyproj versions can't read pickles from newer pyproj versions" + ), +) +def test_legacy_pickles(current_pickle_data, legacy_pickle): + result = pd.read_pickle(legacy_pickle) + + for name, value in result.items(): + expected = current_pickle_data[name] + assert_geodataframe_equal(value, expected) + + +def test_round_trip_current(tmpdir, current_pickle_data): + data = current_pickle_data + + for name, value in data.items(): + path = str(tmpdir / "{}.pickle".format(name)) + value.to_pickle(path) + result = pd.read_pickle(path) + assert_geodataframe_equal(result, value) From 301418fc44a1dc1dafd6e0fecabc794c0bc8df58 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Wed, 15 Jul 2020 16:52:28 +0200 Subject: [PATCH 012/316] DOC/RLS: changelog for 0.8.1 (#1519) --- CHANGELOG.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 64e0a1c..945054d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,19 @@ Changelog ========= + +Version 0.8.1 (July 15, 2020) +----------------------------- + +Small bug-fix release: + +- Fix a regression in the `plot()` method when visualizing with a + JenksCaspallSampled or FisherJenksSampled scheme (#1486). +- Fix spurious warning in `GeoDataFrame.to_postgis` (#1497). +- Fix the un-pickling with `pd.read_pickle` of files written with older + GeoPandas versions (#1511). + + Version 0.8.0 (June 24, 2020) ----------------------------- From d3228ddb6814515506921ad5c2e6d6f8bd99c9ae Mon Sep 17 00:00:00 2001 From: abonte <6319051+abonte@users.noreply.github.com> Date: Sat, 18 Jul 2020 23:55:35 +0200 Subject: [PATCH 013/316] DOC: fix docstring (#1524) --- geopandas/base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/geopandas/base.py b/geopandas/base.py index da87a89..ddada8f 100644 --- a/geopandas/base.py +++ b/geopandas/base.py @@ -615,7 +615,7 @@ class GeoPandasBase(object): -------- >>> from shapely.geometry import Point, Polygon, LineString >>> d = {'geometry': [Point(3, -1), Polygon([(0, 0), (1, 1), (1, 0)]), -. ... LineString([(0, 1), (1, 2)])]} + ... LineString([(0, 1), (1, 2)])]} >>> gdf = geopandas.GeoDataFrame(d, crs="EPSG:4326") >>> gdf.total_bounds array([ 0., -1., 3., 2.]) From 3d570922d83736429034bc2a1552ebf08e01aac4 Mon Sep 17 00:00:00 2001 From: Brendan Ward Date: Mon, 27 Jul 2020 14:22:47 -0700 Subject: [PATCH 014/316] TST: Remove failing test of duplicate columns on read of parquet (#1538) --- geopandas/io/tests/test_arrow.py | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/geopandas/io/tests/test_arrow.py b/geopandas/io/tests/test_arrow.py index ecfa37c..8645048 100644 --- a/geopandas/io/tests/test_arrow.py +++ b/geopandas/io/tests/test_arrow.py @@ -416,22 +416,6 @@ def test_subset_columns(tmpdir, file_format): reader(filename, columns=["name"]) -def test_parquet_repeat_columns(tmpdir): - """Reading repeated columns should return first value of each repeated column - """ - - test_dataset = "naturalearth_lowres" - df = read_file(get_path(test_dataset)) - - filename = os.path.join(str(tmpdir), "test.pq") - df.to_parquet(filename) - - columns = ["name", "name", "iso_a3", "name", "geometry"] - pq_df = read_parquet(filename, columns=columns) - - assert pq_df.columns.tolist() == ["name", "iso_a3", "geometry"] - - def test_promote_secondary_geometry(tmpdir, file_format): """Reading a subset of columns that does not include the primary geometry column should promote the first geometry column present. From d96da68c2e11cf0705b1369caa1b808b13249899 Mon Sep 17 00:00:00 2001 From: Rowan Molony Date: Tue, 28 Jul 2020 18:13:52 +0100 Subject: [PATCH 015/316] DOC: Copy pandas commit message conventions (#1533) * DOC: Copy pandas commit message conventions Following on from pull request discussion in #1425 * Rename geopandas to GeoPandas Co-authored-by: Martin Fleischmann * Remove triple whitespace Co-authored-by: Martin Fleischmann * Remove triple whitespace again Co-authored-by: Martin Fleischmann * Change reference to refer to Co-authored-by: Martin Fleischmann Co-authored-by: Martin Fleischmann --- doc/source/contributing.rst | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/doc/source/contributing.rst b/doc/source/contributing.rst index 8f74ee0..88482ac 100644 --- a/doc/source/contributing.rst +++ b/doc/source/contributing.rst @@ -316,3 +316,32 @@ From the root of the geopandas repository, you should then install the Then ``black`` and ``flake8`` will be run automatically each time you commit changes. You can skip these checks with ``git commit --no-verify``. + +Commit message conventions +-------------------------- + +Commit your changes to your local repository with an explanatory message. GeoPandas +uses the pandas convention for commit message prefixes and layout. Here are +some common prefixes along with general guidelines for when to use them: + +* ENH: Enhancement, new functionality +* BUG: Bug fix +* DOC: Additions/updates to documentation +* TST: Additions/updates to tests +* BLD: Updates to the build process/scripts +* PERF: Performance improvement +* TYP: Type annotations +* CLN: Code cleanup + +The following defines how a commit message should be structured. Please refer to the +relevant GitHub issues in your commit message using GH1234 or #1234. Either style +is fine, but the former is generally preferred: + +* a subject line with `< 80` chars. +* One blank line. +* Optionally, a commit message body. + +Now you can commit your changes in your local repository:: + + git commit -m + From 7a093643fc5a2e1c612885b28a5eb605e758eb61 Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Tue, 28 Jul 2020 18:22:47 +0100 Subject: [PATCH 016/316] DEP: drop support for older versions of dependencies (#1492) * change requirements * ci * remove compatibility layers * ci recipe * ci versions * version in setup.py --- .travis.yml | 5 +- .../{35-minimal.yaml => 36-minimal.yaml} | 14 +- ci/travis/36-pd023.yaml | 31 ---- ci/travis/{36-pd024.yaml => 36-pd025.yaml} | 16 +- doc/source/install.rst | 6 +- environment.yml | 9 +- geopandas/_compat.py | 1 - geopandas/array.py | 11 +- geopandas/io/file.py | 52 +------ geopandas/io/tests/test_file.py | 57 ++------ .../io/tests/test_file_geom_types_drivers.py | 72 ++------- geopandas/io/tests/test_infer_schema.py | 138 ++++++------------ geopandas/tests/test_extension_array.py | 17 --- geopandas/tests/test_geom_methods.py | 2 - geopandas/tests/test_pandas_methods.py | 8 +- requirements-dev.txt | 9 +- setup.py | 9 +- 17 files changed, 117 insertions(+), 340 deletions(-) rename ci/travis/{35-minimal.yaml => 36-minimal.yaml} (70%) delete mode 100644 ci/travis/36-pd023.yaml rename ci/travis/{36-pd024.yaml => 36-pd025.yaml} (60%) diff --git a/.travis.yml b/.travis.yml index c74bb5c..4ba4225 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,14 +5,13 @@ sudo: false matrix: include: # One build with minimum versions of dependencies - - env: ENV_FILE="ci/travis/35-minimal.yaml" + - env: ENV_FILE="ci/travis/36-minimal.yaml" # one build with no optional dependencies - env: ENV_FILE="ci/travis/38-no-optional-deps.yaml" # Python 3.6 test all supported Pandas versions - - env: ENV_FILE="ci/travis/36-pd023.yaml" PYGEOS=true - - env: ENV_FILE="ci/travis/36-pd024.yaml" PYGEOS=true + - env: ENV_FILE="ci/travis/36-pd025.yaml" PYGEOS=true - env: ENV_FILE="ci/travis/37-latest-defaults.yaml" STYLE=true PYGEOS=true - env: ENV_FILE="ci/travis/37-latest-conda-forge.yaml" PYGEOS=true diff --git a/ci/travis/35-minimal.yaml b/ci/travis/36-minimal.yaml similarity index 70% rename from ci/travis/35-minimal.yaml rename to ci/travis/36-minimal.yaml index ab18a3e..c7b3739 100644 --- a/ci/travis/35-minimal.yaml +++ b/ci/travis/36-minimal.yaml @@ -3,12 +3,12 @@ channels: - defaults - conda-forge dependencies: - - python=3.5 + - python=3.6 # required - - numpy=1.12 - - pandas==0.23.4 - - shapely=1.5 - - fiona=1.7 + - numpy=1.15 + - pandas==0.24 + - shapely=1.6 + - fiona=1.8 #- pyproj # testing - pytest @@ -18,11 +18,11 @@ dependencies: - rtree - matplotlib - descartes - - matplotlib=2.0 + - matplotlib=2.2 - mapclassify>=2.2.0 - geopy - SQLalchemy - libspatialite - pyarrow - pip: - - pyproj==2.2.2 + - pyproj==2.2.2 diff --git a/ci/travis/36-pd023.yaml b/ci/travis/36-pd023.yaml deleted file mode 100644 index 0fcd294..0000000 --- a/ci/travis/36-pd023.yaml +++ /dev/null @@ -1,31 +0,0 @@ -name: test -channels: - - defaults -dependencies: - - python=3.6 - - pip - # required - - pandas==0.23.4 - - nomkl - - shapely - - gdal=2.3 - - fiona - #- pyproj - - geos - # testing - - pytest - - pytest-cov - #- codecov - # optional - - rtree - - matplotlib=2 - - descartes - #- geopy - - SQLalchemy - - libspatialite - - pip: - - pyproj==2.3.1 - - geopy - - codecov - - mapclassify>=2.2.0 - - git+https://github.com/pygeos/pygeos.git diff --git a/ci/travis/36-pd024.yaml b/ci/travis/36-pd025.yaml similarity index 60% rename from ci/travis/36-pd024.yaml rename to ci/travis/36-pd025.yaml index fcb46e7..30be1cb 100644 --- a/ci/travis/36-pd024.yaml +++ b/ci/travis/36-pd025.yaml @@ -4,9 +4,9 @@ channels: dependencies: - python=3.6 # required - - pandas=0.24 + - pandas=0.25 - shapely - - fiona=1.7 + - fiona #- pyproj - geos # testing @@ -15,15 +15,15 @@ dependencies: #- codecov # optional - rtree - - matplotlib==2.0.2 + - matplotlib - descartes #- geopy - SQLalchemy - libspatialite - pyarrow - pip: - - pyproj - - codecov - - geopy - - mapclassify>=2.2.0 - - git+https://github.com/pygeos/pygeos.git + - pyproj==2.3.1 + - codecov + - geopy + - mapclassify>=2.2.0 + - git+https://github.com/pygeos/pygeos.git diff --git a/doc/source/install.rst b/doc/source/install.rst index d02463a..1a417af 100644 --- a/doc/source/install.rst +++ b/doc/source/install.rst @@ -139,7 +139,7 @@ Dependencies Required dependencies: - `numpy`_ -- `pandas`_ (version 0.23.4 or later) +- `pandas`_ (version 0.24 or later) - `shapely`_ (interface to `GEOS`_) - `fiona`_ (interface to `GDAL`_) - `pyproj`_ (interface to `PROJ`_; version 2.2.0 or later) @@ -155,9 +155,9 @@ Further, optional dependencies are: For plotting, these additional packages may be used: -- `matplotlib`_ (>= 2.0.1) +- `matplotlib`_ (>= 2.2.0) - `descartes`_ -- `mapclassify`_ +- `mapclassify`_ (>= 2.2.0) Using the optional PyGEOS dependency diff --git a/environment.yml b/environment.yml index ee133d2..531543d 100644 --- a/environment.yml +++ b/environment.yml @@ -3,10 +3,10 @@ channels: - conda-forge dependencies: # required - - fiona>=1.7 - - pandas>=0.23.4 + - fiona>=1.8 + - pandas>=0.24 - pyproj>=2.2.0 - - shapely>=1.5 + - shapely>=1.6 # geodatabase access - psycopg2>=2.5.1 @@ -17,10 +17,9 @@ dependencies: # plotting - descartes>=1.0 - - matplotlib>=2.0 + - matplotlib>=2.2 # testing - - mock>=1.0.1 # technically not need for python >= 3.3 - pytest>=3.1.0 - pytest-cov - codecov diff --git a/geopandas/_compat.py b/geopandas/_compat.py index fa86961..bdf6176 100644 --- a/geopandas/_compat.py +++ b/geopandas/_compat.py @@ -10,7 +10,6 @@ import shapely # pandas compat # ----------------------------------------------------------------------------- -PANDAS_GE_024 = str(pd.__version__) >= LooseVersion("0.24.0") PANDAS_GE_025 = str(pd.__version__) >= LooseVersion("0.25.0") PANDAS_GE_10 = str(pd.__version__) >= LooseVersion("0.26.0.dev") PANDAS_GE_11 = str(pd.__version__) >= LooseVersion("1.1.0.dev") diff --git a/geopandas/array.py b/geopandas/array.py index 516cdbf..3b071eb 100644 --- a/geopandas/array.py +++ b/geopandas/array.py @@ -6,7 +6,11 @@ import inspect import numpy as np import pandas as pd -from pandas.api.extensions import ExtensionArray, ExtensionDtype +from pandas.api.extensions import ( + ExtensionArray, + ExtensionDtype, + register_extension_dtype, +) import shapely import shapely.affinity @@ -48,10 +52,7 @@ class GeometryDtype(ExtensionDtype): return GeometryArray -if compat.PANDAS_GE_024: - from pandas.api.extensions import register_extension_dtype - - register_extension_dtype(GeometryDtype) +register_extension_dtype(GeometryDtype) def _isna(value): diff --git a/geopandas/io/file.py b/geopandas/io/file.py index 47e938b..2a94f3f 100644 --- a/geopandas/io/file.py +++ b/geopandas/io/file.py @@ -24,7 +24,6 @@ from urllib.parse import urlparse as parse_url from urllib.parse import uses_netloc, uses_params, uses_relative -_FIONA18 = LooseVersion(fiona.__version__) >= LooseVersion("1.8") _VALID_URLS = set(uses_relative + uses_netloc + uses_params) _VALID_URLS.discard("") @@ -284,12 +283,6 @@ def infer_schema(df): out_type = type(np.zeros(1, in_type).item()).__name__ if out_type == "long": out_type = "int" - if not _FIONA18 and out_type == "bool": - raise ValueError( - 'column "{}" is boolean type, '.format(column) - + "which is unsupported in file writing with fiona " - "< 1.8. Consider casting the column to int type." - ) return out_type properties = OrderedDict( @@ -316,24 +309,11 @@ def _geometry_types(df): """ Determine the geometry types in the GeoDataFrame for the schema. """ - if _FIONA18: - # Starting from Fiona 1.8, schema submitted to fiona to write a gdf - # can have mixed geometries: - # - 3D and 2D shapes can coexist in inferred schema - # - Shape and MultiShape types can (and must) coexist in inferred - # schema - geom_types_2D = df[~df.geometry.has_z].geometry.geom_type.unique() - geom_types_2D = [gtype for gtype in geom_types_2D if gtype is not None] - geom_types_3D = df[df.geometry.has_z].geometry.geom_type.unique() - geom_types_3D = ["3D " + gtype for gtype in geom_types_3D if gtype is not None] - geom_types = geom_types_3D + geom_types_2D - - else: - # Before Fiona 1.8, schema submitted to write a gdf should have - # one single geometry type whenever possible: - # - 3D and 2D shapes cannot coexist in inferred schema - # - Shape and MultiShape can not coexist in inferred schema - geom_types = _geometry_types_back_compat(df) + geom_types_2D = df[~df.geometry.has_z].geometry.geom_type.unique() + geom_types_2D = [gtype for gtype in geom_types_2D if gtype is not None] + geom_types_3D = df[df.geometry.has_z].geometry.geom_type.unique() + geom_types_3D = ["3D " + gtype for gtype in geom_types_3D if gtype is not None] + geom_types = geom_types_3D + geom_types_2D if len(geom_types) == 0: # Default geometry type supported by Fiona @@ -344,25 +324,3 @@ def _geometry_types(df): geom_types = geom_types[0] return geom_types - - -def _geometry_types_back_compat(df): - """ - for backward compatibility with Fiona<1.8 only - """ - unique_geom_types = df.geometry.geom_type.unique() - unique_geom_types = [gtype for gtype in unique_geom_types if gtype is not None] - - # merge single and Multi types (eg Polygon and MultiPolygon) - unique_geom_types = [ - gtype - for gtype in unique_geom_types - if not gtype.startswith("Multi") or gtype[5:] not in unique_geom_types - ] - - if df.geometry.has_z.any(): - # declare all geometries as 3D geometries - unique_geom_types = ["3D " + type for type in unique_geom_types] - # by default, all geometries are 2D geometries - - return unique_geom_types diff --git a/geopandas/io/tests/test_file.py b/geopandas/io/tests/test_file.py index d7b1b5e..406f72d 100644 --- a/geopandas/io/tests/test_file.py +++ b/geopandas/io/tests/test_file.py @@ -1,11 +1,9 @@ from collections import OrderedDict import datetime -from distutils.version import LooseVersion import io import os import pathlib import tempfile -import sys import numpy as np import pandas as pd @@ -15,8 +13,7 @@ from shapely.geometry import Point, Polygon, box import geopandas from geopandas import GeoDataFrame, read_file -from geopandas.io.file import fiona_env, _FIONA18 -from geopandas._compat import PANDAS_GE_024 +from geopandas.io.file import fiona_env from geopandas.testing import assert_geodataframe_equal, assert_geoseries_equal from geopandas.tests.util import PACKAGE_DIR, validate_boro_df @@ -87,7 +84,6 @@ def test_to_file(tmpdir, df_nybb, df_null, driver, ext): @pytest.mark.parametrize("driver,ext", driver_ext_pairs) -@pytest.mark.skipif(not _FIONA18, reason="pathlib support added to fiona in 1.8") def test_to_file_pathlib(tmpdir, df_nybb, df_null, driver, ext): """ Test to_file and from_file """ temppath = pathlib.Path(os.path.join(str(tmpdir), "boros." + ext)) @@ -111,26 +107,17 @@ def test_to_file_bool(tmpdir, driver, ext): } ) - if LooseVersion(fiona.__version__) < LooseVersion("1.8"): - with pytest.raises(ValueError): - df.to_file(tempfilename, driver=driver) - else: - df.to_file(tempfilename, driver=driver) - result = read_file(tempfilename) - if driver == "GeoJSON": - # geojson by default assumes epsg:4326 - result.crs = None - if driver == "ESRI Shapefile": - # Shapefile does not support boolean, so is read back as int - df["b"] = df["b"].astype("int64") - # PY2: column names 'mixed' instead of 'unicode' - assert_geodataframe_equal(result, df, check_column_type=False) + df.to_file(tempfilename, driver=driver) + result = read_file(tempfilename) + if driver == "GeoJSON": + # geojson by default assumes epsg:4326 + result.crs = None + if driver == "ESRI Shapefile": + # Shapefile does not support boolean, so is read back as int + df["b"] = df["b"].astype("int64") + assert_geodataframe_equal(result, df) -@pytest.mark.skipif( - (sys.version_info < (3, 0)) and sys.platform.startswith("win"), - reason="GPKG tests failing on AppVeyor for Python 2.7", -) def test_to_file_datetime(tmpdir): """Test writing a data file with the datetime column type""" tempfilename = os.path.join(str(tmpdir), "test_datetime.gpkg") @@ -193,7 +180,6 @@ def test_to_file_types(tmpdir, df_points): df.to_file(tempfilename) -@pytest.mark.skipif(not PANDAS_GE_024, reason="pandas >= 0.24 needed") def test_to_file_int64(tmpdir, df_points): tempfilename = os.path.join(str(tmpdir), "int64.shp") geometry = df_points.geometry @@ -318,9 +304,6 @@ def test_read_file_remote_geojson_url(): assert isinstance(gdf, geopandas.GeoDataFrame) -@pytest.mark.skipif( - not _FIONA18, reason="support for file-like objects in fiona.open() added in 1.8" -) def test_read_file_textio(file_path): file_text_stream = open(file_path) file_stringio = io.StringIO(open(file_path).read()) @@ -330,9 +313,6 @@ def test_read_file_textio(file_path): assert isinstance(gdf_stringio, geopandas.GeoDataFrame) -@pytest.mark.skipif( - not _FIONA18, reason="support for file-like objects in fiona.open() added in 1.8" -) def test_read_file_bytesio(file_path): file_binary_stream = open(file_path, "rb") file_bytesio = io.BytesIO(open(file_path, "rb").read()) @@ -342,27 +322,18 @@ def test_read_file_bytesio(file_path): assert isinstance(gdf_bytesio, geopandas.GeoDataFrame) -@pytest.mark.skipif( - not _FIONA18, reason="support for file-like objects in fiona.open() added in 1.8" -) def test_read_file_raw_stream(file_path): file_raw_stream = open(file_path, "rb", buffering=0) gdf_raw_stream = read_file(file_raw_stream) assert isinstance(gdf_raw_stream, geopandas.GeoDataFrame) -@pytest.mark.skipif( - not _FIONA18, reason="support for file-like objects in fiona.open() added in 1.8" -) def test_read_file_pathlib(file_path): path_object = pathlib.Path(file_path) gdf_path_object = read_file(path_object) assert isinstance(gdf_path_object, geopandas.GeoDataFrame) -@pytest.mark.skipif( - not _FIONA18, reason="support for file-like objects in fiona.open() added in 1.8" -) def test_read_file_tempfile(): temp = tempfile.TemporaryFile() temp.write( @@ -441,10 +412,6 @@ def test_read_file_filtered_rows_invalid(): read_file(geopandas.datasets.get_path("nybb"), rows="not_a_slice") -@pytest.mark.skipif( - LooseVersion(fiona.__version__) < LooseVersion("1.8"), - reason="Ignore geometry only available in Fiona 1.8", -) def test_read_file__ignore_geometry(): pdf = geopandas.read_file( geopandas.datasets.get_path("naturalearth_lowres"), ignore_geometry=True, @@ -453,10 +420,6 @@ def test_read_file__ignore_geometry(): assert isinstance(pdf, pd.DataFrame) and not isinstance(pdf, geopandas.GeoDataFrame) -@pytest.mark.skipif( - LooseVersion(fiona.__version__) < LooseVersion("1.8"), - reason="Ignore fields only available in Fiona 1.8", -) def test_read_file__ignore_all_fields(): gdf = geopandas.read_file( geopandas.datasets.get_path("naturalearth_lowres"), diff --git a/geopandas/io/tests/test_file_geom_types_drivers.py b/geopandas/io/tests/test_file_geom_types_drivers.py index 2a90f6a..aebd79e 100644 --- a/geopandas/io/tests/test_file_geom_types_drivers.py +++ b/geopandas/io/tests/test_file_geom_types_drivers.py @@ -1,6 +1,4 @@ -from enum import Enum import os -import sys from shapely.geometry import ( LineString, @@ -13,7 +11,6 @@ from shapely.geometry import ( import geopandas from geopandas import GeoDataFrame -from geopandas.io.file import _FIONA18 from geopandas.testing import assert_geodataframe_equal import pytest @@ -68,11 +65,6 @@ point_3D = Point(-73.553785, 45.508722, 300) # TEST TOOLING -class _Fiona(Enum): - below_1_8 = "fiona_below_1_8" - above_1_8 = "fiona_above_1_8" - - class _ExpectedError: def __init__(self, error_type, error_message_match): self.type = error_type @@ -89,19 +81,16 @@ class _ExpectedErrorBuilder: ) -def _expect_writing(gdf, ogr_driver, fiona_version): - return _ExpectedErrorBuilder(_composite_key(gdf, ogr_driver, fiona_version)) +def _expect_writing(gdf, ogr_driver): + return _ExpectedErrorBuilder(_composite_key(gdf, ogr_driver)) -def _composite_key(gdf, ogr_driver, fiona_version): - return frozenset([id(gdf), ogr_driver, fiona_version.value]) +def _composite_key(gdf, ogr_driver): + return frozenset([id(gdf), ogr_driver]) -def _expected_error_on(gdf, ogr_driver, is_fiona_above_1_8): - if is_fiona_above_1_8: - composite_key = _composite_key(gdf, ogr_driver, _Fiona.above_1_8) - else: - composite_key = _composite_key(gdf, ogr_driver, _Fiona.below_1_8) +def _expected_error_on(gdf, ogr_driver): + composite_key = _composite_key(gdf, ogr_driver) return _expected_exceptions.get(composite_key, None) @@ -141,15 +130,7 @@ _geodataframes_to_write.append(gdf) # 'ESRI Shapefile' driver supports writing LineString/MultiLinestring and # Polygon/MultiPolygon but does not mention Point/MultiPoint # see https://www.gdal.org/drv_shapefile.html -for driver in ("ESRI Shapefile", "GPKG"): - _expect_writing(gdf, driver, _Fiona.below_1_8).to_raise( - ValueError, - "Record's geometry type does not match collection schema's geometry " - "type: 'MultiPoint' != 'Point'", - ) -_expect_writing(gdf, "ESRI Shapefile", _Fiona.above_1_8).to_raise( - RuntimeError, "Failed to write record" -) +_expect_writing(gdf, "ESRI Shapefile").to_raise(RuntimeError, "Failed to write record") # ------------------ # gdf with LineStrings @@ -173,11 +154,6 @@ gdf = GeoDataFrame( geometry=[MultiLineString(city_hall_walls), city_hall_walls[0]], ) _geodataframes_to_write.append(gdf) -_expect_writing(gdf, "GPKG", _Fiona.below_1_8).to_raise( - ValueError, - "Record's geometry type does not match collection schema's geometry " - "type: 'MultiLineString' != 'LineString'", -) # ------------------ # gdf with Polygons @@ -206,11 +182,6 @@ gdf = GeoDataFrame( ], ) _geodataframes_to_write.append(gdf) -_expect_writing(gdf, "GPKG", _Fiona.below_1_8).to_raise( - ValueError, - "Record's geometry type does not match collection schema's geometry " - "type: 'MultiPolygon' != 'Polygon'", -) # ------------------ # gdf with null geometry and Point @@ -243,13 +214,7 @@ gdf = GeoDataFrame( ) _geodataframes_to_write.append(gdf) # Not supported by 'ESRI Shapefile' driver -for driver in ("ESRI Shapefile", "GPKG"): - _expect_writing(gdf, driver, _Fiona.below_1_8).to_raise( - AttributeError, "'list' object has no attribute 'lstrip'" - ) -_expect_writing(gdf, "ESRI Shapefile", _Fiona.above_1_8).to_raise( - RuntimeError, "Failed to write record" -) +_expect_writing(gdf, "ESRI Shapefile").to_raise(RuntimeError, "Failed to write record") # ------------------ # gdf with all 2D shape types and 3D Point mixed together @@ -268,13 +233,7 @@ gdf = GeoDataFrame( ) _geodataframes_to_write.append(gdf) # Not supported by 'ESRI Shapefile' driver -for driver in ("ESRI Shapefile", "GPKG"): - _expect_writing(gdf, driver, _Fiona.below_1_8).to_raise( - AttributeError, "'list' object has no attribute 'lstrip'" - ) -_expect_writing(gdf, "ESRI Shapefile", _Fiona.above_1_8).to_raise( - RuntimeError, "Failed to write record" -) +_expect_writing(gdf, "ESRI Shapefile").to_raise(RuntimeError, "Failed to write record") @pytest.fixture(params=_geodataframes_to_write) @@ -290,20 +249,13 @@ def ogr_driver(request): def test_to_file_roundtrip(tmpdir, geodataframe, ogr_driver): output_file = os.path.join(str(tmpdir), "output_file") - expected_error = _expected_error_on(geodataframe, ogr_driver, _FIONA18) + expected_error = _expected_error_on(geodataframe, ogr_driver) if expected_error: - with pytest.raises(expected_error.type, match=expected_error.match): + with pytest.raises(RuntimeError, match="Failed to write record"): geodataframe.to_file(output_file, driver=ogr_driver) else: geodataframe.to_file(output_file, driver=ogr_driver) reloaded = geopandas.read_file(output_file) - check_column_type = "equiv" - if sys.version_info[0] < 3: - # do not check column types in python 2 (mixed string/unicode) - check_column_type = False - - assert_geodataframe_equal( - geodataframe, reloaded, check_column_type=check_column_type - ) + assert_geodataframe_equal(geodataframe, reloaded, check_column_type="equiv") diff --git a/geopandas/io/tests/test_infer_schema.py b/geopandas/io/tests/test_infer_schema.py index c077254..8565aa0 100644 --- a/geopandas/io/tests/test_infer_schema.py +++ b/geopandas/io/tests/test_infer_schema.py @@ -11,10 +11,8 @@ from shapely.geometry import ( import pandas as pd import numpy as np -import pytest from geopandas import GeoDataFrame -from geopandas.io.file import _FIONA18, infer_schema -from geopandas._compat import PANDAS_GE_024 +from geopandas.io.file import infer_schema # Credit: Polygons below come from Montreal city Open Data portal # http://donnees.ville.montreal.qc.ca/dataset/unites-evaluation-fonciere @@ -90,13 +88,10 @@ def test_infer_schema_points_and_multipoints(): ] ) - if _FIONA18: - assert infer_schema(df) == { - "geometry": ["MultiPoint", "Point"], - "properties": OrderedDict(), - } - else: - assert infer_schema(df) == {"geometry": "Point", "properties": OrderedDict()} + assert infer_schema(df) == { + "geometry": ["MultiPoint", "Point"], + "properties": OrderedDict(), + } def test_infer_schema_only_multipoints(): @@ -120,16 +115,10 @@ def test_infer_schema_only_linestrings(): def test_infer_schema_linestrings_and_multilinestrings(): df = GeoDataFrame(geometry=[MultiLineString(city_hall_walls), city_hall_walls[0]]) - if _FIONA18: - assert infer_schema(df) == { - "geometry": ["MultiLineString", "LineString"], - "properties": OrderedDict(), - } - else: - assert infer_schema(df) == { - "geometry": "LineString", - "properties": OrderedDict(), - } + assert infer_schema(df) == { + "geometry": ["MultiLineString", "LineString"], + "properties": OrderedDict(), + } def test_infer_schema_only_multilinestrings(): @@ -155,13 +144,10 @@ def test_infer_schema_polygons_and_multipolygons(): ] ) - if _FIONA18: - assert infer_schema(df) == { - "geometry": ["MultiPolygon", "Polygon"], - "properties": OrderedDict(), - } - else: - assert infer_schema(df) == {"geometry": "Polygon", "properties": OrderedDict()} + assert infer_schema(df) == { + "geometry": ["MultiPolygon", "Polygon"], + "properties": OrderedDict(), + } def test_infer_schema_only_multipolygons(): @@ -182,23 +168,17 @@ def test_infer_schema_multiple_shape_types(): ] ) - if _FIONA18: - assert infer_schema(df) == { - "geometry": [ - "MultiPolygon", - "Polygon", - "MultiLineString", - "LineString", - "MultiPoint", - "Point", - ], - "properties": OrderedDict(), - } - else: - assert infer_schema(df) == { - "geometry": ["Polygon", "LineString", "Point"], - "properties": OrderedDict(), - } + assert infer_schema(df) == { + "geometry": [ + "MultiPolygon", + "Polygon", + "MultiLineString", + "LineString", + "MultiPoint", + "Point", + ], + "properties": OrderedDict(), + } def test_infer_schema_mixed_3D_shape_type(): @@ -214,36 +194,27 @@ def test_infer_schema_mixed_3D_shape_type(): ] ) - if _FIONA18: - assert infer_schema(df) == { - "geometry": [ - "3D Point", - "MultiPolygon", - "Polygon", - "MultiLineString", - "LineString", - "MultiPoint", - "Point", - ], - "properties": OrderedDict(), - } - else: - assert infer_schema(df) == { - "geometry": ["3D Polygon", "3D LineString", "3D Point"], - "properties": OrderedDict(), - } + assert infer_schema(df) == { + "geometry": [ + "3D Point", + "MultiPolygon", + "Polygon", + "MultiLineString", + "LineString", + "MultiPoint", + "Point", + ], + "properties": OrderedDict(), + } def test_infer_schema_mixed_3D_Point(): df = GeoDataFrame(geometry=[city_hall_balcony, point_3D]) - if _FIONA18: - assert infer_schema(df) == { - "geometry": ["3D Point", "Point"], - "properties": OrderedDict(), - } - else: - assert infer_schema(df) == {"geometry": "3D Point", "properties": OrderedDict()} + assert infer_schema(df) == { + "geometry": ["3D Point", "Point"], + "properties": OrderedDict(), + } def test_infer_schema_only_3D_Points(): @@ -255,16 +226,10 @@ def test_infer_schema_only_3D_Points(): def test_infer_schema_mixed_3D_linestring(): df = GeoDataFrame(geometry=[city_hall_walls[0], linestring_3D]) - if _FIONA18: - assert infer_schema(df) == { - "geometry": ["3D LineString", "LineString"], - "properties": OrderedDict(), - } - else: - assert infer_schema(df) == { - "geometry": "3D LineString", - "properties": OrderedDict(), - } + assert infer_schema(df) == { + "geometry": ["3D LineString", "LineString"], + "properties": OrderedDict(), + } def test_infer_schema_only_3D_linestrings(): @@ -279,16 +244,10 @@ def test_infer_schema_only_3D_linestrings(): def test_infer_schema_mixed_3D_Polygon(): df = GeoDataFrame(geometry=[city_hall_boundaries, polygon_3D]) - if _FIONA18: - assert infer_schema(df) == { - "geometry": ["3D Polygon", "Polygon"], - "properties": OrderedDict(), - } - else: - assert infer_schema(df) == { - "geometry": "3D Polygon", - "properties": OrderedDict(), - } + assert infer_schema(df) == { + "geometry": ["3D Polygon", "Polygon"], + "properties": OrderedDict(), + } def test_infer_schema_only_3D_Polygons(): @@ -319,7 +278,6 @@ def test_infer_schema_null_geometry_all(): assert infer_schema(df) == {"geometry": "Unknown", "properties": OrderedDict()} -@pytest.mark.skipif(not PANDAS_GE_024, reason="pandas >= 0.24 needed") def test_infer_schema_int64(): int64col = pd.array([1, np.nan], dtype=pd.Int64Dtype()) df = GeoDataFrame(geometry=[city_hall_entrance, city_hall_balcony]) diff --git a/geopandas/tests/test_extension_array.py b/geopandas/tests/test_extension_array.py index 754c484..da940fc 100644 --- a/geopandas/tests/test_extension_array.py +++ b/geopandas/tests/test_extension_array.py @@ -21,7 +21,6 @@ from pandas.tests.extension import base as extension_tests import shapely.geometry -from geopandas._compat import PANDAS_GE_024 from geopandas.array import GeometryArray, GeometryDtype, from_shapely import pytest @@ -31,21 +30,8 @@ import pytest # ----------------------------------------------------------------------------- -if not PANDAS_GE_024: - # pandas 0.23.4 doesn't have those tests yet, so adding dummy classes - # to derive from here - extension_tests.BaseNoReduceTests = object - extension_tests.BaseArithmeticOpsTests = object - extension_tests.BaseComparisonOpsTests = object - extension_tests.BasePrintingTests = object - extension_tests.BaseParsingTests = object - - not_yet_implemented = pytest.mark.skip(reason="Not yet implemented") no_sorting = pytest.mark.skip(reason="Sorting not supported") -skip_pandas_below_024 = pytest.mark.skipif( - not PANDAS_GE_024, reason="Sorting not supported" -) # ----------------------------------------------------------------------------- @@ -292,7 +278,6 @@ class TestDtype(extension_tests.BaseDtypeTests): def test_array_type_with_arg(self, data, dtype): assert dtype.construct_array_type() is GeometryArray - @skip_pandas_below_024 def test_registry(self, data, dtype): s = pd.Series(np.asarray(data), dtype=object) result = s.astype("geometry") @@ -403,13 +388,11 @@ class TestComparisonOps(extension_tests.BaseComparisonOpsTests): expected = s.combine(other, op) self.assert_series_equal(result, expected) - @skip_pandas_below_024 def test_compare_scalar(self, data, all_compare_operators): # noqa op_name = all_compare_operators s = pd.Series(data) self._compare_other(s, data, op_name, data[0]) - @skip_pandas_below_024 def test_compare_array(self, data, all_compare_operators): # noqa op_name = all_compare_operators s = pd.Series(data) diff --git a/geopandas/tests/test_geom_methods.py b/geopandas/tests/test_geom_methods.py index e5e021d..3f557d8 100644 --- a/geopandas/tests/test_geom_methods.py +++ b/geopandas/tests/test_geom_methods.py @@ -737,8 +737,6 @@ class TestGeomMethods: names=[index_name, None], ) expected_df = expected_df.set_index(expected_index) - if not compat.PANDAS_GE_024: - expected_df = expected_df[["level_1", "geometry"]] assert_frame_equal(test_df, expected_df) # diff --git a/geopandas/tests/test_pandas_methods.py b/geopandas/tests/test_pandas_methods.py index ed63b36..d34fe8b 100644 --- a/geopandas/tests/test_pandas_methods.py +++ b/geopandas/tests/test_pandas_methods.py @@ -9,7 +9,7 @@ from shapely.geometry import Point, GeometryCollection import geopandas from geopandas import GeoDataFrame, GeoSeries -from geopandas._compat import PANDAS_GE_024, PANDAS_GE_025, PANDAS_GE_11 +from geopandas._compat import PANDAS_GE_025, PANDAS_GE_11 from geopandas.array import from_shapely from geopandas.testing import assert_geodataframe_equal, assert_geoseries_equal @@ -39,9 +39,6 @@ def test_repr(s, df): assert "POINT" in df._repr_html_() -@pytest.mark.skipif( - not PANDAS_GE_024, reason="formatting for EA only implemented in 0.24.0" -) def test_repr_boxed_display_precision(): # geographic coordinates p1 = Point(10.123456789, 50.123456789) @@ -299,9 +296,6 @@ def test_numerical_operations(s, df): assert_frame_equal(res, exp) -@pytest.mark.skipif( - not PANDAS_GE_024, reason="where for EA only implemented in 0.24.0 (GH24114)" -) def test_where(s): res = s.where(np.array([True, False, True])) exp = GeoSeries([Point(0, 0), None, Point(2, 2)]) diff --git a/requirements-dev.txt b/requirements-dev.txt index 95a7ea4..6462768 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,8 +1,8 @@ # required -fiona>=1.7 -pandas>=0.23.4 +fiona>=1.8 +pandas>=0.24 pyproj>=2.2.0 -shapely>=1.5 +shapely>=1.6 # geodatabase access psycopg2>=2.5.1 @@ -13,11 +13,10 @@ geopy # plotting descartes>=1.0 -matplotlib>=2.0 +matplotlib>=2.2 mapclassify # testing -mock>=1.0.1 # technically not need for python >= 3.3 pytest>=3.1.0 pytest-cov codecov diff --git a/setup.py b/setup.py index acb6411..1d1dfe5 100644 --- a/setup.py +++ b/setup.py @@ -29,7 +29,12 @@ such as PostGIS. if os.environ.get("READTHEDOCS", False) == "True": INSTALL_REQUIRES = [] else: - INSTALL_REQUIRES = ["pandas >= 0.23.0", "shapely", "fiona", "pyproj >= 2.2.0"] + INSTALL_REQUIRES = [ + "pandas >= 0.24.0", + "shapely >= 1.6", + "fiona >= 1.8", + "pyproj >= 2.2.0", + ] # get all data dirs in the datasets module data_files = [] @@ -62,7 +67,7 @@ setup( "geopandas.tools.tests", ], package_data={"geopandas": data_files}, - python_requires=">=3.5", + python_requires=">=3.6", install_requires=INSTALL_REQUIRES, cmdclass=versioneer.get_cmdclass(), ) From 785f2386d71e33a42f9847be5f71d07181a26365 Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Tue, 28 Jul 2020 21:56:25 +0100 Subject: [PATCH 017/316] CI: pin mapclassify (#1545) --- ci/travis/36-pd025.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/travis/36-pd025.yaml b/ci/travis/36-pd025.yaml index 30be1cb..713078a 100644 --- a/ci/travis/36-pd025.yaml +++ b/ci/travis/36-pd025.yaml @@ -25,5 +25,5 @@ dependencies: - pyproj==2.3.1 - codecov - geopy - - mapclassify>=2.2.0 + - mapclassify==2.2.0 - git+https://github.com/pygeos/pygeos.git From 55ca9175717293c94e62ca3f6b1cdd8a3dea3651 Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Fri, 31 Jul 2020 19:48:22 +0100 Subject: [PATCH 018/316] TST: Fix CI for pandas 1.1.0 (#1544) --- geopandas/_compat.py | 2 +- geopandas/tests/test_pandas_methods.py | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/geopandas/_compat.py b/geopandas/_compat.py index bdf6176..907678b 100644 --- a/geopandas/_compat.py +++ b/geopandas/_compat.py @@ -12,7 +12,7 @@ import shapely PANDAS_GE_025 = str(pd.__version__) >= LooseVersion("0.25.0") PANDAS_GE_10 = str(pd.__version__) >= LooseVersion("0.26.0.dev") -PANDAS_GE_11 = str(pd.__version__) >= LooseVersion("1.1.0.dev") +PANDAS_GE_11 = str(pd.__version__) >= LooseVersion("1.1.0") # ----------------------------------------------------------------------------- diff --git a/geopandas/tests/test_pandas_methods.py b/geopandas/tests/test_pandas_methods.py index d34fe8b..354a637 100644 --- a/geopandas/tests/test_pandas_methods.py +++ b/geopandas/tests/test_pandas_methods.py @@ -272,14 +272,15 @@ def test_numerical_operations(s, df): exp = pd.Series([3, 4], index=["value1", "value2"]) assert_series_equal(df.sum(), exp) - # series methods raise error + # series methods raise error (not supported for geometry) with pytest.raises(TypeError): s.sum() with pytest.raises(TypeError): s.max() - with pytest.raises(TypeError): + with pytest.raises((TypeError, ValueError)): + # TODO: remove ValueError after pandas-dev/pandas#32749 s.idxmax() # numerical ops raise an error From 1b0f006ba1a07f7896d7e5854fa5954ca1d83213 Mon Sep 17 00:00:00 2001 From: Sergio Rey Date: Mon, 3 Aug 2020 01:09:11 -0700 Subject: [PATCH 019/316] DOC: update mapclassify doc links (#1557) * [DOC] update mapclassify doc link * Update mapclassify doc link in source --- doc/source/mapping.rst | 2 +- geopandas/plotting.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/source/mapping.rst b/doc/source/mapping.rst index c278db2..dbad330 100644 --- a/doc/source/mapping.rst +++ b/doc/source/mapping.rst @@ -113,7 +113,7 @@ To make the color transparent for when you just want to show the boundary, you h The way color maps are scaled can also be manipulated with the ``scheme`` option (if you have ``mapclassify`` installed, which can be accomplished via ``conda install -c conda-forge mapclassify``). The ``scheme`` option can be set to any scheme provided by mapclassify (e.g. 'box_plot', 'equal_interval', -'fisher_jenks', 'fisher_jenks_sampled', 'headtail_breaks', 'jenks_caspall', 'jenks_caspall_forced', 'jenks_caspall_sampled', 'max_p_classifier', 'maximum_breaks', 'natural_breaks', 'quantiles', 'percentiles', 'std_mean' or 'user_defined'). Arguments can be passed in classification_kwds dict. See the `mapclassify documentation `_ for further details about these map classification schemes. +'fisher_jenks', 'fisher_jenks_sampled', 'headtail_breaks', 'jenks_caspall', 'jenks_caspall_forced', 'jenks_caspall_sampled', 'max_p_classifier', 'maximum_breaks', 'natural_breaks', 'quantiles', 'percentiles', 'std_mean' or 'user_defined'). Arguments can be passed in classification_kwds dict. See the `mapclassify documentation `_ for further details about these map classification schemes. .. ipython:: python diff --git a/geopandas/plotting.py b/geopandas/plotting.py index 330da9d..b827e78 100644 --- a/geopandas/plotting.py +++ b/geopandas/plotting.py @@ -844,7 +844,7 @@ def _mapclassify_choro(values, scheme, **classification_kwds): **classification_kwds : dict Keyword arguments for classification scheme For details see mapclassify documentation: - https://mapclassify.readthedocs.io/en/latest/api.html + https://pysal.org/mapclassify/api.html Returns ------- From 11cfb783a5cd9c600b15603b4d01738fba0d948a Mon Sep 17 00:00:00 2001 From: James McBride Date: Tue, 4 Aug 2020 23:14:46 -0700 Subject: [PATCH 020/316] CLN: Remove unused make_valid argument (#1553) --- geopandas/tools/overlay.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/geopandas/tools/overlay.py b/geopandas/tools/overlay.py index 514173c..c352e2a 100644 --- a/geopandas/tools/overlay.py +++ b/geopandas/tools/overlay.py @@ -137,7 +137,7 @@ def _overlay_union(df1, df2): return dfunion.reindex(columns=columns) -def overlay(df1, df2, how="intersection", make_valid=True, keep_geom_type=True): +def overlay(df1, df2, how="intersection", keep_geom_type=True): """Perform spatial overlay between two GeoDataFrames. Currently only supports data GeoDataFrames with uniform geometry types, From 0b804ea8afc9cf743643016048c65c8b07818af8 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Wed, 5 Aug 2020 21:00:26 +0200 Subject: [PATCH 021/316] BUG: ensure CRS object also for empty GeoDataFrame (#1560) Co-authored-by: Brendan Ward --- geopandas/geodataframe.py | 2 +- geopandas/tests/test_crs.py | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/geopandas/geodataframe.py b/geopandas/geodataframe.py index de1ca27..8b2e089 100644 --- a/geopandas/geodataframe.py +++ b/geopandas/geodataframe.py @@ -90,7 +90,7 @@ class GeoDataFrame(GeoPandasBase, DataFrame): # need to set this before calling self['geometry'], because # getitem accesses crs - self._crs = crs if crs is not None else None + self._crs = CRS.from_user_input(crs) if crs else None # set_geometry ensures the geometry data have the proper dtype, # but is not called if `geometry=None` ('geometry' column present diff --git a/geopandas/tests/test_crs.py b/geopandas/tests/test_crs.py index 222b3ba..2936d00 100644 --- a/geopandas/tests/test_crs.py +++ b/geopandas/tests/test_crs.py @@ -529,12 +529,18 @@ class TestGeometryArrayCRS: # CRS should be assigned to geometry def test_deprecation(self): with pytest.warns(FutureWarning): - GeoDataFrame([], crs=27700) + df = GeoDataFrame([], crs=27700) + + # https://github.com/geopandas/geopandas/issues/1548 + # ensure we still have converted the crs value to a CRS object + assert isinstance(df.crs, pyproj.CRS) with pytest.warns(FutureWarning): df = GeoDataFrame([]) df.crs = 27700 + assert isinstance(df.crs, pyproj.CRS) + # make sure that geometry column from list has CRS (__setitem__) def test_setitem_geometry(self): arr = from_shapely(self.geoms, crs=27700) From b366d890c35d68a52f7f608e47f00b89eaa85850 Mon Sep 17 00:00:00 2001 From: James McBride Date: Wed, 12 Aug 2020 00:46:36 -0700 Subject: [PATCH 022/316] BUG: Set clipped gdf geometry name based on input (#1566) --- geopandas/tools/clip.py | 2 +- geopandas/tools/tests/test_clip.py | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/geopandas/tools/clip.py b/geopandas/tools/clip.py index 8a1d6d1..da76e0f 100644 --- a/geopandas/tools/clip.py +++ b/geopandas/tools/clip.py @@ -66,7 +66,7 @@ def _clip_line_poly(gdf, poly): # Clip the data with the polygon if isinstance(gdf_sub, GeoDataFrame): clipped = gdf_sub.copy() - clipped["geometry"] = gdf_sub.intersection(poly) + clipped[gdf.geometry.name] = gdf_sub.intersection(poly) else: # GeoSeries clipped = gdf_sub.intersection(poly) diff --git a/geopandas/tools/tests/test_clip.py b/geopandas/tools/tests/test_clip.py index 40abaa0..328bc92 100644 --- a/geopandas/tools/tests/test_clip.py +++ b/geopandas/tools/tests/test_clip.py @@ -203,6 +203,20 @@ def test_clip_points(point_gdf, single_rectangle_gdf): assert_geodataframe_equal(clip_pts, exp) +def test_clip_points_geom_col_rename(point_gdf, single_rectangle_gdf): + """Test clipping a points GDF with a generic polygon geometry.""" + point_gdf_geom_col_rename = point_gdf.rename_geometry("geometry2") + clip_pts = clip(point_gdf_geom_col_rename, single_rectangle_gdf) + pts = np.array([[2, 2], [3, 4], [9, 8]]) + exp = GeoDataFrame( + [Point(xy) for xy in pts], + columns=["geometry2"], + crs="EPSG:4326", + geometry="geometry2", + ) + assert_geodataframe_equal(clip_pts, exp) + + def test_clip_poly(buffered_locations, single_rectangle_gdf): """Test clipping a polygon GDF with a generic polygon geometry.""" clipped_poly = clip(buffered_locations, single_rectangle_gdf) @@ -210,6 +224,16 @@ def test_clip_poly(buffered_locations, single_rectangle_gdf): assert all(clipped_poly.geom_type == "Polygon") +def test_clip_poly_geom_col_rename(buffered_locations, single_rectangle_gdf): + """Test clipping a polygon GDF with a generic polygon geometry.""" + + poly_gdf_geom_col_rename = buffered_locations.rename_geometry("geometry2") + clipped_poly = clip(poly_gdf_geom_col_rename, single_rectangle_gdf) + assert len(clipped_poly.geometry) == 3 + assert "geometry" not in clipped_poly.keys() + assert "geometry2" in clipped_poly.keys() + + def test_clip_poly_series(buffered_locations, single_rectangle_gdf): """Test clipping a polygon GDF with a generic polygon geometry.""" clipped_poly = clip(buffered_locations.geometry, single_rectangle_gdf) From b4b813a2a55c259429cb56213b29d34f2fd74156 Mon Sep 17 00:00:00 2001 From: Adrian Garcia Badaracco <1755071+adriangb@users.noreply.github.com> Date: Thu, 20 Aug 2020 09:50:55 -0500 Subject: [PATCH 023/316] REF: Move sindex to GeometryArray (#1444) --- benchmarks/sindex.py | 80 ++++++++++++++++------ geopandas/array.py | 11 +++ geopandas/base.py | 37 +--------- geopandas/geodataframe.py | 5 -- geopandas/geoseries.py | 2 - geopandas/sindex.py | 75 ++++++-------------- geopandas/tests/test_sindex.py | 121 ++++++++++++++++++++++----------- 7 files changed, 171 insertions(+), 160 deletions(-) diff --git a/benchmarks/sindex.py b/benchmarks/sindex.py index 9aeba80..1be3b58 100644 --- a/benchmarks/sindex.py +++ b/benchmarks/sindex.py @@ -2,6 +2,10 @@ from geopandas import read_file, datasets from geopandas.sindex import VALID_QUERY_PREDICATES +predicates = sorted(VALID_QUERY_PREDICATES, key=lambda x: (x is None, x)) +geom_types = ("mixed", "points", "polygons") + + def generate_test_df(): world = read_file(datasets.get_path("naturalearth_lowres")) capitals = read_file(datasets.get_path("naturalearth_cities")) @@ -16,44 +20,71 @@ def generate_test_df(): "points": points[points.is_valid], "polygons": polygons[polygons.is_valid], } + # ensure index is pre-generated + for data_type in data.keys(): + data[data_type].sindex.query(data[data_type].geometry.values.data[0]) return data -class Bench: +class BenchIntersection: - param_names = ["tree_geom_type"] - params = [["mixed", "points", "polygons"]] + param_names = ["input_geom_type", "tree_geom_type"] + params = [ + geom_types, + geom_types, + ] def setup(self, *args): self.data = generate_test_df() # cache bounds so that bound creation is not counted in benchmarks - self.bounds = [g.bounds for g in self.data["mixed"].geometry] + self.bounds = { + data_type: [g.bounds for g in self.data[data_type].geometry] + for data_type in self.data.keys() + } + + def time_intersects(self, input_geom_type, tree_geom_type): + tree = self.data[tree_geom_type].sindex + for bounds in self.bounds[input_geom_type]: + tree.intersection(bounds) + + +class BenchIndexCreation: + + param_names = ["tree_geom_type"] + params = [ + geom_types, + ] + + def setup(self, *args): + self.data = generate_test_df() def time_index_creation(self, tree_geom_type): """Time creation of spatial index. - Note: pygeos will only create the index once; this benchmark - is not intended to be used to compare rtree and pygeos. + Note: requires running a single query to ensure that + lazy-building indexes are actually built. """ - self.data[tree_geom_type]._invalidate_sindex() - self.data[tree_geom_type]._generate_sindex() - - def time_intersects(self, tree_geom_type): - for bounds in self.bounds: - self.data[tree_geom_type].sindex.intersection(bounds) - - def time_intersects_objects(self, tree_geom_type): - for bounds in self.bounds: - self.data[tree_geom_type].sindex.intersection(bounds, objects=True) + # Note: the GeoDataFram._sindex_generated attribute will + # be removed by GH#1444 but is kept so that + # benchmarks can be run comparing pre GH#1444 to + # post GH#1444 + self.data[tree_geom_type]._sindex_generated = None + self.data[tree_geom_type].geometry.values._sindex = None + tree = self.data[tree_geom_type].sindex + # also do a single query to ensure the index is actually + # generated and used + tree.query( + self.data[tree_geom_type].geometry.values.data[0] + ) class BenchQuery: param_names = ["predicate", "input_geom_type", "tree_geom_type"] params = [ - [*VALID_QUERY_PREDICATES], - ["mixed", "points", "polygons"], - ["mixed", "points", "polygons"], + predicates, + geom_types, + geom_types, ] def setup(self, *args): @@ -61,9 +92,14 @@ class BenchQuery: def time_query_bulk(self, predicate, input_geom_type, tree_geom_type): self.data[tree_geom_type].sindex.query_bulk( - self.data[input_geom_type].geometry, predicate=predicate + self.data[input_geom_type].geometry.values.data, + predicate=predicate, ) def time_query(self, predicate, input_geom_type, tree_geom_type): - for geo in self.data[input_geom_type].geometry.sample(10, random_state=0): - self.data[tree_geom_type].sindex.query(geo, predicate=predicate) + tree = self.data[tree_geom_type].sindex + for geom in self.data[input_geom_type].geometry.values.data: + tree.query( + geom, + predicate=predicate + ) diff --git a/geopandas/array.py b/geopandas/array.py index 3b071eb..2b3f2ea 100644 --- a/geopandas/array.py +++ b/geopandas/array.py @@ -27,6 +27,7 @@ except ImportError: from . import _compat as compat from . import _vectorized as vectorized +from .sindex import get_sindex_class class GeometryDtype(ExtensionDtype): @@ -280,6 +281,13 @@ class GeometryArray(ExtensionArray): self._crs = None self.crs = crs + self._sindex = None + + @property + def sindex(self): + if self._sindex is None: + self._sindex = get_sindex_class()(self.data) + return self._sindex @property def crs(self): @@ -366,6 +374,9 @@ class GeometryArray(ExtensionArray): "Value should be either a BaseGeometry or None, got %s" % str(value) ) + # invalidate spatial index + self._sindex = None + # TODO: use this once pandas-dev/pandas#33457 is fixed # if hasattr(value, "crs"): # if value.crs and (value.crs != self.crs): diff --git a/geopandas/base.py b/geopandas/base.py index ddada8f..4093487 100644 --- a/geopandas/base.py +++ b/geopandas/base.py @@ -11,7 +11,7 @@ from shapely.ops import cascaded_union import geopandas as gpd from .array import GeometryArray, GeometryDtype -from .sindex import get_sindex_class, has_sindex +from .sindex import has_sindex # for backwards compat # this will be static (will NOT follow USE_PYGEOS changes) @@ -91,37 +91,6 @@ def _delegate_geo_method(op, this, *args, **kwargs): class GeoPandasBase(object): - _sindex = None - _sindex_generated = False - - def _generate_sindex(self): - sindex_cls = get_sindex_class() - if sindex_cls is not None: - _sindex = sindex_cls(self.geometry) - if not _sindex.is_empty: - self._sindex = _sindex - else: - warn( - "Generated spatial index is empty and returned `None`. " - "Future versions of GeoPandas will return zero-length spatial " - "index instead of `None`. Use `len(gdf.sindex) > 0` " - "or `if gdf.sindex` instead of `if gd.sindex is not None` " - "to check for empty spatial indexes.", - FutureWarning, - stacklevel=3, - ) - self._sindex = None - self._sindex_generated = True - - def _invalidate_sindex(self): - """ - Indicates that the spatial index should be re-built next - time it's requested. - - """ - self._sindex = None - self._sindex_generated = False - @property def area(self): """Returns a ``Series`` containing the area of each geometry in the @@ -624,9 +593,7 @@ class GeoPandasBase(object): @property def sindex(self): - if not self._sindex_generated: - self._generate_sindex() - return self._sindex + return self.geometry.values.sindex def buffer(self, distance, resolution=16, **kwargs): """Returns a ``GeoSeries`` of geometries representing all points within diff --git a/geopandas/geodataframe.py b/geopandas/geodataframe.py index 8b2e089..0038aee 100644 --- a/geopandas/geodataframe.py +++ b/geopandas/geodataframe.py @@ -149,7 +149,6 @@ class GeoDataFrame(GeoPandasBase, DataFrame): ) # TODO: raise error in 0.9 or 0.10. self.set_geometry(geometry, inplace=True) - self._invalidate_sindex() if geometry is None and crs: warnings.warn( @@ -260,7 +259,6 @@ class GeoDataFrame(GeoPandasBase, DataFrame): frame.index = index frame._geometry_column_name = geo_column_name frame.crs = crs - frame._invalidate_sindex() if not inplace: return frame @@ -829,11 +827,9 @@ class GeoDataFrame(GeoPandasBase, DataFrame): geo_col = self._geometry_column_name if isinstance(result, Series) and isinstance(result.dtype, GeometryDtype): result.__class__ = GeoSeries - result._invalidate_sindex() elif isinstance(result, DataFrame) and geo_col in result: result.__class__ = GeoDataFrame result._geometry_column_name = geo_col - result._invalidate_sindex() elif isinstance(result, DataFrame) and geo_col not in result: result.__class__ = DataFrame return result @@ -883,7 +879,6 @@ class GeoDataFrame(GeoPandasBase, DataFrame): result.__class__ = GeoDataFrame result.crs = self.crs result._geometry_column_name = geo_col - result._invalidate_sindex() elif isinstance(result, DataFrame) and geo_col not in result: result.__class__ = DataFrame return result diff --git a/geopandas/geoseries.py b/geopandas/geoseries.py index ba73e69..24f084a 100644 --- a/geopandas/geoseries.py +++ b/geopandas/geoseries.py @@ -177,7 +177,6 @@ class GeoSeries(GeoPandasBase, Series): if not self.crs: self.crs = crs - self._invalidate_sindex() return self def __init__(self, *args, **kwargs): @@ -296,7 +295,6 @@ class GeoSeries(GeoPandasBase, Series): if type(val) == Series: val.__class__ = GeoSeries val.crs = self.crs - val._invalidate_sindex() return val def __getitem__(self, key): diff --git a/geopandas/sindex.py b/geopandas/sindex.py index 7159f68..6227312 100644 --- a/geopandas/sindex.py +++ b/geopandas/sindex.py @@ -1,6 +1,3 @@ -from collections import namedtuple -from warnings import warn - from shapely.geometry.base import BaseGeometry import pandas as pd import numpy as np @@ -73,8 +70,8 @@ if compat.HAS_RTREE: Parameters ---------- - geometry : GeoSeries - GeoSeries from which to build the spatial index. + geometry : np.array of Shapely geometries + Geometries from which to build the spatial index. """ # set of valid predicates for this spatial index @@ -83,8 +80,8 @@ if compat.HAS_RTREE: def __init__(self, geometry): stream = ( - (i, item.bounds, idx) - for i, (idx, item) in enumerate(geometry.iteritems()) + (i, item.bounds, None) + for i, item in enumerate(geometry) if pd.notnull(item) and not item.is_empty ) try: @@ -97,7 +94,7 @@ if compat.HAS_RTREE: super().__init__() # store reference to geometries for predicate queries - self.geometries = geometry.geometry.values + self.geometries = geometry # create a prepared geometry cache self._prepared_geometries = np.array( [None] * self.geometries.size, dtype=object @@ -157,7 +154,7 @@ if compat.HAS_RTREE: # query tree bounds = geometry.bounds # rtree operates on bounds - tree_idx = list(self.intersection(bounds, objects=False)) + tree_idx = list(self.intersection(bounds)) if not tree_idx: return np.array([], dtype=np.intp) @@ -244,26 +241,16 @@ if compat.HAS_RTREE: input_geometry_index.extend([i] * len(res)) return np.vstack([input_geometry_index, tree_index]) - def intersection(self, coordinates, objects=False): - """Find tree geometries that intersect the input coordinates. + def intersection(self, coordinates): + """Wrapper for rtree.index.Index.intersection. Parameters ---------- coordinates : sequence or array Sequence of the form (min_x, min_y, max_x, max_y) to query a rectangle or (x, y) to query a point. - objects : boolean, default False - If True, return the label based indexes. If False, integer indexes - are returned. """ - if objects: - warn( - "`objects` is deprecated and will be removed in a future version. " - "Instead, use `iloc` to index your GeoSeries/GeoDataFrame using " - "integer indexes returned by `intersection`.", - FutureWarning, - ) - return super().intersection(coordinates, objects) + return super().intersection(coordinates, objects=False) @property def size(self): @@ -280,7 +267,7 @@ if compat.HAS_RTREE: if compat.HAS_PYGEOS: from . import geoseries # noqa - from .array import GeometryArray, _shapely_to_geom # noqa + from . import array # noqa import pygeos # noqa class PyGEOSSTRTreeIndex(pygeos.STRtree): @@ -289,31 +276,25 @@ if compat.HAS_PYGEOS: Parameters ---------- - geometry : GeoSeries - GeoSeries from which to build the spatial index. + geometry : np.array of PyGEOS geometries + Geometries from which to build the spatial index. """ - # helper for loc/label based indexing in `intersection` method - with_objects = namedtuple("with_objects", "object id") - # set of valid predicates for this spatial index # by default, the global set valid_query_predicates = VALID_QUERY_PREDICATES def __init__(self, geometry): - # for compatibility with old RTree implementation, store ids/indexes - original_indexes = geometry.index # set empty geometries to None to avoid segfault on GEOS <= 3.6 # see: # https://github.com/pygeos/pygeos/issues/146 # https://github.com/pygeos/pygeos/issues/147 - non_empty = geometry.values.data.copy() + non_empty = geometry.copy() non_empty[pygeos.is_empty(non_empty)] = None # set empty geometries to None to mantain indexing - self.objects = self.ids = original_indexes super().__init__(non_empty) # store geometries, including empty geometries for user access - self.geometries = geometry.values.data.copy() + self.geometries = geometry.copy() def query(self, geometry, predicate=None, sort=False): """Wrapper for pygeos.query. @@ -322,7 +303,7 @@ if compat.HAS_PYGEOS: Parameters ---------- - geometry : single PyGEOS geometry + geometry : single PyGEOS or shapely geometry predicate : {None, 'intersects', 'within', 'contains', \ 'overlaps', 'crosses', 'touches'}, optional If predicate is provided, the input geometry is tested @@ -352,7 +333,7 @@ if compat.HAS_PYGEOS: ) if isinstance(geometry, BaseGeometry): - geometry = _shapely_to_geom(geometry) + geometry = array._shapely_to_geom(geometry) matches = super().query(geometry=geometry, predicate=predicate) @@ -402,7 +383,7 @@ if compat.HAS_PYGEOS: ) if isinstance(geometry, geoseries.GeoSeries): geometry = geometry.values.data - elif isinstance(geometry, GeometryArray): + elif isinstance(geometry, array.GeometryArray): geometry = geometry.data elif not isinstance(geometry, np.ndarray): geometry = np.asarray(geometry) @@ -417,7 +398,7 @@ if compat.HAS_PYGEOS: return res - def intersection(self, coordinates, objects=False): + def intersection(self, coordinates): """Wrapper for pygeos.query that uses the RTree API. Parameters @@ -425,18 +406,7 @@ if compat.HAS_PYGEOS: coordinates : sequence or array Sequence of the form (min_x, min_y, max_x, max_y) to query a rectangle or (x, y) to query a point. - objects : boolean, default False - If True, return the label based indexes. If False, integer indexes - are returned. """ - if objects: - warn( - "`objects` is deprecated and will be removed in a future version. " - "Instead, use `iloc` to index your GeoSeries/GeoDataFrame using " - "integer indexes returned by `intersection`.", - FutureWarning, - ) - # convert bounds to geometry # the old API uses tuples of bound, but pygeos uses geometries try: @@ -463,14 +433,7 @@ if compat.HAS_PYGEOS: "Got `coordinates` = {}.".format(coordinates) ) - if objects: - objs = self.objects[indexes].values - ids = self.ids[indexes] - return [ - self.with_objects(id=id, object=obj) for id, obj in zip(ids, objs) - ] - else: - return indexes + return indexes @property def size(self): diff --git a/geopandas/tests/test_sindex.py b/geopandas/tests/test_sindex.py index 241c672..bed2b04 100644 --- a/geopandas/tests/test_sindex.py +++ b/geopandas/tests/test_sindex.py @@ -45,9 +45,9 @@ class TestNoSindex: class TestSeriesSindex: def test_empty_geoseries(self): """Tests creating a spatial index from an empty GeoSeries.""" - with pytest.warns(FutureWarning, match="Generated spatial index is empty"): - # TODO: add checking len(GeoSeries().sindex) == 0 once deprecated - assert not GeoSeries(dtype=object).sindex + s = GeoSeries(dtype=object) + assert not s.sindex + assert len(s.sindex) == 0 def test_point(self): s = GeoSeries([Point(0, 0)]) @@ -60,12 +60,8 @@ class TestSeriesSindex: def test_empty_point(self): """Tests that a single empty Point results in an empty tree.""" s = GeoSeries([Point()]) - - with pytest.warns(FutureWarning, match="Generated spatial index is empty"): - # TODO: add checking len(s) == 0 once deprecated - assert not s.sindex - - assert s._sindex_generated is True + assert not s.sindex + assert len(s.sindex) == 0 def test_polygons(self): t1 = Polygon([(0, 0), (1, 0), (1, 1)]) @@ -86,9 +82,28 @@ class TestSeriesSindex: def test_lazy_build(self): s = GeoSeries([Point(0, 0)]) - assert s._sindex is None + assert s.values._sindex is None assert s.sindex.size == 1 - assert s._sindex is not None + assert s.values._sindex is not None + + def test_rebuild_on_item_change(self): + s = GeoSeries([Point(0, 0)]) + original_index = s.sindex + s.iloc[0] = Point(0, 0) + assert s.sindex is not original_index + + def test_rebuild_on_slice(self): + s = GeoSeries([Point(0, 0), Point(0, 0)]) + original_index = s.sindex + # Select a couple of rows + sliced = s.iloc[:1] + assert sliced.sindex is not original_index + # Select all rows + sliced = s.iloc[:] + assert sliced.sindex is original_index + # Select all rows and flip + sliced = s.iloc[::-1] + assert sliced.sindex is not original_index @pytest.mark.skipif(sys.platform.startswith("win"), reason="fails on AppVeyor") @@ -105,24 +120,57 @@ class TestFrameSindex: def test_sindex(self): self.df.crs = "epsg:4326" assert self.df.sindex.size == 5 - with pytest.warns(FutureWarning, match="`objects` is deprecated"): - # TODO: remove warning check once deprecated - hits = list(self.df.sindex.intersection((2.5, 2.5, 4, 4), objects=True)) + hits = list(self.df.sindex.intersection((2.5, 2.5, 4, 4))) assert len(hits) == 2 - assert hits[0].object == 3 + assert hits[0] == 3 def test_lazy_build(self): - assert self.df._sindex is None + assert self.df.geometry.values._sindex is None assert self.df.sindex.size == 5 - assert self.df._sindex is not None + assert self.df.geometry.values._sindex is not None def test_sindex_rebuild_on_set_geometry(self): # First build the sindex assert self.df.sindex is not None + original_index = self.df.sindex self.df.set_geometry( [Point(x, y) for x, y in zip(range(5, 10), range(5, 10))], inplace=True ) - assert self.df._sindex_generated is False + assert self.df.sindex is not original_index + + def test_rebuild_on_row_slice(self): + # Select a subset of rows rebuilds + original_index = self.df.sindex + sliced = self.df.iloc[:1] + assert sliced.sindex is not original_index + # Slicing all does not rebuild + original_index = self.df.sindex + sliced = self.df.iloc[:] + assert sliced.sindex is original_index + # Re-ordering rebuilds + sliced = self.df.iloc[::-1] + assert sliced.sindex is not original_index + + def test_rebuild_on_single_col_selection(self): + """Selecting a single column should not rebuild the spatial index.""" + # Selecting geometry column preserves the index + original_index = self.df.sindex + geometry_col = self.df["location"] + assert geometry_col.sindex is original_index + geometry_col = self.df.geometry + assert geometry_col.sindex is original_index + + @pytest.mark.skipif( + not compat.PANDAS_GE_10, reason="Column selection returns a copy on pd<=1.0.0", + ) + def test_rebuild_on_multiple_col_selection(self): + """Selecting a subset of columns preserves the index.""" + original_index = self.df.sindex + # Selecting a subset of columns preserves the index + subset1 = self.df[["location", "A"]] + assert subset1.sindex is original_index + subset2 = self.df[["A", "location"]] + assert subset2.sindex is original_index # Skip to accommodate Shapely geometries being unhashable @@ -135,28 +183,22 @@ class TestJoinSindex: def test_merge_geo(self): # First check that we gets hits from the boros frame. tree = self.boros.sindex - with pytest.warns(FutureWarning, match="`objects` is deprecated"): - # TODO: remove warning check once deprecated - hits = tree.intersection((1012821.80, 229228.26), objects=True) - res = [self.boros.loc[hit.object]["BoroName"] for hit in hits] + hits = tree.intersection((1012821.80, 229228.26)) + res = [self.boros.iloc[hit]["BoroName"] for hit in hits] assert res == ["Bronx", "Queens"] # Check that we only get the Bronx from this view. first = self.boros[self.boros["BoroCode"] < 3] tree = first.sindex - with pytest.warns(FutureWarning, match="`objects` is deprecated"): - # TODO: remove warning check once deprecated - hits = tree.intersection((1012821.80, 229228.26), objects=True) - res = [first.loc[hit.object]["BoroName"] for hit in hits] + hits = tree.intersection((1012821.80, 229228.26)) + res = [first.iloc[hit]["BoroName"] for hit in hits] assert res == ["Bronx"] # Check that we only get Queens from this view. second = self.boros[self.boros["BoroCode"] >= 3] tree = second.sindex - with pytest.warns(FutureWarning, match="`objects` is deprecated"): - # TODO: remove warning check once deprecated - hits = tree.intersection((1012821.80, 229228.26), objects=True) - res = ([second.loc[hit.object]["BoroName"] for hit in hits],) + hits = tree.intersection((1012821.80, 229228.26)) + res = ([second.iloc[hit]["BoroName"] for hit in hits],) assert res == ["Queens"] # Get both the Bronx and Queens again. @@ -164,10 +206,8 @@ class TestJoinSindex: assert len(merged) == 5 assert merged.sindex.size == 5 tree = merged.sindex - with pytest.warns(FutureWarning, match="`objects` is deprecated"): - # TODO: remove warning check once deprecated - hits = tree.intersection((1012821.80, 229228.26), objects=True) - res = [merged.loc[hit.object]["BoroName"] for hit in hits] + hits = tree.intersection((1012821.80, 229228.26)) + res = [merged.iloc[hit]["BoroName"] for hit in hits] assert res == ["Bronx", "Queens"] @@ -535,14 +575,15 @@ class TestPygeosInterface: def test_is_empty(self): """Tests the `is_empty` property.""" # create empty tree - cls_ = sindex.get_sindex_class() - empty = geopandas.GeoSeries(dtype=object) - tree = cls_(empty) - assert tree.is_empty + empty = geopandas.GeoSeries([], dtype=object) + assert empty.sindex.is_empty + empty = geopandas.GeoSeries([None]) + assert empty.sindex.is_empty + empty = geopandas.GeoSeries([Point()]) + assert empty.sindex.is_empty # create a non-empty tree non_empty = geopandas.GeoSeries([Point(0, 0)]) - tree = cls_(non_empty) - assert not tree.is_empty + assert not non_empty.sindex.is_empty @pytest.mark.parametrize( "predicate, expected_shape", From 953753896ad2c89dfcbb7dc85f54f61f0a70c765 Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Thu, 20 Aug 2020 21:48:19 +0100 Subject: [PATCH 024/316] DOC: Restructured documentation, use pydata-sphinx-theme (#1564) * use pydata theme * structure * fix links * adapt colors * getting started * buttons * buttons * rename, use myst, fill stuff * myst to env * cleanup * covered_by * review comments * fix link * use api --- .gitignore | 1 + doc/environment.yml | 5 +- doc/source/_static/custom.css | 56 ++++- doc/source/_static/geopandas_logo.svg | 62 +++++ doc/source/about.rst | 19 ++ doc/source/about/about_geopandas.rst | 24 ++ doc/source/about/citing.md | 50 ++++ doc/source/about/roadmap.md | 5 + doc/source/about/team.md | 9 + doc/source/changelog.rst | 1 - doc/source/community.rst | 14 ++ .../{ => community}/code_of_conduct.rst | 2 +- doc/source/{ => community}/contributing.rst | 0 doc/source/conf.py | 184 ++++++++------- doc/source/docs.rst | 17 ++ doc/source/docs/changelog.rst | 1 + doc/source/docs/reference.rst | 15 ++ doc/source/docs/reference/geodataframe.rst | 87 +++++++ doc/source/docs/reference/geoseries.rst | 168 ++++++++++++++ doc/source/docs/reference/io.rst | 37 +++ doc/source/docs/reference/testing.rst | 14 ++ doc/source/docs/reference/tools.rst | 17 ++ doc/source/docs/user_guide.rst | 18 ++ .../user_guide}/aggregation_with_dissolve.rst | 0 .../{ => docs/user_guide}/data_structures.rst | 2 +- .../{ => docs/user_guide}/geocoding.rst | 0 .../user_guide}/geometric_manipulations.rst | 12 +- doc/source/{ => docs/user_guide}/indexing.rst | 0 doc/source/{ => docs/user_guide}/io.rst | 0 doc/source/{ => docs/user_guide}/mapping.rst | 0 .../{ => docs/user_guide}/mergingdata.rst | 0 .../{ => docs/user_guide}/missing_empty.rst | 0 .../{ => docs/user_guide}/projections.rst | 0 .../{ => docs/user_guide}/set_operations.rst | 2 +- doc/source/getting_started.md | 64 ++++++ doc/source/{ => getting_started}/install.rst | 0 doc/source/getting_started/introduction.rst | 4 + doc/source/index.rst | 42 +--- doc/source/reference.rst | 217 ------------------ 39 files changed, 784 insertions(+), 365 deletions(-) create mode 100644 doc/source/_static/geopandas_logo.svg create mode 100644 doc/source/about.rst create mode 100644 doc/source/about/about_geopandas.rst create mode 100644 doc/source/about/citing.md create mode 100644 doc/source/about/roadmap.md create mode 100644 doc/source/about/team.md delete mode 100644 doc/source/changelog.rst create mode 100644 doc/source/community.rst rename doc/source/{ => community}/code_of_conduct.rst (99%) rename doc/source/{ => community}/contributing.rst (100%) create mode 100644 doc/source/docs.rst create mode 100644 doc/source/docs/changelog.rst create mode 100644 doc/source/docs/reference.rst create mode 100644 doc/source/docs/reference/geodataframe.rst create mode 100644 doc/source/docs/reference/geoseries.rst create mode 100644 doc/source/docs/reference/io.rst create mode 100644 doc/source/docs/reference/testing.rst create mode 100644 doc/source/docs/reference/tools.rst create mode 100644 doc/source/docs/user_guide.rst rename doc/source/{ => docs/user_guide}/aggregation_with_dissolve.rst (100%) rename doc/source/{ => docs/user_guide}/data_structures.rst (99%) rename doc/source/{ => docs/user_guide}/geocoding.rst (100%) rename doc/source/{ => docs/user_guide}/geometric_manipulations.rst (97%) rename doc/source/{ => docs/user_guide}/indexing.rst (100%) rename doc/source/{ => docs/user_guide}/io.rst (100%) rename doc/source/{ => docs/user_guide}/mapping.rst (100%) rename doc/source/{ => docs/user_guide}/mergingdata.rst (100%) rename doc/source/{ => docs/user_guide}/missing_empty.rst (100%) rename doc/source/{ => docs/user_guide}/projections.rst (100%) rename doc/source/{ => docs/user_guide}/set_operations.rst (99%) create mode 100644 doc/source/getting_started.md rename doc/source/{ => getting_started}/install.rst (100%) create mode 100644 doc/source/getting_started/introduction.rst delete mode 100644 doc/source/reference.rst diff --git a/.gitignore b/.gitignore index 5d7cabe..22f1b80 100644 --- a/.gitignore +++ b/.gitignore @@ -62,6 +62,7 @@ examples/nybb_*.zip doc/source/gallery doc/source/savefig doc/source/reference +doc/source/docs/reference/api geopandas.egg-info geopandas/version.py diff --git a/doc/environment.yml b/doc/environment.yml index 90614a6..f8acf59 100644 --- a/doc/environment.yml +++ b/doc/environment.yml @@ -13,9 +13,8 @@ dependencies: - descartes=1.1.0 - mapclassify=2.2.0 - sphinx=2.4.1 -- sphinx_rtd_theme=0.4.3 +- pydata_sphinx_theme=0.3.1 - numpydoc=0.9.2 -- recommonmark==0.6.0 - ipython=7.12.0 - pillow=7.0.0 - mock=3.0.5 @@ -32,3 +31,5 @@ dependencies: - libgdal=3.0.4 - proj=6.3.0 - geos=3.8.0 +- pip: + - myst-nb diff --git a/doc/source/_static/custom.css b/doc/source/_static/custom.css index e32de33..58cbdd7 100644 --- a/doc/source/_static/custom.css +++ b/doc/source/_static/custom.css @@ -1,17 +1,49 @@ -/*This ensures that clickable links in the SG examples are the right color*/ -div.section a span { - color: #2980B9 !important +/* colors */ + +h1 { + color: #139C5A; } -/*Copied from sphinx' basic.css to ensure the sphinx >2.0 docstrings are -rendered somewhat properly (xref https://github.com/numpy/numpydoc/issues/215) */ - -.classifier { - font-style: oblique; +h2 { + color: #333333; } -.classifier:before { - font-style: normal; - margin: 0.5em; - content: ":"; +.nav li.active>a, .navbar-nav>.active>.nav-link { + color: #139C5A!important; +} + +.toc-entry>.nav-link.active { + border-left-color: #139C5A; + color: #139C5A!important; +} + +.nav li>a:hover { + color: #333333!important; +} + +/* buttons */ + +.button>p>a { + box-shadow: 0px 4px 14px -7px #999999; + background-color: white; + border: 1px solid #bbbbbb; + display: inline-block; + cursor: pointer; + color: #139C5A; + padding: 1em 1em; + text-align: center; + text-decoration: none; + font-size: 140%; + margin: 2%; + width: 40%; +} + +.button>p>a:hover { + border-color: #139C5A; + color: #e32e00; +} + +.button>p>a:active { + position: relative; + top: 1px; } diff --git a/doc/source/_static/geopandas_logo.svg b/doc/source/_static/geopandas_logo.svg new file mode 100644 index 0000000..276e714 --- /dev/null +++ b/doc/source/_static/geopandas_logo.svg @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/source/about.rst b/doc/source/about.rst new file mode 100644 index 0000000..0e6b901 --- /dev/null +++ b/doc/source/about.rst @@ -0,0 +1,19 @@ +About GeoPandas +--------------- + +Links to About, Roadmap, Team and Citing. + +.. container:: button + + :doc:`About GeoPandas ` :doc:`Project Roadmap ` + :doc:`Team ` :doc:`Citing ` + +.. toctree:: + :maxdepth: 2 + :caption: About + :hidden: + + About GeoPandas + Roadmap + Team + Citing diff --git a/doc/source/about/about_geopandas.rst b/doc/source/about/about_geopandas.rst new file mode 100644 index 0000000..98d0152 --- /dev/null +++ b/doc/source/about/about_geopandas.rst @@ -0,0 +1,24 @@ +About GeoPandas +--------------- + +GeoPandas is an open source project to make working with geospatial +data in python easier. GeoPandas extends the datatypes used by +`pandas`_ to allow spatial operations on geometric types. Geometric +operations are performed by `shapely`_. Geopandas further depends on +`fiona`_ for file access and `descartes`_ and `matplotlib`_ for plotting. + +.. _pandas: http://pandas.pydata.org +.. _shapely: https://shapely.readthedocs.io +.. _fiona: https://fiona.readthedocs.io +.. _Descartes: https://pypi.python.org/pypi/descartes +.. _matplotlib: http://matplotlib.org + +Description +=========== + +The goal of GeoPandas is to make working with geospatial data in +python easier. It combines the capabilities of pandas and shapely, +providing geospatial operations in pandas and a high-level interface +to multiple geometries to shapely. GeoPandas enables you to easily do +operations in python that would otherwise require a spatial database +such as PostGIS. diff --git a/doc/source/about/citing.md b/doc/source/about/citing.md new file mode 100644 index 0000000..e01ef47 --- /dev/null +++ b/doc/source/about/citing.md @@ -0,0 +1,50 @@ +# Citing + +When citing GeoPandas, you can use [Zenodo DOI](https://zenodo.org/record/3946761#.Xy24LC2ZPOQ) for each release. +Below is the example of resulting BiBTeX record for GeoPandas 0.8.1 and a reference using APA 6th ed. + +_Kelsey Jordahl, Joris Van den Bossche, Martin Fleischmann, Jacob Wasserman, James McBride, Jeffrey Gerard, … François Leblanc. (2020, July 15). geopandas/geopandas: v0.8.1 (Version v0.8.1). Zenodo. http://doi.org/10.5281/zenodo.3946761_ + + +``` +@software{kelsey_jordahl_2020_3946761, + author = {Kelsey Jordahl and + Joris Van den Bossche and + Martin Fleischmann and + Jacob Wasserman and + James McBride and + Jeffrey Gerard and + Jeff Tratner and + Matthew Perry and + Adrian Garcia Badaracco and + Carson Farmer and + Geir Arne Hjelle and + Alan D. Snow and + Micah Cochran and + Sean Gillies and + Lucas Culbertson and + Matt Bartos and + Nick Eubank and + maxalbert and + Aleksey Bilogur and + Sergio Rey and + Christopher Ren and + Dani Arribas-Bel and + Leah Wasser and + Levi John Wolf and + Martin Journois and + Joshua Wilson and + Adam Greenhall and + Chris Holdgraf and + Filipe and + François Leblanc}, + title = {geopandas/geopandas: v0.8.1}, + month = jul, + year = 2020, + publisher = {Zenodo}, + version = {v0.8.1}, + doi = {10.5281/zenodo.3946761}, + url = {https://doi.org/10.5281/zenodo.3946761} +} +``` + diff --git a/doc/source/about/roadmap.md b/doc/source/about/roadmap.md new file mode 100644 index 0000000..a4ab6d9 --- /dev/null +++ b/doc/source/about/roadmap.md @@ -0,0 +1,5 @@ +# Roadmap + +## Roadmap for GeoPandas 1.0 + +WIP diff --git a/doc/source/about/team.md b/doc/source/about/team.md new file mode 100644 index 0000000..51074cb --- /dev/null +++ b/doc/source/about/team.md @@ -0,0 +1,9 @@ +# Team + +## Core developers + +- Joris Van den Bossche +- Martin Fleischmann +- James McBride +- Brendan Ward +- Levi Wolf diff --git a/doc/source/changelog.rst b/doc/source/changelog.rst deleted file mode 100644 index 5ec53ae..0000000 --- a/doc/source/changelog.rst +++ /dev/null @@ -1 +0,0 @@ -.. include:: ../../CHANGELOG.md diff --git a/doc/source/community.rst b/doc/source/community.rst new file mode 100644 index 0000000..53ad44a --- /dev/null +++ b/doc/source/community.rst @@ -0,0 +1,14 @@ +Community +--------- + +.. container:: button + + :doc:`Contributing ` :doc:`Code of Conduct ` + +.. toctree:: + :maxdepth: 2 + :caption: Community + :hidden: + + Contributing + Code of Conduct diff --git a/doc/source/code_of_conduct.rst b/doc/source/community/code_of_conduct.rst similarity index 99% rename from doc/source/code_of_conduct.rst rename to doc/source/community/code_of_conduct.rst index e80db51..332f809 100644 --- a/doc/source/code_of_conduct.rst +++ b/doc/source/community/code_of_conduct.rst @@ -92,7 +92,7 @@ free to contact the Code of Conduct Committee at 8. **A simple apology can go a long way**. It can often de-escalate a situation, and telling someone that you are sorry is an act of empathy that doesn’t - automatically imply an admission of guilt. + automatically imply an admission of guilt. Reporting --------- diff --git a/doc/source/contributing.rst b/doc/source/community/contributing.rst similarity index 100% rename from doc/source/contributing.rst rename to doc/source/community/contributing.rst diff --git a/doc/source/conf.py b/doc/source/conf.py index 8c76297..717a0cf 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -17,60 +17,65 @@ import warnings # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. -#sys.path.insert(0, os.path.abspath('.')) +# sys.path.insert(0, os.path.abspath('.')) # -- General configuration ----------------------------------------------------- # If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' +# needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. -extensions = ['IPython.sphinxext.ipython_console_highlighting', - 'IPython.sphinxext.ipython_directive', - 'sphinx_gallery.gen_gallery', - 'sphinx.ext.autosummary', - 'sphinx.ext.intersphinx', - 'sphinx.ext.autodoc', - 'recommonmark', - 'numpydoc', +extensions = [ + "IPython.sphinxext.ipython_console_highlighting", + "IPython.sphinxext.ipython_directive", + "sphinx_gallery.gen_gallery", + "sphinx.ext.autosummary", + "sphinx.ext.intersphinx", + "sphinx.ext.autodoc", + "myst_nb", + "numpydoc", ] # continue doc build and only print warnings/errors in examples ipython_warning_is_error = False ipython_exec_lines = [ # ensure that dataframes are not truncated in the IPython code blocks - 'import pandas as _pd', + "import pandas as _pd", '_pd.set_option("display.max_columns", 20)', - '_pd.set_option("display.width", 100)' + '_pd.set_option("display.width", 100)', ] # Fix issue with warnings from numpydoc (see discussion in PR #534) numpydoc_show_class_members = False + def setup(app): - app.add_stylesheet('custom.css') # may also be an URL + app.add_stylesheet("custom.css") # may also be an URL + # Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] +templates_path = ["_templates"] autosummary_generate = True # Sphinx gallery configuration sphinx_gallery_conf = { - 'examples_dirs': ['../../examples'], - 'filename_pattern': '^((?!sgskip).)*$', - 'gallery_dirs': ['gallery'], - 'doc_module': ('geopandas',), - 'reference_url': {'matplotlib': 'http://matplotlib.org', - 'numpy': 'http://docs.scipy.org/doc/numpy', - 'scipy': 'http://docs.scipy.org/doc/scipy/reference', - 'geopandas': None}, - 'backreferences_dir': 'reference' + "examples_dirs": ["../../examples"], + "filename_pattern": "^((?!sgskip).)*$", + "gallery_dirs": ["gallery"], + "doc_module": ("geopandas",), + "reference_url": { + "matplotlib": "http://matplotlib.org", + "numpy": "http://docs.scipy.org/doc/numpy", + "scipy": "http://docs.scipy.org/doc/scipy/reference", + "geopandas": None, + }, + "backreferences_dir": "reference", } # connect docs in other projects -intersphinx_mapping = {'pyproj': ('http://pyproj4.github.io/pyproj/stable/', None)} +intersphinx_mapping = {"pyproj": ("http://pyproj4.github.io/pyproj/stable/", None)} # suppress matplotlib warning in examples warnings.filterwarnings( "ignore", @@ -80,193 +85,190 @@ warnings.filterwarnings( ) # The suffix of source filenames. -source_suffix = ['.rst', '.md'] +source_suffix = [".rst", ".md"] # The encoding of source files. -#source_encoding = 'utf-8-sig' +# source_encoding = 'utf-8-sig' # The master toctree document. -master_doc = 'index' +master_doc = "index" # General information about the project. -project = u'GeoPandas' -copyright = u'2013–2019, GeoPandas developers' +project = u"GeoPandas" +copyright = u"2013–2019, GeoPandas developers" # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. import geopandas + version = release = geopandas.__version__ # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. -#language = None +# language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: -#today = '' +# today = '' # Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' +# today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. exclude_patterns = [] # The reST default role (used for this markup: `text`) to use for all documents. -#default_role = None +# default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True +# add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). -#add_module_names = True +# add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. -#show_authors = False +# show_authors = False # The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' +pygments_style = "sphinx" # A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] +# modindex_common_prefix = [] # -- Options for HTML output --------------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -import sphinx_rtd_theme -html_theme = "sphinx_rtd_theme" -html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] +html_theme = "pydata_sphinx_theme" # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. -#html_theme_options = {} +html_theme_options = { + "search_bar_position": "sidebar", + "github_url": "https://github.com/geopandas/geopandas", + "twitter_url": "https://twitter.com/geopandas", +} # Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] +# html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". -#html_title = None +# html_title = None # A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None +# html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. -#html_logo = None +html_logo = "_static/geopandas_logo.svg" # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. -#html_favicon = None +# html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] +html_static_path = ["_static"] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' +# html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. -#html_use_smartypants = True +# html_use_smartypants = True # Custom sidebar templates, maps document names to template names. -#html_sidebars = {} +# html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. -#html_additional_pages = {} +# html_additional_pages = {} # If false, no module index is generated. -#html_domain_indices = True +# html_domain_indices = True # If false, no index is generated. -#html_use_index = True +# html_use_index = True # If true, the index is split into individual pages for each letter. -#html_split_index = False +# html_split_index = False # If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True +# html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True +# html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True +# html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. -#html_use_opensearch = '' +# html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None +# html_file_suffix = None # Output file base name for HTML help builder. -htmlhelp_basename = 'GeoPandasdoc' +htmlhelp_basename = "GeoPandasdoc" # -- Options for LaTeX output -------------------------------------------------- latex_elements = { -# The paper size ('letterpaper' or 'a4paper'). -#'papersize': 'letterpaper', - -# The font size ('10pt', '11pt' or '12pt'). -#'pointsize': '10pt', - -# Additional stuff for the LaTeX preamble. -#'preamble': '', + # The paper size ('letterpaper' or 'a4paper'). + #'papersize': 'letterpaper', + # The font size ('10pt', '11pt' or '12pt'). + #'pointsize': '10pt', + # Additional stuff for the LaTeX preamble. + #'preamble': '', } # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass [howto/manual]). latex_documents = [ - ('index', 'GeoPandas.tex', u'GeoPandas Documentation', - u'Kelsey Jordahl', 'manual'), + ("index", "GeoPandas.tex", u"GeoPandas Documentation", u"Kelsey Jordahl", "manual"), ] # The name of an image file (relative to this directory) to place at the top of # the title page. -#latex_logo = None +# latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. -#latex_use_parts = False +# latex_use_parts = False # If true, show page references after internal links. -#latex_show_pagerefs = False +# latex_show_pagerefs = False # If true, show URL addresses after external links. -#latex_show_urls = False +# latex_show_urls = False # Documents to append as an appendix to all manuals. -#latex_appendices = [] +# latex_appendices = [] # If false, no module index is generated. -#latex_domain_indices = True +# latex_domain_indices = True # -- Options for manual page output -------------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). -man_pages = [ - ('index', 'geopandas', u'GeoPandas Documentation', - [u'Kelsey Jordahl'], 1) -] +man_pages = [("index", "geopandas", u"GeoPandas Documentation", [u"Kelsey Jordahl"], 1)] # If true, show URL addresses after external links. -#man_show_urls = False +# man_show_urls = False # -- Options for Texinfo output ------------------------------------------------ @@ -275,16 +277,22 @@ man_pages = [ # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ - ('index', 'GeoPandas', u'GeoPandas Documentation', - u'Kelsey Jordahl', 'GeoPandas', 'One line description of project.', - 'Miscellaneous'), + ( + "index", + "GeoPandas", + u"GeoPandas Documentation", + u"Kelsey Jordahl", + "GeoPandas", + "One line description of project.", + "Miscellaneous", + ), ] # Documents to append as an appendix to all manuals. -#texinfo_appendices = [] +# texinfo_appendices = [] # If false, no module index is generated. -#texinfo_domain_indices = True +# texinfo_domain_indices = True # How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' +# texinfo_show_urls = 'footnote' diff --git a/doc/source/docs.rst b/doc/source/docs.rst new file mode 100644 index 0000000..99d0cb3 --- /dev/null +++ b/doc/source/docs.rst @@ -0,0 +1,17 @@ +Documentation +------------- + +Links to different parts of documentation. + +.. container:: button + + :doc:`User Guide ` :doc:`API reference ` + +.. toctree:: + :maxdepth: 2 + :caption: Documentation + + User Guide + API reference + Changelog +.. Advanced Guide diff --git a/doc/source/docs/changelog.rst b/doc/source/docs/changelog.rst new file mode 100644 index 0000000..1b3e43f --- /dev/null +++ b/doc/source/docs/changelog.rst @@ -0,0 +1 @@ +.. include:: ../../../CHANGELOG.md diff --git a/doc/source/docs/reference.rst b/doc/source/docs/reference.rst new file mode 100644 index 0000000..d4f9bdf --- /dev/null +++ b/doc/source/docs/reference.rst @@ -0,0 +1,15 @@ +.. _reference: + +Reference +========= + +.. toctree:: + :maxdepth: 2 + :caption: API Reference + + GeoSeries + GeoDataFrame + Input/output + Tools + Testing + diff --git a/doc/source/docs/reference/geodataframe.rst b/doc/source/docs/reference/geodataframe.rst new file mode 100644 index 0000000..60c94c2 --- /dev/null +++ b/doc/source/docs/reference/geodataframe.rst @@ -0,0 +1,87 @@ +============ +GeoDataFrame +============ +.. currentmodule:: geopandas + +A ``GeoDataFrame`` is a tabular data structure that contains a column +which contains a ``GeoSeries`` storing geometry. + +Constructor +----------- +.. autosummary:: + :toctree: api/ + + GeoDataFrame + +Reading and writing files +------------------------- + +.. autosummary:: + :toctree: api/ + + GeoDataFrame.from_file + GeoDataFrame.from_features + GeoDataFrame.from_postgis + GeoDataFrame.to_file + GeoDataFrame.to_json + GeoDataFrame.to_parquet + GeoDataFrame.to_feather + GeoDataFrame.to_postgis + +Projection handling +------------------- + +.. autosummary:: + :toctree: api/ + + GeoDataFrame.crs + GeoDataFrame.set_crs + GeoDataFrame.to_crs + +Active geometry handling +------------------------ + +.. autosummary:: + :toctree: api/ + + GeoDataFrame.rename_geometry + GeoDataFrame.set_geometry + +Aggregating and exploding +------------------------- + +.. autosummary:: + :toctree: api/ + + GeoDataFrame.dissolve + GeoDataFrame.explode + +Plotting +-------- + +.. autosummary:: + :toctree: api/ + + GeoDataFrame.plot + + +Spatial index +------------- + +.. autosummary:: + :toctree: api/ + + GeoDataFrame.sindex + +Interface +--------- + +.. autosummary:: + :toctree: api/ + + GeoDataFrame.__geo_interface__ + +All pandas ``DataFrame`` methods are also available, although they may +not operate in a meaningful way on the ``geometry`` column. All methods +listed in `GeoSeries `__ work directly on an active geometry column of GeoDataFrame. + diff --git a/doc/source/docs/reference/geoseries.rst b/doc/source/docs/reference/geoseries.rst new file mode 100644 index 0000000..16921e2 --- /dev/null +++ b/doc/source/docs/reference/geoseries.rst @@ -0,0 +1,168 @@ +========= +GeoSeries +========= +.. currentmodule:: geopandas + +Constructor +----------- +.. autosummary:: + :toctree: api/ + + GeoSeries + +General methods and attributes +------------------------------ + +.. autosummary:: + :toctree: api/ + + GeoSeries.area + GeoSeries.bounds + GeoSeries.total_bounds + GeoSeries.length + GeoSeries.geom_type + GeoSeries.distance + GeoSeries.representative_point + GeoSeries.exterior + GeoSeries.interiors + GeoSeries.x + GeoSeries.y + +Unary predicates +---------------- + +.. autosummary:: + :toctree: api/ + + GeoSeries.is_empty + GeoSeries.is_ring + GeoSeries.is_simple + GeoSeries.is_valid + GeoSeries.has_z + + +Binary Predicates +----------------- + +.. autosummary:: + :toctree: api/ + + GeoSeries.geom_almost_equals + GeoSeries.contains + GeoSeries.crosses + GeoSeries.disjoint + GeoSeries.geom_equals + GeoSeries.intersects + GeoSeries.overlaps + GeoSeries.touches + GeoSeries.within + GeoSeries.covers + GeoSeries.covered_by + + +Set-theoretic Methods +--------------------- + +.. autosummary:: + :toctree: api/ + + GeoSeries.difference + GeoSeries.intersection + GeoSeries.symmetric_difference + GeoSeries.union + +Constructive Methods and Attributes +----------------------------------- + +.. autosummary:: + :toctree: api/ + + GeoSeries.buffer + GeoSeries.boundary + GeoSeries.centroid + GeoSeries.convex_hull + GeoSeries.envelope + GeoSeries.simplify + +Affine transformations +---------------------- + +.. autosummary:: + :toctree: api/ + + GeoSeries.affine_transform + GeoSeries.rotate + GeoSeries.scale + GeoSeries.skew + GeoSeries.translate + +Aggregating methods +------------------- + +.. autosummary:: + :toctree: api/ + + GeoSeries.unary_union + +Reading and writing files +------------------------- + +.. autosummary:: + :toctree: api/ + + GeoSeries.from_file + GeoSeries.to_file + GeoSeries.to_json + +Projection handling +------------------- + +.. autosummary:: + :toctree: api/ + + GeoSeries.crs + GeoSeries.set_crs + GeoSeries.to_crs + +Missing values +-------------- + +.. autosummary:: + :toctree: api/ + + GeoSeries.fillna + GeoSeries.isna + GeoSeries.notna + +Plotting +-------- + +.. autosummary:: + :toctree: api/ + + GeoSeries.plot + + +Spatial index +------------- + +.. autosummary:: + :toctree: api/ + + GeoSeries.sindex + +Interface +--------- + +.. autosummary:: + :toctree: api/ + + GeoSeries.__geo_interface__ + + +Methods of pandas ``Series`` objects are also available, although not +all are applicable to geometric objects and some may return a +``Series`` rather than a ``GeoSeries`` result when appropriate. The methods +``isna()`` and ``fillna()`` have been +implemented specifically for ``GeoSeries`` and are expected to work +correctly. diff --git a/doc/source/docs/reference/io.rst b/doc/source/docs/reference/io.rst new file mode 100644 index 0000000..f5d77ae --- /dev/null +++ b/doc/source/docs/reference/io.rst @@ -0,0 +1,37 @@ +============ +Input/output +============ +.. currentmodule:: geopandas + +GIS vector files +---------------- +.. autosummary:: + :toctree: api/ + + read_file + GeoDataFrame.to_file + +PostGIS +------- +.. autosummary:: + :toctree: api/ + + read_postgis + GeoDataFrame.to_postgis + + +Feather +------- +.. autosummary:: + :toctree: api/ + + read_feather + GeoDataFrame.to_feather + +Parquet +------- +.. autosummary:: + :toctree: api/ + + read_parquet + GeoDataFrame.to_parquet diff --git a/doc/source/docs/reference/testing.rst b/doc/source/docs/reference/testing.rst new file mode 100644 index 0000000..d8a5ce6 --- /dev/null +++ b/doc/source/docs/reference/testing.rst @@ -0,0 +1,14 @@ +======= +Testing +======= +.. currentmodule:: geopandas + +GeoPandas includes specific functions to test its objects. + +.. autosummary:: + :toctree: api/ + + .. testing.geom_equals + .. testing.geom_almost_equals + testing.assert_geoseries_equal + testing.assert_geodataframe_equal diff --git a/doc/source/docs/reference/tools.rst b/doc/source/docs/reference/tools.rst new file mode 100644 index 0000000..ee31e4f --- /dev/null +++ b/doc/source/docs/reference/tools.rst @@ -0,0 +1,17 @@ +===== +Tools +===== +.. currentmodule:: geopandas + +.. autosummary:: + :toctree: api/ + + sjoin + overlay + clip + tools.geocode + tools.reverse_geocode + tools.collect + points_from_xy + datasets.available + datasets.get_path diff --git a/doc/source/docs/user_guide.rst b/doc/source/docs/user_guide.rst new file mode 100644 index 0000000..6c15e7f --- /dev/null +++ b/doc/source/docs/user_guide.rst @@ -0,0 +1,18 @@ +User Guide +========== + +.. toctree:: + :maxdepth: 2 + :caption: User Guide + + Data Structures + Reading and Writing Files + Indexing and Selecting Data + Making Maps + Managing Projections + Geometric Manipulations + Set Operations with overlay + Aggregation with dissolve + Merging Data + Geocoding + user_guide/missing_empty diff --git a/doc/source/aggregation_with_dissolve.rst b/doc/source/docs/user_guide/aggregation_with_dissolve.rst similarity index 100% rename from doc/source/aggregation_with_dissolve.rst rename to doc/source/docs/user_guide/aggregation_with_dissolve.rst diff --git a/doc/source/data_structures.rst b/doc/source/docs/user_guide/data_structures.rst similarity index 99% rename from doc/source/data_structures.rst rename to doc/source/docs/user_guide/data_structures.rst index 998249c..256152b 100644 --- a/doc/source/data_structures.rst +++ b/doc/source/docs/user_guide/data_structures.rst @@ -48,7 +48,7 @@ element of the series with that geometry. In either case, a ``Series`` or a :class:`GeoSeries` will be returned, as appropriate. A short summary of a few attributes and methods for GeoSeries is -presented here, and a full list can be found in the :doc:`all attributes and methods page `. +presented here, and a full list can be found in the :doc:`all attributes and methods page <../reference/geoseries>`. There is also a family of methods for creating new shapes by expanding existing shapes or applying set-theoretic operations like "union" described in :doc:`geometric manipulations `. diff --git a/doc/source/geocoding.rst b/doc/source/docs/user_guide/geocoding.rst similarity index 100% rename from doc/source/geocoding.rst rename to doc/source/docs/user_guide/geocoding.rst diff --git a/doc/source/geometric_manipulations.rst b/doc/source/docs/user_guide/geometric_manipulations.rst similarity index 97% rename from doc/source/geometric_manipulations.rst rename to doc/source/docs/user_guide/geometric_manipulations.rst index 4eefb4e..0ce70fc 100644 --- a/doc/source/geometric_manipulations.rst +++ b/doc/source/docs/user_guide/geometric_manipulations.rst @@ -90,7 +90,7 @@ Examples of Geometric Manipulations 2 POLYGON ((2 0, 3 0, 3 1, 2 1, 2 0)) dtype: geometry -.. image:: _static/test.png +.. image:: ../../_static/test.png Some geographic operations return normal pandas object. The ``area`` property of a ``GeoSeries`` will return a ``pandas.Series`` containing the area of each item in the ``GeoSeries``: @@ -112,7 +112,7 @@ Other operations return GeoPandas objects: 2 POLYGON ((1.5 0, 1.5 1, 1.502407636663901 1.04... dtype: geometry -.. image:: _static/test_buffer.png +.. image:: ../../_static/test_buffer.png GeoPandas objects also know how to plot themselves. GeoPandas uses `descartes`_ to generate a `matplotlib`_ plot. To generate a plot of our GeoSeries, use: @@ -145,7 +145,7 @@ GeoPandas also implements alternate constructors that can read any data format r 4 MULTIPOLYGON (((1029606.076599121 156073.81420... 5 MULTIPOLYGON (((970217.0223999023 145643.33221... -.. image:: _static/nyc.png +.. image:: ../../_static/nyc.png .. sourcecode:: python @@ -158,7 +158,7 @@ GeoPandas also implements alternate constructors that can read any data format r 5 POLYGON ((915517.6877458114 120121.8812543372,... dtype: geometry -.. image:: _static/nyc_hull.png +.. image:: ../../_static/nyc_hull.png To demonstrate a more complex operation, we'll generate a ``GeoSeries`` containing 2000 random points: @@ -192,7 +192,7 @@ just use: >>> holes = boros['geometry'].intersection(mp) -.. image:: _static/holes.png +.. image:: ../../_static/holes.png and to get the area outside of the holes: @@ -200,7 +200,7 @@ and to get the area outside of the holes: >>> boros_with_holes = boros['geometry'].difference(mp) -.. image:: _static/boros_with_holes.png +.. image:: ../../_static/boros_with_holes.png Note that this can be simplified a bit, since ``geometry`` is available as an attribute on a ``GeoDataFrame``, and the diff --git a/doc/source/indexing.rst b/doc/source/docs/user_guide/indexing.rst similarity index 100% rename from doc/source/indexing.rst rename to doc/source/docs/user_guide/indexing.rst diff --git a/doc/source/io.rst b/doc/source/docs/user_guide/io.rst similarity index 100% rename from doc/source/io.rst rename to doc/source/docs/user_guide/io.rst diff --git a/doc/source/mapping.rst b/doc/source/docs/user_guide/mapping.rst similarity index 100% rename from doc/source/mapping.rst rename to doc/source/docs/user_guide/mapping.rst diff --git a/doc/source/mergingdata.rst b/doc/source/docs/user_guide/mergingdata.rst similarity index 100% rename from doc/source/mergingdata.rst rename to doc/source/docs/user_guide/mergingdata.rst diff --git a/doc/source/missing_empty.rst b/doc/source/docs/user_guide/missing_empty.rst similarity index 100% rename from doc/source/missing_empty.rst rename to doc/source/docs/user_guide/missing_empty.rst diff --git a/doc/source/projections.rst b/doc/source/docs/user_guide/projections.rst similarity index 100% rename from doc/source/projections.rst rename to doc/source/docs/user_guide/projections.rst diff --git a/doc/source/set_operations.rst b/doc/source/docs/user_guide/set_operations.rst similarity index 99% rename from doc/source/set_operations.rst rename to doc/source/docs/user_guide/set_operations.rst index 0842cb5..676a25f 100644 --- a/doc/source/set_operations.rst +++ b/doc/source/docs/user_guide/set_operations.rst @@ -22,7 +22,7 @@ properties from both are retained. In effect, for every shape in the first GeoDataFrame, this operation is executed against every other shape in the other GeoDataFrame: -.. image:: _static/overlay_operations.png +.. image:: ../../_static/overlay_operations.png **Source: QGIS Documentation** diff --git a/doc/source/getting_started.md b/doc/source/getting_started.md new file mode 100644 index 0000000..a1c8269 --- /dev/null +++ b/doc/source/getting_started.md @@ -0,0 +1,64 @@ +# Getting Started + +```{toctree} +--- +maxdepth: 2 +caption: Getting Started +hidden: +--- + +Installation +Introduction to GeoPandas +Examples Gallery +``` + +## Installation + +GeoPandas is written in pure Python, but has several dependecies written in C +([GEOS](https://geos.osgeo.org), [GDAL](https://www.gdal.org/), [PROJ](https://proj.org/)). Those base C libraries can sometimes be a challenge to +install. Therefore, we advise you to closely follow the recommendations below to avoid +installation problems. + +### Easy way + +The best way to install GeoPandas is using ``conda`` and ``conda-forge`` channel: + +``` +conda install -c conda-forge geopandas +``` + +### Detailed instructions + +Do you prefer ``pip install`` or installation from source? Or specific version? See +{doc}`detailed instructions `. + +### What now? + +- If you don't have GeoPandas yet, check {doc}`Installation `. +- If you have never used GeoPandas and want to get familiar with it and its core + functionality quickly, see {doc}`Getting Started Tutorial `. +- Detailed illustration how to work with different parts of GeoPandas, how to make maps, + manage projections, spatially merge data or geocode are part of our + {doc}`User Guide `. +- And if you are interested in the complete + documentation of all classes, functions, method and attributes GeoPandas offers, + {doc}`API Reference ` is here for you. + + +```{container} button + +{doc}`Installation ` {doc}`Tutorial ` +{doc}`User Guide ` {doc}`API Reference ` +``` + +## Get in touch + +Haven't found what you were looking for? + +- Ask usage questions ("How do I?") on [StackOverflow](https://stackoverflow.com/questions/tagged/geopandas) or [GIS StackExchange](https://gis.stackexchange.com/questions/tagged/geopandas). +- Report bugs, suggest features or view the source code on [GitHub](https://github.com/geopandas/geopandas). +- For a quick question about a bug report or feature request, or Pull Request, + head over to the [gitter channel](https://gitter.im/geopandas/geopandas). +- For less well defined questions or ideas, or to announce other projects of + interest to GeoPandas users, ... use the [mailing list](https://groups.google.com/forum/#!forum/geopandas). + diff --git a/doc/source/install.rst b/doc/source/getting_started/install.rst similarity index 100% rename from doc/source/install.rst rename to doc/source/getting_started/install.rst diff --git a/doc/source/getting_started/introduction.rst b/doc/source/getting_started/introduction.rst new file mode 100644 index 0000000..66f336f --- /dev/null +++ b/doc/source/getting_started/introduction.rst @@ -0,0 +1,4 @@ +Intro +----- + +This will be Jupyter with an introductory guide. diff --git a/doc/source/index.rst b/doc/source/index.rst index 63f009f..ddfcc93 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -24,43 +24,13 @@ operations in python that would otherwise require a spatial database such as PostGIS. .. toctree:: - :maxdepth: 1 - :caption: Getting Started - - Installation - Examples Gallery - -.. toctree:: - :maxdepth: 1 - :caption: User Guide - - Data Structures - Reading and Writing Files - Indexing and Selecting Data - Making Maps - Managing Projections - Geometric Manipulations - Set Operations with overlay - Aggregation with dissolve - Merging Data - Geocoding - missing_empty - -.. toctree:: - :maxdepth: 1 - :caption: Reference Guide - - Reference to All Attributes and Methods - Changelog - - -.. toctree:: - :maxdepth: 1 - :caption: Developer - - Contributing to GeoPandas - Code of Conduct + :hidden: + Home + About + Getting started + Documentation + Community Get in touch ------------ diff --git a/doc/source/reference.rst b/doc/source/reference.rst deleted file mode 100644 index dcd7df7..0000000 --- a/doc/source/reference.rst +++ /dev/null @@ -1,217 +0,0 @@ -.. _reference: - -Reference -=========================== - -GeoSeries ---------- - -The following Shapely methods and attributes are available on -``GeoSeries`` objects: - -.. autoattribute:: geopandas.GeoSeries.area - -.. autoattribute:: geopandas.GeoSeries.bounds - -.. autoattribute:: geopandas.GeoSeries.length - -.. autoattribute:: geopandas.GeoSeries.geom_type - -.. automethod:: geopandas.GeoSeries.distance - -.. automethod:: geopandas.GeoSeries.representative_point - -.. autoattribute:: geopandas.GeoSeries.exterior - -.. autoattribute:: geopandas.GeoSeries.interiors - -.. autoattribute:: geopandas.GeoSeries.x - -.. autoattribute:: geopandas.GeoSeries.y - -`Unary Predicates` - -.. autoattribute:: geopandas.GeoSeries.is_empty - -.. autoattribute:: geopandas.GeoSeries.is_ring - -.. autoattribute:: geopandas.GeoSeries.is_simple - -.. autoattribute:: geopandas.GeoSeries.is_valid - -`Binary Predicates` - -.. automethod:: geopandas.GeoSeries.geom_almost_equals - -.. automethod:: geopandas.GeoSeries.contains - -.. automethod:: geopandas.GeoSeries.crosses - -.. automethod:: geopandas.GeoSeries.disjoint - -.. automethod:: geopandas.GeoSeries.geom_equals - -.. automethod:: geopandas.GeoSeries.intersects - -.. automethod:: geopandas.GeoSeries.overlaps - -.. automethod:: geopandas.GeoSeries.touches - -.. automethod:: geopandas.GeoSeries.within - -.. automethod:: geopandas.GeoSeries.covers - -`Set-theoretic Methods` - -.. automethod:: geopandas.GeoSeries.difference - -.. automethod:: geopandas.GeoSeries.intersection - -.. automethod:: geopandas.GeoSeries.symmetric_difference - -.. automethod:: geopandas.GeoSeries.union - -`Constructive Methods` - -.. automethod:: geopandas.GeoSeries.buffer - -.. autoattribute:: geopandas.GeoSeries.boundary - -.. autoattribute:: geopandas.GeoSeries.centroid - -.. autoattribute:: geopandas.GeoSeries.convex_hull - -.. autoattribute:: geopandas.GeoSeries.envelope - -.. automethod:: geopandas.GeoSeries.simplify - -`Affine transformations` - -.. automethod:: geopandas.GeoSeries.affine_transform - -.. automethod:: geopandas.GeoSeries.rotate - -.. automethod:: geopandas.GeoSeries.scale - -.. automethod:: geopandas.GeoSeries.skew - -.. automethod:: geopandas.GeoSeries.translate - -`Aggregating methods` - -.. autoattribute:: geopandas.GeoSeries.unary_union - -Additionally, the following attributes and methods are implemented: - -.. automethod:: geopandas.GeoSeries.from_file - -.. automethod:: geopandas.GeoSeries.to_file - -.. automethod:: geopandas.GeoSeries.to_json - -.. autoattribute:: geopandas.GeoSeries.crs - -.. automethod:: geopandas.GeoSeries.to_crs - -.. automethod:: geopandas.GeoSeries.plot - -.. autoattribute:: geopandas.GeoSeries.total_bounds - -.. autoattribute:: geopandas.GeoSeries.__geo_interface__ - -.. automethod:: geopandas.GeoSeries.isna - -.. automethod:: geopandas.GeoSeries.notna - -.. automethod:: geopandas.GeoSeries.fillna - - -Methods of pandas ``Series`` objects are also available, although not -all are applicable to geometric objects and some may return a -``Series`` rather than a ``GeoSeries`` result. The methods -``isna()`` and ``fillna()`` have been -implemented specifically for ``GeoSeries`` and are expected to work -correctly. - -GeoDataFrame ------------- - -A ``GeoDataFrame`` is a tabular data structure that contains a column -called ``geometry`` which contains a `GeoSeries``. - -Currently, the following methods/attributes are implemented for a ``GeoDataFrame``: - -.. autoattribute:: geopandas.GeoDataFrame.crs - -.. automethod:: geopandas.GeoDataFrame.to_crs - -.. automethod:: geopandas.GeoDataFrame.from_file - -.. automethod:: geopandas.GeoDataFrame.from_features - -.. automethod:: geopandas.GeoDataFrame.from_postgis - -.. automethod:: geopandas.GeoDataFrame.to_crs - -.. automethod:: geopandas.GeoDataFrame.to_file - -.. automethod:: geopandas.GeoDataFrame.to_json - -.. automethod:: geopandas.GeoDataFrame.to_parquet - -.. automethod:: geopandas.GeoDataFrame.to_feather - -.. automethod:: geopandas.GeoDataFrame.to_postgis - -.. automethod:: geopandas.GeoDataFrame.plot - -.. automethod:: geopandas.GeoDataFrame.rename_geometry - -.. automethod:: geopandas.GeoDataFrame.set_geometry - -.. automethod:: geopandas.GeoDataFrame.explode - -.. automethod:: geopandas.GeoDataFrame.dissolve - -.. autoattribute:: geopandas.GeoDataFrame.__geo_interface__ - -All pandas ``DataFrame`` methods are also available, although they may -not operate in a meaningful way on the ``geometry`` column and may not -return a ``GeoDataFrame`` result even when it would be appropriate to -do so. - -Testing -------- - -GeoPandas includes specific functions to test its objects. - -.. autofunction:: geopandas.testing.geom_equals - -.. autofunction:: geopandas.testing.geom_almost_equals - -.. autofunction:: geopandas.testing.assert_geoseries_equal - -.. autofunction:: geopandas.testing.assert_geodataframe_equal - - -Top-level Functions -------------------- - -.. currentmodule:: geopandas -.. autosummary:: - :template: autosummary.rst - :toctree: reference/ - - GeoDataFrame - GeoSeries - read_file - read_parquet - read_feather - read_postgis - sjoin - overlay - clip - tools.geocode - tools.collect - points_from_xy - datasets.get_path From dfe57e3b72f1f66d14bb399885c673d91dedc5d2 Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Thu, 20 Aug 2020 21:58:58 +0100 Subject: [PATCH 025/316] DOC: fix rtd (#1575) --- doc/environment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/environment.yml b/doc/environment.yml index f8acf59..82b6982 100644 --- a/doc/environment.yml +++ b/doc/environment.yml @@ -13,7 +13,7 @@ dependencies: - descartes=1.1.0 - mapclassify=2.2.0 - sphinx=2.4.1 -- pydata_sphinx_theme=0.3.1 +- pydata-sphinx-theme=0.3.1 - numpydoc=0.9.2 - ipython=7.12.0 - pillow=7.0.0 From ca7c95e5c39443a63a8bd55a6de3f56a12786dfd Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Fri, 21 Aug 2020 13:11:18 +0200 Subject: [PATCH 026/316] DOC: add redirects for old pages (#1577) --- doc/source/_templates/redirect.html | 10 ++++++++++ doc/source/conf.py | 31 +++++++++++++++++++++++++++-- 2 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 doc/source/_templates/redirect.html diff --git a/doc/source/_templates/redirect.html b/doc/source/_templates/redirect.html new file mode 100644 index 0000000..9bb345f --- /dev/null +++ b/doc/source/_templates/redirect.html @@ -0,0 +1,10 @@ +{% set redirect = redirects[pagename.split("/")[-1]] %} + + + + This page has moved + + +

This page has moved here.

+ + diff --git a/doc/source/conf.py b/doc/source/conf.py index 717a0cf..6261c8e 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -193,6 +193,33 @@ html_static_path = ["_static"] # template names. # html_additional_pages = {} +# Add redirect for previously existing pages, each item is like `(from_old, to_new)` + +moved_pages = [ + # user guide + ("aggregation_with_dissolve", "docs/user_guide/aggregation_with_dissolve"), + ("data_structures", "docs/user_guide/data_structures"), + ("geocoding", "docs/user_guide/geocoding"), + ("geometric_manipulations", "docs/user_guide/geometric_manipulations"), + ("indexing", "docs/user_guide/indexing"), + ("io", "docs/user_guide/io"), + ("mapping", "docs/user_guide/mapping"), + ("mergingdata", "docs/user_guide/mergingdata"), + ("missing_empty", "docs/user_guide/missing_empty"), + ("projections", "docs/user_guide/projections"), + ("set_operations", "docs/user_guide/set_operations"), + # other + ("install", "getting_started/install"), + ("reference", "docs/reference"), + ("changelog", "docs/changelog"), + ("code_of_conduct", "community/code_of_conduct"), + ("contributing", "community/contributing"), +] + +html_additional_pages = {page[0]: "redirect.html" for page in moved_pages} + +html_context = {"redirects": {old: new for old, new in moved_pages}} + # If false, no module index is generated. # html_domain_indices = True @@ -237,7 +264,7 @@ latex_elements = { # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass [howto/manual]). latex_documents = [ - ("index", "GeoPandas.tex", u"GeoPandas Documentation", u"Kelsey Jordahl", "manual"), + ("index", "GeoPandas.tex", u"GeoPandas Documentation", u"Kelsey Jordahl", "manual") ] # The name of an image file (relative to this directory) to place at the top of @@ -285,7 +312,7 @@ texinfo_documents = [ "GeoPandas", "One line description of project.", "Miscellaneous", - ), + ) ] # Documents to append as an appendix to all manuals. From 74973a0adbeeac0975f47bad5c664c7bf747656e Mon Sep 17 00:00:00 2001 From: WANG Aiyong Date: Mon, 24 Aug 2020 14:43:31 +0800 Subject: [PATCH 027/316] ENH: Add `aspect=None` option to plotting, to keep the original aspect. (#1512) --- geopandas/plotting.py | 16 ++++++++-------- geopandas/tests/test_plotting.py | 18 ++++++++++++++++++ 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/geopandas/plotting.py b/geopandas/plotting.py index b827e78..f565f8d 100644 --- a/geopandas/plotting.py +++ b/geopandas/plotting.py @@ -313,14 +313,14 @@ def plot_series( figsize : pair of floats (default None) Size of the resulting matplotlib.figure.Figure. If the argument ax is given explicitly, figsize is ignored. - aspect : 'auto', 'equal' or float (default 'auto') + aspect : 'auto', 'equal', None or float (default 'auto') Set aspect of axis. If 'auto', the default aspect for map plots is 'equal'; if however data are not projected (coordinates are long/lat), the aspect is by default set to 1/cos(s_y * pi/180) with s_y the y coordinate of the middle of the GeoSeries (the mean of the y range of bounding box) so that a long/lat square appears square in the middle of the plot. This implies an - Equirectangular projection. It can also be set manually (float) as the ratio - of y-unit to x-unit. + Equirectangular projection. If None, the aspect of `ax` won't be changed. It can + also be set manually (float) as the ratio of y-unit to x-unit. **style_kwds : dict Color options to be passed on to the actual plot function, such as ``edgecolor``, ``facecolor``, ``linewidth``, ``markersize``, @@ -366,7 +366,7 @@ def plot_series( # https://github.com/edzer/sp/blob/master/R/mapasp.R else: ax.set_aspect("equal") - else: + elif aspect is not None: ax.set_aspect(aspect) if s.empty: @@ -535,14 +535,14 @@ def plot_dataframe( to be passed on to geometries with missing values in addition to or overwriting other style kwds. If None, geometries with missing values are not plotted. - aspect : 'auto', 'equal' or float (default 'auto') + aspect : 'auto', 'equal', None or float (default 'auto') Set aspect of axis. If 'auto', the default aspect for map plots is 'equal'; if however data are not projected (coordinates are long/lat), the aspect is by default set to 1/cos(df_y * pi/180) with df_y the y coordinate of the middle of the GeoDataFrame (the mean of the y range of bounding box) so that a long/lat square appears square in the middle of the plot. This implies an - Equirectangular projection. It can also be set manually (float) as the ratio - of y-unit to x-unit. + Equirectangular projection. If None, the aspect of `ax` won't be changed. It can + also be set manually (float) as the ratio of y-unit to x-unit. **style_kwds : dict Style options to be passed on to the actual plot function, such @@ -597,7 +597,7 @@ def plot_dataframe( # https://github.com/edzer/sp/blob/master/R/mapasp.R else: ax.set_aspect("equal") - else: + elif aspect is not None: ax.set_aspect(aspect) if df.empty: diff --git a/geopandas/tests/test_plotting.py b/geopandas/tests/test_plotting.py index 660693b..096bc3d 100644 --- a/geopandas/tests/test_plotting.py +++ b/geopandas/tests/test_plotting.py @@ -877,22 +877,40 @@ class TestGeographicAspect: def test_manual(self): ax = self.north.geometry.plot(aspect="equal") assert ax.get_aspect() in ["equal", 1.0] + self.north.geometry.plot(ax=ax, aspect=None) + assert ax.get_aspect() in ["equal", 1.0] ax2 = self.north.geometry.plot(aspect=0.5) assert ax2.get_aspect() == 0.5 + self.north.geometry.plot(ax=ax2, aspect=None) + assert ax2.get_aspect() == 0.5 ax3 = self.north_proj.geometry.plot(aspect=0.5) assert ax3.get_aspect() == 0.5 + self.north_proj.geometry.plot(ax=ax3, aspect=None) + assert ax3.get_aspect() == 0.5 ax = self.north.plot(aspect="equal") assert ax.get_aspect() in ["equal", 1.0] + self.north.plot(ax=ax, aspect=None) + assert ax.get_aspect() in ["equal", 1.0] ax2 = self.north.plot(aspect=0.5) assert ax2.get_aspect() == 0.5 + self.north.plot(ax=ax2, aspect=None) + assert ax2.get_aspect() == 0.5 ax3 = self.north_proj.plot(aspect=0.5) assert ax3.get_aspect() == 0.5 + self.north_proj.plot(ax=ax3, aspect=None) + assert ax3.get_aspect() == 0.5 ax = self.north.plot("pop_est", aspect="equal") assert ax.get_aspect() in ["equal", 1.0] + self.north.plot("pop_est", ax=ax, aspect=None) + assert ax.get_aspect() in ["equal", 1.0] ax2 = self.north.plot("pop_est", aspect=0.5) assert ax2.get_aspect() == 0.5 + self.north.plot("pop_est", ax=ax2, aspect=None) + assert ax2.get_aspect() == 0.5 ax3 = self.north_proj.plot("pop_est", aspect=0.5) assert ax3.get_aspect() == 0.5 + self.north_proj.plot("pop_est", ax=ax3, aspect=None) + assert ax3.get_aspect() == 0.5 class TestMapclassifyPlotting: From d8dcd7b3c17ca3aea31f125c10e575108a31a259 Mon Sep 17 00:00:00 2001 From: James McBride Date: Sun, 23 Aug 2020 23:46:49 -0700 Subject: [PATCH 028/316] BUG: Copy legend_kwds so we don't update inplace (#1583) Resolves #1555. In cases where legend_kwds was being passed, we were updating legend_kwds with the cax/ax passed in on that function call. Within a loop over multiple axes, this meant placing all colorbars on the first placed axis. This just creates a copy of legend_kwds, when placed, so we don't update in place. --- geopandas/plotting.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/geopandas/plotting.py b/geopandas/plotting.py index f565f8d..e82c012 100644 --- a/geopandas/plotting.py +++ b/geopandas/plotting.py @@ -600,6 +600,11 @@ def plot_dataframe( elif aspect is not None: ax.set_aspect(aspect) + # GH 1555 + # if legend_kwds set, copy so we don't update it in place + if legend_kwds is not None: + legend_kwds = legend_kwds.copy() + if df.empty: warnings.warn( "The GeoDataFrame you are attempting to plot is " From 90b37eb3772539840daeecbbc285d2a08ed2bfb3 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Wed, 26 Aug 2020 13:34:16 +0200 Subject: [PATCH 029/316] BUG/TST: fix failing tests with dev versions of pandas and matplotlib (#1588) * BUG/TST: fix failing tests with dev versions of pandas and matplotlib * fixup --- geopandas/array.py | 2 +- geopandas/tests/test_plotting.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/geopandas/array.py b/geopandas/array.py index 2b3f2ea..306fc7d 100644 --- a/geopandas/array.py +++ b/geopandas/array.py @@ -1035,7 +1035,7 @@ class GeometryArray(ExtensionArray): ovalues = [param] * len(self) return ovalues - if isinstance(other, (pd.Series, pd.Index)): + if isinstance(other, (pd.Series, pd.Index, pd.DataFrame)): # rely on pandas to unbox and dispatch to us return NotImplemented diff --git a/geopandas/tests/test_plotting.py b/geopandas/tests/test_plotting.py index 096bc3d..2308638 100644 --- a/geopandas/tests/test_plotting.py +++ b/geopandas/tests/test_plotting.py @@ -188,7 +188,7 @@ class TestPointPlotting: # the colorbar matches the Point colors ax = self.df.plot(column="values", cmap="RdYlGn", legend=True) point_colors = ax.collections[0].get_facecolors() - cbar_colors = ax.get_figure().axes[1].collections[0].get_facecolors() + cbar_colors = ax.get_figure().axes[1].collections[-1].get_facecolors() # first point == bottom of colorbar np.testing.assert_array_equal(point_colors[0], cbar_colors[0]) # last point == top of colorbar @@ -198,7 +198,7 @@ class TestPointPlotting: # the colorbar matches the Point colors ax = self.df.plot(column="values", categorical=True, legend=True) point_colors = ax.collections[0].get_facecolors() - cbar_colors = ax.get_legend().axes.collections[0].get_facecolors() + cbar_colors = ax.get_legend().axes.collections[-1].get_facecolors() # first point == bottom of colorbar np.testing.assert_array_equal(point_colors[0], cbar_colors[0]) # last point == top of colorbar @@ -211,7 +211,7 @@ class TestPointPlotting: ) ax = self.df[1:].plot(column="exp", cmap="RdYlGn", legend=True, norm=norm) point_colors = ax.collections[0].get_facecolors() - cbar_colors = ax.get_figure().axes[1].collections[0].get_facecolors() + cbar_colors = ax.get_figure().axes[1].collections[-1].get_facecolors() # first point == bottom of colorbar np.testing.assert_array_equal(point_colors[0], cbar_colors[0]) # last point == top of colorbar From e53ff09109732102882550b9d4a9becdc7b5ad72 Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Wed, 26 Aug 2020 19:31:55 +0100 Subject: [PATCH 030/316] DOC: Add logo (#1579) * DOC: Add logo * favicon --- doc/source/_static/logo/favicon.png | Bin 0 -> 4976 bytes doc/source/_static/logo/geopandas_icon.png | Bin 0 -> 29510 bytes doc/source/_static/logo/geopandas_icon.svg | 1 + .../_static/logo/geopandas_icon_green.png | Bin 0 -> 35094 bytes .../_static/logo/geopandas_icon_green.svg | 1 + doc/source/_static/logo/geopandas_logo.png | Bin 0 -> 106970 bytes doc/source/_static/logo/geopandas_logo.svg | 1 + .../_static/logo/geopandas_logo_green.png | Bin 0 -> 125341 bytes .../_static/logo/geopandas_logo_green.svg | 1 + .../geopandas_logo_web.svg} | 0 doc/source/about.rst | 4 +- doc/source/about/logo.md | 84 ++++++++++++++++++ doc/source/conf.py | 4 +- 13 files changed, 93 insertions(+), 3 deletions(-) create mode 100644 doc/source/_static/logo/favicon.png create mode 100644 doc/source/_static/logo/geopandas_icon.png create mode 100644 doc/source/_static/logo/geopandas_icon.svg create mode 100644 doc/source/_static/logo/geopandas_icon_green.png create mode 100644 doc/source/_static/logo/geopandas_icon_green.svg create mode 100644 doc/source/_static/logo/geopandas_logo.png create mode 100644 doc/source/_static/logo/geopandas_logo.svg create mode 100644 doc/source/_static/logo/geopandas_logo_green.png create mode 100644 doc/source/_static/logo/geopandas_logo_green.svg rename doc/source/_static/{geopandas_logo.svg => logo/geopandas_logo_web.svg} (100%) create mode 100644 doc/source/about/logo.md diff --git a/doc/source/_static/logo/favicon.png b/doc/source/_static/logo/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..d77c9e2c3d6ba518eeafe322a96d7324dcf16cc6 GIT binary patch literal 4976 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 \ No newline at end of file diff --git a/doc/source/_static/logo/geopandas_icon_green.png b/doc/source/_static/logo/geopandas_icon_green.png new file mode 100644 index 0000000000000000000000000000000000000000..8c2eb1740c17ae0c5a2bbc2a8f5252b5ddac9e85 GIT binary patch literal 35094 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 \ No newline at end of file diff --git a/doc/source/_static/logo/geopandas_logo.png b/doc/source/_static/logo/geopandas_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..b12f40de13cc685f95e1600073b5b942728dfd8c GIT binary patch literal 106970 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 }Q*SS16MD9QAcQL)*T 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%0D9V$XZZD*d#@;AMj2qZQORqq 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 y!|;DX8mPNW)L}NBx$(bH%^?vMzca#+vX>$`R \ No newline at end of file diff --git a/doc/source/_static/logo/geopandas_logo_green.png b/doc/source/_static/logo/geopandas_logo_green.png new file mode 100644 index 0000000000000000000000000000000000000000..f6b80c822a90eef376607635b93c65c42a0b9e3b GIT binary patch literal 125341 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

06$=XeYKpc+p)~PYnq3m}=#hQ|!(f~xZ+&8HV zitX#nwbuVb6}2Tken&sgq`G1;uRKdXm_UAUoYP+BEtv3fzx%D^@d8QhhxV1xn-Ft8 zp4kdxpFCDnr<%7ioaFw<8vAf#jU8?$n0s8-qot`wew6F61O2vDoL%b8&sdN3Yn~7JZ4jVRb)J|B6Z3D~7wD(t1_ny<{}yG3Y1#08CcWb1BW{ zA8WBvs|Y`ck~XZ9yNYY6?Ab`P99#|Z*%s=Xv!4ae07snx8)9~WiZ-F%GqgBf6y7J$ zVb)fO?aP_7byjXH+SiZlTJl?Zxa+yuT0f6IWNG5=+P~Ks>ger0vF$+kY{pCH=%TN4 zKxH+vj&QNQtzlQU5-Y03tK=_>pBG`Kw%sU;_eG879|jA?uyoQoweM|^@hLAmazTr6 zY}tb~ix!JdWq%)4Eb@$2VeD0z)8jVV-PaBQEPZ%?>@*KehwfhLKG7Kri^a93|N z4chO;;@1D$^%f_))(4CiG8NOB;(Z^ju;jRTN5z?~Se2YWkdpxPNJbXBM)Vg;=Nwnw zZfo6yeLr!<@X`D-6QfXZU}UJHWB2hh$J@#c=U*n(fww=wDF;hPm4(s^B_{&{*GYHp@G;CsU=LEju{m~ewG*YfH!7Ls{x-q#)y%bkXNXmu zUF)kiVLn%migSWaPW`P(#*;^ry=YSh>FL5;*Qfr4cMkfgj#UTZz1TG(SY3F5E;HdY zf|+baUP8EUG6)A8A5(hoZ`Y){rSQfY!=f|6%b?QvRPI6*?(r(9Sf2wp`_S`rI0pIc zA>2XaY0G}kQpt|A#%8FCXSv9W_U+Evw?hQ$tU0x3Le5;$v-+*Z=ejy($g*nz;4K0G zQof7@e-lo#VbrH}9Jpf#d*Izr5ADR#ZQr`MNAK)O7UV?!e z+I=sJQfDuYq1x>zX03F8)}=$KfDsysqy~!n#+p*vI)v~Iq}pU5V&qqoVN+b5rBRhE z_WK$t5zu!ou6RbT6l&8mV_8-s?z4XZ76qTvP`{fG-Bb@@Ndx7E6OeZK{3KPj(BUm4 z5Q4HseKr(wZj-|9eW&9?(P0zxh@tn#$c(97{ODC8GSmLh@v7~9FphUc*!DFeTO6666n4 zd~)Rd%}y95eG{q6>ESJ(A3VV)F8cyhC(zFle7X@!rh$If-v7jP)pL+tdo8lCgU_7x zTP5vOwU2ut?Td_lWG(h{o0vdINx2n^f4;If5(}H-={~&e>Eo4@LOw~s;9~t}mR0jb z_(C;i$4*x3{a74N^a=gUR~Gj4rltUR^KRp9KpX@Guw=`iLp|suY^#=I0>dj04bNFdViRKYEIs0s3po$1N~yicK5J@D}ZYeWpql7V?tu`lBbu;Lgr( zPs}iIRB2{Lr7vSoB8jpe?ikzK$oMvO9o;kRxQjq$z0cZfp4ZQCuh#umJ#UYgj`) z7v$Es_2|$5T5Jd7Jb}`K2Ds3%Ff>Q_u-fhSo0f_$mFYp0zm5xKXAy^UandzP`A{kw zHRRlU1=CrAR>s(q!Z~r;nEgbS&g%CvbET>XlYV<0?AF!lTo_+EGPBg9EzTxb2aS}< zCw?d4WU%Nr9f2cB9F**2!jj$YOV>f6OL3MO^&oC!`kn+7y+J~_BLr!GaOoLsSMU43 zkDsSTM^}%c;_GVl*vGx*_<P5UG_ zp&}VKPf-rSGC?8e^&u)&{X!im4a&Vc&y<{xHHRJTgB_KE(YnSH)X9u50wjHXD+%YQ zZ}BN&KpxV6LoLwuF_#*xz%)~I6k|E=2;{|kGnO8~9u{4}>IaBo=c4k-*LV24hZ{~9 zEdJRlKZk36Lp{*Ng39nieAv6LS14S8%e;<*I~U%j0x@xZrF7rzKy1r7L%-=78| z!qzqoTcHzLYTJ(eUX6Q#-S<5m+37=$S<@ohTb*X{>ydBPY|Z@oRvNA-eA-5alLS*c zj6!}dI**@_aIUIwWptjYqRX+~6Lg{m!wMcizXtgvbk68~7lK?4l!LEs!C(E1r$-@w z12TqIn`?P`Yw(YdN7pmhu_B2>39Y{1mLZ&4{JUo?YJ%F~Y62s^&89}p$a+0v#PGuU zqVI4HR$N^0WNft5BmTWaZg%Q+GPikDj|uL9`yWm}g5J9+c{gdsbXefR{l(~{^wjMi zy-ps-`{OHRm!iDYW)1Pej>W~{X2_91yHY|5_MU+J5e8yg$#L!=*X^eg_t$Po75u6b$=O}dvd@Ta zR8GT)t#(U;*3ryU1(nAr`E0F?dF=E4;kjUca~rd8vAtcb7CUQeC)u8p7yLD7f?f}hIIN5C-W z!R541BI8Lb+qXp}g@!Q?yzl8Q{VL_TrXApnNWJ~*Nu7P%l!_tunVU`Oy9bR|m=q2R zu3v`@22ROH?6-1ZYJ_`65zLH|%HDHzew6sKYtWN*vA<8&O;-bJ%HHdtFxKHdJu~)} zb@A1%<_y_zCH?R2%b8gdj?Io3wlG+;(&t|0^NFX+%5An=WSMn2aIQI^x9nEc_Ay$e zhUDE%)C!st;!m)s+yD-XYp+?0AZYL0oMznlFTXu2i zlyUn+d5tZnu9@aCYW9xke0%G~d$yl<_h);H9{bbnvmywtzDs_-KfU(nzw^-jrKUSZ0`{|K>kQ1BZ}yobm<%o%zm!>z^-F(h(W`Wyd;T%S zLV;D&TtX5by~!7l3@1N5@)Wr!X2hKlzso0oECngjBfQW-!pKxLBEW+Fz+~|U4_Y5Q zg&1tw<~BL8x9|unme=g)F1p-f>~6I$W3c!8h~9i!MM`@d;}(o<{jij_&q7UO*V~m@ z?Jf_gSu+kpg?qQ#?~b_g3?J1JqWig%AOB9i{IWxs9?MgA;ARD()2S|ji)0{?NZZtw z_8{9bE{pnEgh)8$Os%;kUu2Jh`4XqABX7>t>-;JEs!YsZq0t0yuQa^6e7{$pU3mY>J2jll zMH$d8Ei&_-3D%$PzcP^ws}6pUuY#|6s#(?RkC&EprIx zuGVz|=ALM;Va58*i4@1FdDX=%g>kFtC?HvP1xe=7UCz$C;`qczM&it(-^w8d3d}#* zsw)LxV!^N|h*P;*Hl@}KUpaRspy51~zNbsnw3|8e&haydU!MrfS~35076djc)qnX4 zC~(FFn8*DHD9|DhfxcY0R;m zQ=9L6Eb6!y3Q?^6#L=JxQ%Q{vE_ry?-+2v5XQsfa<(;V6&Xm^x4*eKT8uBjkv*gZ> z20e0o+1tIZO>!$fVQZmY{~kSigF~hB@1J(Q(x_`}i}nF|8glsrk78Z8cKD17=apd+u}19dm+3X0Fsem#ymIx_(hmn|lF+89->NU8_l+ zN=hx`SpG;!WLbp_KB5XNrWSfJHp3t0Od`=zKzFVjP#OVbWE_`ClU2%O5yYdxtPsTU z{fx8O+t=TYsyFTwM0#!70)BIH;#^>F_kO(49YAl{)B(dFa(ij9BzCZVktLO1k42bY zSf!tv0S9hG=SH-GGUsIJV!vov-$UX86yV=oZ!cx^ysD;*y8G^f&3e3G2rJpI0AANU ztPq#%*o~Iant$S6{gsR65Fk<{ZW#>h?H|z`@SILk+0L=xIP4x1F{zS0L(?ubfx6WqyDO_`+*_WPTo+e1X&j91R}y^dTqtAb4&YBu{Lu@od@t4deX;`%lJ(w( zJTTtNVYAZw0wyQ;esI}o2rgTPTZj#H0Sy}7Ec87&9PFT@fn0%bCiAQ)Ynvp#%}p>s zLdk(pz;493xlk}l(+IH2s>f+sE8r$Rh29Pewf$;+uvg|OQxNToSBHt;-yd;^*-Rn` zA1nsZ=<8|V^Z;aUKk!}1r4m*tJOYWvpT4T>Jmh{dT$mHQp^{>|fN&b}-MK4QWb}ho zOiMuwzSudn_pl@8T{xNe;KdC>rO4H+oe+8A2e>A*-4Ig3{?)WaUmU02N{Jglzn_Uh z+6a=e$bK$>(z3<;0pbD{mIjAFB>c-`1aG*0z()N;B;G405q=(rIYS#CR+J%$@O=P2 zkNax)+RATL-)2ZBVr@E|zFHy85$SkK=d@uN!7 zs1!)fA&j9{i;67-zVj|M8=^>KyYfsPItq42(W<{aY!{GpYCohSp%z}vC4$5+>OHzD znd2IP*KjDbk)>tBIGO!Y3R1iGS*|8qtkbNj>|(F1)SA0^2FR_LpNR+i-F|=FL!q^` z?Iqx;f-5)*Avl8m=#K6s77d)%2%G?rG2N@&YQ&m6H{+@}4NJQ`ageI1TWjl3x6yAq z!LWXaf6VT|*z#5ISKIVkuFIdUDw}ydhf)n2)c|0Q+Zrvf9XH5M1VT_u2IvYf#jQcf zWHpU?^O?aHqCud}1S7vFU*O_*aIR0-I<4wUCjAU1^uBS-&v~EelXF%l^&1(d>Yrid z{}?q{x=luOX9P6os&+#SQE!a(n^cvl0yFKqi(9|;5i-E0s*qMl$i5HbRv{oIV~&05 zAV32s4V1h-GoV)y>o+*xlP6nVR^_E>=6kyoGS)h?G-xB$bf!jA^TTM%X+u z-De?TzI~*4>}Ez@oS_P{!TiVfnJ!l->0gNrB90LM0Im-nHinZmW<6kSZ3D0Yhp=NVO^S&|Ra9HQ0m zOT#UMMFJflWC*rv`|{u9U^?&@qmR>SnSm6HVNJV!SaUyapxt(`W=jLe-py_bP>SFS z%Qc_w|8{`JsR|Fj%*W6w0^)oy9ZQ*9?dc);Us`k4`?54~2ajJ{k?VgxNaLh$Wb#Ir z$_~mOC>qWqXVIyFat1MsBAiUMBw%3^@rfsWj{&Yjie3KWmdSl#tPTzfS@<6;XhBU+ z3&XrZCJ0=neY}u*N++#&RyAEfcVP0wwb_4Ca4{28h0LP@8f9YVMH+Lr7ll%0Rb#>c zpNLOdIG4cnl;}A(!dNBxaEoBIPhk}i z>+Yof^T>mqk53w>5s=1=zCF33%iC-MATIwtzOQI{}cc-YWj73S;<^ z2?hUg>T{fvVt_xtJ?W@Xv$Y<|_&eKnG4I|DsfNLUWmW0YpP^*dw={VF*Kb3B#8d(5 zTI-;gK)WE%&YsT=f#Qn@pe@y*uc>+4we9g$gUMddI#bB^(RVN{GusZZugt5A5MuOM zn87kO_+@<1GHeLkC7fDj$wQ&CjE97Pu&p)&I5V$=nhhInkO{h_&2)FJ&i0N{IiM~O z3sa(*((|(eo&y)PJ9tEg)O+ z2!ej6JuDWIKBgAD#O;f{udF?>lOo?2uW2&4<3Vs0lu+~ha{S~Ijvw_V(YvK(zpW~| z?!QaGe|HkVp2=1@w~g=ft@J$mwHLd803y1|zufP}g+mbuWOkhnWe=rN=|^Rqy z!_jL|R5iyZI{)xt=)5HXN znqd_|x^a1}ND}y&j#8D+X?hWo;Ni=DKaqef&FIel$Kt>?ajP`Rf{P7?Le2&B+Y(_D z?f#01Vw+Vg3T)}8*Lud!F-v|c#|=tGuZA`8L&7bs%7XIusk`&)?(ZLQp0q;_vjsO| z0p7JBNPv%fLb|o#Pt?ez8t`!<`Z7C;N<0+mL?f5vxMh$!((-;ND`o!V>UVo8J3S#2 zFyk+wPNQGR$W0Uz*a4Z~tx?mHs%O7)ls~&)2~M1%Wnd>ds?bbZ$44I5K%<|3PKl^k z_DCX~F)SndeFQ-QSZPt>3*ZYt0^{g2W=B<8ujfS&172>z1W&OBB>;--6@iriR*_aE zL;tV)L;e6U-2L+aW1(3=gu>sJnMNR+`&7(@4?y;&k=m;ax}RFwzQcC!1w3IQNFaYt z{Ne8*zf0v}5ue1=y<}+n+Y*rIS)hfWqY7aq1O8s=?UX(zz}=P`Mcm5bZ75^{|JR7l zNYEB9zkqHz<;#B+hAqDV8eh6lVT21_f&}t+@o>h_d!R6X`d9x|Sf0$p1kQ7@qG52| z&PZ?`8(ot(cj>20Ca!4a{J>$yo2zLld=pMI`%uu>hyi#IfnFtntJLYq>OS&H03N7u zG8J*7=qLjWMk$H#yG-VVh zznDQ_26};zq1#aT6`WZ^0!LX(hmmx%1f&unJcA#kLat&kpMUQQ-*;%MYQI0Z@HP#>;^nIITGQKoYoCI~ z7}5U-4o8If3?+a6KGw7mP{CYb)qQ0uVrmLCe1E19f`dSVsxLH`>2d1qWJUnb_329> z^ePy+ZUPfgbVb^bFs&23QCk=gr>2MS)?dONuBAVZ^Fe_2Qw|0eMx> z#Z});_P!3jOT)6bp9sB8h7cnA@r-YEL=~)Y7)j&j|>B+ zWGbkNQ}}u(l7hN_nS>>jUhE1mm*1YI)e+!?XX(@G;$){f68|Ay9(L|ug)2ooJcy%h zTvFVoq8C%EALl*S^Y#+4VnDvpq|fpMr&&TIgluQR2CdY-y55h!a$pk~w6;$GCp7&{ z9GGH1Y@yu*SOB2mUc=LfnIKILKKV9ts27*a2^NrMJAI&IK>2_d!T(Rnge{mDne552 zy&i}wREvZFoJTbvGeJ*+@qqq|75jZtsPould^sC_o=7PS56>C!qalPwG4a^~8$Kgc zsaQ>N#N3F^UkTqByt1%uzz>u(40pdq9~DwJ-GA&k$X^r5Icr`WSsUn-MZ0 zC3WtDjw0}Qx_x{93pKSyV4VnDEMV=Z`U$S2j21X`XL0-s{Fs@`eIkgbhXSKQ$sT{D z*>OGig%%w&k4GOp{)um%AdLgaWaj{01V_E;b(8UPwe9UMA!7^X*YM_ zU$rI(ql!NkdSMr0^-Ig|q9d=L1!;N;DD|`#{@|_13>7?l{6}@~Qa*2>xeyKO6Sf}V zcli*ClcZA+7{}dVO-VrLJLPu~9*O&{W>6Ra$3&3mp5c*O6$E12uTTbEHsKR8#AJfJ zw4cqGtiypDw}RvCLcYxyAjmr_|6Qo>1np%a3`>)V@;g4B+VsAqmm1!eYmo<3l-(Mv zwfF!M$${m6W@4lDo=^2TO;0{^1%AGma&DzM`jXY+g7%`#(k}Pkj}IcjOWABtx> z%tR+;xaBSPIV~;^uqG{id*`KADEoVjCkDUxB;93n=gd>dzl`AgYN?B&0NgnyFoJof z??%jCX`(J~xYh3xZ>$|JFrSAUztAT@izo-#z zDHf{QEPKx)lx&Y9Rv8%c;2`mqxC5{fo3Ga2VxH@jb-3G_R|2sVqvrnO76u4Yp4MAHn zuZJQLtWbUnYB%7V%+wea@BwH~$=f_$dA28oeq8ZvMo<5@1_!7nGgvldEjecIx^F>h zxYYg|WEXvgsA2y;=)CJ$4FTBquLM{QCkQD(22U1aY&XMJSf!S)u}zO&* zXV%=%X9ufNgYX^A9a1aqyPJt2^xKh9r#QqJ6`WGc|2;@lxSkkn$^e)mYhY|Qbp33V zv3~20TYBLEO}#VF&N}m6p}_N9)FEas5jYTJg%jz9d*$tJd9C-}Ct67IGW=I1{%}hl zTBd-O&ZI|MTo`_~o-lfTewXubek4{u+ZfPP$i+;1&rmk3&@!w8I{WF%)4e0NfowBn zvaURu%J=8|ZB7Q5v)B%(sk&J2AicF5I`AM+n%;Ti%fwv*2eH)@m_?#mzeR~&_#+S* za(ZCOOQ2$qT22gH+Jt@{Y?J|=<1A>E95r}9A3ZR((8sgl)(ozbH#z6u+b4_GW23M< zz5GOc7_|hKa_8U^e-Z#k&rnY0ncJV~YZu@2|LmdopW{Ey0i~Lq7G`q1s%WA4wY>Mt zO8PDrkEO{M{)6byf4aLTYhrdAcylgrHR-=0Jba*y_c2fu+C>?YQda<(7qn%K!b$E* z34Q0;lU7v|eD@fVqjuQE*I~qN02Thy`ymgr8yU_16KGr%>)g1CpOoR8%w|gzrf;-Y zg7b4d628mNkQUfo>p6U#iEeE7mvzxsnBFzXtkY!E6<3tu3(;FwvT6Ir%VTww%!jCL zUNUY}hI9+XYg5PLQ0~OsZhRU$#@G>o`xb{bS3*pBo3w?d zMV%v;7UX2@LrngTzLqzmZk9CVj|M&cF)?=)V zZ@=bWxp4q(K(|;h*EG3wV4cv5FR5u#5}O{*Ei|{h8%#?=dqt0Q0lDwS1OCH4v9+%r zRrzxa4=>(4BE+vX$p?Q~Th#TXf$psFG6goZV|}ahrA%_KeWJW{u?)Uc(a#_cS!f@@EICz#^b+!A(P;;or&Tsn{3O%7KimB z&J)M#&ODHu2SMTD+9 z^s#QLLMXkx>q|ZCcaZH6mTdn*H|1vRW!=jc(&Rt-cR7obMjL$L_@b7joV}a)Et~Vnuu0;C@Qt2*uoG+l%gRhvxPkj%0u9lQ6XEJm)aCXf_C;o;I-A9TA?RNsNKBIAZ-sdr z;bhp1$#P^HNA9%I7mA`5bq4G4p2`z+k#pRqs}*00pv~|V3kC%&>+im$|K)s-3|%CB z&8oGL5Cm0fCW_k5>0l>Hn=TnkZE|qtds-;E+I^G>3(M8X1WY(c6o;u~uI5Rk9;B&sfS%-ZsMYJNIV ze)z}EFo;@G`&6@}FN&?r;h-f%J~BvgR&Bk#?yLy!5g}6c;+PF=TRvF_=1y!& zHJ0F&Zs>!vJdDuO+>&~ba!6$R8T+lbuJ*`eRP%|uYwto^LeBxF*D2VR7YT;8{Vlad zj?~jVmAAGe!e5M5<~;2^qV}C!pTApvo%C*GY+1=cS~?1HuP^)eE|t9rEP0~)b^0Na z7DE9+FuYeozU|eFVNzD6{nzOp>jB-9zsmLl-tN5hn9nzZMnZt1W@{4yrA5v=eI(LP zyl$jqx~(*Fnx8k}6u1L=N$-}P&XvepFloRLen6yrNue%WIQoFB=2pAPz%%%a`0Tui zG$W|?oj0947p&6iq;`-937s2xk1CbZU_OWLFe$Is&&)9AtF9&J5eCPqZ;ZYjSy2*c zbZ<4j1d|YU-K*KcGb|psvE1H@^WfeeGhA|&s9-*%^!b<49b;dA;J!@~^Qc&G ziOzES@vZSg$8DHQN2rNE&NmtbD-@4NW}*XL;sb94f|C<`)7=f!sD-9Xgdj9%^HF_1 zDi48kh!TEa>xzy!r7(6+jz9#fg_nsblp~T14Z?yiQPLtlTTUWj7&wRc;>j69Arz5T zip(r5ns??12kqQMFeuR}Pw`VC_ui;=c8f55%k{Hah-ejUW*%YMgmi2D*jAeSr^!v| zkiS+!gvZ;42&h9UxRnw*Mnn>Rts z_|vVju7DoqKCzh>Cw^5nA2IiBOoCJ{31Jk@$O{Zp^Us!6&@^Da^f zdy=FEMn`P%kRZOzq80#A_@>0w_)SyUvtySkj86V6JK5BcjO73U$w}!I{`Nn-9@-=}A^Ar<#3r?@=wyBY(r^qg%m7|D49Ys$8n*JGT1IO50?p#4QOO*k z^xIww)we*shK;mniXaZ5X|db|lMG8U*I(JG9x{mu+rq}O{X>IQ6st)jFAcnecRa8rZ2)-#Rzcfn(LMj(vzp}7&$@?=9%--5 zJ?InklnbJHy9^q&j)%qp9v#cRnoqP`oELc7sDaI2W7L9bEf>L&&l+=xk)`U~pgV${ z-R9A<@Ft;S5OhVYD1{;)__q$U4Qzz1iz|TxD3$F0vjdz4#?w<);`m#@JfgVP+ zYunY$H=N8>sG(pfo zp(M_2QFS3eRfrEk6G)7I7P#;6khqsKPv0hZJS5@+8}0tSr*GTl$Vm5|17}~CECZTO z?JRl3O!k28RCPm;;ur7_^;u$Xhv*v_l1z=BKanRUY6H{|!{r{V^lwi1EQ@Fnk?iYx z09eXXkDV@wquka|ccuigZ5mpGy0@ftHXXsbN?##J7N!SNELD^wIAO?sQ$GEI2Z7;BYd7MJkSuk zxcz3i6-1hP(H=AjrtCAxN&yaC|I=d$VUPj*lM5Ow?(m%3dqI_$ya}2N*{;n+?D996 zvG&H%;U~J2-BP!Ks+khY<0762pdS$fQi(^1lfpmhA3&x%kzi%Ibz#F}_HR(y91(Xf zB!*OZ?4@mob-&lezm_{oIY+cMB^EC|Q+gi4(p;onG{%KEOJ3chX~{3YPGeVRBtItC z*zea(#4G7UpVOCxq&-`#@;49+#ai20-vjO?Zn2Ojx}Rl#0f^mx{e)CwWNE#p`^30y}=h;j*w|$*37hDN|e#pVe0{6pkasi|LVsQG?1gl zw1axN{#7r#cWZ%p4ArZ``U~J-qolk#E&#R2oebBdws^e!c^3fbr8A%WmryzhXj}f+ z1A)u=!puf}BdfVuE^8{8>M2VVL;Qv<8p0%WLhIb&;#H!d{e`2a?p@c+amutqk$sfln{!bm^#U`UiwkV@wpzz>%bu&!_N}K zLttQRcNH+RB)S6n;3cYNj&+f~0S-W^t~XpQwJFf{BMgQj`2PEc1I>B9lam?tbb^Gx z#p*=2gDa8y5c6#ech|g~x#iR5eP|l=tWM>Wx#_4}U4NzH|1ovdaZ#+_d+9Do0ZFA1 zknROUFbG8v5lIyUq#J>y1q4=6L~=<1>F!RIlCE7s=@emUe(&JD_xqbaydU<$%sb~j z=Q+=L&Y9WsLK<1d#CF>Y)E94<;W$aF%51$GO4du~x0L;biA{cQQqQcO$MWw9z|1i( z1R}D(XEj0uRVREJOsgdrl9fKT?ZBHQ&<#%hM%xJgHOIPf=|>Ur<+4m78MO z4(h-6Dx0=L;i1}pGyaAjtB4l_3(PHDL(lL&p&FpLfT3o~%WZpAEhLT4k%prXFf`)& zc2oMfxlBL@uCf{f9!95OdpBK%4d7W=hzwQmo4hpM)f1H>?1DeDI2R~HGlCLXR zt)2e}{xM*Hb_N3QtTqJzH_yP2;LWsGdUxhtMVGCeMY_@>Za4w@@y{8$nI{}MY>@xk z6o~QR?vX`lX;(X?FF{UYrMcj}JPt0D$9R>vpW57NP4i4F^)EJFehHFovf00e-0B58 z@zZFEZVV_wqF0`~EYt$?1L1`8(`IH)rR!sGH^@5cf3BTzE(v%os>~CE-+>MQn;>4C z12fsw-p2td)bex6W#Ak5AN|O=S0cSfnzv1CLTT_c{jQ?Q)<2g&C=&2J?WZr>g-2Ugnkt=|c6*c6H@Bg>(8^8mc>;Rvk2CIHv z_xHxF7JQbWf)JFuR{;@u#|^em$*3EG{t;}fB!-7`h9SCO2>KqEZaG4#~y zU;Fv4XhJ%Sv*aba0>#_>kRE-t=LFv&OWTVdpNv}nVfGPGjGicM-{D7VLE;K1x47^8 zy9VQ%UVtd6yaDnQ6vu{xeIF8ZsM|0piVktO4na3|_2^hmn8DIfEsG}Rce z{oWQ+!5wVt !X{YRR%++iw}!$p&$!9Dt|&uUBI<0j8ic~=vBKM+8*7OY+B6{H_- z8MYQ4u;+Zb;5==PFxC1Gg7TH;;WH&3Lz0 z_b4*^_nM#kmp~`BFDiT6_hm1>L$Outy4z6)=Bdrq5yNo)f@rGEQ#Bc}Q}uz{=a>h6 zx9K)?k)hLj(Wy7T|BKtYe2#2GyTv!S6M zgvcLgu6=zF=w?DG8-~LxrVFlhkHMkDGJ+=zTE`|=!NUhE`}f<+V*xuD-w|FFYIn@8 z7Xj2D@8W;KB?8e0J;zesd}d}!AbikQ2O_%ts0?Exvh`Q?b!Xm zy?$a=G{k+q0;m0XT=I*5k)a48ldR!H&u)HO`d&o?5(pnkhMkTzA@(GbEmR1{X%1k? z8cZQ?XefPL^l;wY>^Is4aGsSWx>zw~}Tb!_%`flMC0(+q+S z-{{KqRyM>dCZJy+aRi-moVbnhjQRpJ*hQ}Lna|BJ#im4B4vmz^k|Fa6y9;cruX>$t zH9EVd;+o64U(4*?sRNM7EI(3kNIi*|mxYx3dw(wrWHe)FuXS+m{J2*z#dn@kNnbkI z8E!pMg=+j=t)74d*a{z;8~cP~6ZKYaP&-2>Km$=J=QB@^4j`7;R53M@DnP#LQD0@} zwz2mC=%=R9uf|e>qu&*PJ3Z$N=a=K)28~xsbBCMcqMVnuiy)6^r(X;Xuo%3Mu=l=a z5oaY004v~Cdauyd|ERrro{!0CGvmJY;Rc2lB=r@r1L$mdOQrl<2pYFj@O9y01DCL>ijQ2r3dgEjJ1$%wq!X$8ztT}1ubp`rYDa8VRc z`S>>F)Bn_s3`$~IfOvPV(WQE*ywYhKt)6^Xvf2&E`?oxkWZC`Tq6?mhc#4%oDux)O3C=_$(*@y52Gw%+0(q zblCy{#SzEOb909cF#$w1QBd&TbG#;(xTLHqXMHDNY?bRn*HHu2J;IoD<#GsJO0CZoZ{UzY z-0SSYpi6cB+$>*RmE8rFO-L(l1$xuD``xr_U+i~`#(-`ArxXB7LLnjO*R)@iYJH0Y zs`UAaTG{tPfs#P}BI@|CF&fl1MGGNrY%c5HKAn72qD|ELF{iM-wvkRKM&n&!HG@|a z3khq^C!GWoba71vzxjG)=LH+2=i`^UdvQkjp{s1oF{AS}K8WsZ=M@^YEbscQGX^xD}n;rEZ1Cs&@45su3>Xbi1rU;sX`pPg-qf24@GPmK4rx3yG!^O&+Z<&I zFFE^RIlEH-0uLgUbR$55uub~;?GuT80PDF1cw6!RITa`5R3s`_UVMskc3=WtXi@{x zDZdZ%0W7ZuWDC&vxf?7TCt_#PjcXBVZ_MY#uQ>)tDU*;NLxtZid&^yL5rnF|7sL1h0}RltkDPT2}yIs{SxgY=O1;)rFBj zH!4N;fT(D-Nb$F#2I^(0104=T65wx1qI*6=v5WWLz)Cozaci%QbIC~2gZkoclLO5W z()kYZB1(PSytLVAKVqOm^1r~DO7f%LGdUC@k5&GrDwRqjOo2R^+oPx80w+hb(6A-w zfUfFa6N68nj{x-J;okajP0aoC`R&Y5fQnU6N7YMm2giUOXm+hY9cdRr%x*SP0s_ep zt7Fy%8;3#~`_S(@`V2aaI+uc!A0-)78J-{KtrJ-e)MepcUn9?nC74P|i;Z1p@q=`S zx=N_A=mD&4>+o<>E3~1}k2%EN_-`piNy^u-Ie+AL^ze*R2s$Aj-E8qe2_SfwR;>tV-nx_tj69=LOr$V3? zBKDQe__&U}_1<6IUj4$Tnz=LoZ?i_wllpu7@AP;7Wgi|y3(?DCphC!FbR#Y@R|5$g zY!vAj%AET8rgTaOVC{7EbO1nMPJJ+Ck{Q(ptJN`>G=w1V=As3Ob zXAUQM5f|sY1r&5drMTan+xDv!z+|TCP$ddM+$c)hM4p}STgtQ9xTe)`0q&#^K{JZ8eK%Ufl84+bX+{G9oV4+ z`!+B+K?7v3>_>PIB1D0&KN59We+BsS7cMC-)&@^b+p`sAiTBWXn1A$_pOJtnjcH15 z_2snwQp&&2)S&qOyF%|Y|2gk52mu{mrz_?_7hOVIMH0?DflQ=N@f1)I09|@1PfRI5 z7nKTR{}R*ZDgxmAaPF{3XYDtBW_MO?{c=9{D=R}+1qb{t;2zoOOqv%0Z)$>arR*)( z`+EZbuzxvi;3w}!*-H@AeE_$P2%*6a z`#K(lbt0Qmi$3jotABgRM|X2PV#lk zydN2FMs3%uhTl5%DuAw3ZUS@`>^9F5XcY=Tbf z&%{1HUHe7Q7KgZtQSKD@Vl80nAE1z)&0S1$Ej0lHpMMW{D^QqqHE?hK0DTqC|5~61 z{xT_Vc5eMZbyGEc0a_8%+`gaG);ySfO$&km4E9QG%bL%A`h?dLwJIRR<$ zrb%sC_Mq+}J1G4(d(j0$kxX;_T~v4V@?WsSni_wKGS>2i8Ncwr4ixpK?qvALiqk+b z%=rO+3bGsop5y?{-$1eeGGqVF(8P_CKNWU@E7AW71-itL;WNAgXU6W|`TmcCdQdHV zSRQNGmIf@SNdzbaK|q2djVWSc_BKC`0J5-?2%$Xt>0aM#SEV0`PLKk$N)qN8H+0eP zO_MK#pZ>88Eb

DoM5&kOApqu;(lX%s&KrK9ieJ8oLib`naX~bUyrD5%3&ZW->@% z3Ee0>WxD#njtOGz9Q;t)x}iU044BFTsK9~_E7S8eKX$Oa0JR(b)kR>NoV|kc$M23O zOEX*faD>Flc1*`6xbDk85R-7T1q#eF#AQWeBVvdW?s?l@g?umLsmp@=`~xB|zymrQ z3oR#8=T`v#s6$SpjsG@dc7*#}nyPE;u72_0PSA5@m`*$105FgFLpK?-DY)By`hYMx$I5I*klSC_$~5Q`y7@ zH*_}SKGl+Y>APRO`Y-=ic8CEcl^wW2A@wVB29UbHfh!OnN6VTJelBz4=$ZnS%Y52K z92smb=YDi+>FDV5?8Y(PCbSd|chEry1rbe{)vKi|0ne8<`rlt-YunYTtly#y}a zWc>qm`O-AYrEL80We0CRkbk?Ecz^yW-vLW)nqy7JCJcg`=_>=LMI2u|*_KbgXECX` z_;0t|N)tNioh?l{p2dIBi)-h*i$Nn!IG>cFeEklpSf}fwIPL7zI;7#zp+Vq7EP>qb z%=NDx^Yc!%Q!8>PZZQ#BJ9I=svQ^}6g`M7Se6V@QOJyL}BZe<5esXNMdHNDF1HYoH zz+1By0`#{xuegAS8n!J0sEcVB1iNqT&n_f;fGC(Ysb74nw+?|2sd$vI&JC z{N)EjsV^S5|84mQJkcIZg6T~puA-N~6@(!92k`myaEuzG8J+gTf^eN(V}K2XFpO2>k|7+KiidD{;KF#s0TMwBhKLCg@zifJ_EH z&=mzY|2(w2yAcu&O%EDb4~dKgLy+yOZCe}4abWzHq7eIN-v%(9H5*Ct3U9R>yPc_r z!F>(F$UQL5P_>)=&c}q}Q&M7WOwWmVl@Kh$_BVa%N?v}|LmwyY|6Xv;90rh=d3B;c z>nBMzTL&;GV)$vprzj@5SzsUhf9zwCgkZYt0)ydIhW~b$?8o z8&n+9L^X(KvLKM+0Ko@Zu5*4U^P?IXSwdF*-Ez0OEk+MaQ|lM3abls;DJFQU^<89F zjI(?4X*J#~+&nk6XmWm(ko@(N9HufxlRmX)DPa^h=2YGTL0Po+vMvMcH;)px;t<-> z$U5Us^MdMe;?LG^p(UfzC)VwjJjrZ%r;9s&$tTM%@Caah0cguUnp_;-%q!S2kH#nK zH^>3LreNIX6)S(QB|olbucgA<9XblP{2~&nT>oXoc~Ib}3MYL2*K;zR(PI4yx5M8j z*WnyZ6JRDd_ek^$PSLjPbs!DLM>Tyraz$s8Xm4&I!sHA~^MMddXx2H)QjzCGf3PFP)x0@H?OEd76nDiG5+VN1Rp@gV%M*%B zQ-S8xJtYHz?HxS@gL{g1?oGcjS~YEbm@f!~i^BtUH`e|3v(w)pKUY#2Lb?6D!bX31 zXhqIWY=4m){1t&sHmLjvzV7ot?2eT2&ipPqRUNkS(tIOoW{lbJg%xkz+Ap>7;SL!a z8e^=K`(g@Pw(*2Q=L8`vCx@`0)7wUpslqriCYCU7ZT$D4U!fOOLCCj`qe2v|X=d(d z^GfMRCg-@#-kTZvKCLggoD;*I9gxI7g3@x!2Jx>wE9y z`L=51y$uN9Jo0Ir} zk*b~oXczES`GNAvt3*hHWT5mwqR9h1eW6|zuSVJRM^}XO$Th-)SRhS~0oUnZ?llwBo0C})DJkl0HeSh##N}H%hTlZ6jveK(Ok78;t$uNS;N=xiGT_rT z?P_FK$R-402E`}$tY-gPsDbt#X+Rs^IQMEP#!~>I3}#UP3y@j8W#1}Wr!D#20n+O+ zj4$hwLb`@|pIkoMUGquz=4#oHkS7rFlNuC0+Z;w=jpgUG@^wKpP z)1LOgEwQ12MgIxv{=U_^SE99VndRD6zkQ>iYk3DBXZlVvDl>PRn*cVVYIGKk9c!@E zS`ObD$3DQKnH=ubZ)*2W7jNJb^z*5V7yhoX%)X5W>k)_PYe+gMG%&A=?UjwdH- z=qSsR5#cl6EPv6s@Z;N#Oa2uF42E_}1m-~iMG#%BG1AY`8OR>6Jo=qp2@gIBi5l7` z-j{y#ReQwAhICAf;laMxFXL?7kgKcOF#F>G@-*z`b(Q-Q<_No2!qcx=Tc6Go{#;Sf z4CV08B)qLSUM}fd-VkddLfFmb?fa4)46zohgBRtRTOBm~xLTh7mZ{9N;YRrOhmg=zeXhQ|hG9Xrwa>U=Q-3rG$PPBzL=OnG6#bND1}Li8{+^i1>&#>WBO z=>4`Heg13wpw==K2D{6xR8?Vi$?86kJtANBQaq90bjE|_T_CD@s3Uo251Lv%do&%y zN|g^tc`#b7`F>zF=#1kxU$I>-SCkUte`u#bwo^4{+rqhO8F`#*!$N6*wn+g5QS9w9|^I9JtU%w`j7?^n~DS73xN12Lj1o5gmm zuFe)9G28BJ4>qYdTU%WpZe<5U;F`4SgmjyqZc}|U@?zi;{Emmf(l3&jb>g_@(e%ki zq#quP&PYG9T0quy7qEs;bZ)-YKLnR>!i?+7I{S=|4qa6`FbWw`RMwdoq z0N<3JizaWnFw$(j_+V9=c}>;leu7g+(U^5V|CetHczoe2C)Z;Z%V|b&=Y11bk`u@J z$9Eo^3Rf3=7Tie9-$;Mr)%V(@M+NqS2PEtpbA-abH;I6|fdM4MfhDs!@6c=-BaW2} zCC#Dc`TeXx!;R}KgKR0U$+|Ckf+urc0C7y0JCh-4QqN)a?F=-2Fp><`IU;?M z3sgSl{_X;t)_99njNi*03Rs=GLYoH|6ELt1FjgwMCMSN?f!ZnCtEiCqki7671z{u5 z*lT0Sc3?A4fYu|7Y`7uOWlKH+|IHhvM(%cD4a?Lp1^PgN zs~hs^%z|_&%2b#-rN-!mJOX##%JMqw&3d)3leD_(ZCri(S`{W;dl4ReRzfT(ACx-D^i zFY1U8jtiwc%}F924gRWKT?c5;(5CNLoPrXA6UoEo<;17lIM?A9x(A!toimH65<6Jt zB)a!dvFP5khl0~l$?k=0ZX&or&b}|r0!~wH{K>M)SgCsT%*#Cg46_$idXjHiEoW2O zcf{4?DS!SdjCn6p`P(=E2sPvL^?P8P)4SE_>V|z-A=K9cvzO!LcRfh*-dMtxMf+gC zzgsT59M|zKT2=5`f~wXm<#t=Y!K%KXcw%s;mx$!M&poS$Nn-p(W4aj=3UU{eD3N|p zrfR#+e>O+R0`4UHgA7$U0C2IVcO5AD`Lx|OBx7aW&MSTx%$JkRTwz=i`BFEE<^BtW z+tO^9B)^$0>7lVR%S}7;Jb}Ub*}_Bx5gtE-~XA)xF9B0R_iUI?6T}4 z<$WY?LDr=F-Q()}EcCwCOdCExvkB z&DeDsE;1w^h|eoarNsJVrOLjTJx*Xp)O9f`pI?u-ljTgGA}Mx9NccnhLdjF9H5`eLo`kv~V>%3Qv~9h(>_@xr z&qJ>!m4uQ}SSkl7OtEvZ?7Ss@OMrTHzVcwkjLo^oix0t+7UD--=t!$QD~f=b3wKO& zaO_iS0XZz6;b_@W)U&MgCJlGvwZ{G8hk0rHGz_2JQ-<5Z1=P)!Q{O6%xAkwV_5T_S zAICBLTF<^gV81q5q&QhrgRv^RUPp#)S&chK<3rHwy_9Xx9}@765EtoSf(}yU&qlYXK);GlA1*%Utcxx zh)h!@h@>Le@}+mXr1IfPqh*Spw4v5)eJ+=olGZXL25hyb9=@cFBWEJxggWY_onQqAT{E8siC zCho&=Bt{GTX&y?e448QyPnk?8k;BT6f!#u(O)4G=*hed-rzfwh7Xr-PV0`ctROn^m z;(3(?BKb@8dylvi$oCXy+3@+TT6a1PnH0BK_E+-HzVkF3kD&p$ipGZ0aF7XwG#Rix zJ!P}QKf6@pQuDTtw$U^GtC7DzyWCG`Km2$tuRaCt)t&Xcx0VM+07-7Rp~gQfX@OfK z1lnHR_cxd@Vn=Pv!TO_mc}B%l<`<**?&G2!(AmfE;*@OJY?Kb&o$B*$UsF|tO{iFC zO|%@zl5viam@Z2x4R-T{xOtEK7A$tBriktAWwm=MBfoxSCOY_9AB;^SotuppExAW& zw|c6d*zNzP-H3Bzb=#ec|Mg+!KI2gf4acf1E>Z*nj3SbxhEgdY4ZyPD-!<}CGDJuz zuAYhx?wP@?trvH=uRaM-I@`0ZWKjn1X-3h7yZC`eTNpbdrSs>NZtD@_6Il^OO1`ME zT9U4IjmA1Ns29;TwX~N?jkL@)kWkS&N72fodniqmrhO_5Ez>qS2rFGTeQ+%vk?)Yt z_!bu`$d-&A3Xx^yh-Zl4CZ`uiRpau9yGMCMwKc|lWUb%(#G?$JJ^;2WQliZ>j5`^~ zg7mXr;_UfEtMc%qb!KYTgtS219+(wQ`{etahj|w^8@CItWTZ$rq-2KS2jIb6>Ak;h z`!={cB-nJl+YLyHr*>j=*5{zu#*V#5Rc(L7tQA}&Rx?YTn+EVIJ9)57#N4TO8~3zJ z%|2Od`&TFK87fmk&b)eIbG9RX_~);|@=JO)`V#FOmU7cg23WV1G-;7)7YiwQm*w|6 zNw9BQB7{^Z1F=~yA4dDJV<3B>Ue#2Nwrj+Eh=L zrfX~7=gUfB9ba`2i=0!sJqi2-kvX}4r*ny32(6Q4qC7@%8vq14p1KXE$f&r&du{k6 zfVNv*;o&^?X&>VKt||)u`0jhO0{246!o_~ufw+N&YwBSKkG>C@Q$36&egCM85OjjlwL%ne$oq`ovby5>xiGT1t*&;LQ0v zH3x<|dD^<-`|-W%Zh#EelJ=}bKTmNM%c_~YT!N9i6K&&X;&DedBpr!=+8wcv&*se#Nn?b;3| zSkEph-H|FI)9-;#fCYD%c0c{I*On_FOYV_n8%bon?(Zeu49fj(-}0!k$#W+8AT=Of zME8S%cw|wdftprz4$@U{OJM|3%N zet2mfY>_sdm_M1oNiCbI@#amabIFC)tk$M-hk$qJ(XpEzl|kzCoDxg$+(zk^Rq-B8 zFc+;_Z9WDU7Q9lQZnFXxn0sR2%!;~cZp^MiO=D=O_~u$W^V-iYV+-x&xdz6@daFCL z4H^PmiOXLqPX`t7ta;)^+L-;tTQj&ubS;D>aew<~F845|&4wM|zT^Q0ZiWneM`Qa> z51OGLv-*2y~#F6Xrrjve*abEhpytXhc|B{^$W_^|NvWDnm*0%c&s?#I}oa#H9 zrM)c8E$f%2vi7NAd~L_>F74wPnqYY(=1S~4hr|I0fjY&aOcr>W7|pX~$>lc~wv24) zzSj%8@R~XMve8#K_h@Z$Xpnv&G|{DIZ#SkfXI2fc9bzQG{uRiCC8EYugQJBNK2Yw> z?r&#*PVPtXC*LC%_`y(D!D3~N5lOWxRvR$c`%s+4uhNU&5M_}FYtgtzgL84Cw8$l# z3I|cAPHjnN>8-)*8b1$<9=z$YUdq_dw&RJjeqR_@b8fn?=7M^JyHwA7c3_<4oyJpN zsps0{H)|>@j~f=qF57EZ#t@>4h>JyNu{c>R7%*k9Tw3Pndb zy=BE{|D6fq>;jg)@eP=@U8>PA^zUR>n&)e5vF9!17-rsGJcC+f&=-FlF zze5Zsyg-M|s?tzgPeKNfL|@SKR8apH!E8vK)4HoW zPKzXfOESs+v(R)TpQm``KT(c^?dZXNQ_t#ChGfl;Ov{h|%+xy%9iDL0&o?kV9VT9_ znd#+oNnVG$*xL4o$V%e$aE{yR?7C6Jmf&qsNQNHfn|JZ)i7}`b=IDz%Iz5gEx(&Sg zdLkS1q2Mip*l)>#TJ(*}7KIz`enA&rG{6Vj><{|8lI;w#7D-+*G@k9tzvfwNntM_s zmH-g3vkNC5YKH(%9brPZEpq@*g_8pAH7|F0-I-ddi+cabgzULcHmz`rtd3~qz71E7pv_Tf=zU={b{+rf8%_SVO~9sA)_B^(WBdF ziko3s0uNRs@0DQT)5Ouwa;C6WHJ6gKrZH6ua9yDuMynd)Z*Q>cC0P4)#+U$a?7lK- zWbiX2Jwe$g&~(Dx&G-1a1!Mp&x*8+I}Vo9GSiGL_?w`AWO`OW`!l-)Z>xf)ca7 zq%FV2O5~1^MGm_#$1bkzez`$yB@E%xwMVxxW!+${FcMMae4^=X|M%)dE;c`w_m?Kd zZTI%v&o_Mrt@6{obo(RPp?ZcB%{KNeKcCz-QRTSR)m!P_ot}^7lvT}8gSV8U4YvPsB>=>!#{K}8x8MqUu(O1o$rW0wS zfA|)V{Vu8&oXU_(YN5(O?DQK}ZlE2v!A>IxXsPis^1j=xDxe2!QZ8PBy<;>Bf!N;O z*HSe1jN@FBFYDCk{gC$8Ej;Qz$gKLn$(q@NkykihD;>+-t#j#jYL-Va*ko#N^>aS!KU;FZ5rglxtli59N}!*9ps4qG=p zW4eBGh<2oDDg&ze9n^ckWSU)z7-Lu23!{xrFF|x`j@ba>p~E%D@%4{upDXMKLpzV9 z-&un>twE5T$6AzoaAyg}-F~`Yt&LJ-0dZe6wGY-6;pC~DcB_7Y(l@m1(ZwFeLw$u` z(u86B&KoSN<^x3p@jN5m!x2u6#0yb`4`{BEzhv;ki!X2f4YCV1nYYt;+GK2}%{g44 z-7Bo$psVxGuHcOeR?vgQWg~0RnA&}?%**o&eR7ww3IGxra6EzdSJHLX8j!HnVDLG* zgr*?crvC5rfbfP1W$7%H;jIrk(v*FePo6(Bsr zuW|Dsd6eTskRU9>ZUOQvC`K;)9*(^Dk=wD+F^)!a$jY+xcFgO??we2b#1|()8G2cO za!5nv3ov0a@kP1f`6rx#$G7M%s$1nDShG`z-$s}V!@@K9YK<8Eiq59QrK+@OFIDLj z%0~Iz;Gl}y2^6mHKNQIkkJ=6W5i0bW4xa)Ni|78^z5&`U3gLybOK zX0zj8($kBamXHJ9Lk&aVo$(KN^Ffns2$!kj1Kx++j+Du;oQV>#lkJ3!sr z!N$hXvKiHIxH%$?A^`Cx-zj&hVWdalGvZ9)oJtT{;^A&HJi<9ZN`s|BW0W^ z03Jj$@DNjtP(<%4q%N3Gy8_k7=tkE-CQIpxD`Er`9&j5#fxwpt!QgUN(Q%HFpd1?L zeUA6>wc1CWa^Sg|x~!;10FCq_syIQN7oalJk4%S5HE_cF*ZA%<*YxR!_zpa}=93R4 zz|dP19tx{0{jbys)`=rC^XD!NmX;=Yr55ku%?!-hUms&vNW@whF!j-{2>Djh#!skh zWEGl-Wy4pY0;4O|b(P}f+;hLl>DDF-nd zqKv%oaiIqdDUVU+G}r4Dlq!|gd%hn@z9&8euVDmBCRb!Cgo=%)-Bc~i9Df^PnDjO9 z@;TSSDyg&yNJ$#>Lzu|7P0XvZQKFPgHV5kEoUh*Y@ z*vJS*{lGUj#NSTQ^5#$v7a4T?v)Tu$PS|Ch05)wI1bHSk+oaOnpN>$qm5oaEB6tne z6=Luxm9oE9(LB5LWLs~qXMJ-LTo4>^ygHty%NIKfl3oCkjYJZAyhahB6j~lkq(AJh zOfSt@SHp>92sY9%IdR9jAy{`6Q#E7fNFsxO6*u7Y{7Fb`y*1}4xJFvCfob0VX3rcJ z0_L*5aj#Kr(18EWd#XOUL%!Z??CDm&Ni}K-I(~Cx<8jvP3uy$=eLscswI*Xh|r^AQ&j_Q1O*7V|(;l+?ow7^#(6NH-$Fau982yevHTTET}+(n|< z9qTGm#YO_9;77LtMZ3o-x=k}GnGE%C-`C)KJ zAa>P;s^Nj+!upX3S8^p$sM`^L6Zf0OKOtFvCdm?$i%CMF}J37dk73k4+711_wELt3_R`q4c}JK(QK~opj`;imAH5pb_Ov& z7!=NVU?ojy5V|GQ^nNV|4#GimH}OgpAB7$;VK!2gR`W4k4l!e%NNRCYE0}0CsEhnU zKpC4uanuW=9DLVSZt`RF^kbx)CSdA)j{XuKv1H!=A3{&;YBcf+zb8;`kCX6||JOFL4^7M^l+;3dBG*8VHRy zv_(EUt|uGzZ;vS2EvA^%RhKvZcNQShsOP#vW=N85Bp{0YK`|Y#UHjGIFR5ISaLpp^ zC56jgosR3VL)TlBoiB~AiGheU#_d}WFdobx4TLepB_w{T-itU;=D`W(khQ9`Aj3-; z+REVl0%#@_yJdjr93;*MsXp$-n)_-&$tMRrPiq8Jm)6c3yx)(kTv zwMcGrdC!=;>OyvJTff~RXHNY-1-rLvBN+*O_>K$n_}y3o?#K>K_%;-RUqPh~jOBV2 zZMEUA3D&c+nJ|f|4JRorrpn+TO_$Ewa2FQX1F-0Nl@R3ud6GqH7T4I)*d|?g<{c}c zqWd&iw885zg*er9r<3~T)e)KzJ3stf#%AkcZ4wE+ytkJmI)k5uNiN_8jM#8)c_fHryz)abXDT&_~Ic1P^L|HjvqC+_0vc1NQ))_bppyvRY2Z(vd56Sk8yH$7IA&8598KTatvw-9a;>B=&JQuGk3B8HwNC z?MBubmU_4;_+2$Bz20n0Ei^XlaGzb0mw{8)(>eVgyom5NmWaXoVS4gfE`qScw-p%@ zD(N~h6Q!UyDWPZpMnyYw|lT z*#=lLiWIn!qX(bkz)OQFGTlr@Ns%u`LACATEU>TC{vnQW(@HLiyQ*gM)3cl4WsZ1i zrPT*#PE=(b_S~w$=`+fwJJQZ)J`%ON-Zvi~Yf}&{ceq{m{&v^379-mTPz24I;U8 zJm)cw9!TKWd$C3aD>B-qtOs(uV-S9O?f&@cLy6O>ScSEP)^D=qA*NNb$*QmhwB1Xz)-BA3Jrb&=P zVw~(*m*_1HpKY`hK*$dPxYx6h$lbE*T_$y{;Jrz0p5&YT$clZINaqL4vdE7H%3>c8 zPDu|c@wNm3OgoJ%ni~FQ?fRSU1x8TZPs6Q~hO3zn@2<;)Ba>XFEA!^KtXpo3NL*gn)WZrz@&A3$!2}72OJ+WBY=_<5LZq)LQqDp4=bx6PCEn z#^IWtq*ZXYJKpVvVLDNEXgBB;Zt;pg!q8g3Ko#&*ZqN)-5`;-E1)8uj>VF{S^n?9W zDdo-%-DgqUt33g~N>oEpX;z&kM!Z{*Ncg7rvA%`jG-XpEfQhb0wrp=J65Rcqf`REZ z_1)E00Rcw^sec?38Z5q$9U{3TL5#&kkz0UHE;G*(KoWNhftOja>jfOuZTsK9m+d(9 zf?^v+#-}JmGnr}fO129h29fHU0&Uq_NH-glic9RJ!1Js7@bV#%=&En`b6;C+rVs9J z+0h=@$o_8PcDx_E386uT?Z!bfWPJKTWRXd-w(kXbeo`UotlaQ-Y5cy-w!Sh<cL#46KM(NGF4Qy&5lAU!+xX2X@>gtZ`(gj z@tb_JV|?Ed6Y}zgGR@s@Vm>Fg_J*m%r#;;sEXppPo%xJezIOgp%rlCic>g4!zN#i> zS8+RoN1Kdp^diCps*_gfhH3C24oR>4O#TdWCKf;&pT^eoel>T2c)x&r3cF*oV1LkaULR))sk8w?U6JtVRA1n}+uwuVwXwdKiJivm~(S3rQh4 zv3Ptix^+;{2o4pDb%Wv;OhGWyRFxVOUlns(aB$m-m>+MTn5+p!pRh$Rwm);Mn)VDa zCqY@K5WkK*G7M_%@VjAPOS4+I?I(S@tFU%Jqt15X+|D+@#B-{LvXx)EG!^T!+j>Vj z;}S~PjUOdE4RFVT(tGBYG<^pyoFwhjhZ$DBzJ}(PkRZ8-BS39aa(?&q&k=6nl62TJ zr}l#$;)s_{t!LnFkNTJ>3LmGuG@9-z8E3sHoJ6M*tYK3f?9h*>2h%ROc&E) zm`IfL{$u?<#fk$iA>nwRwmRW<(S?1ZZ4uJPUR?bi9@Avg;+Bs`@)^f|n9^uFI$mvK zLM^A^1UvlsEjfFUwtbYQiW2s-5KOzA?KgTBHveEtC%+PoO!dGF8)UzVcf&=7jx83C zlJ{#5Y(DOd&)o1T$We9BQ>%;cjs=Ru=QYd+P-3TF@c9Dr2KpZt$+7s zNH=@7Y?9eepB>WiY&b&lxr!5v?n;0w5b(@j2~w*B(!3MsS|6R;dKvVI?db3hmbwmO z<;ayN-7$XjT&%;yR~%@2Lv4j4)^{&c;}ipbI!m)k(*{i)m2*^f)<9gR^KSDaowkW0 z{tStiw)-)7;g1m=K<|7VVdP(Et@N4RwDX?u^GzOA+Tc3aOUbiSMw@z7y3|+OpkS#m zDwdu(iLL`3q|cMAYrf1aDm!4m3dd=x!<}zoS52x%(4v?5l5tL@B3zvoRNa<-=S(CY z@f#+JEC+Y*_0qR*mMp83II@u=h@f!(!dC?9R}^JhQFq5R76l3E`q8dU{Y+xa8&l(WPSP8IguT=1 zF|t~dMHwS)gW@&(XRIvsDgY#J)KgHeo_6|HV(Qtf%4P`}`LYT&oF_p$1b1!!gB61# z5PrwUt1<3{x-#)+KWRGHv3a(3R0W%1pGz1Yx|f_ju&MXPi)65&P%T6;7faD?vhQVn zr8z3xBlL(PUaLLWNm~0-%`t{H;$FD;?S&L`-#GY_8ZE&&>HP$H9k(;_1=fW+T^(%v zrFGX`57g0U!AAb0lcAHsk2}4i(%9p!n$?E@*~MFMg1@OAxKY?jt`HnRb>s|V=QEga z^NC7HJ>l^7cdM_b9gl2yVN{^dg|MDOtay1DP6We7s6NQu9i}>)Ck3xvn&tad1DaF7 z{>!!ia$X)zRKLdSY)xV90$u{Xz8Qzh^!9*9Lz;uN(^H+8hI@kQ&C>&g%HN`%$j984 z0T0j_Zi88XX}@~vaUYh7$I1o8RimBGL*B&w_erh3&_v!{F*0Bw$Ojzg!v5v^`~eAE zM)P0TpO-{PKaZs!DbpQ1BhEP4RZwV=ox7xP>KvhKi&9DRq}NS~6CcOp3q>lIRG$QU z@4PuX=u}AW@(GDcz%DEfaM(3~r#(wVly)XJl2PTpni&6&m_L=b+)v7n6spArDOgfY zipO@xJoKjQVLnwA~}D zYCab2)uRa8hh$dS$&y}w4q!P1&+6mt_p4<0=h}xa;h7ZkaljCDTIB0)h{o$Qs@L|$ zL(3_LZmI-Lx0}uL)$AViJbbg<(RgYD%#|4hiapbf_;BPVak!$(a+&vDB1kNEjT-D7 zyer3A?dyEGUMYqf(W&BS(FVV^r?Pc?BB;A)c?*BhYOi0r_=fY|;qX&T1Q+?`)AmCR zk^f`rEd!$5y7%Fm?oL6ZR8kP>9$I=3q(oY}lm>x8328VY(jg!rjfB+DAdNKABHc*W zyT@~$-~YWo`9Yn%*Is+YwXU^xBI{gRXvXvT2er`%;@u_Kth|0blS964UlI#bo+D93 z4|P<^mPysfrMKcRb9uxV0a~i`O_=CQ%xi_`bqmsuHT$kkh@D(t7_!R}{W2gQjQ2{< zsW$Q3HFzZ`?y;S5Q@QxfIt=@9Yz9a)#u2WRs|aHMmkquv!ApJ8&nOS0^hqKmqr}p9 z!&l4PDG;H5uV(zP_iZ308zCJ2z`{SJhW1-r_lK|$4SmejY^20d65PtamSeM_=JDj$u`N@7v7_NNpeTrwf5OE*-0c&CC^>P(XMj66VJD; zRP~TL`L2o1udO4lDuy$g^sK!)20&-<^UV0&-go9iYtL}hYU#VFT3&r(Xzg0FH+>-j z$7!8rCMr+2Miz>Y9WzFy*o2-PM&h1+`RQZ-dal6RHOHoBB*l7b&7tt}P$p&8-s9_p zbLKs#{$SsE-*ltm7ZxMNB4_OlrU$;8x^!`^PdesF&)zW&r3GBTey#m8n`%EjEB=1Gkazd;4atl#A@6Xxb23`R{Uv}E zY}yJWBSnmEThKErkdfz3-etrw_OE=##Hr@8zLZ%H2SZ0YCJYRY%ZUq&>C zJs*s*L`BKE^I649N#0wY7a*EEnUSIkZSx=c&FXx9Ahj#((RsP z%+v*fj#)%r8u-`s*or~j=-(^+32Y}p>8hn1i~L~XwR*a>eC&9+{k;3zv?U1{-pTJX zw|Z!Nk5^9mJ-&c3by?%;(RWs^O%LiYv1C=2p7)9COD##jQ+acI4l{^ecCwFs>ol1RMmLf>1Pk1{l)T0beD6V6Kd~!@ zqlFNvHuDwQ@7SLX_{b^0-?`kKe(blO9F86bg7{r(xk`zbywL$^a|yF>KY=CjwJv-w(QcKf_p->+ZufSNP~czUfO5Z&jKIV$x< z-_;9%T{*Svnu9dyv@76hX+vZDr2YMDB@_DhX*N2guBw{*$w+4oO^8rxH5f;_%AgqCs64ue8VY1FgeV zx)Zvm&gxbrsK6CH1D)wP&<&JaAf}gBUnudPI<6>Ti9^fQ0>c_t>aGhjWHJu-!ZWWH zHLqhCE@u6)B19)?WZrz#z>_q7b4rB2qMXq@xgDP*^}cfzYY`v``1P@Dhh_B@#PIZi@cWnPhSiJVk)ADoG1(vY6p>x z(?pSeI&kc>HLPw$nNZW}uL@`fAl(Bc9GH5?ZM}z@RRiODjhy(Jzyzu;ypIj_>O%38 z9pxe;#tA&bJBjPDtF3?uwmqi7&d-|EPE7t53+h|BzC4-X)0J~KgJLBpj z6}tPidW8F>I_Q5y0TiVD*rKAY%;Iim@r^+^Yl4L!IaH0biub>W&6srd7|#;*L0cXm zxiU=M4LfAtAM}58X&CgU(hbm%x8|P7@lDX)EI#&ZWJxEgPv=E?uYqbG(Jghv5-NsI z!aDvs+i;=%FU^3i_N?;Ee&bVqZ=g=5nxCe`iw3ThCK8x23vFN1tCydeeg7=`CWq^; zSs7t0mVbLEtJzXcKqG@M+xz1PlqKqev08I_XgWmrcJRALs0Mp+t4XQRN8`*7Hpcd^ zIMaPcGd`0>Q2e62G4ETN-&g91v$x^wCM`V3MTjeXv^6Z3wiacS0CtBJ#B z#f`$SzHAoSNq=2n6jq5_G@|wZje6E|rS@jurkssykK`a%S=Uv+#xV6PDrU(UR%txV zvtl>!l>2$Zi1@Bm^J==V*V%{7@Q#mFXLJ*`o$4e$R z#m`_QFmLn5^JZW@eO-#4svAo^|8f=N71C}UJ$Pq+aSsGOeqwJeZ66 zHAlVMBWpoZO277JBB1{`?QBR?SU&_{&RfD0sqSBXhw(*}NAP{kQ%fQG*`{Bi?|V!7 zsAZuWK$(80!Lag@g6)GOyHVZPjd!+>mnr zlZjiqrX5Q-DnC<-d8o51-~Z<9m#0Ovw#gge1Hk^)CB=cgWa(p(eXtVRA!K$V-P8u$ zhrvzU4eQ;q&QFVXdxeE+ANV@`reihG9wt>Vb?|3_38j1PZ&l(z5taK%8pp@Y)Y-b) z<-CrwoYIYufh*DUM%8@smj_Q9Cd3&>)fz*_6oiW2t$v#)Y5oODiKvr?5bYqBdl|;* zHZJo7dPUm89!?#>EFkp!Wvu7wyc9gKmhk2Lr0ByZKL<@h0HTbdEZAJr6eqE(L@!yM ztO%(0r|wd_%4Q+D4EG~KV*)tOTAgA|BXeLki$uRL00035?R?ol=+`zarxRX zCSt^8d$N+iK-f_XZk5d|TC*U`&XYgf1sPt#(XnC)8m{5z8(5dymwzw<%SBTd*Zu&d zjyiXO-;K)LEU0m!y7)0(d@zw>k9#-IanzB!f3Y_&jm$3W%wEe|s57O>KX+S>po|F> z6;M%tL3$_)mu|eDv#Fak#Yn{tl}Tv*`3CSmEpEinW1Q&Z`p?@fpp5ueI}8!r=%G-JlfQB}hNLHlVX|vjchk%(Fk+iTR>;%r`;aB>|c`2fP}m z3sP>?piVLEr@SvqqXliz0y-iD-fW5-}#Ax=2=dYg704I@Uk-Dk}8t z#*Lz#OC7$~GOIy`Y%6Y!onGFU-RXi#nEIrs$T=LtF{fAq=k8ypSMd$wu?|=30Awl( z3Rv_=blj-om|8`xqJbasamn5-Z-E8ZZvPk?QT3AIpPA$klm3tme`nTDRVo}%7OWh+;2oeq|fAd6viP(GG8pR1_l|${VltT zYky2@1ttqj+qk9)%q|{-(F3~~170#Anv)IXle{M#>FN?R0&#CcE9VS&$BPSx?N#U& z5p++7EZYW{9()Jj$L#xO+@;Xe`ljBrR6IlgCay3kp(sik;3Q3_Fu8J2**z#zWy<^E z7jOv|`|?4(Wv-_3`DQYm1Fvm}pR;Ne-O2igyB~xgiaSz#df|HFQELDzMfd1h@Oy`H%udJJy}U;uTDy+L`kexv+;>!{{MaJqN*l=a`?&PBkP?Rmz+ zn%mebsJAfpYz{FjSiOGMjY@au%g5?s+TppYJS)ObfH))AmP@6U{2Re#UkmB~rl-e- z?kiY;Fo{si9W0I~(V_vnrCBWyEX@3ioRsX6s~L+utshjoPM~0-Z`oUkfCvC{5T&q8 zd_r|UXgZ>x7i7B6A7FihxRru7*bTWAF|F15Q=OOe?7!~22599p$pc6>S!Krhm1XHr z1!nvFpSABNb&Erz&x%x)PMw1w?MBf15)=X{hj|X8oVeEGb^tNWntrb<6M90T6;HqT zimXA24pSUWBC&ZgI09CT>;8kA-LY*`Ak(Obwh|P=j?RZ3P#sRxn*5wlZ@at?M%?DQ zo6mASXjG&kBV3CVRL|CR*f;NQnI=4Za1Z8jeoke9TL$~TxXX-~>FMTDRFY7DACzG0 z(B_d9g7vPglPp!{s-1a1EyI7I=Yh@MZk?!b7c8;d2d$|r@;t4}4L|c9ppy%FLDSrC-mxqU@Y}Bo5U6}S%IFwQ zW$`O7xxLv-7x?+Xu|u}#0ys=ZMts9U=Z^Ov;&$W-XkBU)e6!Ly$iRp5Sl@_VJ;o+H zYS7K7_g*5fiyj$CuR5BnFr$=Q<3fv7&lu3SQ&HvUwoW0`2H{G)B_6m1Dk#R{?nfL` z1C-ThPVGqF9YFeJGUcFwlvLtkr5bVFFIVvJdmJyItm( zNAjIvOi)Xyi;kd-@=yJ3nf2-064? zY{dZO)NjC5oB}kv%9jq>}YXpC9jy}P3 zZ->p#EM(kzaGE<#uOPBAmZp8?ducityFCS5XM`EPU z-hNgZO$fOYv1;6J-tn5RwbSHs6M6NE`v(Y2JIPGR0K)>c83>XHauI_PWFM+re|jkY z(yI~}1{(QVOc111UG#Y;)B3Ra`UJ1gJp~-LlcnQtGl3D+yGL=)j3RgNs3?aTuDX(55?@K z&d>&HUuu+kqiCCu_{H&TR~q*U!;W{yV!vn_R1S|ZR47-OZ`Nm&fj9U&7oamJmW`PX zN8wQ54v3KcfVyZ}v0Z|%SwKKVsH#PjO|`AGn0nhF`a;&~PgLh^3VBqqFav1gBi6mim_=8#RCR@~EZ zr(Ayt$R}e-Gj(~zCJgK{4bJMw>n2gh)}^y&AJL5hHP-iy=N-sKsREz3S_IaGV{d|} zzooK}r5p$3)^WQ2C!>VVFap?pG1tR0|Fz6)06Z65K8u3oj9P1Kx)G#+a%jyI}!;nl!uVn-;%{i;T^vp3~nh*>VJ0?_UT-2-G~TsC&Ri=w({5? zw4@a4H{1iAgtN!Y`d^=8unJzZtJ0k4wP^pQ;OWSgXM$m3;Kn@2U~**A9IkZ$1kx!` zo}-;;SE!7#snfziPy4ad*z_DQU)(7M3vhENBoaevsZrIj?KXHpwP574{KWbl0I_w2 zI-+HjZ?j4y+@Gpxse8&9)L9*~r~kxS3L6>)gVg?BMg1HaJ#k8C2wONncNuDK<#_mA zkCF{V`p+qCX9adeFShA10B-WfR-Y3yhy9K~H(h)pp}{Mm%l`Bm%VS@!w1Tia*zzQjdIDe%j zn^Y*p5`%T#1M3_j6l0LJ_^Il}%>mHgoJ|a9^v(Y*6j*S4$mVUSlSm?dbE~}9$Fj87 zpt@iCsVza2^RB7ZQu;^;`YWv0zr{seWnh>D96u=?;U4pRy%X=rjBJT8&LEsGNhtZ;0;JfQp}Gc>)fLy0u8a$l2dPGEY< zQl8w!z9cU3>gREIW42ec-1F@Urw@@Jjxm)QGB3BX9YE_hBPM`;1K;ykxKNm#92mkY z5V%+JdW?fI^z!z_w4g~5Zn2Zt$;2y#meL`8YA$^7F5t19?)d<&Xfb%j;Vir?4HQ16 zrsk2Q`^x?D79Z*+g=>qqKXT#8T6|xb8|eapE;k~leOfz+cwp{&AXr(yA)r%=XpFS( zP!$+td!K(0&s>SxgF49vUoMu9YDt(_I0tWZ)IAm8%A7TKKFhYZ23+7FT)!222rdRv zhreHJKB^h_i`(I9#`MK+H2pH%?I))Hl!^r}#b)3Vz-?+p0LnD6{)=aNATVz0+Xs8Q zC zV-d|*S>=C#X6<5EfZ%aBiHuug3bamMXy4%NuRwzN)(OGSJqFrID*=jScd0@iMUZ@b8%nVD zH{Ajk4);${LAGEr2|oYXL*1R z-2a=LlsQ1wB8j)v!a{RB;h~ou%eb=OXkogQlEmXa3cpUon}O?-6N_x~9OP%tI` zQ)=|3`K~pvzH|AzZA)rg@+R@PH`AwT{1M%N$-<7yJKX+}5zwfwuF7AF-+b0@P(!Z{ z#0m2*Y@W0N4QZfoTXo9A#|zrxr2{p87?YJT#m0o*lJ?A@=O%;$Ss%SXex~CKjqqj| zPBl-_%Gcjwz&-mV!=mQ3)fd_sV))L_x{!(puMf{F)`|Ap)rb9Q^+L>k5$qC+?MKC^4b8utv~f(kf& zW%;8f;{{Mc?by897)_wRd=I{t1Qr*crZ>M;h#dgjUn^8wga_ytn)-?HEK)~KKC>0o zhkN>{TxzLCuNZeH27%=jKY19w*ZJ(Y3GokZlq2?q&={@LLfwtI?VJHzJ)#<;`y6%C}o`S2K7wbw5j=y_oK zEcvDL=VV`1F8gDMoO(gyYog!Lcz_j(M|_zXxIsCT%T#MfHd%^BKtOe2%twOBo;)`)Du>d~NLnGMD91PVt`Fq^646GrYH^i*zAoZjvCJUy@toTcOp z?{N06{wTX3B=BrLoUJ}k6g0h{?8Y~GYG2SFTy5r#e4r>T>ikiLPW%odN=DwYq9#q4@)Le_>8&|_m8Z!3dN`(}ME9HYy4x1C! zNlTJfKcWoUaF=;@9>`jxuq8L*Idkg$O!=}+N2|P`{dELnakAI?|4fpIxa_=ZVdW5) z)a0btjsCTI{o{x8;456#(DPSw1W?Z*GV7dMOXhPdayFc(y(6vd5@sxS#imjD|!x+=+>y?3qD3~)b;30{8nrYMm zaxTjnNUW1S|08OSh)g*ETdV-mJ}6YO<974ewltAZ>7m|pT(`o3$t05E+%ii(#z^l) z;G3LD183xIwm^k|&_+&S?G*IIIx>bl=`bpf+Vw5hENhdJxyQ1sc`DpXwmDLIWx7GiVs8LH&zCvZ|%MC@-+J+i5-XB)};s%y%JUv2^$(lySVs@&^t#+y_yu&5>*B z0bUMg7bqcNb;-)^IO7U5>;&%wH2ue0Lg?SI+o~k77Zd?m6W;6a<1o+j`vN3chO#0E ziCNHt`}0hA5w1?Xd#7e+M<|9v>!wh!m~e)#D?d8Kb(wiw@Uuz4{NbA(1*raW$k@B8 z5Pes~@5Iw3uVX{&N~DDfmHL1|Isg#61)>BqVE^4vvmXEs1n)u;a7u1Yw;oN( zcmnZ7f8l`Z?}^;9lud#%L3f@M)vhY;3&(SW%aNE!r2&4w)eOO(nI6HZy}F|}SsWds z`HI3PBYzMQ?S~Z_E%0(F@{y*SXc=2 z|Da-o0wC!7%3%+=2=C%^VJx&za<6dVM`bV2uGD*3bb4{i1_^@jrD8llmCS?PtRYj>X(d35jzGVPX!)CMB07@F!@!W%;v7@H06@AC-sXzKU>1p}0U_b6)B*1n z-DL7mp6zG$>uB@m`LZ(;sBr8U3&qv(Gr`LAUlKK_@g4$174(cx&r#zjgkCTNrz+rf znYk*MhDp_V2!SGg>;pSnZb&7iDDs2vU3?OFGNaGt=wdbtzhN16xz z8%!rVZuKn!GCWlTQVVpBZxXlef) z-jI?PTkG(g=Y#eS^@RF4*n76NcPl{IRH#YEd;;Mr`68lHy1W`va2W`!kgudXC^vHt zK=F8nF%fT2rLbYp`F0D1z=97Ef(i-?k_gn##oz_kPmhSAXV>QpYuT@Lmu2xWdnlcO z;a9&2hoZ={@Bzw-rJR2XYdG{I=%_vSO`|m^VbmYxU zFmGw6dYLek?DL~#I-=+n39EyEC{2D!xlMNX3wI`v1=Kc9N{G4j8`_L6%{mcP@S^P* za(qR!KE9qjQ7na#%r~4O6WUGssv;iSYCoHV?nSJIdE>rt(S2ajYJrwX`#x&OyhaI zz2Njzs$}ERcT6c|-}Z|U^%mUt=6bO*Qc%+$JzxmA1d#Q^qK%K}Haz{f%xd?_E8I7HDs$Tc`# zi7?tX-lyD*O9t>eRX7dc0~ZX>lVswtS*5$0Omp0_W{(j$u7RecS=#ccvX^TR31WVj|UK(M&$3S;5W0E zQ_e-WWOu{`&%1VJNFaTw|L2YOP~O-Q@Te``y>eR$0N6x5q?+eds;^Zf?0ZpvKS04w zCCjTE<+-Z09}2^M02`wJ^8`?Dj~ooO^iYoTm^ssOZY)rVOyF^1aye2vA?k}b2pP$+IgbL`8{#dF-Krww}C!P+^T_#M(GJn;MpOjnG%T&-7| zbk(`#8sC=uIOb9^)yV7^PB;)39j?klOjAatBcQ#o^AjehB#)i$CK_~cruktMk}e*? zzYY)Fw=iNMQY%2knX{y?!F7$NA45{?I`=2`G@ zx8%R+FhcpR`qMVGw@qYal;JHAx%x4qcIu)Ts!oS9 ziB~L$Rs?u1+W^dnosEgK{XRWFEEA9$mMO@*pd<4Zzh`gSx%ki1J3-_k<$lxBG5{zwNwVq>VO&{>*K8Q;e%E87TTEu+p0TW2 zsb74j2|pp$mh4arIeoR;{mX?mU(y^?tczEHlH8(4cdk!__R( zR&JlKUFzuk)#d+Z}O{0KN7o9suPfvC=g1HRgVc?a+ZOD1F4*?NUQ<$646 zGtp`fXCV!)QIk(B2h1J5-`kr*^x3gqylh%#_W4F}fHUOHhxwicll^14B&j`Wy#3ZWu`fb+T)?;Xw#Ztp<7h3 zZzsE#`kwc@DO>z#?2HBzxS(FtoR26scz;F*GguUOx_6jeYmFLO$DOv54mOR|u#gkQ zFR~c9+p(~YoAk+{^U~@)IarSYU#hj+rQU}`tbWFD=FFJXb{Ndp8}9rR7s;0P)Afyo z0lj_X60R;QoAu7Ayn|PZcy_)xOcGP_9fQ8 z3pkbHp}-&|;?j2z|Mhz|CO)J=(Mzc(lA2Zn0XxEY?o@JFpRIzG4$ZYIPa-wYeCo#aj;BHd_qZcX1z$ay zYbYNTz?xP7V!@PtPhs7cV_uvRL(Amr)z##3F&jWcGk5-ic1(ZUGVs~!x}+`z&r72^Uh*&t=AAfRhx9zj&bp5=0!Abh$89oM(b*;S*DZ5 zY@OwR0kx;0{sa3+^LAGZ>&j*Jxt8b)wlZBHKnrJtQQEgd99OxYz$WqM-z)R%t#+|m zz8aGFQ}41^Y=RFa3j&$l!P!F$s`%MiuY_52fs zlN511JnHVcxr7QYollT)Eyz#FK~7IRtao&{OnKRWWbtz#d~!L>XtmVhQ5S**cGOCX zs`l88Z07`&;1uONJFSs$_Jl5mx<5Tb51j;oH05IHL`NioJxJw^BWu}6Pq3Mkj&+n< zb_-u0pX^ez5WpN!c7i|c(Vv8#56iR9t6Rzy zuLjH_$Wl_;t)9nL)((g?SY(KrkA<99(>JuIb4$54$se27?)zf2-4Cx0M{;c@97MRD z9x=pw)!5k`U;miV=%0I5*NYFm_z%Wm;+KZoU^JVw_i{k6eaeqHWW4M3`6NezUlkT~ zILphZ3-_Njafk?!EnY$E?L(8p`zBATn+1drOvR`4G-<8i53u0S7Gh#>llEU=~(@!a#J#`xTNjsQH|rsF;T#MDOK$JB_etG68J zHl=5)VlP(I0@;AVmFez3q(%6Y*8Xs1Pg1vc({QA@R6RiF){oq<@Jg&vtLXBMgDIbi#Jb54+ZSX*5dA&pM z&5a@l0drT*g0pF3yJ9%XKe~9|gzfzfkY?;u(hRaFMOM1$j*nC|?X+RQ6j3*IYFjjz z_U|?L8pA>lu^TsF;=?Z5KNHeF|Dh=kQKUo%3U!v-8hASU@}G< zm^Mh}z?tvtP@dgqqzw<%5nhTDGOKC(sqbAx^r@HCquWU$&mvmptJXtrU2+vV+8rCu zh9dq6vmXMHhdRAZtmJ)N`|EEmpW}VTpW4T8&qY=3ew?dCuE#%?pm-N`G#g`?JF~4k zNEcWUX4bV!M3^Ex-RX%xPZ@x-@7y;LV7=6su>Q>o94XRmJbRrEQaHn5C4!~l&VgcS zCgE*P4A`BJi=by{qr;}9OXLU-3Xu=d=q`oq)JMbqz>sArJ;Z5F9_0`a0#gc{(x%Un z!tA7(K3EXpkNrkE>uw$!jZBt1jMJ{qCfNs{DFhD0N5nqRm1|V+p}V6c^xnVnuFJ{* zBO%v3hmgWl{flQJ$JrSny%(B6yf+tT52buqZu?%PJ(HKlZmLZlk{^S z43zC~8iQaj>F5QrF?%?uF;;tmPX$UObsnnkXmEE0b?c8}d!4!HO@B=)aI3ce z)!=>%a%+UqI)Vr~BXz=pYoe~7>Vl4#Hc7Dk6ZP`bjh0r6$`phPG2(-F#VL4f=G?6I zA-`6Aoc7n`^jN7L71~=mF_QPkStdfPmJ7;T#8`7{L#S5NZgpfL?VFVJ1O0d3FBg%q za}mWnUhJEdrqvsFu$VY6Lk4(?@E`d9b>jsYsrY#(x1T8CH;03SBh!QOUl!hrN4enj zLwt%9xYOu6^2}nCNgl$aL}d>cJU-OJwwIKLu`!W$0@zytdjHM@lP-7X(w`E zf|C~L;a@9j%o->v4)vFTU;B>>klAhaN^IrCHVEi<}BVzMcoA_}s zN{7a?=7Y=Q+CXU0{e!^@^1Ah3U{Qu%oEJk#1B+T)A_TpUs?fBvUMaGeLv4^_JbU^+ z)zQ83D&I<3R>TX`4UCMw;rvRy;mflo4r%PeHUh`aReTJlDA!sH560+e> z!8`kZ(L^T@OiFqm#{x$9XIE*6Qt2fg>;iPb+v!jwx+#T)yOQuSFf%~Bo{MIbhu^yPwJM&;wfIIiJ5F1mF8OsJv!Up{K?!YUwbnbsCvUnr z>g}7t9xt@^$$LFHbY%^%LQ-|;yg{j(Lm6PCnrmPG$=NR z;k;L}S_tx9!N+da&a7_(6pqw5CbO5!*WR^$5!iBvUe^H6(YBYz7*bxZ7ZtmEx{T=p z_ZZKCGhF*(hkyFaUtIgKP*n5<+gi-;Jt<{PaKG~KcneZr`pe^N%~m`}op!b1kUs{p zA;kIHCNhemW&QoSjkxu3pdZ?%=tIVGem^5^Sn!(*-mZ%x4=K;<1y!NbXL`xPZ9{Bb zeim23S8;z{ufjdF(M2*Jy}p4IrpD~k;{Ms?FN6&-_VTUy{S(jhsu1>;^2x3GL!5r+ z^?YDP+mhl=Zs=IVr*A^=(DIpqlHjo~45mb&UXEIJ&`(r6HY&ps%c|PzuJwH9$q#E3 zNWF*t^#k&Y?F=w#-W}|t2$p>TI(i|!{c=e69`)%Rq(9H?(=FC{z4@V$DyftJRVuuN zOwJO?KaIpMXg23xV+<3&M3OgY4vK9?#yi<-$YAMnRo<4|H0IO5v-Oat^2&%+nUNE9 zJt^G3N5Ch4jEdt8L;Yzw6^ZTf@!+f=j3Wl=i^WPWG z4v+^PBnMnS^|(3i#BM3)V0Zh(b2&aTS+DT^He&Ci%a>s;wzfo;c_ja6jbvqjRuwK- z-Rn}hvx0!^=PNXaKU3~YALsl?PHxou-Iaa6h)+LyQEK;nynuTSzIm;+Lp(Z1D>}e@SZN#sB!Woo=zUQc7Eh`+@8Cwu`NoO{I7UInNN-(PL!!eKOA&aTXiVY zYe9u3XW^l4%bOtk*n${_eK;xe-v<>yqi=aGpzVo~qi`*CQ{Y*Dr{guLsy=@8D2ix+ z1>qBJ?bnv!PpdIsw@kA~P6x}m_Z3mtT^>kO_Q(X^3Im^|=zcLOUP3R*#4qAMmGZ6e z%FD5w4==3U_LG&RvAUno)WU2Hd~PVp7_EB-P!JPF)-n>onNjCg78hF+MJ)i<*38+@ z>;Ga65ltHZ!=P0M+K|Ce$=rIyjXyW_vwOirOA`M$|GhoQZptp^>kD-EL(6>w5&tVA z+VkaFXAZG}B$B6#yBzTuH_>Q?Ep%@=lTzL9Lut!tvQKR~Rqd4S571etnAxAKpwgLK zXllflI9T!I%YEX^Wzr2-6jA6tAP_B2cj zW#>18Fdd)V8}DoAgJ(#7i5GCqQAy={KMf#~+(S0@2$XSLWVmSE_Ph}^^4k2^^aWBu zy%Pvdk0Eunq}Yb*C0cwW=<3F#v;k{?z6`HXt9-2IW!S)A z$VmxUC3GUciwnn*+!Q#3dbqmwvSb2hlyO0_3DV^xS4j6R^?LgC$Zp$02TAK_k>Ak= zI&z-$_*nJAmFnqR?1J+uUn4rDUo)yl{zx{tEbNI<>c=fvet{BNM$o7-TySUhy&)mH z6tDs>KYs-xrXGlFULufj~Q}ucu(JeIR>n#1h{{xnzm`?%0R`JmD?Cx;e ze8Nr3Ok#bS&B3eiZdFTE=py99Y!WCNf;@kAd>T%NrM>-=93RinOtgWcU^>5prK=@Kzu( zWxkiz+Z)@Zhrcj%j4j%%-V?@8|1t943{Go|BD|)8QT0jd-A#WZ?gqQ%C&7Qq6?R_)ePTGxU<_s( zfbuiFaP|(aDa>B~3G%%U-2$Ln>^ous?})SqC~-hNiX#;RTHS#2HxNWJ_EwPD-CexR zWsB3s0X~EgFUMUW>3g#A#B?hztWuVceAA$&>Br!NG70saiIYV%D8D$J2UHCWHH+g4 z?i`&pbSv)0TN-L^Khu)j8HRs7O^Jvi$tpzM0Vm`|>EfSsx$$#|0p#h3=^x)wk#8z) zc5jBP6cY~5g{OwYNB z40{a%>KLXrFem&q$=+eo=mdp+GO@l{J6L`5AolG~R~`k=fA+W#8wbL7*eh?R%ua5q zWFP5Rux=>FdC}GT_+emp*ZpX?MeKjPncF-GVy3psC4T;=nZPnvd5?eUmp*y+Il1YN zCmrO4XHRIFyM?v?yg?H&HkA5NL&R_M#}5M9Zi=r+hEIUh0hDQ62VdLQH>_3 zn}gN7dXx{NN4!W(ZnRDmv&nb%bDZ1)zvxHRI{zqVx5^7%Wt)=OJ7O- zy`2k{F|A&QAyezI#j`2)XEO>zw_^*F19p5FAg}UHY{66x_5Qiioi?=Bau#oaIiFF- zwkc($uxULSw>*%=3YH|gZg3KQ);*I$Pz}R2 z)MQKvA*LHAx&^GedO)1XDO~eoBM$@_?|fgX+}rQ7^t$Nz{?Kdxt;_lNJ#{ij#m0~w zJW)DiHF2k|lBjvQ0PU0Z3Qfj?;I7Wfhxu<&K|d-1$-Z((EWo2ObGho2`;UX z(;P1F;*l&>k8UoxD2Txhz)&jEUC~Hm(OaD-8So342M!?o7(gCrs#>@3iFg~kJc5y< zoclgn3bHe#A7!YzJO3bWm@YGJc5lpNACa$OBFvA9TyayyTW-U6KCdRDtBJE?o8lFr z<=;_f3w#t|kGUbkYQNF*yg^`#7fs<@jN7BZyKVj`@`&9?qi323LWrFQx+^{cCarYs zJ=$d>Kx`vbWVI{jI3SMpWYM~8XR5L;mLQaK=hNs+p+-3gwp~s0`8gTT8NC|`2R)gpeg4@W~ zD}ZB^6}w})3phFOiP`$^bN$k!4(fWM7wWl10CIsgU`+;M(5B@<#2~wmo)c~5O~3K; za~p~x#6UBVw>*e;FP0!6My%JD9@q%A!QbDcCdYn)8q+7AAWUs*u%}R<=vUa#qgU1? zRN%Tl0L|4mN5w#4P+tIVNSBaM16}mhTApI4;ndVm++QG+10uc>l)r@-`;Xx|WG4B% zG!Y$2D6ZOjtgnLO2)2$bd_=GZE!vJ9+w? zg`Ha0%I>&{4CGtWRzK)45JK-Rnjp$we~MMJkQZZnbIoOBdAjCA10YLj1EK;R^u}d? zunZfeXW<`NPMoH!-th~K*390M0819*2^owNrul@JX}_{I<4EKG`XZ(IJ_J>`{Pg62 z>@!7)_gMBFxUc=*&8LjGst0iW-6&)l1+ZwM8sw>~NY!d=R*r|c&8vny@*8oNYr--y z)K8s134OcO;e=vn4B3w7K}Dm>Ta6(7uX(u{JGt%!{Fb4VI0SizF&jf=h5!MHVi=uy z8{7r*CU&)fYbChDNWXwqq{*{a=odKDufbOw&~(d1kWq(N&{>ByDn(v-H~l{` zvr-_5e)ZG)Ll76R^i0h3cxV65)?$q3oket1K%!*CV+OLm;2HJQmfVc$j4b}ZpyqF(aq=gXCb;m<>02$k9y1t(paLqk)t=d*ji%Y-z zuq$(tmh?Zu^YXoru1>_S^0t@swAP#X)I0l+Q zFr3Kf41q21@0%-7SSB3&iI*%zkr?>W$e3%_$*G?Ybw&q3;Yk&F1Hf=F^6~TzN_Bk8 z_Vl&vR<3{TY5mO#(-xmNh^i5oqdgK3^yLj=yc!*KdpvUygSIzEmP1ZYncn37{j}tV z%e;`a8>Ewd{~P!rAgF=VpWu?bM$#tSlH=FhJu~ofHl2K@CC(>c;Kkj1f;v8Z?hW_a z4>g_GXp#`*PAONdk#bh_HC?LYf)uVjp8I>DnXEf5Hh+MAy5cWSnql8^f9gjX<=-Db z7)k1T6*U10r|B*8?P*|J7LREHi1UtbKe8OvAdE@#KM^+j)1&Mz2Jtchg)Bd1t^=Cf zmRi2p!pC>DM-isG&AN;6APFJPgL^7!`> zzg+4!VDvZs4*7M11DL;!q`6Ri06%&=XL4Aisn;To0NOiQ5Otw?}zvR@F!};F3pg?AyT$S6LE~A8`ACotw{#hWAnoZlUqyVv@@e7 zf1{&JjF5A;OYXO4tH+***Bu%^G^w#F+<&x8%oXjnVKkrAO6Co7fN zH$c6=4w{xGJ453dA-GRpo{#4~yj%}m1W=}{N^$$%Bx)a7dG?KAIHv@tfUM(_-@z&= z5Fs@Ct!)7aBE3J;=_nRAbr@%ee2z%PsH@w z^UpU|aq{1+w6Y%J!j7?pZ6nqEY^Two__SSs{b#0~ZzrJ-VGk@oJ*?w34E6pzsC>Yy zY;Uqpi{2!(3ms@vCMj^}!b3^)J3n>*lUI>aFSExBtnMkV!_Q~yWp7Ix4ZzPp2&ACs zW{Da;FtJ}w;ALv4^WuauM_&(u+p#@5X*x)WsB*=|flGnfH3}E|yQ4c*WNj8*io_`{ zna4nnC{3@=_}fxNXUo8z)-X4RFV~y#<7Mm@Zf)S)GAW9b4r$tG(Rxfl^djLt z*%BCMC@uZ(|8gGJ z?>sYS&e?mPJu|tr>OiU(xDrz2SJeZX1FzrvfpG=_;Kw8XvNKDhyR~pDx*L)gbT6Ee zMYdpkqjs>J^6Mt()&nU{Bnw<;ov^W|6xEtkrHPq>hb;f>G8!3+^2+Nx76GhhhdA?#;(#>37VAE=93cW2Ga|~8gMpGl3Bnc&s$60hsOz9mG-xkTp}3ysdqaCML8- zavYnJ_kCt(LN=;aCFg;=-tY_%d;Z~gx5Y{{^V|$jpIWT1shPGKbZ^g; zeE+Yf9#A0L1wca%_$#*K=lnQ3ji*Bf_(N5G$mn4oCcS@XLQZ~@lFX3?mBeOA>FS}j{NA$I76W=Y<#g!C67O#v8QWl09vnS_lFB_kaMNwr z#ET!^UrE8=1_PY{EESq`0InvUOc&ru`TBz8a~AiD5jhmei8A=Y1kdap(0pGZ&4FKF z#{2@fUyg!tys{hkOp?a4QW~&BH$mdU4Z{!bX&y+D1a%RL9V`=or1V(9+a;M+NpI>& ze6P`V4Rlrf+OzLp1V0!Q1K&vre`f)Y=k3+LMtOp~sW+%YcjVTTmU1xAC8@dPw@)@v z4@1yx;lwXZ}$@J9Z5p)?}LVN;eCR6DJ?{zi(0@xRNTy(`A0#G2F zw4WI`&T_j`K76=q38ckTH~xsHvY$nyd{`a7g~K)~6z<6tCUWu64Ywgpck2>N_;y9U z)(|N)>ezpdp~*hW0AQTp-;{H&hnLxNAwU4WaW}IB;9yt$)O|R!u1&U_2iIV@xqux` z&$!vU|BhB2(P^#kY)>{zO+gs8qqPYhcF5cZg`60xUoPfIGg@`}(agBIiq-5f7c?hb zYx;NXd^TEvK?QP_^9q7TzW7_3-LU z6d+Ed+H>RRV0UgQpF^kq)HmMi>uU7LZ;A*ZLvuj5%wkj&@W~8~z+`U$*|;SZsYnDbNpGq=f6O0?l@!sbr@3hXtfYUg1k1Dv zN~vpn1Yn^DZg#=~q}a=>M_I}!VRHw>i#Sj$&{*HGVq?Mw|1->IbO>WgkKxVn+u-vT z=iAK0*oH&jDN@;CogyFO)uApndRfdO)5Z!mo^bT%t8Y3@*=VV>wf6=mLEHM%od_x- zH7tm|eOnl`bg+`z)fjdr4tR%VnV(h7$&T1>S2$tjww7i9twi?EbYIK=EtXwLNwJ;Z z!;*t`Cd{1s@TOI>)+Xd!0$~>!?QSK^@(v@$!nzrJf(LEI0h^OI&TFMB>hnge?YlWYK8fj61WVp zCC*v?MX$)79z%(_EbUEIaNrSvm(gD&W{(B`?wc^25s$uqh#Y&V0V|b zenK2p){FNm2CB6%$!qRzt&}mBO#b5L@iF{)JNgT7NDcX>>ZukX9xSmuHF>J7Y@_Hu z02eyaTU@^-v_0(~@TKbUNO^UGK1l`9E*+?;$))YlZ+tk0AG5Dbt%=@!@71OQ_470f z<^oq5V4?jTF%OC@gL?-XWAlJp361v9{T-}5roG%*U6{9OAhbdmYD~#2n9|;q8i8w{ z_GWI7A|=7GL*c*r8j0jwTXwekp#iYigQbh^!1Zn^f-2#EI|d60D$fWGKW3YOs!_s0 z#z2Gg!<)clQ#7H-yoln1xXk?Te>XwUya*JRgp8}Q3V5Oq9ON{%wj4ey7;XSw5F5+S zo%z6*TH5f}SD|KL_WQSg;pXX|u|BVC^>^Csu3+yNqkn=+l`&xDr3_q%uhMX!rlPwF z145GrPmariYg2I*@HrV-yWxAFbTetUSxdZ=uQvb35Xo){Nx{p3Y$v% z9#dDK%k@3z$%6br7HdzS0yA{#n*24mnJ95;(}(W}V76&uL+&fK025KK_X zBA<*M@SuV~cRAe}{={@N4Ej=!gObSm%Ed%?ElXT zpdZQZK)&fEkPGF(N>G#OF@9%L7L3le`GGFt8P__zRaXt(aO7FFVp6nW0%^G7m>^Pk zwaUixTH5clCLtVudpN-99Y2W%`mP_?@zm+9zJ2Pi>PHaBPbIxiyJ#))q-1sDWL;~^ zKy{W;89RF*c~^k`9Zjblu)yKJH7^veb+Xhce~a!!C6>wyCth~W7j*0omma(|A>Rih zvA*}1Z+YPjud2Y_{zt!c-^5v07~w>gdnTWo?|pe@TdJ*%HXPHCzs~aN+XmH4VK5M; zdR)JTRq-!Tz1x!W%O$Y|=xZ=-0C_LnSoIkh)eIcQ3n+Jxtt>$vx_w}LN&(|GGC z?~96n3*P4E2!ksN6A6G-6Cbq4XP%i&z+Y{N^#H~r*yFM6*Z~q?SY@hZ@qx1n-Q3YzIZ_jE)?d}=>PJ@E`1?Fp4>nq#d644DLyp7LWzZh7h}x+^ z#+m$l@_iz2d509kmlG1otv)4GlXv#g3glFraKN%2+;4z)oyp12&G?`oILy#fKq;scPxOVlNwE2&EgqnySTB@ zIXA)|XshNPsy1|c5Ygz;E$MHWNHhtwIlze6&V65`K!pDrR`LT2%djSSF`Y7}Pto)) zor<@FhgE8?Z@o2-0BYA;a!H&T&a1mLNhjawb*_2=73F7K-=Z)zg#l<*M%smM--kEcxRd=IQfhka18VX@*sp^p`4?MtQ}lN_qK~d!35gWVbdgIlC2c zqL)#vPBb3d$OnLO_9FJEi04wDfG{w|D0~laoeI=*!%;rG>o^JD@<`INT&F5I zp)Pa(`{HR2V?T*tvLoUAyD$O93eaSzO_VEaR9)dJ;ZIYrABmFx& z#L+Z6>ovT4(^%7gj!{v6MK5?%aE}IH2$(fVo>ad5zrt|?1Tb|wUMQuS_$;Z^Zy?gG zMLr`hQfLW+71+_{<+uB{2r!4Gx56*L)~@R981FENSAlplavxFQk*3v8$2_~YBU(Ks zLmGC}U}8x8&POIR7om;2n!S$Oo@Vcxj}F=K2>A4!FbY0cN+I$-4;iH__{ik7ZsYlg za-tG#(gX%vKt_PU&A+}4YzWHq8XDK^i1g|H--t%l$&0$0|2L%S5-|)}g!{{t9Szr{ zD9@%N0N97&WpkZ6qkn%1MpZ%bHrv(NI3q7YPD!BJ$Uv8E=rtY~6)PAOt?zbEp5$H9 zg9>AT8Eod1&_WXUwsJk0tW0G{}0TV0?nKywIRb! zyPthRgsP4JZHSnA_cCbd5Nwixve8JTtrZty%#zCaYv-a#-)dzy+%HrR;=T8RE$Mmu z-?TU|GCuR`s8C8${*>;FTTYN>$El4s5OoxqPF2b3#}I(n11SoSTEXD=HV>bC`6=0G zE9|eV0(RH^o#J10n#dQ6-bcXn1VeZJ-b*pKp2?UibQ*}JZh>SC)W^s&h$Vz!2Ivxy zHu`4ge*YSF&IeB$Mng3QF0*?fJvdTwy7&=^t4#Y9&0IN|KMAY&#&}P0L6qChUZpt& zz1RvsFH)POZM)U_Os7>U8>q`Y&I;{3>1DAzFIDIQO+ragJD%I%7()r16k(qtU=j%t-8y{e7V!IeZ!G;rd{m)Jd+H)rwl zcmT)#8wy5rZ2NzGMM%4fA?&HVY|}l}Cwsi1_$;Tu_A8t?dr%6m9@(PT4v<@z?jcNA zR8@eW*bG{z6DqB9nw^}2&nHkGi666Yz?_}$v^}goXm|Hilvj+w23jJhAmpe!xDkw2 zJnz(I1nn&5@+h8o?ButYshMJ9gJAZe1}H!M4|B_p4-GhX`V+NOV3OTnY9-x>?c7S39tjaOkF2u)bPnOFd#v^y6eZeZF&%tGp#|PcvyTAdV zmJ)*b;4xe?IowOn22_+}aa+U8;`bo>Fuh|=BS3`Mv;~_cc*tA=p)(jz_8wofV(4Pry{S01Zy@QsTUQ3p z3!$AqC6k0#{E~HTKFry~@*9?lf)0)w8l?8l9S>~W^IjGydmwkmP1DSz31e;(qYiPx zl~i1fl4ce$RD(JC;lAi^Uy@RyH`au5uuQ{h3 z?5X<1i(LRbm|mrhHdR83UcR_22Z=Ca(M11}Mm@~QeCEURyY(B(CU$2BN-#;(l_P8r zq0RR=rtKe%^LimKlS&LlhJs)zsF38@cwP(D%I*_E&fkwOiju&yfw#&>egQ0|3@)G@#9fLaalYb;17yB!20+Pi>UD9D$8GTscM2< z#7m!;A*SC7%7(Ep>>tmr)IH)Q<(dhPxGDv2uMxg`4Ag^Jp}+52Wgg!UOM5;2>DlI5_#G|yjHTyIw%7QP zzd#pR;anV4iK$^eoK}}nNnM|*~>qfG%qn}2_r zKLwGb8rU^T8T8Uoija`-<7e#XT?y7+z>F7=*KzCIKG{-9tyyev;sdz~7%*J=FoxfP zgiO%Nc@uB1%j~C<&wozGc+Z;a8!hU0sm>r@z3D>O{`dU1Hv7`Ux>ePg5Jajo8sQL- zoW9DjtMa|vehDD`B(X@ftC2-YnC&|T%$H#bB7o(7P54alb|{7Xxem|AutS zO`WbdN`-(GF+T+`nsjMtH|;Dq-@+>nwcU39oD6t<%0bHYKmjw!7=bwF&zNHLLY=X! zzs3tMVWn&a8zc1|Q;-O0ry*{Vi}`8APlQpN-e?P;m%B$ss40zv^-}z*|>?29-4L7*HvjDuqPEhJEP+-kXy?@v| zkY92D(GL32*qd!G10C4&ZQy9fKW32Doiyvp0(a0r*&vZS(ewsUWN11R%7)h*6KWzU zPGu04MqyiktEWpYal8!4kC&_{=>dX9VoLq4xHE1zV^ZgnA`B<_Zj?#qlf+o-wk(wIT-JT?WQ!2$gzp`>vJC0h<#>H!yRKUmrHSzI8QqeHOsl-Em!qGCA?DxBxpc zfCzMV9nR!i7g!qi0p)Vc)kfC((b9=}FK77KAzL|pC2qs+pkU!NZEcsWLyu-4$3Hm# z*ytaMxd0Fe@Wz{@M?cl)YQ38Wv|qMU-`Ed#_e}L~tzk>ayu5h^TG>h(_~3lY?eMMf z$`=>}xvlfuR&RhS1h~(3In;_g9l8Jh-qRK5YZC?HBh~NcIi5Sd^6IfNZLSTT@p+(6 zCa0n_0F34A+fit{4gka9#UH0|KY#?l(QNvApam?WYOYO%ZR9hADFz{l&gU8~xE8`B zYXYNVZd_kAfLGS`PkcYVIC{GoaxM2MHm~) z7u|O-+nLDPg~;$vYUHz7iBwR3zWmNqb%dVUz?75>%P8lBmb7J|ZuJ=>RtN%elh-#3 z+^yf^io_z#Ap5HR@H*Xk=PwCLGT}2F9-xRhjuFbz-dFq7=<_I`Dcl5=;HFQdJ)a09 zuz!<@n*NSDnu0u|Bh4|3If$EiuK3&Fu&W>mW65wMHqru|;Rx9^UMOyQ5K!1+hAnhB z=Enj>i+~fPH=IqW4bDQYQ|iv&@8u~TKW^yl2|xd(R7tBxMEUeEQ2ExD{y@MpbY(Hz zH*YnuXn|NC-kjlaoU``xi9?3m(QFKwYwwq*cthx0^|+Y#r`|vQ!VM{6@JBr(U%?{& zWFISNCQw7~A%BH;S6mz1t}(}(emIAu6SFzyHf`o)S)6wZG2W?fsb3bDHQQ`TeAA7vC#VA%S&{bVhUK=!{4{h!1mkPJ7gWu9ptit>#wC; z*&o^rf$eAnb0!Nc_o99gp{Dxp46R1gOvxT~VUPLz;MJ5_2;pLwE(QM$MSyDx7sVAf z7VZLhb5rVfgYs&^c?hBqLXVQ`L*fNnxC|+`uu^>0kzO);X}qZ*exb!@KY{OO(;_%V zIggzo*ZPH4ssWT%>o2EWcYZQrddbOxONJl~4F{crqAt})4@vM;bdee>i*QzI1qFzx zV79c4dh#cK8b`_V&v&XSZ(hGx6Hl8?kD6ER)A+@Z)`rVv`O{KN0YSlFviv9N7NMOt z)_P+M*XXJ|1pQf|H4`JqG4AJ0G%bvj{Ixb%u9APC#aV@U@2Ecyd!yf);y&US>iXk% z){8TZDG#@vER+q&^wpxbi6ag#iNMfQh3b4H+23E1BSrbVHdGJW#*C`GgKp8`bL-1g z$=#c?!hM9O=1QA(G89`^zNtfXbY$;aJ#;NM$=qa#%VBv!=x-i|*SI!LO&L+JevG?d zEOlf*ZrO+q^-~3VghwDq38EKB%9^^Lpnl#o<33$;-O!-?jB(qk*8e*`UJ=3BeUu^= zxRUlMsBT@|Mpum-tleN4&tC&f0(oG7MBTFu^9LW;hcZ^rc*4|?Xg^>>sUa|c1t)ZHc=@BSz&*;BfM zfj!DOp0hJK>^N)y9@qVT_9jb$lwAktm&w`1%P~L2lB|Y4q~1<*0J9PQeM-nWi2!x6 zxLG*;nWsZyhtRKNIw)}!<-dp-AF0`qTIV4-z{O2SjWW_3J84YnOkQ2ce!Y5zD3Ef= zBk;jky9o*lhdHmQ&MQT+(PITLfBklNj9uSw2`ArUtEW`OjC7+*b;fc>_jy#yT`W${4$xvEqfSd9`y8WV=yU zso#N?Nw2j=*EpZizyJAHThz0TG%1oZ$Fb_~BLmx9WA1nc?k9`-hkNCHXRq_0nC=g( zZd@u+#1U})J{D?WcB4kV{5|`wDe2F_MK#Bv&)tGYv*-sBI8eVPANkx%r(gG1RYI=M zQQoIct2a#^V6XQQFC%JRE>K1L$V^QKNkS3?NL_zntmOfvqBAjZh z4Ux}Y{x1|1Y6MJ3+Z*YSO`k=4GDQ5Bqw{rANi=$QPJ|v;LFl}G(oe@&a37`h@j}Ml zn;+_aqVbWh>h4yqVZUXhi0iQ%9cxjbs1J0wb2N=%{LxZkUz}eVcT?!ro8`{)xvisk z11>0aWKhqpar)$9zv*xUUY^TUS8SKpC^4j9_1U4;NP$Ve*}ad6pE~JQ1CobZA%Yfv z+-~f(8*nsOoO%C0(V!qoK*SmzAP&7Pwc1I|*U1SxF8tnmc_sa8KD7s>eXL0ap_Uw^&c5+R?8kk70C zE@%G`QiXfG9PVoGo;@$Qohf`9i0VdaTX6E4K72#NCqQGI+Ur-Zs#JFz_dz#j%P!?& zB!A?GyWaV0R%mDPs`QC|>um-4P{{3!-W}(luU*)g zG7XU^JyB|+SMImSGv@jziz_jwr2=8RHTP^3Wfm{hzjfHsb3c_)8q~JTj^wegT+S)7Sr@3*Q?!@tBD96xNzvVjUV8HRv#!6WKY3KpTC zR+>w;VE-N%_AGiA-}UbhzXl9Qwiv|2bQf%?=Fx;3YkeOvYmfU+|CwzC}gK+8uB{Ht#?9#xh*et&8 z$^dKLKug<%Aznvy;Ssc{~ z2EX#T9=kTYSxHWhKf~`oF~OwD1jmSFlujH!lWiVwk*tN(UN4JBx@63=z4eADYQ>C> zQ^XfL$$mHrOU4mVJva77{Bch7ocD4w^&>qX9v*1F+OAsn~gYL?eAkds+b%(dRC+2L6%D; ze`Qzppm(eJOT7^qGEKyJ;gNfHX@w_iuM&f0!aLG6w1RFht(tJ1%?k_I)vl&bnJZ{2 zAv-Vb+ZPhkd%|^tOI@Y5ztUgOW4*pjPNlDK;CE^n*q_JCDfm(hmgLG>cZ|-vw`~Io z)`@GS8kYGY7YIk!A*tV4+X3Y=GBQEnjZng-X%x+SG)m85!VMp5{&UTK%ZTagZ91PL zZRR_EKSYi*!;lmA;MXF}MdP?l`hCHzSNb9JBXp51b3}TsC_~2?ArF(awxR>yZ z<5*IbJM9srwzs0CEZdSIkJX32@g`4VO}i388jgkhtVhsCy44%LTYA*$!%<%s_{QL} zrVcArAI{nA)KN@@@r++zG`|I7ujUBC6W+>XKZsX)gF#V&5x3=iE-+SguVhxZ`f}NJ z<2`xcE`nXX*JG~Mb8wl8c%e9!=>~?){im`4!JqXG>}ezTuk!p&go)%nH9~UC(v;YN z`-pxunWRZsPkVn0Cw3q6VBq~Xh+>d0lkFu09~INDU2S~!ru0)q$AoDw#rmDJ;#l*8 zgu}{l3Lw^?j}Q zAqdPoSviQJe#=G$WJb0b1{mFdlzoj2T6iZD+gc6(=LHyrb7U9~5uF0-(Xd^C)}|bq zBUhj1f_l1#@#Y7atP^P)5^^e0Z`{tG8((mw6qZFFEEJc$-5tLIKoxQWU$A{wtinI= z*C1)GgOUnjoBrQlYSF%i@dr9RrCZa5*XaqeLUSm!skMG!2Vbu<8>|)QC?ALna6)?*|#iP$>VPura5{E_y3sPkB z_b~ZN-cXsY8tzjxdbofW9uUbIHweDO##~}v7)OdBP^3JXKcqm zEd*y9DhMMCYHZ!-xE@=X-`rm+G%R;|{Boa$sx|V*@WiSIy&YShU@&V+p>ITqZ+!g= ze;oMcc`3w-5*v#e9xRNljrt^i3)-hK;Eu#LP9)mO5U!mf3XGHD4_kreJ|Sa;xRTv8 zbQd#kOyy0`a@lE{-xn;@F@kZJV-C%udx$y4hcA6WD*4(!zUO@$b2DGZX9mb=IqE(Z z2Jx2eofTFs6}Bt6b9vz0g!iB6Rs2H<%I%ol@xV*r4;*?sbAT*p&8e(auj4aM{~?oK zo4F`06p7eD{#FuA;!rOb_Pe1rs)@Qjo5SqjpJMVIrC2onDe-yUxXDG0pie`WdH)C*I$WW#f z!ScM<=KIXlrgu>cgD7LCco*Ht6|>>mc_yHR)_@5*`Y0^hvs)E6UvAQ-yu1;fqY~%HaHelevw%A)T z%AGN?L|ofojbdRd#$bUWejOqzb= zq|R&4T-=imT#P=PJF`zHdcF0!Ng30oIT19=AwLVL$2GX;Z0f;*eIT7Qef}HjoqW{g z<<`r}`s9dWTWzJ6>uzwJwgT?CpVRVlz8w;By3G8|qn8|9AT8F4Iz%}CObDHHZ z4Hp45Sp7t-KW^;|-?0%?aZZ4AxG;%rj(5wv%W*H!*Z3^lrM zL`)V6OLj=`Z3|Y}Sc%`iXx||f&q&U`bW#2?N!Jv*9q*SvvCTDA`OQp>N19$^w&H8j1tlvhI5U3N6 zGIPgO)WDnv6t(GWGWjTvH_rzNvTdS1-J+Nx^r~P|joRxJVQ;vZoIVq6d^kaSt?3}d z?X$ICP_vO7a=w4#J>J2 zqwA0&iO}d>H}#DvwjO7jP-2(f?IqEt#`Zqo2xs5)CWyoDk#pERb2G(ei+i>JE+4h( z(Qme+lPmwdDA1ZV_zc=Ajsj7C%{6VMHrC`4x*?0178=8)Z2sZ_Qv(V)60tEg0j-ToDcB!}iV| zAk1i>hyHVsGjm9NDAOYbomi=XBgbK+`ZpbPPe|7eM9Ro1Tl{n?o&1m&p68HfG84w* zT6V2q;fzL(lqBEaL4AzOFJkT;;&#PiT0~e0Ofh1vsZodWqZ~aRk&WZ8z8E~@_*}!7 zu!0hA{umm!atW6wAtT<`qY;qXd(~_gbB@mfY4qWHo#lPWo=5pxA?VNkRzN4A%*eE2kl4i+rbxs8H{m`J|rzDnb)O-)f_ulDD`;K$5BJNx;C zgktq0V_U?RZ`WW4QE9PER`rqRy(L%v`JN*l{w$(IW}3{o5((j=!%XkGX!j46@kf&f zy_>Tfy7wEn(6TyXtPB&5hH6zr73+>Q>t16Ze>}}mub*RiLfmTduyu`*fPV8JUf%~o z-id7*>Ba6W-n%MyhvHnv_d06e#ElpK=IcY>m%T-UZ`f(QGj`nmZs`rUJLs}4qoR>3 zTSHy>Cb_jLwBu*r>|C%x4K;u}we+kBqClb0)BJ2NgGUKcIE(u1D#qJbn^y~Nb6g0i z{E>y?cEf?j0oMsh6@(4i84+P#QJC$^8?zXPN=|;yhwze0uD5Q_`2{_7HcSQ-F~ewI zd^j*p5^&A_eYA`?rarC7bllHsAcxh4Wa@}1otL$=gV)dq6D4;Xp?=}h*QH!)aka!& z4!36b@0EPvi?6utvMucU+w&cI@$T^>SfK z;!}1PPdAwhm9XBV^L)Lkrr@_8bp2fNAkfnFq~W@E@`{jl#179b5ah$=e?lT#zhlo1 zNa~NhvSg8?qQ|E)3b2I%)+;2Yq1{E8+n!f5E zpAuH;YeRH=D!Tw3I;uphW%xGWE`SLJ-x(EPlrV_Rg;Jb|@3{3fFd5to=u4>@C9N3C zxS%C0%bj8BxxW+V@w2vzk_Nj{$p5ruW4xJCE024_JGgM7QvPY7A6vEKK|+Y$C6|4& z7r3uNq)((eMa{0TVz1Yt2fH5=&OCfTMCV{r6>K5t1c@}3@i8H8!8frd*S2W)rC4Eh z=o8dl@(6FraI)yT$Z5V-{;Acm7D(l#4YSV`T1;IVT<3;pFbq6^swTem#${<@IPhyW zr3_>$v?P)BlI2D&YmSOZ9V)Ga(K_k~NcnPgN56gIR_b4gcrFCWk%D%(?43Z7Pi%+8 zhoWVdQ32NA4cp#WKcM4k_98<|DAjm8z51SVD9_FeH@0+AU>N+!`tgMR)OcC3YNC?& zU97~oTK~bl&Dw%=b*mI_n)AcUNS`EKpB=^EL8I!U++DwYu_&iY?X?A`+l8|X`ZKerd>TN?gaw$@Z3S@tIpWw zR>dWM%f-F3?ngX4eif@pW1B^S4cHdHFFU<0P{9s|XBKA{xO2}iJ6}hjzB$T^_tdM0 zY?R;Ij-D&$-`Ku79j#vAJr3P_n!Z%8B)VzoJIO2%Aj1i*y(RE_D$BQQd-McWa6r%- zhPW5|PO#0D?ya9uO@4)-pFYBsU00=keJ+eA4ldA44i=dGfBv8}aaks=9$f3W|8}kPebwJEIt}*UGCSBlo=+a3m zLr_ahn#F{FmOZE}L53VErPof@OayXROBoeX2GSF8SRIxu;P$;KyQA;ESL^x1ai7>X z8!b6zhR3ZMgU{YN-l7tvSQq`@$BI-t>oWKUlsvES>hUJd1K$e(>Re#V^JKX5Vh07u zOUai5f0LxS&ATl)3E}&w7+$FcIN@h7Fj_I_jfxepVmjVSTkivM$4sd+Zq;v<`UoO= zA0QnuuyRD9(l5esKWwLnqiPL%03LIH`e8YV%dRajC;L<_y>k~Q>p}alk5euyda4%D zM(nYmU96)u)!>css;c3Xt(o1j11<>3Am6ywgwMRu6cJnK)qd;5!_F(a*C#lQom*SD zvb!D@EZi+b=@BKT&y-Yx>6Xu1C;ob5&bp$0Ik>Z=)#;wuyM|!B;QC%%X=PLoGSzOf zD1`e$a}3|@JxFtC%WYd93L8og>ZvoE$uE|G{YDi@GW0x)#uhwp7ub&HY{f`~5&tG9 zi{*jRJ=`dz&$X8)3kvr-?;WcQOBbKckalCU#h~h98oWm|Hj!f2On?+${q`8>e&R}{ zEXTg^4gk(t3Np6Z+CH_VB+L5s?_8koQl|U*$w9YbYA!U9ep z#w$A=e0+!KpdiZ#)Hs8CUYu(QlTf9;DFCXEp81gFY*4Ln+8%AiDDmrsbkwI;)ZfxM zzjK9ZI7p<6{1P#{-r9hk3Kuw4FCISkYOyM-nC#j9El}Y4O~+h)xTd2w!wx<7p? z-|l;0@S;vzh#1Hj2ITt3RqtPF!xA}aA;Z&Xh)jXD{-IU~&bfYB3YZWg3cX~0Ym3id zLIwixne%2O{RefVun)Z&m1Tr#Bha9a?IYfW+lMeyt460CI%Y_o0$27M;>cp|l_?T4&P~3G1_|6BZ&^j6%|yryB$GyiwIvf*0sgz_0i9{(s20$!=c7_RBGbE>Ws#~VbU{I zd%QzplCP3O_wg#D>3@L&a-K-?4L7o<4@lCQASwB1{*X$JI2YW0p`e+{Pj_B`-fyK- z35)g;=(Ml?Ad_O^CD&fiw;wjOM&Q3hgRI{twph&AIE)(jQ7l&d6_<5p{P-l9^}LUc z2dBD4?MdYM*OcLdZr{Jk0zj%x60Oub^ZWJ+&5`qP&`;NCS!Wl{S1QDJrwVc@3v01y z#?PXUClFn`QT2hX=$HRO;vinqc@wYP)i<=YZYQdyB5CXz3s}B{M*t z)mK5f|2KcM@2Sn@oB=wRR87LBNe%YG5x$8Jh_ojbR=d7D zU4q8xi}^zl>ZZ3vViD7l15<3}{Eq|=KbFoBShAo_wW)Gn|ZY3xjFo z^5d?*ExgN^BG|%NKR`w;i?|i-B9JBuxrOX%%Q2oGomTPKvu=KH)gsHw_rK2bZn!#d zI=t2&LBE=;*|C-}$!~k}>-=gjB`<{?H}vovV>_mCL)^7ci%;cpbY}fM$qA=}x&5ro zfnQAXCdTUD?>ilgxxG(;*Gxwe66Kk?VcVlJ*|Q@mil}-C-1iKZF+=(x~Ml= zAVfo`Yu`65{Z`(G$w#v%b;$O2vIdr{RbQUc+cc+w(%XqQJ(#4s^b4)@&n~*W&(@4o zs6!>qDJkllhLo+$WuvS0(USr=fp1K;i2o5zILFYAy9!<@yd%^2r`59ppFsWM&1RI@ zBuxT6l$9b8Hq92)%ueIy4WK3FG2ubk=@W%jUo39g9p zZSF_}b*u4 z)dSwO%P7l~ZxbK-3?E;)abiNMKN4?<0n~u$a-_|d_yafEVZ&!%V$bMMweM!|{_Elw z2S1`rNQlAcdyMhYUaN+S-2((ZKS96XPpZFTh1DnSHU*>CnjGw-d-|7WPO?28tx0I8;W#PjCQXiJ)9YPQsZ6cHDsW`~`+jI(FIc~&%C&OQcc3$+}R9{1# zhd+J$g&0I2KkACjm3YF`kDbTZL{mw%HM$kWp8)0P zO}NNHNO3#}={N;g-v}UVlSY}N!^ge{bk4Fk<}%Qqjk$)r5UqmY*2M{HoRA>LFQ9$w zZMpc;s>k=w+41k5!uG+-yciGF_Jf$V$Z^}^9l3|>1o3mF%fAI|u_UzKn4`2ekR@5% z7rt&;eJN{QlB8?!b-tJir56CcRk8c#!s>i_$aUSM0gtiN2%Z!LHEtOkg2PPIj1> zQ4Q;{i;bClvOmbGIkVTkX+M9(iisX1_LTDXX`F2b3C2xxW{8LlEAp)msAhkzm(FaY;3J#Q;3gZP;f;wQDRS$BW>rAqC*2sk3c$C6YN zlMsKw?uY8!UG?>^zdkkEoJ?9KtmHDVMG8v(te-4dS+E67o@Uc_>$B#)*{i959a!rA z3Hrwx8a7ny&kbMmF)W>lgMONEq6~k6UG%BpO>^k)NW=B_6R8Q{Q9AZk-AV}AY#MlDI(6@D(khq#I4Eas zpFwanFEg$I>Z*Pd9~4}{e=LNf2yQ^grol=&Y7`Q`Cq{;pc#3WoD(^RjAQ&Bt1m6a zh>c2fw8& z+|2;8DgUFVK<(&%3Gjf({8}?0OF^9q+knHgUzLEnLi(-jFdvgRyjoC%H4!dwYg6jY zeS_=;4C7rUl{$vRuNF25n)8lZUwrBuZNVjHDmd7&>!6O0C{R~a`2brH5Fd&Xyiwm_ z<$0Qhr2~j!8;#s87S{MCOR8A}XNq%C^*nL%I4s)(1;?+gXT}O{{7VP34f~fOADNtw zUJ+e*&q-bld0YWr?7JQDV+<#A>_wgG7vB56uX&IZsqov^ZjD>b>v?&GZfx*eSJ>_k zr_~#Q%Z-r56Nd-iIbS!0kDlL!{yqI)N(R zJJYL)%g~E}v`Nw9GgF5&b87Qa)7DaiqCb5BQ!(BQogHqeQ#G1+8S2h5yP44q3F19a z|9)8(W_>a>NV&*gr%OetP49t{1_z|uFwoC78hIeBeB5uHS4556=7o#9ZNg(@(2go` zGoow`CUAY5AjrSeU_xb+Kd#+4q0DiQ4OIiK1@X6n@)W0V*K1Y^5#8i6-~4`KFg~T) z!1qb8JTw!1sMAZ1s0J4>OFf|>jaDnTGw13AfW+SarmKTH;tuu7^8%f>Za@sS9EN2) z@J@jmT02H2L|~YpDy$uNpi~;28j4BW?Q;I5o0IG&OTn=+H5SH=8i>B>))fI6FbLjvgF2Y~ z_KxnZ5V;ovYrTZ@v26zh33u`#jGxALl&J^Lay7pn{AbK|N3`DH*%3 z?36$th1fbn6{uiiN~RtCG?s{Eu=4&x$lb7&y#qN|R+G#^<7G;Q{dk6$`SK_tp9C-H z(@Z1Q$3vcR-h7^6idk0LpCaX|9C{>aLygI?GU5JwX$?knMB--65>`8yZFFJ# z2>A2T*gfA$9j=3|0Tn#oGQ9R9wnzF79A~A2I7P?t09xO%{Tz~4v{>vF$}mZ2rr2Gd~*rn0o0is8vci?wp00JD>ml6K!Gf!!Ji0 z4vo#|nu?P4e0ytY{);U=?I3QgB0Q{(sg?bmrQoj9#0kdZvz^A-7Dj~hcZBzYle+Tb zVRb>I)J^CLsMqqJT$3jqa%)|ulM^S^{;wAR8M{+bIM&HM%@L$?W*eN@z$uOVw)Es$ zJo@;UZ^-;>ahVbqia?!rEn0q7v*iD=PA=*u%YsJRG&&|=AD|F5ub zn(0Y-dAU<|X_5fvlJv$T%RQ-!Wyx1AGf@VqdlScgbCiJE)C_~1LfJ;W|JRHl-UNTt z-Cdw9;M5GWX|756)f?JR%(SgYO@(lyU8}uAiClCTz5~#;D*4{n_Z!-~FzDbSs8Qp+ zH%R~c)08G=hhaPrpny02yl<=3a@T!mXb=-pw&xJIopvC;ax;;;*#_;=eMrdk*eyV6 zh8~|_5j~iY;^cuuYmd{`ucu2#zwdesq$mwqY%ilrE#yRN=jDstYrw#A1h#hQbf_zPWe-OaRhUQgS9Ub3A*C5Ej&wBOTvv!jEt6cR_#Q6a#b)Y~PmK$VCha|-0gs`(FFvq&Lq+#7O# zz@iY5cNxEV=QsPVwkkBuZn8Qs@QMQ;g^R(hynVA>Z zHw~|R-US_0<^pQHmn0e zz}3i*+!0!2LJw_@b-nald2ZPT8c@)VVWdEZz!9N;L9;*kvB}CeADUcZ*<->3Ip|s; z`5yW=gqpY9Fy3|ju8BE_2E{;*{mL|?WJtozs9A0EEPFTfUnOVUd3vM>WQq?%`EYVw zF0n$}^E7e4IE=;={^PXj3Db??yA!WL&wqs;SrM;+qK62!1z4YTYG-Z5#o-9@jBkJ< zdZ(;;g#o*NsP~AR__$+2>F2Ui)Z;Sa%iaKH#!`co&w6#SIFIaeQ?ualRDp3pw|X*p zPhL-e0_*H1@orO0a5S_p)6&__`2F@BW5v*6lPpMr2`zS>`cg7rj5ZuQW1K^N4dlFWyu0sFfg1ppP@$_uLhz6Bb+?&AXmv!p zSnhs}{?eo{j)YVZJI24gnEf^Dt-)*PAs_qh_5tz-7sHQq-}4f**S31MmRWkS zw8~EL8Yj54q9}y8xryot0>k*M};j(WK`NXTAID(01AxJkLC z!X$7TT1BQ^h=(`b{bilGG~>QR?`&?s>Pi0LPR(02wrdSDdz|IvK0ki_b3anjD9%(d zv(8*44HksBv3dmPsE};jol!1VBFZOdFc&@U*|)Ut?P^TlNdc%uxd|rj7c1>tiq9_A zLuAly2}%>KAxN>_me@CEf7ARQUcoRcJqTr`LAu#DrjFbCobP0A5jg}_D-fY5tyu0VhQAV0@i3F>bxP%JSC8yy1*tU|xaB$aE z&v?0pq}G!I-wzqeib)zL_Rd@P&PViJCEg6im(3QIXa4NI&nwI@5ADdAV?YdL9ozXP zL!=wLJ%|cY*ZfMM<0(e((CxGFrm7+?%MY3nf{2pWZ4LNS&{Ar+21sJ@?5W=JPvJ9b zF4zAsMd~l3B2xq{`p1=(+^+`K3r7-g+=3>niK7$uOkTCD!^WE4%D9G=uIaZsscVGS zAj^$hzs1{AsvDQnBCSI?+7;C=iX`}CQQlgW->TT-_0(&CFd7dL&?eb%qLpPyGHddd zAXD>>a7|T6@{dZ4*U@?>@M=0eE5d7r_ol1G5zq#1^y8rlX4c`(@1d;m3+0UY3eS+f z!A~GO&iM^AFR&hSrD5S`5!0Zfn>sGi4&kzuTgX34`)Q3!A@;=Gd1#f2&_`bWRAK?2Ra+ zTohu6Cy0E0R_HdpG#)CmmE0}lrr|3h!&N0g<;N$yr-pl?Uh?f1!wYW0&7JqI;J=J; zaq#0B>SaO_1OdyHyAkQN-?KB>|0A{2p9on$F_93nhn`)b16E^Fv*Zq4E_&)lw$533 z{m?zG&c|6d&(vwD3!Z4V99jr>xjRjheH|C&<%0-i(88htIkQ-m6hmQJfTequc zxXbym7D@ViH^>ns)d0Oiy-uWH6{mR>)4*=J*BSVi~8|*ZW23#Yu;dmtxe{PgO;CAEM{Q_z1N7QU0 z4<&NP&ceQxuTYfOfMOan4|0KmJmaf2A-Nd?tHkF@v30N9T>!d${gCLB_Aq^c=Z*xd zot13!2|cGd&(>JA7TYkx+#4}7MpNNY^WL6hhzJSi##_*NS-BCgC0ugk<^ZQB0fL#U zd!u&4$64unq*I)w;^Ckx>nB|4FDUyD<;CoGl#oI{-#~xgb#Hw zPWpL8yDsnUA8WbzWmG{TfEn>K9fwjpsG@=TSt9yyN#i)NWo5mx+pt3_QJd_7v=7WBaYpT9QG3R8M`uc#~psir2G^N{H?bS_BqJwA+RXJxdyeX7tr?Jr-S+woZT z&;WGf4|d$!GJQnE(NOC6Ju=q(y}Ph{2pMOR^BUP`9?!j)Q_78%hz@-PnYL0UJK~0> z`jm}a_~Z9RJ8aTmsje65Q&1qTeU-R_8uArHoUQL>N-AgpSNk zj@~3oIZHg@RW|2urwj4l(;Go(AvJ^)*-uUDRa>$(`2PvFVTXk{wLV^^ZL%awE0g&{ z%x-(vzE*BX546v(eJVLt@T7f4KzohPy{1J1i8LM@+cQ@CVRSs18@f1lw&+KKH+JkamETT5& zv%n#^@!@^4?EfeZ)md8;nLZ4$@)IXOuCS&YG^)w>Fu2CNk|LQsDVFQaLh|wyHm!syl1`Ih z>v{V&-w5xFtZ+Oc+?P-sD{1`YL3Hzl_k+GH;UZ4oGpUOZM1Tw}r{0atXts<_BA}UM zB0!$8nV%!kXn4HOBAP7u%_xPb_U){U?PrDc`s3l1n-$C%WO}T!v{(2hofJ@x_2`MG#6sBUuC;%i;P9kyn7{}iQ#Ecyl5GGT2 zw%(riuc+!L7KV1{?Zz3>jI+{0Bq8d9Mdm!722tb-L5)#5cS#Td>#mm#>yjRp4hApk!s5Z$4!@K?3L{0dYps9G8IF?P8HvHI3@u83I zt1qN4Vs4)qC4he(m2Ys<2q_s6YB)B9@@acRTJUp(sgU!#s3w7O3p;km8c z=_K=0ioo``2O)`fQ=HtLgd2>Sr^DBC+C=laHis!arHgJtbBWMU!!_oLuVn^f2lmj% z`Pkdwt#f}lv<&-{)Mbfx_tA}rOdQmKG+HC$Cn-@6B1_Hc0d28XP+dS5MK8-#jDG)a zKsWY6c(oZ_e7=dnX9{h0h|+L0i%g6VtGrjCWZwei&zNsQ_P5j(tLi^hyGa`VED+Wm z7W+1W;Xx8Ma*3bF9f9_$*BztFvxn{zQbHg7#rPv|mb;YBDATq@miX+@!zP42GRDS? z>l}WNudQO{nLFLN=1Z`qJ$-^L^vw^?c=~X4mf%bs%7daxHXBS|UefyO~(H5?e9oZ+FxD&^#$c7riC%&jy=XBs+L zr7Jxl3$#5I3+%r*7nGDeAJYqqR789TlDS(uovkh&$F@hLL;rrU7@6w2RPKzS6dX=v z)A%?L>V;Q{3oBC99waJFDSsE7S0i;+w^FAz63r{JD}W}&>67xUWa7%PdGF#E^|V&v zSwy53TOnOIVl zK%>11LAIW)-%;3Jl+!yV47-h`_mBl)WX2-e(rmUDD#YCkVRKK+aUqRy)Bg6TsJNKJ zuWU~q5@@+BR;y@OzV41`Me7|-Iv8`o>HB$yb8kV>7P9asulBc=@*tZ6PwNtSbOxLF zpx!BZ!tdn_g|4WBl&tIEm-pm93CY9q>pvf%j>~aY^5cKi+EO8iXao{^a6YI)n1~X& zCk7z!k!TSiMe?e#EdwDV=>+N(sVfns?e{Sb$UPFC$RM$ z3sUx0cZG0>0{w2Nlj`lvOhU6LxhcN!*Ciy#AHKqs9vL#i$n0|V4!)-IbD|5N16*?W z1%#Ohc0Tef#ndyiZJMt5vdtS?$7VB=b1oJg;ZRvnvErtY_;TvBv@vXiX_9)OjSsc{ z&%8_t#x_mLE}5A2zC08(38%a>H)s03Q zQ#TqYKWvw1BHcbs4KmeHVo&G7tEXa4gxT=r_wKi>cY6}yk|V> zBeM8p>csfS)Rw&$N}t6mc#B`0g08M^=D^QMi8KhhXGNBmJd-opP5u<|XA3b7cc_fP z{+k;w2;`9>i8a1nA-6XrGjSdhM4=ascCg}CIc}es46uCyaMut+hw-uxX_c z^oWQv>Kc+J>8yJ{?hXa_V|g;MK$rm^(QD6W%=>lF#Gb-V@c}7nlR@+c) zKB!Z0BM{NCtp^gXT7^V+$AM{f6zst6@QL&~R%KgKw2G%vi){x}!@cG7s;jH*UvxKMXB;BkVRgK--XiH*ghfQY3 zs&st5FIF3~40b5X%O57js1ejo-bGf&X|sa8@(nX*{S|+a8n1vsp@n z;r#dCkpxKHTDyC@v3q#L%i`f?*0A|h`qw3~QRoe&kri@oT&S2(eYSX=nl+k*d?@G} z+U2--e=x2XfknQ@Np=J@w6M<$p%=%?-D;0<8Ij7Pyemk)b8p}Pt4d#!L$jXFtXPW6 z?rvmn@6;$smsIBWJD)xbHXWcR_02)1z$atuOyp}DjNOLxN8-$$0=JQFPX7l8)}DiX z919w#9(da=+e33dOV638Wmq@WfR3`vPV$;ml8eQtrr?j=i$@Pexc(k1O#V!Pt|~B5 zJ&I@^wqB#XFK9nyeB#9QL2(2-#Y6tM7u*5UtVwglH!=-aK<Z0E3hz} z9{JGetM5WB`57W2D@%;Em8z+lbF`DLMYh@A9q68ch2zVERd2)^;G9QrA{C*S)(bxN z0&PsNn@Yp(Gvw>C(YpL64>aK;FP|Na+Z2}b46GX~%}`p9XeF#Z;qB+Dbocs~{#7XI zjAP^nMthFm$eGn^EPV$#%bv@E!j`)6(mrL|d>us;Xpt@?1{g+RRu?5%cF!Q^g838?ooV@vX+bss;u2coi( zkkrjG9ap1b{Kixq(S@{Z62Z%Nn$@@a#uu9z?F;K8c1CwPpp;pjSVxG|m|Gsux$}bR z{o9RE^(&}pWVPIa&6C&20=KYdow*c=5~d?1w0G`*33{;_Ijs0nrK#SWujy<2k^YUS zg!Ij!wUUj|>tD$nI=+{==SCH;1}~jLuqREMw|Av!RpFNX&8qLE;hh-h?YW!e>r?7o zQQ+Mykow|+pC&Sx?>u{PIrHSIVytCx%;1@>dvzxj&wRl92xl~6W)uf6(XLV4DKUnC z1hYbVKJ0AyY+cXzh4j}ZEG|Q*Rf1WY<`GQk;)})ta$@j;pF-%f*bB8>Im)%?@ zq}l1vO_vI5MHVsl4qg-2HA1^a?*?=q3FjtYFq6KmAWwo|^*-vGdFS%cOBjw#P3ITg zr2{`p+81kAdM0f1b(l3oHSK3?OdjCscVe^WVa6?OU;a!s zF505j&o$2`B_tN6!#TN5HDcDjtep<>OO|0!6>V?jP*nh4`njyF>QKT#DD!0A4 zl{JT+oX{s&w>FCQyU#FK>0>lWI9Mv%E}B(-Y*9B%lZ>wljM^6na2i&ohCS z)3+9W)ZY%I!#284zYXcvu7L_Dng5LL`gE_lbOzv$&u9i+t!#Xo^KlA>=YGY$I(iXb zU#zm%_0`QcBhTH|vo1njugOo%2CMH@%uIoMNPSw|+ z&v|{;${S_+lkasF{7IoLx=I1qmFWq7u5ggGPM$vAA%X}@`lM=^k7*(WS-v`6PbTLj zQ`jaxA!SJ(GWF#BaExgsH0y{I$Q~gJAIsuo&}5j1{< z9^Na|>&G;#1SX3Kyb7FG!J1=^^~IX?k1lz={^G|^;KtiL(zf-AvOjd=m}Cm63D+Ko zCBb|8+o3Zz?Kbr8Tuqh#zBN>31*>GR?t)d_n{yLTPY`@Om7b!ncu{8`3(MLUJ5M6` zs##P^D(}N{Ca9OXl6Q25&yO(qBB##@Ljpfu@(>cam0l4*I6ean>aU$#WQ)oz#_q(d z=-I6=T;RPJ*Ql^_`mWs-0wYZgtip`8`Ma!0YZ(?@Z=}CG;42XI4 z?3C*^uuI96{vuEFFEMm1Fm)1|498L+nEB!Ija|Q6@Tyhf=EA01U&n}Qf6c}c>tQ*l zrN3c(n@;>u!mq#5t}0rS0BoqgU6bv3d|LI+qsE5?N!Mv_x~xkhX(Y@((EPkFa8J#P zTWY6sm$RGc+a-0ker%JNlNq;^-AtXrGfdlY?c3>Ds?<9G9g>g>-Gh1W`_2raDx<;g z6NH_PB9L3~DL>pC@|l|cT6vn-OW|#0&z(w=N9MuhF9ewVux@-_VMoKu;GFTTf_(Q2 ziFQ6FOwawE(_|z)7ud;6IK-v8oZSIk=trLo_o}Vu~DOjzqw&!WKL@?eTyCprA)_$(*ds&U-skct5pY~`2IT$Wkikjzj z#A#GQd+uTnLZ(q}e%UAfg0nP)-ms;W`XBf1M>PM}3t<0p^KB1t0^w=D`sC!#_S^4@ z=1Sj{5+QGALE0yg&Bp-Q_6AQqr&*a&(f*ny?^TI@6fUR^J>G}`xy^Sjb73ieg7S4* zwMuKsnZB%>46|Bq3TKB?`ZnJhnI({B(e>-|zmL5(Kchr2QD-(AxqKH2mL{VZ6I_vrfM&=d^ zzN*pe>2n^QI%tNJ$#EcObDmm)0NEMRJH38|Sxw!R{@X)Ekrveo%QrjcN2Yc*eVDPt znwgFZPE^-!MX>W6u9W#O|MUCIRc50!(X^QX?wzfyPL?~5PFHeX-QHZ^*~;$RC(An( za{01*&WF}XpMa{qCpR-rSHhkW;-w1W^1;T@#qu|k`eQ#Ux3=eF+!usGuGN}yU+i>W zSa`Uj#ka-WH7i7hAgKmn9(TTP^A&jYk&1D5(1yLSj%is*sbBa!*Y1|AA4j4Qf1;1O za-y<1Y{T(Ms&$!*dXrL*Tgi@oO!4U*&#(=<9xakrjT_QCZc`7vkM#*&lHN!eSi^i= zIb82{C`{IR{^nhe+lVONfHop+W#S;d?KqW{81>0wM}zFs=Hq3wSe}}b6Q*;z94Nn1 z?7$j9MUNSh{nyZ_zsq#QHn6_+6{J@L3JLR@|{Er zN>u_x*6DRw(NXEyJ57OEZ}mT}6)JnW?x>vXJ6A@TAa>bXYOS+5lfscjZQjdy*!0}Y zV5ttKYC{8&T=p9A>3hgAE+Vjz81a2AjsSCw8e+)HClB8YWh#_2>D5>rt-mXLS1R(k zF83=h^mArbT$P(2$`EYMC1!?O9jeClcgMn_tG8E2i28t@l~eg=N?!Vr2q$GS zysPz&8yJOr5qslO1>5T5kZNzsc|-_UdN%F{zrEZwD;Wqb5Aw*rBJQ=?JTNNUaPvj!YRZFk(*ls6)QeXTl0zBmVh4{pz5@c%?$zJ>eaR?brP@rvX0I$Y%1&9% zj(rZJ?;k};^SrB9VSb?AB=T0^h8NtOZfoMuor+-7);unZ4<1QoXZ~8jfAl&@|ndT z961p=pLp+zL_*zXFs0xQF*IT!sp)A2#q$225k#%wn+)5IwgtS(LchLQWXqcRe=oq? zo+Cbnhm}*!I{2e{`lg3SqNkbY6#91!(|S^i|K0cN2j(R@L5;HpQCfBiS52A?R5!p9 zkxTV$-MSew6(^73+|PIyDg*u}wLEDhhM%-XwZxL1elhVW#S-E;f;q8jIhAdOp78U> zg)yc=M<{GaqQ4#~a*f*Rrsbp7?ZkWtCkR$h%Bz@R;qdGK|3fYF4eCZIx+it1OWL2RWT_CGGni37lcy5G|=eEQMc?~61_i@!jws0|>{zpm7y;Glx7 zOLYUm7ZIFFYi{Sj`95FSWdvOP?cpoyb(j`zV0Y8a{7uYjwF%GoG|yC;fVMT zYQ-jXoL|4S9{e9&GlDP^hCc~{->G=$Ol*G5ME+Dx4_)6`19P`u?B!KA$g0__N!P)7 zD1qpnF~)ZbD%uS2=OqI2ki87@FcMVFdi#>wk*x?z*1Lpjsn;-VMJo3?PdHt9kCcIir;VxoGX_hjuTr^CYH(;E#`W+4wF1@csL; zLRp*6pc8Y-;%UQg(aDahW;Rx@Pru%k{9pHraG)gpw!fFBa=r&=(ND1`?;2LxNVVW! zH-lMvfZw|m>waP3u(Xdz#pa~$E`Jo0z}mI@yoP6S$VsR{`BPF~aE8Y&^KfB3$gTDJ z=crvlYu1t)&Ve(LZ{PV(4v%(Bi zLCb2sM7*xCaRdNSBfC<)JJrYgB!)GIBH~4@|9k{~iynb_w0)}kk?)|z8ee>HiZ^rD zEhPMWl=-Q~wRk82XCnRgP|AcrMsr20Jy_MO%p?)c%939y8`b@=w?yL~PlJ{zlTc;EB+sE%OA{{!)waJb(LF$0%!A*`9*h4cr(0-1;hEU~x*vw2 zf??D?xE9j@3yf3FN;`3PU%&QiGV;;aq91~v^G8>6{=8Dof(BCy6<>KkSDH;8hi}81 zDY*7^YFD5wE$A?;f8GwiV^AlgcBxRncJ^73^Rn&`UytIh29sO<)|x6@C#Qvmu7IdM z?MEs6S0BYu74ugF@XJU<>?#|>N3~)aaI_R?|L>odS|srK7~e*R|9SP$dhWL`%acTQ zZBaNVwEAZ!Uj!rlpSQ#Bn3E`JJ-_AYshnSsUo&*|?Qa&igFL~wDM)di8ppsmDM#PV za=Cuw7)<$qs*c-lSD)(9^}a|R$F*R@kHCD=fC3|H)ArTlPd0u;ug>Q={Zawj-;s*~ zm(}C<&~eP19mMq~D_oJ|CvOeA=D*EP-qnMWXIm5U#5jyYTu|v~h4BVSU}!8MJl1F1 zru@2HsN&?|iPCIFG$#LfwH-iN@O87s3L?(23w%O_21(` zC}}9GDUO)>H5)wgoqqUhHhiGaMy0xrxUAMN2VW!V0wfrL)S1qH91?o_KW7<}KAgD( zxKb2%oK$(#;O_rYYR2<{AfWToLX5i(0hrw1Hbl#O2(9V;d5u2<;#_Wk`SiTMSEU%a z>os>)c2(5=L~{Fxk+<>J)jywr-x?{~)$b4uelXxUyB#U&h^9Cv&f|`GqmG+43qA_o zrl+Q~5agKkn`3z^Yfslh%PtsM=8c{0C!Cxt#}0?4;rNz>VAQue zvikECL5PK4r1v29cS^RGwD@^bg?49xsDZC@hR8#N>psPoiTw#=rF6P^YF0mH2q`6^ zYW*KdN*D=$+s-!A4Xr7EUE^`+{LLXP0sSO?dh)l4TG&~tZlL+INZ56E6T`nA0rZEU zoQ|DxJnl$JO~HBpwnT|h{!ZU7Q)s*Z5efpVFYYYyP`?|2@@z5bu_{CFWHIA^aa{K6 z)MR<;a47oS;ypLb0p=vok0c{xcvzJQ(8!+L}kW zCP#iA?5CtqkMErAjrT{A+D6T#10sDrc2ye+l2^@)E%PkS;?gI8(pMh&BM*SWbb@9& zfCm(6pt#hY9b#M%kJ@2KVgI@q9)pm`kGvJgp({NSYrCu)Jh}E-4OF@RaqfNpoT=Nm z2#Dbc`oImZmCNuti42;*L+^OeoU&{UP?^Fc__gbbhkw#_r3#hxDm=WrzzWAzk{-k62MFFQt#FC zxIT^uAf2o{s;OgkG7|YT-yYUd^iYRDrNBJ|th+AzQxuMNBMdR4<{59$VO-1{g}PpH^HN=^cSrbQrRdf^y*UEZFCW^P8rAORiNf_CzwWp6 zHWmT1XVm}rr-EYRAcC<$3XAKiTG&yhX#>syEH8$A*5Ea#O15mWi<)IkNC$JKpn2)< zE6NY0i#uSzgp`trRWQ8xpnsmyWv+0-2=@u` z-6zeY{WWrjuZ0&iES~(h^8e`P2NStco3V1!nzm=qN3V zsLt?8I=0}9)A9=C8AI3mRefRNC+?FFMYSp+I<@rdYO^>lkE6nYVXABa!|bh$in`(+ zeDjevuERT3e>%+FLg9@r&Hxrh=tRQUqn>_nVs*$H&D|x(*>zbz=H#>??hNYD88|<2 zSEFk6b*BztnqtWXMQjn?C8mT9=iO1L!&E&MFv@;_DU}|eGm*#1Ww?jo`|3w)lo&;v z2Ncn4BubO2^%fYs{aUZ~Ncb)}EuhE2kRbhonvMeikp1$Jw#GO`*Acs^CW+?TCiO1U zg%h|FRU}8>eTC{vJuS1i;kNJYiyxq_2clLN&O~JcQ6*{vQ7!)ve`7!uGBq(-2xX3z z{SX?Ap`w86ePutQ4=g?@Y64J95#=M`G_|WfE&Frt&!G?r7reegBfTnrzyy0JQ)hN& z(q)wNRF9XHTZ}5v=ZJx;e_h7`xyhaYygyy-YA7?O4G=eu*DkYm>_@&3uE%(`PDe~B zdyPFOcBjir5VR~ttn&2-V`Ao={qX84B<2bG{C4fm>gfdn>|t=DWZUyt#=k}bB{uT0 zUqxOi6$(_)_4#g{nCk=^DutU|z_lJg0S~SVd4;0!wA_3h0EL$RO)>|-MfI}>@u}6a z>v)Tu^&-Oy<# zFo4yyYD-(B=mx$sV5UdwV}D+&#OV9=sYaEKO8t62qXN~V@-C+?KTnN$&8PpLFo10P zqU??MaO;U8WmyP11BD|D4RR=e0ES-q^Y!o>D+4Js=0UllI@N^l%C0B`&KirMxdq$X z*}8vjmjJuQ9#+aQzjd>hvFs`bvqa}pLHK~g3Nn4N ztYX-iCBln2nBhDCiGUhM4L3ln5Z3u|XzMQrmu48x-Yo?62r6l1P<+f5BuK{F>klk= zi06w|B_TV2Z6<$T(vadK-=BQ&c=CYKGYDnC94CW>kUc*r_~bi<@=h-%(2~TzA3`u8 zP}{<|DIS$p`a~?v8BiO%OxZ<(uqFXFGTs@mK$d258t0k*mq1`Y(~}44R0~}P76uR$ zhQFZ zjw+9i8Uo=Xa5&RN$bl6w_Cr8dsN$+xy*WnhWY9@7f{?GdG+V*y)O zIgYu`wTYFN*?Hg0fB?gMA4TEt-MqKH;LZRp?QAIR1jw$yA z5JfbT)y}TH4i1&q0W8|{p6w;B1}XqHLi`_Jf8P0UXLsD=W6j)_w!Ri26YnG)!Cb%#48dA_062a^b6FSdP`FV~JuOrBy!WSQ#piVhe@UJt&*)^$9>XtskG3OR=WiT!n@GJsbW^<&>B zyxMTLTya0+6)4Jl(k(p<$%qXxVy_H#&K7?t7|M*I_`y67N+2Q;;F|hnD9<6a`4t-{ zhKgTv!(*xbXjfU#a3iNa~%nM_-Hb z1a2q?Tk|+U?r;N!ig{eoH2u6%nhMrlI7jP%oeE6_tbad^Xt04$H8=p@qXnsB3a*f^ zej@96v>bkg4IgQ1fl}LlB8e2sMPWE?4LNSo(}srlOBbogm4C?DU;1s7Q1P{a<6{`= z;wl+r^w#*gKdg)S#X4HftlNQZvfZGy<)sxI4b};`LOT1OrLw{sCU-Pl0MkKiG}#{+7b$a)@v znW)z1^nzcD{2?TdD-n@nAQ6!_5Zod4w-hT3-A;soSB%UNgi#;r#XMdc#*41bIw8hr zeGAe?c=KNuh8mC>B61SyTMlwZ()-Ptho2uRItH=AUJ+gU+F19_Ut>IX5DKOWP|;HU z>tRUVK7ew{k`L2zqM$xNtnd%z%$0HGE95L_TC0KcivAC1uqEkySS!6PCmEhz+~p)@Ml^j6 zob981$m0)E5N*JZDMS}ZUv@UXaTGx41;`Npx?=XBc6LN1y1I_{!t?0#pHpLj;B$== zHeOuB!?Z<&vOWH<7r@HS5`vfL`E~zI6{vY5vn%U8g^N0_Pp}>8KyOHw=i{%BE@Z(q$;y zLwD z%4-{Vi$IH);7E2~$oF7AVr5mdJO{$Y%{mfnQLlRZTA$ZJf)JnmAxWHBE<49ZvO{2% z<*hFs#t*F=?D~PTb7`S6bj&q?=E`uGBCCf=N2?Ib&w3!yIDr#FffA~{xue+(^oWJ1 zp1E`{=>X*hk32aDIN%@btj4PG?g`GMs?{N*ur8g&C4?gv{9>2o2b8UpDw& z6jBmC1;Q1;AweSon314%A?u)#r)j%`h7c;3Bs-rVC?A`fAPKe{i5swHxcc*>TPx>n zb#ll}6l@1V1906y3F_Ki*un8bk{o<5O6kW<2uyDLHAIMp-MV-Qs%B*ImE+c_Y3vLV z0t;Tiem`8aG>#^@ZIJ*wVb#!ur|lAzaWoh&a6v>EK6wVJ{sNtghSsm-Mi%z4|9z#R z3pyJ9Pad>FsC${1{DkY<=F&!}l+V`|1bKDle>&mV|MzoiH*=w`zmyl zjI;u=4$Z$Ffoe?E?n8p$K41pod}^0a+uvSSgmU6xW(4E+B=v3#=6$BQvg}Oo z{M%Q-YG*kQS|$!LTSftgMB(H1iWJf2_K5*!@cktob}gDE7o?OIw99Np%4AV_!+j;13b>R@wLEwiz&9c*sZI8PQ$OEC#9 zd_N}WIeTvqT1{L&wsu-i8)ZZU*5E#Bh1N~lQWH1tx$~5otzze%d-<^6UQT`loW8st zHoE_PjXy$f7nsv_)mn)Qetv7_DZRA&dkO@ZOn;;)NVM&(^REGLqf8k5IM;c<;Gj_M zO+QM;kggSl7ulH&fMO<#9EDGLY-wg#OFMf0Jr+T7PAE6yKI*YbU^ zn2EGdV}Atwh{5gvnhkhGaZ#>@8|pwPG9rwXAi(&(+fp!I-U_Wtri_M-sx}<|vRwjY zJ2l+Pt9SBK^VpL%X>{^itNZeAG!bh;- z2maw016mGfJ2a=AuB3JJ5L>yq5zsQ$6OOfs&B7?XrhogTpwE0B{n#h^JqU(QGq^^L zZJMKJ}f7VrG z?W)0)6m?_3t57HvpZJ$y7a`Kh5x852h2pOZdv;KR# z9q_Ux0TexsUnU5Y-3~APnnyZE%}H~%i1PhjHhK^&Q?>q?1X76>H^{BaF9lgozi{Uf z833NHj&$CC?z!=DOtFB097za%@K2!Ki~=zTi_U3VHRdcPu1*gb82wfgNC$5mPBJR< z*m?rzB>a70wLo_fn9?iMEVhTtQ6B;O3}wkrC>ZB;@K;aX<-qNxK_pQf);I!uvr=X^ z{_P})#D&nr;DGvzoQ2nWp5p4`CJ`{N{}_yv4n_q^RkK;&OlX3Kq{sYA)B=DG#2bRm zwPkkJ=mz}<6@`4)@sUf1{!tIiD4HH@DvL3HTUlBwDwG@)ZF|MGQSu|&m~Qv&P}li; z#t8P|?%Tg;c%P9BkK$w{MKqXb+poMBZJ<17j7zpYx;im?0m!}^Pi!KgnR#jt(kVA= zVSUO?uwCVxIWf-5-SI%^*qIZx#>ZgYJTU4iMV+_XJilPvA)3eVB;LQ$=0}~iJ71Ms zR!#Bd!P*ymG2@eT=)Gngq$_9tB?v9X&Gv9cEC5Ym$MCx9-^v66dj|0l>(HAGLW1@S zx&Ka?d-X1O2>ut0A-spdGF1a!eY;2(oJ4t9|1Aq&bzRS;Ptw{ac@V4$NZo&)x(Rn$ zvw`|Ymz*WWKZbhg%{AtbhW?Td5KxxTYFGKMm31CPd7=_&!26(9 z^Q|}YVbqKtkEh_Ke7_&yt~K7M*cJuZFou>~qNof0Kc$IFWPB8>+az%S zhy7SuKm&+={l}4)yJ14Jqg#ttW{-(KW!!_2v!DAB0W1U1OncUa; z4|0S1yYCUKq{mGRPcmi`nkaZQp9TNl4{+nRU2Iyti^droF+7YK({0_Hv$E>5Z*WLS%HQ_S!7O%fGL}W|kg!+Uli~R?d930(i@bLg64VhZETw z(ILjx1LrUBjaIiIm=Y(OTgme`aM_1gS9bK$Bb^k(79&5S<7@ovImwfyzEYuK3iSvaEWrYj1K-`F_bFAXjCR+0?&YkQ_xlh(A2x}u}t@VXXn*byQLX0Z(h z|AxiR8z}P&qYQY@_I0q-zV8l{|MDhyaw3rb`*!wonKd1cUT`u z5iE{5P5(Co5G(~m0Hm<@mjcvG`Ktu0%HLEk_@Fow$rZCEgHEBMFzdVw38GOAFlcf~ zC6v2IAU`k{%f3EtcHvd6m)VFgynWj7tHgjJqb}Ou7tFczF(4Gw( zL)gqgr0~2#x(Lztx(`2_F65_N(>)mXqkI0sa1}G|YdgJA#%FO63yyZ|3zcw{lce32 z8Gb$h{QCHs(QYHz{xnFmiE#Ew?$4?)?a7?QBggKUi$+vx-crN$5((m{{+F707wnfZ z@TM=G^if!eqmajHfevSvP1{LleK4-2O*S@N2-U*d42~=Rsm$Y=AjGCgS!w+8Qc&XN z!Nl7*^kGgwyE>rBB~8KH;)jCW8*&`MB$9d%Mu}EfGRwd>7=c!EOkde%#_uO?3^3uK z@mPQK_Uz9Av9Q5Kg46t0rQ2|QI%XW&0+GoQ$5lrznFIG56$Cx|i{$#o;%(!z1NyNQBxeiMPkS$eh8Qe z>0q$N-kJN0jp@$z_wRXDX`tq^d{uwtG>bx({pkuWADMtUe3w_|cH(MoW=Er?8K=@{ zzr0rwN98k(o4h8J0G2{7r!baGuFY4~neIpch^F7GuOXH!TC`&^d^xx-oFMn<&ZpXs zBWx*zR>9gl*0Cs#x782sB38-5)o%>~0M?lFeEk#W`#MIAC57ly#5W!h@~1KCFiP8( z&0o{L9>BkSi`((O$I)Eb%M*$P=TCWYsa4K}KajKzop-`w`}jR@i9}M5fJVw*KKxPr zgWKyJYVbW|d$Lm*4S0O`!wl4q=H^jG7t=? z*&M*levvi`l$GO;_|T?7 zeCxXq$O6&Ogq!fB%Av%mKKFV<<7ME(_|#`Rm8y)eP))48b2<)7aa_S@<6FrGqZ`pS z&jJOXRZ!{_aPBU;W zg3sa~0Jhe`T{meHKqr+9NnF_8_TP*OB1SH!vVFZ4@S$R(lCl;8H0K>A=W_e(`7&K^ zTU|!VJD?@s42h?6;e~esnsCW0}Yj znqj2sEWExy2HNy|b3wtu#314bo*}Wzt7~l0(llE(b~Ru(DgJu-7f;k+8yf^S4D0_9 z4%**_q*_iS8JRdmpq4{6En{^7>Er}sUMwg-1lFfuaQ!Mcu^5JQ?E7wI6DK1zhsAKC24)?F+-;9^ z2W(BUWdi3uB@{6sW%nGp3K;{Y>?Q&sg2wDmZ#$o+O@gLP|MWg<)S`w^a)yfxcj=Yok?KjR7B@Bohdm?kr z$YVMAzEL8P-u1YE0STW>$r)Uvq_ML*ut;%C$XdafAakOZ9_s#ycotm4qSnoE&Wmr$ z4}r63jkB5~!Y~wo6rd&$Hi~v-{B<$-ql9#fTqO-{)C+3;P6@HDG6yeJg(Wb4*9g+{r zAk3ZOQGab~kM!yU4S&E#A7*1Kuf&<-dQ%HY)Ih49>o%eGie_--DOIz`rSjlQH#x|z zdk1_tGuX*>(0CQ}a)JA=nZQ3DsenRRaDiR|1gx=`A$Ca5>sv)GJ%YHe%(X1zLsq>! zsiXj;v04cHGO$$1x44{bL6^obetG&Qt{CYGQEnf2S#ExI4e7k7j-SKiWA$j8rP5Zt zfFAEbK=n`h$mn!Q+=YJx%^X_ZKs*MuKhC+cdC__1=j?gJumMtcDB&6K?|B97 zEamk<7T&OkEi9>A6Gejv_%V50KQ8QYYM`rx?9GI&jPCkR znHwYTDl7Sji91ww-p()GPV0Pw_ug@~V68U3qcK2cn+C%>VYlH%cx69rDiI(xqtzw@ zZke~ZI@N#37WH0Tstd+GaR}pu{RCaAh zmZZrN;wm>K+$Kw9qLTI6O_p#`x%PaYb6Z|7pN~I(-~aCUr&l=lobx`<^M0P^ea`1| zJ*Mwpn>_h?htw8mOnh>2{6M%GxYfZj2IO= zj$o?8y5X}P7h4eX%1@>D(20Mqm2HttS%p}4!Yd88LxB2NlHP;$*+A>y7&9_tn682jQz}^uqloO+NUIUnh@5!6&ZPac>sW6s|LZ zOOHbCk+u$3C^PpWZ9QF|InUlDthasw9B!d`>p_^sAw;{TqXQw6V~~Dw%ALr& zS_yBiWGyVkXq1ApXV?+rST-bPJ+)Dg*VqwnX&`T$AhTS1A!7r=049VRimVOnPb3aR zA4lY0`Z0LS1m&>La@U5x2UQN}S_nZd;&Sq*vx8GApuKdH$`5lKfs6ye!^60V!M43y zxd_#-`?QzR4r>)PG>FTufy==t=_(Y~3IYvWN8|>OIvJ@D(<4=wfxhL&dwn~7`P+>4U6S%vo#S_mC zQi@DLG!&w`vsC=qq4Yl|h@FzYZNgec+6kyNcT$<_FKhvF_`fUQJs0k$gHa?9uOHLR z@j17V5SX%h0E7uhqu`t3x;-b`_u{MwL^(O)ijrzEVy`bkB_J%X@vY8Y>sQ{b*0!88ha8Q1|7psa8R?3?UJ=k zn@qq=cosr?!L4!{9D?M382VB1P1Uu@+~?ADs|lAp>IU$DLc4$d`V<3gY|EF<v2_kj;UM$YU#=3QEKpz} zfbRZLoOtGkvJHTe=wfo9OKXLb@o`>_*K3ssD6Sw+DMykwB`=uLi!0xd#A9nVo=A=t zEGkKPA?XN##l&m2?$ciMB$4yaHVhIRywCA>5m?u<_Fd}f&;i*R3}*Crj={>YrR8kK zgE4_pl$q+1okD8B5_d@|RKFr#mG^!PDNt_=)-=?;d54V7kUuj?p0@zXMB{@mBmam^ z2`KT&D$Zi^ia5L#(V_%%Qz@+>Ae2Qz5E+7P2U~&{s?Kik;w^AL<8u%|;&pwbb9=W! zB5DqDVgu-iz=)7~kcxTwTP#pfy^ek&ICXf9Gi;4>AeQ2pJ~B{JRg$*223IKbw<<4U zgK=mBoOhz3#SjT_#Z&*cCqDe#IeThwLEE1{cus#Fg7)Ei}eA2X`^j_jsERssu45cGO z3QhHZco?SCf`y1n#74`>ju{D!OiK=}$M(l#2=$Iwl@g4BcR_){fJ5(KY4cq|Lh0}H@M z8Gzm<;#1S;HCEHmTT@7J;@LC1pkm40gj8H0PX_q5fs_UuU`ymm>U6=#0vS-8vw`1D ztbo77ePq6%qJ~sD0Tn-nU&gyp;=?28h1sX729B6t{EU@Tcwxwgb#a15QP^A=XC#2k zA_14*h-kjJ!mCqWoX25fNH68P3og6!d_+)A#^)7^Rot`TKDww(?1(R=BT$aY3wj?z z#arC&Ccvu13LFdu5_dQZHbOKIx*Xo`wqOVb-+o+68NE|on=s#f%5LRJ*_gkBbicD| zV;d@Hh~zFRIPXo__wJisi4U>4hTZcoau(U?s|p-WZ+Kn#_XXr6RkFA6X^++7t(%@+ zUbzr%&i-av?E5mxzH)eCa^&9dW3|@O=TB4aBliv5vw>s1rI&ohI(B3ZdM+X1HnsvU zW93lr8g?gSCR5~G$x2WV@RJ9FzwQ$Alfn6!8{-^ zv_o~G*=MZcgce6Dl=CsVow#-+hwlR+Ih8#bros(ti^ey&?oxfel)k)CVp&J3*zS(@ zP&r0XwX!S`=(Z~CRdn4O8mc0?EmQi6tAv!*R9()Zl47gO5}2YECv!DXYeVklc#`hs zq2c?dhDK-%L{1&@EPA;v7^Xg~g758NZ@&Ez)Ln3&6pc33f_ zq=nprT|N{H55>FzC`A~6*X-8TWEtn|6tgaoEVEflOWaNi zsL&+BL4VIw#CUWYY!kKK5?o631tf+KrjU-D@Bw;Li4Cbce!vQ~B?mp3_pg*FiScBy zzJ?C0(X)#QVJll@u!UF}rzUPmM*1HV2_-5?C>Q5u^sr|^{mptAn%!k70}I=hOf{Vp zjnuSP^j7jdCn!Vevk8+By}v6pL|)1_+bk&VlHue$_3JT{Y(}Hg+EUVlkzNo^G{P=+ z)f*_PnwxCng4r|+JaoL#s=c`M_Mj(dse~rZOMW*#iw-#>FKtm~hbQ)3{s}N?vw^$} zGv|}uqxYsrXL9rkDh6&tD44XUqs8&Tj5GP0*}0}|uNr%3wt4qXt|SAH|0fU4O|W^k zjN>vKRda^1Vo6i|U2Q=bCpY!9d5m+{>%pk)NxKw-uOA}I`Og`#X3lrPT#ORHe+mWD zwNKYXL|IXOpw-%(PPIKiSQ=uP;4p?vUrredhu+D`AFcVdDb{6tDH3zN(HdUU;;<@I zsj9i1MZA86=ovU)K|wH@&8MmUn#*z=J`q6K?>k`D>r&QPdDRG}G`q11@B-;GKgtTl z=XGAMf7j1(izQJSi-9`8l7q(MN*J~IU0&C)N!r&bHwZSlt1QLvd%f4yrm%dTS$K`!%lvNk z`f(qnLu%IWuNL-guQUzSee>-q`dn|UdVgtqSlwHPsi;on28&Azy1}A; ze6+rQ=>ijR@6)LwRWwcgQBtSBcs%*9+MbNHC3bS5KNo2&tZ0dKX;|aO(kqr|uCo|^ z*cuEL;(5qTADAVL^Z|OI*d{kVxN5uk<cTw|CGHf*D!OG0{9)A zjv%rd%D;NsP%D3?mIJ?O35PF%+@D?fZoJE`+EYEMustc{5$B_7P`AlSu9T}H>E!~5 zrLQOisW6IXl`zit59c`dRytQK%+3$@SMxsSc58*RV}OEpfUn1j5T!r{B_TtHlpiA< zo?o*LXe_L#jqJ$1X>n=0!PH2bo0?plgSL$o2ScAR@yZ@?TOU8#vyyqY(dp0#slG(+ zI?>q@uo^#3sO;+gMeMZuzi z$7+Mx%XRANh>r;%`evR7Zk*S${GY@v>XYk4@=pD;dzGBeV5mqTZEthk45)v)&2?H50TKjI`2YX_ literal 0 HcmV?d00001 diff --git a/doc/source/_static/logo/geopandas_logo_green.svg b/doc/source/_static/logo/geopandas_logo_green.svg new file mode 100644 index 0000000..4cc8617 --- /dev/null +++ b/doc/source/_static/logo/geopandas_logo_green.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/source/_static/geopandas_logo.svg b/doc/source/_static/logo/geopandas_logo_web.svg similarity index 100% rename from doc/source/_static/geopandas_logo.svg rename to doc/source/_static/logo/geopandas_logo_web.svg diff --git a/doc/source/about.rst b/doc/source/about.rst index 0e6b901..ee913b7 100644 --- a/doc/source/about.rst +++ b/doc/source/about.rst @@ -7,6 +7,7 @@ Links to About, Roadmap, Team and Citing. :doc:`About GeoPandas ` :doc:`Project Roadmap ` :doc:`Team ` :doc:`Citing ` + :doc:`Logo ` .. toctree:: :maxdepth: 2 @@ -16,4 +17,5 @@ Links to About, Roadmap, Team and Citing. About GeoPandas Roadmap Team - Citing + Citing + Logo diff --git a/doc/source/about/logo.md b/doc/source/about/logo.md new file mode 100644 index 0000000..0fea2d3 --- /dev/null +++ b/doc/source/about/logo.md @@ -0,0 +1,84 @@ +# GeoPandas logo + +GeoPandas project uses a logo derived from [`pandas` logo](https://pandas.pydata.org/about/citing.html), enclosing it in a globe illustrating the geographic nature of our data. + +## Versions + +We have four versions of our logo: + +### Primary logo + +The primary logo should be used in a majority of cases. Inverted logo or icon should be used only when necessary. + +```{image} ../_static/logo/geopandas_logo.png +:alt: geopandas-logo +:align: center +``` + +### Inverted colors + +If you want to place the GeoPandas logo on a dark background, use the inverted version. + +```{image} ../_static/logo/geopandas_logo_green.png +:alt: geopandas-logo-green +:align: center +``` + +### Icon + +Although it is possible to use icon independently, we would prefer using the complete variant above. + +```{image} ../_static/logo/geopandas_icon.png +:alt: geopandas-icon +:width: 25% +:align: center +``` + +### Inverted icon + +```{image} ../_static/logo/geopandas_icon_green.png +:alt: geopandas-icon-green +:width: 25% +:align: center +``` + +## Download + +You can download all version in SVG and PNG from [GitHub repository](https://github.com/geopandas/geopandas/tree/master/doc/source/_static/logo). + + +## Colors + +Pink and yellow accent colors are shared with `pandas`. + +### Green +```{raw} html + + + +``` +**HEX:** #139C5A + +**RGB:** (19, 156, 90) + +### Yellow +```{raw} html + + + +``` +**HEX:** #FFCA00 + +**RGB:** (255, 202, 0) + +### Pink +```{raw} html + + + +``` +**HEX:** #E70488 + +**RGB:** ((31, 4, 136) + + diff --git a/doc/source/conf.py b/doc/source/conf.py index 6261c8e..c31a869 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -166,12 +166,12 @@ html_theme_options = { # The name of an image file (relative to this directory) to place at the top # of the sidebar. -html_logo = "_static/geopandas_logo.svg" +html_logo = "_static/logo/geopandas_logo_web.svg" # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. -# html_favicon = None +html_favicon = "_static/logo/favicon.png" # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, From a5d78253c6e9f2c1945cb27f89e6245627dee685 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Fri, 28 Aug 2020 17:44:23 +0200 Subject: [PATCH 031/316] Linting: update and pin black version (#1590) --- .pre-commit-config.yaml | 6 +++--- geopandas/_vectorized.py | 2 +- geopandas/array.py | 4 ++-- geopandas/io/sql.py | 2 +- geopandas/io/tests/test_file.py | 2 +- geopandas/sindex.py | 6 ++---- geopandas/testing.py | 12 ++++++------ geopandas/tests/test_array.py | 2 +- geopandas/tests/test_plotting.py | 8 ++++---- geopandas/tests/test_sindex.py | 26 ++++++++++---------------- 10 files changed, 31 insertions(+), 39 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index c257986..b6390b7 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,11 +1,11 @@ repos: - repo: https://github.com/python/black - rev: stable + rev: 20.8b1 hooks: - id: black - language_version: python3.7 + language_version: python3 - repo: https://gitlab.com/pycqa/flake8 - rev: 3.7.7 + rev: 3.8.3 hooks: - id: flake8 language: python_venv diff --git a/geopandas/_vectorized.py b/geopandas/_vectorized.py index 4d37d56..d31cfc9 100644 --- a/geopandas/_vectorized.py +++ b/geopandas/_vectorized.py @@ -262,7 +262,7 @@ def _binary_method(op, left, right, **kwargs): def _binary_geo(op, left, right): # type: (str, np.array[geoms], [np.array[geoms]/BaseGeometry]) -> np.array[geoms] - """ Apply geometry-valued operation + """Apply geometry-valued operation Supports: diff --git a/geopandas/array.py b/geopandas/array.py index 306fc7d..27a40c0 100644 --- a/geopandas/array.py +++ b/geopandas/array.py @@ -742,7 +742,7 @@ class GeometryArray(ExtensionArray): return GeometryArray(result, crs=self.crs) def _fill(self, idx, value): - """ Fill index locations with value + """Fill index locations with value Value should be a BaseGeometry """ @@ -755,7 +755,7 @@ class GeometryArray(ExtensionArray): return self def fillna(self, value=None, method=None, limit=None): - """ Fill NA/NaN values using the specified method. + """Fill NA/NaN values using the specified method. Parameters ---------- diff --git a/geopandas/io/sql.py b/geopandas/io/sql.py index 8aa7969..e1aa9eb 100644 --- a/geopandas/io/sql.py +++ b/geopandas/io/sql.py @@ -170,7 +170,7 @@ def _get_geometry_type(gdf): such as GeometryCollection([Point, LineStrings]) - if any of the geometries has Z-coordinate, all records will be written with 3D. - """ + """ geom_types = list(gdf.geometry.geom_type.unique()) has_curve = False diff --git a/geopandas/io/tests/test_file.py b/geopandas/io/tests/test_file.py index 406f72d..236c856 100644 --- a/geopandas/io/tests/test_file.py +++ b/geopandas/io/tests/test_file.py @@ -414,7 +414,7 @@ def test_read_file_filtered_rows_invalid(): def test_read_file__ignore_geometry(): pdf = geopandas.read_file( - geopandas.datasets.get_path("naturalearth_lowres"), ignore_geometry=True, + geopandas.datasets.get_path("naturalearth_lowres"), ignore_geometry=True ) assert "geometry" not in pdf.columns assert isinstance(pdf, pd.DataFrame) and not isinstance(pdf, geopandas.GeoDataFrame) diff --git a/geopandas/sindex.py b/geopandas/sindex.py index 6227312..20a3100 100644 --- a/geopandas/sindex.py +++ b/geopandas/sindex.py @@ -17,8 +17,7 @@ VALID_QUERY_PREDICATES = { def has_sindex(): - """Dynamically checks for ability to generate spatial index. - """ + """Dynamically checks for ability to generate spatial index.""" try: get_sindex_class() return True @@ -49,8 +48,7 @@ if compat.HAS_RTREE: from shapely.prepared import prep # noqa class SpatialIndex(rtree.index.Index): - """Original rtree wrapper, kept for backwards compatibility. - """ + """Original rtree wrapper, kept for backwards compatibility.""" def __init__(self, *args): super().__init__(self, *args) diff --git a/geopandas/testing.py b/geopandas/testing.py index 142d475..cc27a14 100644 --- a/geopandas/testing.py +++ b/geopandas/testing.py @@ -195,12 +195,12 @@ def assert_geodataframe_equal( # shape comparison assert left.shape == right.shape, ( "GeoDataFrame shape mismatch, left: {lshape!r}, right: {rshape!r}.\n" - "Left columns: {lcols!r}, right columns: {rcols!r}".format( - lshape=left.shape, - rshape=right.shape, - lcols=left.columns, - rcols=right.columns, - ) + "Left columns: {lcols!r}, right columns: {rcols!r}" + ).format( + lshape=left.shape, + rshape=right.shape, + lcols=left.columns, + rcols=right.columns, ) if check_like: diff --git a/geopandas/tests/test_array.py b/geopandas/tests/test_array.py index 8710af7..79d2d64 100644 --- a/geopandas/tests/test_array.py +++ b/geopandas/tests/test_array.py @@ -326,7 +326,7 @@ def test_predicates_vector_vector(attr, args): @pytest.mark.parametrize( - "attr,args", [("equals_exact", (0.1,)), ("almost_equals", (3,))], + "attr,args", [("equals_exact", (0.1,)), ("almost_equals", (3,))] ) def test_equals_deprecation(attr, args): point = points[0] diff --git a/geopandas/tests/test_plotting.py b/geopandas/tests/test_plotting.py index 2308638..7102ddd 100644 --- a/geopandas/tests/test_plotting.py +++ b/geopandas/tests/test_plotting.py @@ -1406,10 +1406,10 @@ def _check_colors(N, actual_colors, expected_colors, alpha=None): def _style_to_linestring_onoffseq(linestyle, linewidth): - """ Converts a linestyle string representation, namely one of: - ['dashed', 'dotted', 'dashdot', 'solid'], - documented in `Collections.set_linestyle`, - to the form `onoffseq`. + """Converts a linestyle string representation, namely one of: + ['dashed', 'dotted', 'dashdot', 'solid'], + documented in `Collections.set_linestyle`, + to the form `onoffseq`. """ offset, dashes = matplotlib.lines._get_dash_pattern(linestyle) return matplotlib.lines._scale_dashes(offset, dashes, linewidth) diff --git a/geopandas/tests/test_sindex.py b/geopandas/tests/test_sindex.py index bed2b04..a99cdfc 100644 --- a/geopandas/tests/test_sindex.py +++ b/geopandas/tests/test_sindex.py @@ -161,7 +161,7 @@ class TestFrameSindex: assert geometry_col.sindex is original_index @pytest.mark.skipif( - not compat.PANDAS_GE_10, reason="Column selection returns a copy on pd<=1.0.0", + not compat.PANDAS_GE_10, reason="Column selection returns a copy on pd<=1.0.0" ) def test_rebuild_on_multiple_col_selection(self): """Selecting a subset of columns preserves the index.""" @@ -304,8 +304,7 @@ class TestPygeosInterface: assert_array_equal(res, expected) def test_query_invalid_geometry(self): - """Tests the `query` method with invalid geometry. - """ + """Tests the `query` method with invalid geometry.""" with pytest.raises(TypeError): self.df.sindex.query("notavalidgeom") @@ -320,14 +319,12 @@ class TestPygeosInterface: ], ) def test_query_empty_geometry(self, test_geom, expected_value): - """Tests the `query` method with empty geometry. - """ + """Tests the `query` method with empty geometry.""" res = self.df.sindex.query(test_geom) assert_array_equal(res, expected_value) def test_query_invalid_predicate(self): - """Tests the `query` method with invalid predicates. - """ + """Tests the `query` method with invalid predicates.""" test_geom = box(-1, -1, -0.5, -0.5) with pytest.raises(ValueError): self.df.sindex.query(test_geom, predicate="test") @@ -440,8 +437,7 @@ class TestPygeosInterface: ], ) def test_query_bulk_empty_geometry(self, test_geoms, expected_value): - """Tests the `query_bulk` method with an empty geometry. - """ + """Tests the `query_bulk` method with an empty geometry.""" # pass through GeoSeries to have GeoPandas # determine if it should use shapely or pygeos geometry objects # note: for this test, test_geoms (note plural) is a list already @@ -450,23 +446,22 @@ class TestPygeosInterface: assert_array_equal(res, expected_value) def test_query_bulk_empty_input_array(self): - """Tests the `query_bulk` method with an empty input array. - """ + """Tests the `query_bulk` method with an empty input array.""" test_array = np.array([], dtype=object) expected_value = [[], []] res = self.df.sindex.query_bulk(test_array) assert_array_equal(res, expected_value) def test_query_bulk_invalid_input_geometry(self): - """Tests the `query_bulk` method with invalid input for the `geometry` parameter. + """ + Tests the `query_bulk` method with invalid input for the `geometry` parameter. """ test_array = "notanarray" with pytest.raises(TypeError): self.df.sindex.query_bulk(test_array) def test_query_bulk_invalid_predicate(self): - """Tests the `query_bulk` method with invalid predicates. - """ + """Tests the `query_bulk` method with invalid predicates.""" test_geom_bounds = (-1, -1, -0.5, -0.5) test_predicate = "test" @@ -558,8 +553,7 @@ class TestPygeosInterface: # --------------------------- misc tests ---------------------------- # def test_empty_tree_geometries(self): - """Tests building sindex with interleaved empty geometries. - """ + """Tests building sindex with interleaved empty geometries.""" geoms = [Point(0, 0), None, Point(), Point(1, 1), Point()] df = geopandas.GeoDataFrame(geometry=geoms) assert df.sindex.query(Point(1, 1))[0] == 3 From a17c61f54a3b2ee9409fb34c484b1f0013693e11 Mon Sep 17 00:00:00 2001 From: "Alan D. Snow" Date: Fri, 28 Aug 2020 22:31:39 -0500 Subject: [PATCH 032/316] DOC: Use the CRS.utm_zone property to identify UTM CRS (#1595) --- doc/source/docs/user_guide/projections.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/source/docs/user_guide/projections.rst b/doc/source/docs/user_guide/projections.rst index 2896ea5..82e6a93 100644 --- a/doc/source/docs/user_guide/projections.rst +++ b/doc/source/docs/user_guide/projections.rst @@ -465,11 +465,11 @@ Or to check if a CRS was a certain UTM zone: '+proj=utm ' in gdf.crs -could be replaced with the longer but more robust check: +could be replaced with the more robust check (requires pyproj 2.6+): .. code-block:: python - gdf.crs.is_projected and gdf.crs.coordinate_operation.name.upper().startswith('UTM') + gdf.crs.utm_zone is not None And there are many other methods available on the ``pyproj.CRS`` class to get information about the CRS. From 3867ad4cda277724bf682c4d9f97201f1caa0559 Mon Sep 17 00:00:00 2001 From: Dave Rench McCauley Date: Mon, 31 Aug 2020 16:36:47 -0400 Subject: [PATCH 033/316] DOC: Correct set_geometry docstring for ``drop`` default. (#1594) Co-authored-by: Dave Rench McCauley --- geopandas/geodataframe.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/geopandas/geodataframe.py b/geopandas/geodataframe.py index 0038aee..a764b17 100644 --- a/geopandas/geodataframe.py +++ b/geopandas/geodataframe.py @@ -192,7 +192,7 @@ class GeoDataFrame(GeoPandasBase, DataFrame): Parameters ---------- col : column label or array - drop : boolean, default True + drop : boolean, default False Delete column to be used as the new geometry inplace : boolean, default False Modify the GeoDataFrame in place (do not create a new object) From 2adf4c7533022cc3e1a9768a4584d4b75e1b2300 Mon Sep 17 00:00:00 2001 From: Giacomo Caria <44147817+gcaria@users.noreply.github.com> Date: Wed, 2 Sep 2020 20:56:20 +0200 Subject: [PATCH 034/316] BUG: Fix TypeError exception message in clip (#1598) Co-authored-by: Giacomo Caria --- geopandas/tools/clip.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/geopandas/tools/clip.py b/geopandas/tools/clip.py index da76e0f..75ef3ce 100644 --- a/geopandas/tools/clip.py +++ b/geopandas/tools/clip.py @@ -127,7 +127,7 @@ def clip(gdf, mask, keep_geom_type=False): if not isinstance(mask, (GeoDataFrame, GeoSeries, Polygon, MultiPolygon)): raise TypeError( "'mask' should be GeoDataFrame, GeoSeries or" - "(Multi)Polygon, got {}".format(type(gdf)) + "(Multi)Polygon, got {}".format(type(mask)) ) if isinstance(mask, (GeoDataFrame, GeoSeries)): From 38fd095fa5a44219ce3b9b389b2109d67797e82c Mon Sep 17 00:00:00 2001 From: Ian Rose Date: Wed, 2 Sep 2020 12:56:06 -0700 Subject: [PATCH 035/316] ENH: Allow for more general file-like objects to be used when opening files. (#1535) * Allow for more general file-like objects to be used when opening files. * Add a zip scheme to a local path if it is missing on a .zip file. This allows similar zip inference to happen for remote and local files. * Add tests using file-like objects and for inferring zip file. * Make fsspec an optional dep for CI. * Handle case where windows drive names are present. * Add test using GDAL-style vsi path. * Try to increase test coverage a bit. * Handle case where an archive path is included for a zip Co-authored-by: Martin Fleischmann * Fix fiona-style path handling for zip archives. * Remove debug log. * Remove remote fsspec test as mostly-redundant. * Simplify reading of bytes by using BytesCollection everywhere. At some point it may be better to move to the more-supported MemoryFile/ZipMemoryFile. * Add fsspec example to the io docs. * Slight reorg of zip scheme logic. Co-authored-by: Martin Fleischmann --- ci/travis/36-minimal.yaml | 1 + ci/travis/36-pd025.yaml | 1 + ci/travis/37-dev.yaml | 1 + ci/travis/37-latest-conda-forge.yaml | 1 + ci/travis/37-latest-defaults.yaml | 1 + ci/travis/38-latest-conda-forge.yaml | 1 + doc/source/docs/user_guide/io.rst | 8 +++++ geopandas/io/file.py | 37 +++++++++++++++++--- geopandas/io/tests/test_file.py | 51 ++++++++++++++++++++++++++++ 9 files changed, 98 insertions(+), 4 deletions(-) diff --git a/ci/travis/36-minimal.yaml b/ci/travis/36-minimal.yaml index c7b3739..3533fc1 100644 --- a/ci/travis/36-minimal.yaml +++ b/ci/travis/36-minimal.yaml @@ -14,6 +14,7 @@ dependencies: - pytest - pytest-cov - codecov + - fsspec # optional - rtree - matplotlib diff --git a/ci/travis/36-pd025.yaml b/ci/travis/36-pd025.yaml index 713078a..cf5df53 100644 --- a/ci/travis/36-pd025.yaml +++ b/ci/travis/36-pd025.yaml @@ -12,6 +12,7 @@ dependencies: # testing - pytest - pytest-cov + - fsspec #- codecov # optional - rtree diff --git a/ci/travis/37-dev.yaml b/ci/travis/37-dev.yaml index 7dd3f16..2b46364 100644 --- a/ci/travis/37-dev.yaml +++ b/ci/travis/37-dev.yaml @@ -13,6 +13,7 @@ dependencies: # testing - pytest - pytest-cov + - fsspec #- codecov # optional - rtree diff --git a/ci/travis/37-latest-conda-forge.yaml b/ci/travis/37-latest-conda-forge.yaml index 80ff961..71f87fc 100644 --- a/ci/travis/37-latest-conda-forge.yaml +++ b/ci/travis/37-latest-conda-forge.yaml @@ -13,6 +13,7 @@ dependencies: - pytest - pytest-cov - codecov + - fsspec # optional - rtree - matplotlib diff --git a/ci/travis/37-latest-defaults.yaml b/ci/travis/37-latest-defaults.yaml index 5a8839a..ad96f2c 100644 --- a/ci/travis/37-latest-defaults.yaml +++ b/ci/travis/37-latest-defaults.yaml @@ -12,6 +12,7 @@ dependencies: # testing - pytest - pytest-cov + - fsspec #- codecov # optional - rtree diff --git a/ci/travis/38-latest-conda-forge.yaml b/ci/travis/38-latest-conda-forge.yaml index d19642f..951d7a4 100644 --- a/ci/travis/38-latest-conda-forge.yaml +++ b/ci/travis/38-latest-conda-forge.yaml @@ -13,6 +13,7 @@ dependencies: - pytest - pytest-cov - codecov + - fsspec # optional - rtree - matplotlib diff --git a/doc/source/docs/user_guide/io.rst b/doc/source/docs/user_guide/io.rst index b22b0dd..b5826b3 100644 --- a/doc/source/docs/user_guide/io.rst +++ b/doc/source/docs/user_guide/io.rst @@ -57,6 +57,14 @@ as a file handler (e.g. via built-in ``open`` function) or ``StringIO``:: file = open(filename) df = geopandas.read_file(file) +File-like objects from `fsspec `_ +can also be used to read data, allowing for any combination of storage backends and caching +supported by that project:: + + path = "simplecache::http://download.geofabrik.de/antarctica-latest-free.shp.zip" + with fsspec.open(path) as file: + df = geopandas.read_file(file) + You can also read path objects:: import pathlib diff --git a/geopandas/io/file.py b/geopandas/io/file.py index 2a94f3f..080935a 100644 --- a/geopandas/io/file.py +++ b/geopandas/io/file.py @@ -1,6 +1,5 @@ from distutils.version import LooseVersion -import io import warnings import numpy as np import pandas as pd @@ -36,6 +35,16 @@ def _is_url(url): return False +def _is_zip(path): + """Check if a given path is a zipfile""" + parsed = fiona.path.ParsedPath.from_uri(path) + return ( + parsed.archive.endswith(".zip") + if parsed.archive + else parsed.path.endswith(".zip") + ) + + def _read_file(filename, bbox=None, mask=None, rows=None, **kwargs): """ Returns a GeoDataFrame from a file or URL. @@ -85,10 +94,30 @@ def _read_file(filename, bbox=None, mask=None, rows=None, **kwargs): req = _urlopen(filename) path_or_bytes = req.read() reader = fiona.BytesCollection - elif isinstance(filename, io.TextIOBase): - path_or_bytes = filename.read() - reader = fiona.open + elif pd.api.types.is_file_like(filename): + data = filename.read() + path_or_bytes = data.encode("utf-8") if isinstance(data, str) else data + reader = fiona.BytesCollection else: + # Opening a file via URL or file-like-object above automatically detects a + # zipped file. In order to match that behavior, attempt to add a zip scheme + # if missing. + if _is_zip(str(filename)): + parsed = fiona.parse_path(str(filename)) + if isinstance(parsed, fiona.path.ParsedPath): + # If fiona is able to parse the path, we can safely look at the scheme + # and update it to have a zip scheme if necessary. + schemes = (parsed.scheme or "").split("+") + if "zip" not in schemes: + parsed.scheme = "+".join(["zip"] + schemes) + filename = parsed.name + elif isinstance(parsed, fiona.path.UnparsedPath) and not str( + filename + ).startswith("/vsi"): + # If fiona is unable to parse the path, it might have a Windows drive + # scheme. Try adding zip:// to the front. If the path starts with "/vsi" + # it is a legacy GDAL path type, so let it pass unmodified. + filename = "zip://" + parsed.name path_or_bytes = filename reader = fiona.open diff --git a/geopandas/io/tests/test_file.py b/geopandas/io/tests/test_file.py index 236c856..09b5a35 100644 --- a/geopandas/io/tests/test_file.py +++ b/geopandas/io/tests/test_file.py @@ -304,6 +304,16 @@ def test_read_file_remote_geojson_url(): assert isinstance(gdf, geopandas.GeoDataFrame) +@pytest.mark.web +def test_read_file_remote_zipfile_url(): + url = ( + "https://raw.githubusercontent.com/geopandas/geopandas/" + "master/geopandas/datasets/nybb_16a.zip" + ) + gdf = read_file(url) + assert isinstance(gdf, geopandas.GeoDataFrame) + + def test_read_file_textio(file_path): file_text_stream = open(file_path) file_stringio = io.StringIO(open(file_path).read()) @@ -356,6 +366,47 @@ def test_read_file_tempfile(): temp.close() +def test_read_binary_file_fsspec(): + fsspec = pytest.importorskip("fsspec") + # Remove the zip scheme so fsspec doesn't open as a zipped file, + # instead we want to read as bytes and let fiona decode it. + path = geopandas.datasets.get_path("nybb")[6:] + with fsspec.open(path, "rb") as f: + gdf = read_file(f) + assert isinstance(gdf, geopandas.GeoDataFrame) + + +def test_read_text_file_fsspec(file_path): + fsspec = pytest.importorskip("fsspec") + with fsspec.open(file_path, "r") as f: + gdf = read_file(f) + assert isinstance(gdf, geopandas.GeoDataFrame) + + +def test_infer_zipped_file(): + # Remove the zip scheme so that the test for a zipped file can + # check it and add it back. + path = geopandas.datasets.get_path("nybb")[6:] + gdf = read_file(path) + assert isinstance(gdf, geopandas.GeoDataFrame) + + # Check that it can sucessfully add a zip scheme to a path that already has a scheme + gdf = read_file("file+file://" + path) + assert isinstance(gdf, geopandas.GeoDataFrame) + + # Check that it can add a zip scheme for a path that includes a subpath + # within the archive. + gdf = read_file(path + "!nybb.shp") + assert isinstance(gdf, geopandas.GeoDataFrame) + + +def test_allow_legacy_gdal_path(): + # Construct a GDAL-style zip path. + path = "/vsizip/" + geopandas.datasets.get_path("nybb")[6:] + gdf = read_file(path) + assert isinstance(gdf, geopandas.GeoDataFrame) + + def test_read_file_filtered(df_nybb): full_df_shape = df_nybb.shape nybb_filename = geopandas.datasets.get_path("nybb") From 72427d3d8c128039bfce1d54a76c0b652887b276 Mon Sep 17 00:00:00 2001 From: "Alan D. Snow" Date: Fri, 11 Sep 2020 06:13:47 -0500 Subject: [PATCH 036/316] TST: Use less precise option for testing appending to file (#1613) --- geopandas/io/tests/test_file.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/geopandas/io/tests/test_file.py b/geopandas/io/tests/test_file.py index 09b5a35..96b11a1 100644 --- a/geopandas/io/tests/test_file.py +++ b/geopandas/io/tests/test_file.py @@ -261,7 +261,7 @@ def test_append_file(tmpdir, df_nybb, df_null, driver, ext): assert "geometry" in df assert len(df) == (5 * 2) expected = pd.concat([df_nybb] * 2, ignore_index=True) - assert_geodataframe_equal(df, expected) + assert_geodataframe_equal(df, expected, check_less_precise=True) # Write layer with null geometry out to file tempfilename = os.path.join(str(tmpdir), "null_geom." + ext) @@ -272,7 +272,7 @@ def test_append_file(tmpdir, df_nybb, df_null, driver, ext): assert "geometry" in df assert len(df) == (2 * 2) expected = pd.concat([df_null] * 2, ignore_index=True) - assert_geodataframe_equal(df, expected) + assert_geodataframe_equal(df, expected, check_less_precise=True) # ----------------------------------------------------------------------------- From 55b99c66081b0281c3ad3ee3ea0fcf14502ba473 Mon Sep 17 00:00:00 2001 From: Giacomo Caria <44147817+gcaria@users.noreply.github.com> Date: Sun, 13 Sep 2020 12:27:37 +0200 Subject: [PATCH 037/316] BUG: Warning when missing_kwds provided but no areas missing data (#1600) * Do not plot empty series for missing_kwds. Fix #1565 * Remove extra space between words Co-authored-by: Giacomo Caria --- geopandas/plotting.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/geopandas/plotting.py b/geopandas/plotting.py index e82c012..7294956 100644 --- a/geopandas/plotting.py +++ b/geopandas/plotting.py @@ -754,7 +754,7 @@ def plot_dataframe( **style_kwds ) - if missing_kwds is not None: + if missing_kwds is not None and not expl_series[nan_idx].empty: if color: if "color" not in missing_kwds: missing_kwds["color"] = color From 5616ba40a85e1a168cc8a851eeb035064dc57761 Mon Sep 17 00:00:00 2001 From: Rowan Molony Date: Sun, 13 Sep 2020 20:22:27 +0100 Subject: [PATCH 038/316] BUG: Geocode Fails When results.value is None (#1610) Previously geopandas.tools.geocode._prepare_geocode_result fails when result is None as it expects a Tuple (such as (None, None)) that it can unpack and cannot unpack a NoneType object. --- geopandas/tests/test_geocode.py | 18 ++++++++++++++++-- geopandas/tools/geocoding.py | 18 ++++++++++-------- 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/geopandas/tests/test_geocode.py b/geopandas/tests/test_geocode.py index dd5de8a..ec8740c 100644 --- a/geopandas/tests/test_geocode.py +++ b/geopandas/tests/test_geocode.py @@ -1,4 +1,3 @@ -import numpy as np import pandas as pd from shapely.geometry import Point @@ -9,6 +8,7 @@ from geopandas.tools.geocoding import _prepare_geocode_result from geopandas.tests.util import assert_geoseries_equal, mock from pandas.testing import assert_series_equal +from geopandas.testing import assert_geodataframe_equal import pytest geopy = pytest.importorskip("geopy") @@ -106,7 +106,21 @@ def test_prepare_result_none(): # TODO we should probably replace this with a missing value instead of point? # assert len(row["geometry"].coords) == 0 assert row["geometry"].is_empty - assert np.isnan(row["address"]) + assert row["address"] is None + + +@pytest.mark.parametrize("geocode_result", (None, (None, None))) +def test_prepare_geocode_result_when_result_is(geocode_result): + + result = {0: geocode_result} + expected_output = GeoDataFrame( + {"geometry": [Point()], "address": [None]}, + crs="EPSG:4326", + ) + + output = _prepare_geocode_result(result) + + assert_geodataframe_equal(output, expected_output) def test_bad_provider_forward(): diff --git a/geopandas/tools/geocoding.py b/geopandas/tools/geocoding.py index 4e3a78f..0398773 100644 --- a/geopandas/tools/geocoding.py +++ b/geopandas/tools/geocoding.py @@ -1,7 +1,6 @@ from collections import defaultdict import time -import numpy as np import pandas as pd from shapely.geometry import Point @@ -169,16 +168,19 @@ def _prepare_geocode_result(results): index = [] for i, s in results.items(): - address, loc = s - # loc is lat, lon and we want lon, lat - if loc is None: + if s is None: p = Point() - else: - p = Point(loc[1], loc[0]) + address = None - if address is None: - address = np.nan + else: + address, loc = s + + # loc is lat, lon and we want lon, lat + if loc is None: + p = Point() + else: + p = Point(loc[1], loc[0]) d["geometry"].append(p) d["address"].append(address) From d6932671c66c6fa36bd145f3053d8a5d1f2dd4e0 Mon Sep 17 00:00:00 2001 From: "Alan D. Snow" Date: Mon, 14 Sep 2020 03:34:24 -0500 Subject: [PATCH 039/316] BUG: Handle missing geometry with to_crs and shapely (#1618) * BUG: Handle missing geometry with to_crs and shapely * remove pygeos compat stuff in tests --- geopandas/_vectorized.py | 5 ++++- geopandas/tests/test_crs.py | 9 +++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/geopandas/_vectorized.py b/geopandas/_vectorized.py index d31cfc9..673cb39 100644 --- a/geopandas/_vectorized.py +++ b/geopandas/_vectorized.py @@ -886,6 +886,9 @@ def transform(data, func): result = np.empty(n, dtype=object) for i in range(n): geom = data[i] - result[i] = transform(func, geom) + if _isna(geom): + result[i] = geom + else: + result[i] = transform(func, geom) return result diff --git a/geopandas/tests/test_crs.py b/geopandas/tests/test_crs.py index 2936d00..a804d4b 100644 --- a/geopandas/tests/test_crs.py +++ b/geopandas/tests/test_crs.py @@ -49,6 +49,15 @@ def test_to_crs_transform(): assert_geodataframe_equal(df, utm, check_less_precise=True) +def test_to_crs_transform__missing_data(): + # https://github.com/geopandas/geopandas/issues/1573 + df = df_epsg26918() + df.loc[3, "geometry"] = None + lonlat = df.to_crs(epsg=4326) + utm = lonlat.to_crs(epsg=26918) + assert_geodataframe_equal(df, utm, check_less_precise=True) + + def test_to_crs_inplace(): df = df_epsg26918() lonlat = df.to_crs(epsg=4326) From dc50b69896b3e59650492f375ce1710daa759b71 Mon Sep 17 00:00:00 2001 From: Adrian Garcia Badaracco <1755071+adriangb@users.noreply.github.com> Date: Sat, 19 Sep 2020 14:29:35 -0500 Subject: [PATCH 040/316] MAINT/TST: Add GitHub actions tests for single workflow cross-platform testing (#1576) --- .github/workflows/tests.yaml | 119 +++++++++++++++++++++++++++ .pre-commit-config.yaml | 1 + .travis.yml | 68 --------------- appveyor.yml | 46 ----------- ci/travis/36-minimal.yaml | 2 +- ci/travis/36-pd025.yaml | 3 +- ci/travis/37-dev.yaml | 12 +-- ci/travis/37-latest-conda-forge.yaml | 3 +- ci/travis/37-latest-defaults.yaml | 3 +- ci/travis/38-latest-conda-forge.yaml | 3 +- ci/travis/38-no-optional-deps.yaml | 2 +- ci/travis/setup_postgres.sh | 2 +- 12 files changed, 135 insertions(+), 129 deletions(-) create mode 100644 .github/workflows/tests.yaml delete mode 100644 .travis.yml delete mode 100644 appveyor.yml diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml new file mode 100644 index 0000000..cf1923a --- /dev/null +++ b/.github/workflows/tests.yaml @@ -0,0 +1,119 @@ +name: Tests + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + Linting: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-python@v2 + - uses: pre-commit/action@v2.0.0 + + Test: + needs: Linting + name: ${{ matrix.os }}, ${{ matrix.env }} + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest] + postgis: [false] + dev: [false] + env: + - ci/travis/36-minimal.yaml + - ci/travis/38-no-optional-deps.yaml + - ci/travis/36-pd025.yaml + - ci/travis/37-latest-defaults.yaml + - ci/travis/37-latest-conda-forge.yaml + - ci/travis/38-latest-conda-forge.yaml + include: + - env: ci/travis/37-latest-conda-forge.yaml + os: macos-latest + postgis: false + dev: false + - env: ci/travis/38-latest-conda-forge.yaml + os: macos-latest + postgis: false + dev: false + - env: ci/travis/37-latest-conda-forge.yaml + os: windows-latest + postgis: false + dev: false + - env: ci/travis/38-latest-conda-forge.yaml + os: windows-latest + postgis: false + dev: false + - env: ci/travis/37-dev.yaml + os: ubuntu-latest + dev: true + + steps: + - uses: actions/checkout@v2 + + - name: Setup Conda + uses: s-weigand/setup-conda@v1.0.4 + with: + activate-conda: false + + - name: Install Env + shell: bash + run: conda env create -f ${{ matrix.env }} + + + - name: Check and Log Environment + shell: bash + run: | + source activate test + python -V + python -c "import geopandas; geopandas.show_versions();" + conda info + # save conda list to file and print out + # so that we can do the HAS_PYGEOS check without calling conda again + conda list 2>&1 | tee conda.txt + if ( cat conda.txt | grep -q pygeos ) + then + echo "Setting HAS_PYGEOS=1" + echo '::set-env name=HAS_PYGEOS::1' + else + echo "Setting HAS_PYGEOS=0" + echo '::set-env name=HAS_PYGEOS::0' + fi + + - name: Test without PyGEOS + shell: bash + continue-on-error: ${{ matrix.dev }} + env: + USE_PYGEOS: 0 + run: | + source activate test + pytest -v -r s -n auto --color=yes --cov=geopandas --cov-append --cov-report term-missing --cov-report xml geopandas/ + + - name: Test with PyGEOS + shell: bash + continue-on-error: ${{ matrix.dev }} + if: env.HAS_PYGEOS == 1 + env: + USE_PYGEOS: 1 + run: | + source activate test + pytest -v -r s -n auto --color=yes --cov=geopandas --cov-append --cov-report term-missing --cov-report xml geopandas/ + + - name: Test with PostGIS + shell: bash + if: contains(matrix.env, '38-latest-conda-forge.yaml') && contains(matrix.os, 'ubuntu') + env: + PGUSER: postgres + PGPASSWORD: postgres + PGHOST: "127.0.0.1" + run: | + source activate test + conda install postgis -c conda-forge + source ci/travis/setup_postgres.sh + pytest -v -r s -color=yes --cov=geopandas --cov-append --cov-report term-missing --cov-report xml geopandas/io/tests/test_sql.py | tee /dev/stderr | if grep SKIPPED >/dev/null;then echo "TESTS SKIPPED, FAILING" && exit 1;fi + + - uses: codecov/codecov-action@v1 diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index b6390b7..0ec4099 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,3 +1,4 @@ +files: 'geopandas\/' repos: - repo: https://github.com/python/black rev: 20.8b1 diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 4ba4225..0000000 --- a/.travis.yml +++ /dev/null @@ -1,68 +0,0 @@ -language: python - -sudo: false - -matrix: - include: - # One build with minimum versions of dependencies - - env: ENV_FILE="ci/travis/36-minimal.yaml" - - # one build with no optional dependencies - - env: ENV_FILE="ci/travis/38-no-optional-deps.yaml" - - # Python 3.6 test all supported Pandas versions - - env: ENV_FILE="ci/travis/36-pd025.yaml" PYGEOS=true - - - env: ENV_FILE="ci/travis/37-latest-defaults.yaml" STYLE=true PYGEOS=true - - env: ENV_FILE="ci/travis/37-latest-conda-forge.yaml" PYGEOS=true - - - env: ENV_FILE="ci/travis/38-latest-conda-forge.yaml" PYGEOS=true POSTGIS=true PGUSER=postgres PGPASSWORD=postgres - - - env: ENV_FILE="ci/travis/37-dev.yaml" DEV=true PYGEOS=true - - allow_failures: - - env: ENV_FILE="ci/travis/37-dev.yaml" DEV=true PYGEOS=true - -before_install: - - chmod +x ci/travis/setup_postgres.sh - -install: - # Install conda - - wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh - - bash miniconda.sh -b -p $HOME/miniconda - - export PATH="$HOME/miniconda/bin:$PATH" - - conda config --set always_yes yes --set changeps1 no - - conda update conda - - conda info - - # free channel needed for older envs (< py37), see - # https://github.com/conda/conda/issues/8849 - - conda config --set restore_free_channel true - - # Install dependencies - - conda env create --file="${ENV_FILE}" - - source activate test - - if [ "$DEV" ]; then pip install git+https://github.com/pydata/pandas.git; fi - - if [ "$DEV" ]; then pip install git+https://github.com/matplotlib/matplotlib.git; fi - - if [ "$DEV" ]; then pip install git+https://github.com/Toblerity/Shapely.git; fi - - if [ "$STYLE" ]; then pip install black flake8; fi - - if [ "$POSTGIS" ]; then conda install postgis -c conda-forge; fi - - pip install -e . - - # List environment - - conda list - - python -c "import geopandas; geopandas.show_versions();" - - # Set-up database - - if [ "$POSTGIS" ]; then ci/travis/setup_postgres.sh; fi - -script: - - echo "Testing without PyGEOS" - - USE_PYGEOS=0 pytest geopandas -v -r s --cov geopandas --cov-report term-missing - - if [ "$PYGEOS" ]; then echo "Testing with PyGEOS"; fi - - if [ "$PYGEOS" ]; then USE_PYGEOS=1 pytest geopandas -v -r s --cov-append --cov geopandas --cov-report term-missing; fi - - if [ "$STYLE" ]; then black --check geopandas; fi - - if [ "$STYLE" ]; then flake8 geopandas; fi - -after_success: - - codecov diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index 19d20d9..0000000 --- a/appveyor.yml +++ /dev/null @@ -1,46 +0,0 @@ -# With infos from -# http://tjelvarolsson.com/blog/how-to-continuously-test-your-python-code-on-windows-using-appveyor/ -# https://packaging.python.org/en/latest/appveyor/ -# https://github.com/rmcgibbo/python-appveyor-conda-example - -environment: - matrix: - - PYTHON_VERSION: "3.7" - MINICONDA: C:\Miniconda37-x64 - ENV_FILE: "ci/travis/37-latest-conda-forge.yaml" - - - PYTHON_VERSION: "3.8" - MINICONDA: C:\Miniconda37-x64 - ENV_FILE: "ci/travis/38-latest-conda-forge.yaml" - -# all our python builds have to happen in tests_script... -build: false - -init: - - "ECHO %PYTHON_VERSION% %MINICONDA%" - -install: - # cancel older builds for the same PR - - ps: if ($env:APPVEYOR_PULL_REQUEST_NUMBER -and $env:APPVEYOR_BUILD_NUMBER -ne ((Invoke-RestMethod ` - https://ci.appveyor.com/api/projects/$env:APPVEYOR_ACCOUNT_NAME/$env:APPVEYOR_PROJECT_SLUG/history?recordsNumber=50).builds | ` - Where-Object pullRequestId -eq $env:APPVEYOR_PULL_REQUEST_NUMBER)[0].buildNumber) { ` - throw "There are newer queued builds for this pull request, failing early." } - - # set up environment - - CALL "%MINICONDA%\\Scripts\\activate.bat" - - conda config --set always_yes yes --set show_channel_urls true --set changeps1 no - - conda update conda - # this is basically equivalent to what conda init does. It changes the "conda" to - # be a .bat script that sets appropriate PATH entries before conda hits problems. - # This PATH modification only works with conda 4.6+, but it won't hurt other versions. - - set "PATH=%MINICONDA%\condabin:%PATH%" - - conda info -a - - conda config --add channels conda-forge - - conda config --set channel_priority strict - - conda env create --file="${ENV_FILE}" - -test_script: - # this uses condabin/conda.bat because of our PATH modification above - - conda activate test - - conda list - - pytest geopandas -v diff --git a/ci/travis/36-minimal.yaml b/ci/travis/36-minimal.yaml index 3533fc1..16e9d99 100644 --- a/ci/travis/36-minimal.yaml +++ b/ci/travis/36-minimal.yaml @@ -13,7 +13,7 @@ dependencies: # testing - pytest - pytest-cov - - codecov + - pytest-xdist - fsspec # optional - rtree diff --git a/ci/travis/36-pd025.yaml b/ci/travis/36-pd025.yaml index cf5df53..c089da9 100644 --- a/ci/travis/36-pd025.yaml +++ b/ci/travis/36-pd025.yaml @@ -12,8 +12,8 @@ dependencies: # testing - pytest - pytest-cov + - pytest-xdist - fsspec - #- codecov # optional - rtree - matplotlib @@ -24,7 +24,6 @@ dependencies: - pyarrow - pip: - pyproj==2.3.1 - - codecov - geopy - mapclassify==2.2.0 - git+https://github.com/pygeos/pygeos.git diff --git a/ci/travis/37-dev.yaml b/ci/travis/37-dev.yaml index 2b46364..266537f 100644 --- a/ci/travis/37-dev.yaml +++ b/ci/travis/37-dev.yaml @@ -5,26 +5,26 @@ dependencies: - python=3.7.3 - cython # required - - pandas - - shapely - fiona - pyproj - geos # testing - pytest - pytest-cov + - pytest-xdist - fsspec - #- codecov # optional - rtree - - matplotlib - descartes #- geopy - SQLalchemy - libspatialite - pyarrow - pip: - - codecov - geopy - mapclassify>=2.2.0 - - git+https://github.com/pygeos/pygeos.git + # dev versions of packages + - git+https://github.com/pydata/pandas.git@master + - git+https://github.com/matplotlib/matplotlib.git@master + - git+https://github.com/Toblerity/Shapely.git@master + - git+https://github.com/pygeos/pygeos.git@master diff --git a/ci/travis/37-latest-conda-forge.yaml b/ci/travis/37-latest-conda-forge.yaml index 71f87fc..6023ab6 100644 --- a/ci/travis/37-latest-conda-forge.yaml +++ b/ci/travis/37-latest-conda-forge.yaml @@ -12,7 +12,7 @@ dependencies: # testing - pytest - pytest-cov - - codecov + - pytest-xdist - fsspec # optional - rtree @@ -23,3 +23,4 @@ dependencies: - SQLalchemy - libspatialite - pyarrow + diff --git a/ci/travis/37-latest-defaults.yaml b/ci/travis/37-latest-defaults.yaml index ad96f2c..d03871b 100644 --- a/ci/travis/37-latest-defaults.yaml +++ b/ci/travis/37-latest-defaults.yaml @@ -12,8 +12,8 @@ dependencies: # testing - pytest - pytest-cov + - pytest-xdist - fsspec - #- codecov # optional - rtree - matplotlib @@ -23,7 +23,6 @@ dependencies: - libspatialite - pyarrow - pip: - - codecov - geopy - mapclassify - git+https://github.com/pygeos/pygeos.git diff --git a/ci/travis/38-latest-conda-forge.yaml b/ci/travis/38-latest-conda-forge.yaml index 951d7a4..a572785 100644 --- a/ci/travis/38-latest-conda-forge.yaml +++ b/ci/travis/38-latest-conda-forge.yaml @@ -12,7 +12,7 @@ dependencies: # testing - pytest - pytest-cov - - codecov + - pytest-xdist - fsspec # optional - rtree @@ -27,3 +27,4 @@ dependencies: - libspatialite - geoalchemy2 - pyarrow + \ No newline at end of file diff --git a/ci/travis/38-no-optional-deps.yaml b/ci/travis/38-no-optional-deps.yaml index d6fe127..d1d3f0c 100644 --- a/ci/travis/38-no-optional-deps.yaml +++ b/ci/travis/38-no-optional-deps.yaml @@ -11,4 +11,4 @@ dependencies: # testing - pytest - pytest-cov - - codecov + - pytest-xdist diff --git a/ci/travis/setup_postgres.sh b/ci/travis/setup_postgres.sh index 96645f3..32defae 100644 --- a/ci/travis/setup_postgres.sh +++ b/ci/travis/setup_postgres.sh @@ -14,7 +14,7 @@ while [ ! -e /tmp/.s.PGSQL.5432 ]; do echo -n '.' done -createuser -U travis -s postgres +createuser -U ${USER} -s postgres createdb --owner=postgres test_geopandas psql -d test_geopandas -q -c "CREATE EXTENSION postgis" From c42f9e4a97b38180acc4540a38cecec9f4d942b3 Mon Sep 17 00:00:00 2001 From: Adrian Garcia Badaracco <1755071+adriangb@users.noreply.github.com> Date: Mon, 21 Sep 2020 13:35:33 -0500 Subject: [PATCH 041/316] ENH: speed up emptiness and size checks for rtree (#1625) * speed up emptiness and size checks for rtree * add self.leaves comment * Update sindex.py --- geopandas/sindex.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/geopandas/sindex.py b/geopandas/sindex.py index 20a3100..fd46c12 100644 --- a/geopandas/sindex.py +++ b/geopandas/sindex.py @@ -252,11 +252,19 @@ if compat.HAS_RTREE: @property def size(self): - return len(self.leaves()[0][1]) + if hasattr(self, "_size"): + size = self._size + else: + # self.leaves are lists of tuples of (int, lists...) + # index [0][1] always has an element, even for empty sindex + # for an empty index, it will be an empty list + size = len(self.leaves()[0][1]) + self._size = size + return size @property def is_empty(self): - return self.size == 0 + return self.geometries.size == 0 or self.size == 0 def __len__(self): return self.size From cb4e8cb9873d808b0a8299ea09e3a3edaa5a8326 Mon Sep 17 00:00:00 2001 From: James McBride Date: Mon, 21 Sep 2020 12:14:28 -0700 Subject: [PATCH 042/316] Create issue bug report and enhancement templates (#1584) * Create issue bug report and enchancement templates As a followup to #899, it would be nice to highlight this function, as well as other useful information, when users are creating new bug reports or requests for new features. These are copied and very lightly edited from the templates used by pandas. * Add header for `show_versions` in issue template Co-authored-by: Martin Fleischmann * Add templates for questions and installation issues * Add references to GIS stack exchange Co-authored-by: Martin Fleischmann * Add suggestion to look at installation issue in issue template Co-authored-by: Martin Fleischmann --- .github/ISSUE_TEMPLATE/bug_report.md | 39 ++++++++++++++++++++ .github/ISSUE_TEMPLATE/feature_request.md | 34 +++++++++++++++++ .github/ISSUE_TEMPLATE/installation_issue.md | 29 +++++++++++++++ .github/ISSUE_TEMPLATE/submit_question.md | 24 ++++++++++++ 4 files changed, 126 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 .github/ISSUE_TEMPLATE/installation_issue.md create mode 100644 .github/ISSUE_TEMPLATE/submit_question.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..7c7a706 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,39 @@ +--- + +name: Bug Report +about: Create a bug report to help us improve geopandas +title: "BUG:" +labels: "bug, needs triage" + +--- + +- [ ] I have checked that this issue has not already been reported. + +- [ ] I have confirmed this bug exists on the latest version of geopandas. + +- [ ] (optional) I have confirmed this bug exists on the master branch of geopandas. + +--- + +**Note**: Please read [this guide](https://matthewrocklin.com/blog/work/2018/02/28/minimal-bug-reports) detailing how to provide the necessary information for us to reproduce your bug. + +#### Code Sample, a copy-pastable example + +```python +# Your code here + +``` + +#### Problem description + +[this should explain **why** the current behaviour is a problem and why the expected output is a better solution] + +#### Expected Output + +#### Output of ``geopandas.show_versions()`` + +

+ +[paste the output of ``geopandas.show_versions()`` here leaving a blank line after the details tag] + +
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..cdb5ba0 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,34 @@ +--- + +name: Feature Request +about: Suggest an idea for geopandas +title: "ENH:" +labels: "enhancement" + +--- + +#### Is your feature request related to a problem? + +[this should provide a description of what the problem is, e.g. "I wish I could use geopandas to do [...]"] + +#### Describe the solution you'd like + +[this should provide a description of the feature request, e.g. "`GeoDataFrame.foo` should get a new parameter `bar` that [...]", try to write a docstring for the desired feature] + +#### API breaking implications + +[this should provide a description of how this feature will affect the API] + +#### Describe alternatives you've considered + +[this should provide a description of any alternative solutions or features you've considered] + +#### Additional context + +[add any other context, code examples, or references to existing implementations about the feature request here] + +```python +# Your code here, if applicable + +``` + diff --git a/.github/ISSUE_TEMPLATE/installation_issue.md b/.github/ISSUE_TEMPLATE/installation_issue.md new file mode 100644 index 0000000..d056433 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/installation_issue.md @@ -0,0 +1,29 @@ +--- + +name: Installation Issue +about: Ask about installing geopandas +title: "" +labels: "installation" + +--- + +- [ ] I have read the [documentation on installation](https://geopandas.org/install.html) and followed the instructions provided. + +- [ ] I have looked through [issues labeled "installation"](https://github.com/geopandas/geopandas/labels/installation) in the geopandas repo. + +--- + +#### System information + +[what operating system do you have and what package management system are you +using] + +#### Environment details + +
+ +[if using conda, paste the output of `conda info` and `conda list`; if using +pip, `pip freeze`] + +
+ diff --git a/.github/ISSUE_TEMPLATE/submit_question.md b/.github/ISSUE_TEMPLATE/submit_question.md new file mode 100644 index 0000000..c118c3d --- /dev/null +++ b/.github/ISSUE_TEMPLATE/submit_question.md @@ -0,0 +1,24 @@ +--- + +name: Submit Question +about: Ask a general question about geopandas +title: "QST:" +labels: "question" + +--- + +- [ ] I have searched the [geopandas] tag on [StackOverflow](https://stackoverflow.com/questions/tagged/geopandas) and [GIS StackExchange](https://gis.stackexchange.com/questions/tagged/geopandas) for similar questions. + +- [ ] I have asked my usage related question on [StackOverflow](https://stackoverflow.com) or [GIS StackExhange](https://gis.stackexchange.com). + +--- + +#### Question about geopandas + +**Note**: If you'd still like to submit a question, please read [this guide]( +https://matthewrocklin.com/blog/work/2018/02/28/minimal-bug-reports) detailing how to provide the necessary information for us to reproduce your question. + +```python +# Your code here, if applicable + +``` From 16347ad058d6b05c4abe9a674db6d666011261cb Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Thu, 24 Sep 2020 12:46:10 +0100 Subject: [PATCH 043/316] CI: schedule daily tests (#1633) --- .github/workflows/tests.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index cf1923a..5861d90 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -5,6 +5,8 @@ on: branches: [ master ] pull_request: branches: [ master ] + schedule: + - cron: '0 0 * * *' jobs: Linting: From 16f3ba85a8bd773f6daec1ac24e0a8d9435d62db Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Thu, 24 Sep 2020 13:58:43 +0100 Subject: [PATCH 044/316] BUG: is_ring returns False even for all LineStrings and LinearRings (#1631) * BUG: fix is_ring * warning, clean pygeos * Update geopandas/_vectorized.py Co-authored-by: Joris Van den Bossche * conditional warning Co-authored-by: Joris Van den Bossche --- geopandas/_vectorized.py | 37 ++++++++++++++++++++--------------- geopandas/tests/test_array.py | 16 +++++++++++++++ 2 files changed, 37 insertions(+), 16 deletions(-) diff --git a/geopandas/_vectorized.py b/geopandas/_vectorized.py index 673cb39..291a3df 100644 --- a/geopandas/_vectorized.py +++ b/geopandas/_vectorized.py @@ -474,23 +474,28 @@ def is_simple(data): def is_ring(data): - if compat.USE_PYGEOS: - return pygeos.is_ring(pygeos.get_exterior_ring(data)) - else: - # operates on the exterior, so can't use _unary_op() - # XXX needed to change this because there is now a geometry collection - # in the shapely ones that was something else before? - return np.array( - [ - geom.exterior.is_ring - if geom is not None - and hasattr(geom, "exterior") - and geom.exterior is not None - else False - for geom in data - ], - dtype=bool, + if "Polygon" in geom_type(data): + warnings.warn( + "is_ring currently returns True for Polygons, which is not correct. " + "This will be corrected to False in a future release.", + FutureWarning, + stacklevel=3, ) + if compat.USE_PYGEOS: + return pygeos.is_ring(data) | pygeos.is_ring(pygeos.get_exterior_ring(data)) + else: + # for polygons operates on the exterior, so can't use _unary_op() + results = [] + for geom in data: + if geom is None: + results.append(False) + elif geom.type == "Polygon": + results.append(geom.exterior.is_ring) + elif geom.type in ["LineString", "LinearRing"]: + results.append(geom.is_ring) + else: + results.append(False) + return np.array(results, dtype=bool) def is_closed(data): diff --git a/geopandas/tests/test_array.py b/geopandas/tests/test_array.py index 79d2d64..94d7f50 100644 --- a/geopandas/tests/test_array.py +++ b/geopandas/tests/test_array.py @@ -479,6 +479,22 @@ def test_unary_predicates(attr): assert result.tolist() == expected +def test_is_ring(): + g = [ + shapely.geometry.LinearRing([(0, 0), (1, 1), (1, -1)]), + shapely.geometry.LineString([(0, 0), (1, 1), (1, -1)]), + shapely.geometry.LineString([(0, 0), (1, 1), (1, -1), (0, 0)]), + shapely.geometry.Polygon([(0, 0), (1, 1), (1, -1)]), + shapely.geometry.Polygon(), + None, + ] + expected = [True, False, True, True, False, False] + + result = from_shapely(g).is_ring + + assert result.tolist() == expected + + @pytest.mark.parametrize("attr", ["area", "length"]) def test_unary_float(attr): na_value = np.nan From e833bd5cd1224fb491e24bfa0a623e7c560bd6ed Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Sat, 26 Sep 2020 10:37:05 +0100 Subject: [PATCH 045/316] CI: codecov yml (#1629) --- codecov.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 codecov.yml diff --git a/codecov.yml b/codecov.yml new file mode 100644 index 0000000..c6d92a6 --- /dev/null +++ b/codecov.yml @@ -0,0 +1,6 @@ +coverage: + status: + project: + default: + target: 95% # the required coverage value + threshold: 0.2% # the leniency in hitting the target From 40f172b6c11ee0088ff8bf1ef58a0a23fda005aa Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Sat, 26 Sep 2020 13:05:25 +0200 Subject: [PATCH 046/316] BUG: fix overridden GeoSeries.apply method to accept convert_dtype keyword (#1636) --- geopandas/geoseries.py | 4 ++-- geopandas/tests/test_pandas_methods.py | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/geopandas/geoseries.py b/geopandas/geoseries.py index 24f084a..b79f598 100644 --- a/geopandas/geoseries.py +++ b/geopandas/geoseries.py @@ -313,8 +313,8 @@ class GeoSeries(GeoPandasBase, Series): return self._wrapped_pandas_method("select", *args, **kwargs) @inherit_doc(pd.Series) - def apply(self, func, args=(), **kwargs): - result = super().apply(func, args=args, **kwargs) + def apply(self, func, convert_dtype=True, args=(), **kwargs): + result = super().apply(func, convert_dtype=convert_dtype, args=args, **kwargs) if isinstance(result, GeoSeries): if self.crs is not None: result.set_crs(self.crs, inplace=True) diff --git a/geopandas/tests/test_pandas_methods.py b/geopandas/tests/test_pandas_methods.py index 354a637..7d9ac56 100644 --- a/geopandas/tests/test_pandas_methods.py +++ b/geopandas/tests/test_pandas_methods.py @@ -512,3 +512,9 @@ def test_apply_loc_len1(df): result = subset.apply(lambda geom: geom.is_empty) expected = subset.is_empty np.testing.assert_allclose(result, expected) + + +def test_apply_convert_dtypes_keyword(s): + # ensure the convert_dtypes keyword is accepted + res = s.apply(lambda x: x, convert_dtype=True, args=()) + assert_geoseries_equal(res, s) From 63615be8b0d07d09de013e58672a498c732644c6 Mon Sep 17 00:00:00 2001 From: sangarshanan Date: Sun, 27 Sep 2020 14:10:07 +0530 Subject: [PATCH 047/316] ENH: Check for duplicate column name in rename_geometry (#1602) * check for duplicate column name in rename_geometry * use fstring instead of %s --- geopandas/geodataframe.py | 13 +++++++++---- geopandas/tests/test_geodataframe.py | 7 +++++++ 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/geopandas/geodataframe.py b/geopandas/geodataframe.py index a764b17..8b7d82e 100644 --- a/geopandas/geodataframe.py +++ b/geopandas/geodataframe.py @@ -289,10 +289,15 @@ class GeoDataFrame(GeoPandasBase, DataFrame): geodataframe : GeoDataFrame """ geometry_col = self.geometry.name - if not inplace: - return self.rename(columns={geometry_col: col}).set_geometry(col, inplace) - self.rename(columns={geometry_col: col}, inplace=inplace) - self.set_geometry(col, inplace=inplace) + if col in self.columns: + raise ValueError(f"Column named {col} already exists") + else: + if not inplace: + return self.rename(columns={geometry_col: col}).set_geometry( + col, inplace + ) + self.rename(columns={geometry_col: col}, inplace=inplace) + self.set_geometry(col, inplace=inplace) @property def crs(self): diff --git a/geopandas/tests/test_geodataframe.py b/geopandas/tests/test_geodataframe.py index e28d5a3..ed9518c 100644 --- a/geopandas/tests/test_geodataframe.py +++ b/geopandas/tests/test_geodataframe.py @@ -209,6 +209,13 @@ class TestDataFrame: assert df2 is None assert self.df.geometry.name == "new_name" + # existing column error + msg = "Column named Shape_Area already exists" + with pytest.raises(ValueError, match=msg): + df2 = self.df.rename_geometry("Shape_Area") + with pytest.raises(ValueError, match=msg): + self.df.rename_geometry("Shape_Area", inplace=True) + def test_set_geometry(self): geom = GeoSeries([Point(x, y) for x, y in zip(range(5), range(5))]) original_geom = self.df.geometry From d1d4b466739992421dcb7df8a1be47a1b37d99b9 Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Mon, 28 Sep 2020 07:53:15 +0100 Subject: [PATCH 048/316] CI: keep pygeos master in dev environment only (#1639) --- ci/travis/36-pd025.yaml | 2 +- ci/travis/37-latest-defaults.yaml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ci/travis/36-pd025.yaml b/ci/travis/36-pd025.yaml index c089da9..1d4fe4e 100644 --- a/ci/travis/36-pd025.yaml +++ b/ci/travis/36-pd025.yaml @@ -26,4 +26,4 @@ dependencies: - pyproj==2.3.1 - geopy - mapclassify==2.2.0 - - git+https://github.com/pygeos/pygeos.git + - pygeos diff --git a/ci/travis/37-latest-defaults.yaml b/ci/travis/37-latest-defaults.yaml index d03871b..baecc06 100644 --- a/ci/travis/37-latest-defaults.yaml +++ b/ci/travis/37-latest-defaults.yaml @@ -23,6 +23,6 @@ dependencies: - libspatialite - pyarrow - pip: - - geopy - - mapclassify - - git+https://github.com/pygeos/pygeos.git + - geopy + - mapclassify + - pygeos From ab96b6a7a26109e76c2fbf7ade29f5ee1bb6ef72 Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Mon, 28 Sep 2020 09:33:33 +0100 Subject: [PATCH 049/316] BUG: fix geom types codes for pygeos (#1641) --- geopandas/_vectorized.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/geopandas/_vectorized.py b/geopandas/_vectorized.py index 291a3df..c312443 100644 --- a/geopandas/_vectorized.py +++ b/geopandas/_vectorized.py @@ -38,7 +38,10 @@ _names = { if compat.USE_PYGEOS: type_mapping = {p.value: _names[p.name] for p in pygeos.GeometryType} geometry_type_ids = list(type_mapping.keys()) - geometry_type_values = np.array(list(type_mapping.values()), dtype=object) + geometry_type_ids.insert(0, -1) + type_mapping_list = list(type_mapping.values()) + type_mapping_list.insert(0, None) + geometry_type_values = np.array(type_mapping_list, dtype=object) else: type_mapping, geometry_type_ids, geometry_type_values = None, None, None From 1e975abc597d43d80d8ea7e3197facadc71e0ff0 Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Sun, 4 Oct 2020 06:05:26 +0100 Subject: [PATCH 050/316] BUG: fix pygeos geom types mapping (#1644) --- geopandas/_vectorized.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/geopandas/_vectorized.py b/geopandas/_vectorized.py index c312443..86fb6c4 100644 --- a/geopandas/_vectorized.py +++ b/geopandas/_vectorized.py @@ -24,6 +24,7 @@ except ImportError: _names = { + "MISSING": None, "NAG": None, "POINT": "Point", "LINESTRING": "LineString", @@ -38,10 +39,7 @@ _names = { if compat.USE_PYGEOS: type_mapping = {p.value: _names[p.name] for p in pygeos.GeometryType} geometry_type_ids = list(type_mapping.keys()) - geometry_type_ids.insert(0, -1) - type_mapping_list = list(type_mapping.values()) - type_mapping_list.insert(0, None) - geometry_type_values = np.array(type_mapping_list, dtype=object) + geometry_type_values = np.array(list(type_mapping.values()), dtype=object) else: type_mapping, geometry_type_ids, geometry_type_values = None, None, None From 330ed11dc10a79c326b274a5ccca5cf0befda41c Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Thu, 8 Oct 2020 18:32:19 +0100 Subject: [PATCH 051/316] DOC: Docstring examples (#1617) * GeoSeries examples * GeoSeries examples * GeoDataFrame examples * missed one * base examples * review changes * toggleprompt * brendan's comments * further comments --- doc/source/conf.py | 1 + doc/source/docs/reference/geodataframe.rst | 1 + geopandas/base.py | 395 ++++++++++++++++++++- geopandas/geodataframe.py | 301 +++++++++++++++- geopandas/geoseries.py | 254 ++++++++++++- 5 files changed, 936 insertions(+), 16 deletions(-) diff --git a/doc/source/conf.py b/doc/source/conf.py index c31a869..2be0bc0 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -35,6 +35,7 @@ extensions = [ "sphinx.ext.autodoc", "myst_nb", "numpydoc", + 'sphinx_toggleprompt', ] # continue doc build and only print warnings/errors in examples diff --git a/doc/source/docs/reference/geodataframe.rst b/doc/source/docs/reference/geodataframe.rst index 60c94c2..e1ce804 100644 --- a/doc/source/docs/reference/geodataframe.rst +++ b/doc/source/docs/reference/geodataframe.rst @@ -80,6 +80,7 @@ Interface :toctree: api/ GeoDataFrame.__geo_interface__ + GeoDataFrame.iterfeatures All pandas ``DataFrame`` methods are also available, although they may not operate in a meaningful way on the ``geometry`` column. All methods diff --git a/geopandas/base.py b/geopandas/base.py index 4093487..077b704 100644 --- a/geopandas/base.py +++ b/geopandas/base.py @@ -94,7 +94,37 @@ class GeoPandasBase(object): @property def area(self): """Returns a ``Series`` containing the area of each geometry in the - ``GeoSeries``.""" + ``GeoSeries``. + + Examples + -------- + + >>> from shapely.geometry import Polygon, LineString, Point + >>> s = geopandas.GeoSeries( + ... [ + ... Polygon([(0, 0), (1, 1), (0, 1)]), + ... Polygon([(10, 0), (10, 5), (0, 0)]), + ... Polygon([(0, 0), (2, 2), (2, 0)]), + ... LineString([(0, 0), (1, 1), (0, 1)]), + ... Point(0, 1) + ... ] + ... ) + >>> s + 0 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 0.... + 1 POLYGON ((10.00000 0.00000, 10.00000 5.00000, ... + 2 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 2.... + 3 LINESTRING (0.00000 0.00000, 1.00000 1.00000, ... + 4 POINT (0.00000 1.00000) + dtype: geometry + + >>> s.area + 0 0.5 + 1 25.0 + 2 2.0 + 3 0.0 + 4 0.0 + dtype: float64 + """ return _delegate_property("area", self) @property @@ -108,6 +138,22 @@ class GeoPandasBase(object): can be anything accepted by :meth:`pyproj.CRS.from_user_input() `, such as an authority string (eg "EPSG:4326") or a WKT string. + + Examples + -------- + + >>> s.crs + + Name: WGS 84 + Axis Info [ellipsoidal]: + - Lat[north]: Geodetic latitude (degree) + - Lon[east]: Geodetic longitude (degree) + Area of Use: + - name: World + - bounds: (-180.0, -90.0, 180.0, 90.0) + Datum: World Geodetic System 1984 + - Ellipsoid: WGS 84 + - Prime Meridian: Greenwich """ return self.geometry.values.crs @@ -143,13 +189,79 @@ class GeoPandasBase(object): @property def length(self): - """Returns a ``Series`` containing the length of each geometry.""" + """Returns a ``Series`` containing the length of each geometry. + + Examples + -------- + + >>> from shapely.geometry import Polygon, LineString, MultiLineString, Point, \ +GeometryCollection + >>> s = geopandas.GeoSeries( + ... [ + ... LineString([(0, 0), (1, 1), (0, 1)]), + ... LineString([(10, 0), (10, 5), (0, 0)]), + ... MultiLineString([((0, 0), (1, 0)), ((-1, 0), (1, 0))]), + ... Polygon([(0, 0), (1, 1), (0, 1)]), + ... Point(0, 1), + ... GeometryCollection([Point(1, 0), LineString([(10, 0), (10, 5), (0,\ + 0)])]) + ... ] + ... ) + >>> s + 0 LINESTRING (0.00000 0.00000, 1.00000 1.00000, ... + 1 LINESTRING (10.00000 0.00000, 10.00000 5.00000... + 2 MULTILINESTRING ((0.00000 0.00000, 1.00000 1.0... + 3 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 0.... + 4 POINT (0.00000 1.00000) + 5 GEOMETRYCOLLECTION (POINT (1.00000 0.00000), L... + dtype: geometry + + >>> s.length + 0 2.414214 + 1 16.180340 + 2 3.000000 + 3 3.414214 + 4 0.000000 + 5 16.180340 + dtype: float64 + """ return _delegate_property("length", self) @property def is_valid(self): """Returns a ``Series`` of ``dtype('bool')`` with value ``True`` for - geometries that are valid.""" + geometries that are valid. + + Examples + -------- + + An example with one invalid polygon (a bowtie geometry crossing itself) + and one missing geometry: + + >>> from shapely.geometry import Polygon + >>> s = geopandas.GeoSeries( + ... [ + ... Polygon([(0, 0), (1, 1), (0, 1)]), + ... Polygon([(0,0), (1, 1), (1, 0), (0, 1)]), # bowtie geometry + ... Polygon([(0, 0), (2, 2), (2, 0)]), + ... None + ... ] + ... ) + >>> s + 0 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 0.... + 1 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 1.... + 2 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 2.... + 3 None + dtype: geometry + + >>> s.is_valid + 0 True + 1 False + 2 True + 3 False + dtype: bool + + """ return _delegate_property("is_valid", self) @property @@ -189,19 +301,87 @@ class GeoPandasBase(object): geometries that do not cross themselves. This is meaningful only for `LineStrings` and `LinearRings`. + + Examples + -------- + >>> from shapely.geometry import LineString + >>> s = geopandas.GeoSeries( + ... [ + ... LineString([(0, 0), (1, 1), (1, -1), (0, 1)]), + ... LineString([(0, 0), (1, 1), (1, -1)]), + ... ] + ... ) + >>> s + 0 LINESTRING (0.00000 0.00000, 1.00000 1.00000, ... + 1 LINESTRING (0.00000 0.00000, 1.00000 1.00000, ... + dtype: geometry + + >>> s.is_simple + 0 False + 1 True + dtype: bool """ return _delegate_property("is_simple", self) @property def is_ring(self): """Returns a ``Series`` of ``dtype('bool')`` with value ``True`` for - features that are closed.""" + features that are closed. + + Examples + -------- + >>> from shapely.geometry import LineString, LinearRing + >>> s = geopandas.GeoSeries( + ... [ + ... LineString([(0, 0), (1, 1), (1, -1)]), + ... LineString([(0, 0), (1, 1), (1, -1), (0, 0)]), + ... LinearRing([(0, 0), (1, 1), (1, -1)]), + ... ] + ... ) + >>> s + 0 LINESTRING (0.00000 0.00000, 1.00000 1.00000, ... + 1 LINESTRING (0.00000 0.00000, 1.00000 1.00000, ... + 2 LINEARRING (0.00000 0.00000, 1.00000 1.00000, ... + dtype: geometry + + Note: When constructing a LinearRing, the sequence of coordinates may be + explicitly closed by passing identical values in the first and last indices. + Otherwise, the sequence will be implicitly closed by copying the first tuple + to the last index. + + >>> s.is_ring + 0 False + 1 True + 2 True + dtype: bool + + """ return _delegate_property("is_ring", self) @property def has_z(self): """Returns a ``Series`` of ``dtype('bool')`` with value ``True`` for - features that have a z-component.""" + features that have a z-component. + + Examples + -------- + >>> from shapely.geometry import Point + >>> s = geopandas.GeoSeries( + ... [ + ... Point(0, 1), + ... Point(0, 1, 2), + ... ] + ... ) + >>> s + 0 POINT (0.00000 1.00000) + 1 POINT Z (0.00000 1.00000 2.00000) + dtype: geometry + + >>> s.has_z + 0 False + 1 True + dtype: bool + """ return _delegate_property("has_z", self) # @@ -211,13 +391,64 @@ class GeoPandasBase(object): @property def boundary(self): """Returns a ``GeoSeries`` of lower dimensional objects representing - each geometries's set-theoretic `boundary`.""" + each geometries's set-theoretic `boundary`. + + Examples + -------- + + >>> from shapely.geometry import Polygon, LineString, Point + >>> s = geopandas.GeoSeries( + ... [ + ... Polygon([(0, 0), (1, 1), (0, 1)]), + ... LineString([(0, 0), (1, 1), (1, 0)]), + ... Point(0, 0), + ... ] + ... ) + >>> s + 0 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 0.... + 1 LINESTRING (0.00000 0.00000, 1.00000 1.00000, ... + 2 POINT (0.00000 0.00000) + dtype: geometry + + >>> s.boundary + 0 LINESTRING (0.00000 0.00000, 1.00000 1.00000, ... + 1 MULTIPOINT (0.00000 0.00000, 1.00000 0.00000) + 2 GEOMETRYCOLLECTION EMPTY + dtype: geometry + + """ return _delegate_property("boundary", self) @property def centroid(self): """Returns a ``GeoSeries`` of points representing the centroid of each - geometry.""" + geometry. + + Note that centroid does not have to be on or within original geometry. + + Examples + -------- + + >>> from shapely.geometry import Polygon, LineString, Point + >>> s = geopandas.GeoSeries( + ... [ + ... Polygon([(0, 0), (1, 1), (0, 1)]), + ... LineString([(0, 0), (1, 1), (1, 0)]), + ... Point(0, 0), + ... ] + ... ) + >>> s + 0 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 0.... + 1 LINESTRING (0.00000 0.00000, 1.00000 1.00000, ... + 2 POINT (0.00000 0.00000) + dtype: geometry + + >>> s.centroid + 0 POINT (0.33333 0.66667) + 1 POINT (0.70711 0.50000) + 2 POINT (0.00000 0.00000) + dtype: geometry + """ return _delegate_property("centroid", self) @property @@ -228,7 +459,37 @@ class GeoPandasBase(object): The convex hull of a geometry is the smallest convex `Polygon` containing all the points in each geometry, unless the number of points in the geometric object is less than three. For two points, the convex - hull collapses to a `LineString`; for 1, a `Point`.""" + hull collapses to a `LineString`; for 1, a `Point`. + + Examples + -------- + + >>> from shapely.geometry import Polygon, LineString, Point, MultiPoint + >>> s = geopandas.GeoSeries( + ... [ + ... Polygon([(0, 0), (1, 1), (0, 1)]), + ... LineString([(0, 0), (1, 1), (1, 0)]), + ... MultiPoint([(0, 0), (1, 1), (0, 1), (1, 0), (0.5, 0.5)]), + ... MultiPoint([(0, 0), (1, 1)]), + ... Point(0, 0), + ... ] + ... ) + >>> s + 0 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 0.... + 1 LINESTRING (0.00000 0.00000, 1.00000 1.00000, ... + 2 MULTIPOINT (0.00000 0.00000, 1.00000 1.00000, ... + 3 MULTIPOINT (0.00000 0.00000, 1.00000 1.00000) + 4 POINT (0.00000 0.00000) + + >>> s.convex_hull + 0 POLYGON ((0.00000 0.00000, 0.00000 1.00000, 1.... + 1 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 1.... + 2 POLYGON ((0.00000 0.00000, 0.00000 1.00000, 1.... + 3 LINESTRING (0.00000 0.00000, 1.00000 1.00000) + 4 POINT (0.00000 0.00000) + dtype: geometry + + """ return _delegate_property("convex_hull", self) @property @@ -238,7 +499,34 @@ class GeoPandasBase(object): The envelope of a geometry is the bounding rectangle. That is, the point or smallest rectangular polygon (with sides parallel to the - coordinate axes) that contains the geometry.""" + coordinate axes) that contains the geometry. + + Examples + -------- + + >>> from shapely.geometry import Polygon, LineString, Point, MultiPoint + >>> s = geopandas.GeoSeries( + ... [ + ... Polygon([(0, 0), (1, 1), (0, 1)]), + ... LineString([(0, 0), (1, 1), (1, 0)]), + ... MultiPoint([(0, 0), (1, 1)]), + ... Point(0, 0), + ... ] + ... ) + >>> s + 0 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 0.... + 1 LINESTRING (0.00000 0.00000, 1.00000 1.00000, ... + 2 MULTIPOINT (0.00000 0.00000, 1.00000 1.00000) + 3 POINT (0.00000 0.00000) + dtype: geometry + + >>> s.envelope + 0 POLYGON ((0.00000 0.00000, 1.00000 0.00000, 1.... + 1 POLYGON ((0.00000 0.00000, 1.00000 0.00000, 1.... + 2 POLYGON ((0.00000 0.00000, 1.00000 0.00000, 1.... + 3 POINT (0.00000 0.00000) + dtype: geometry + """ return _delegate_property("envelope", self) @property @@ -246,7 +534,31 @@ class GeoPandasBase(object): """Returns a ``GeoSeries`` of LinearRings representing the outer boundary of each polygon in the GeoSeries. - Applies to GeoSeries containing only Polygons. + Applies to GeoSeries containing only Polygons. Returns ``None``` for + other geometry types. + + Examples + -------- + + >>> from shapely.geometry import Polygon, Point + >>> s = geopandas.GeoSeries( + ... [ + ... Polygon([(0, 0), (1, 1), (0, 1)]), + ... Polygon([(1, 0), (2, 1), (0, 0)]), + ... Point(0, 1) + ... ] + ... ) + >>> s + 0 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 0.... + 1 POLYGON ((1.00000 0.00000, 2.00000 1.00000, 0.... + 2 POINT (0.00000 1.00000) + dtype: geometry + + >>> s.exterior + 0 LINEARRING (0.00000 0.00000, 1.00000 1.00000, ... + 1 LINEARRING (1.00000 0.00000, 2.00000 1.00000, ... + 2 None + dtype: geometry """ # TODO: return empty geometry for non-polygons return _delegate_property("exterior", self) @@ -262,12 +574,58 @@ class GeoPandasBase(object): ---------- inner_rings: Series of List Inner rings of each polygon in the GeoSeries. + + Examples + -------- + + >>> from shapely.geometry import Polygon + >>> s = geopandas.GeoSeries( + ... [ + ... Polygon( + ... [(0, 0), (0, 5), (5, 5), (5, 0)], + ... [[(1, 1), (2, 1), (1, 2)], [(1, 4), (2, 4), (2, 3)]], + ... ), + ... Polygon([(1, 0), (2, 1), (0, 0)]), + ... ] + ... ) + >>> s + 0 POLYGON ((0.00000 0.00000, 0.00000 5.00000, 5.... + 1 POLYGON ((1.00000 0.00000, 2.00000 1.00000, 0.... + dtype: geometry + + >>> s.interiors + 0 [LINEARRING (1 1, 2 1, 1 2, 1 1), LINEARRING (... + 1 [] + dtype: object """ return _delegate_property("interiors", self) def representative_point(self): """Returns a ``GeoSeries`` of (cheaply computed) points that are guaranteed to be within each geometry. + + Examples + -------- + + >>> from shapely.geometry import Polygon, LineString, Point + >>> s = geopandas.GeoSeries( + ... [ + ... Polygon([(0, 0), (1, 1), (0, 1)]), + ... LineString([(0, 0), (1, 1), (1, 0)]), + ... Point(0, 0), + ... ] + ... ) + >>> s + 0 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 0.... + 1 LINESTRING (0.00000 0.00000, 1.00000 1.00000, ... + 2 POINT (0.00000 0.00000) + dtype: geometry + + >>> s.representative_point() + 0 POINT (0.25000 0.50000) + 1 POINT (1.00000 1.00000) + 2 POINT (0.00000 0.00000) + dtype: geometry """ return _delegate_geo_method("representative_point", self) @@ -283,7 +641,22 @@ class GeoPandasBase(object): @property def unary_union(self): """Returns a geometry containing the union of all geometries in the - ``GeoSeries``.""" + ``GeoSeries``. + + Examples + -------- + + >>> from shapely.geometry import box + >>> s = geopandas.GeoSeries([box(0,0,1,1), box(0,0,2,2)]) + >>> s + 0 POLYGON ((1.00000 0.00000, 1.00000 1.00000, 0.... + 1 POLYGON ((2.00000 0.00000, 2.00000 2.00000, 0.... + dtype: geometry + + >>> union = s.unary_union + >>> print(union) + POLYGON ((0 0, 0 1, 0 2, 2 2, 2 0, 1 0, 0 0)) + """ return self.geometry.values.unary_union() # diff --git a/geopandas/geodataframe.py b/geopandas/geodataframe.py index 8b7d82e..357ec2a 100644 --- a/geopandas/geodataframe.py +++ b/geopandas/geodataframe.py @@ -205,8 +205,31 @@ class GeoDataFrame(GeoPandasBase, DataFrame): Examples -------- - >>> df1 = df.set_geometry([Point(0,0), Point(1,1), Point(2,2)]) - >>> df2 = df.set_geometry('geom1') + >>> from shapely.geometry import Point + >>> d = {'col1': ['name1', 'name2'], 'geometry': [Point(1, 2), Point(2, 1)]} + >>> gdf = geopandas.GeoDataFrame(d, crs="EPSG:4326") + >>> gdf + col1 geometry + 0 name1 POINT (1.00000 2.00000) + 1 name2 POINT (2.00000 1.00000) + + Passing an array: + + >>> df1 = gdf.set_geometry([Point(0,0), Point(1,1)]) + >>> df1 + col1 geometry + 0 name1 POINT (0.00000 0.00000) + 1 name2 POINT (1.00000 1.00000) + + Using existing column: + + >>> gdf["buffered"] = gdf.buffer(2) + >>> df2 = df.set_geometry("buffered") + >>> df2.geometry + 0 POLYGON ((3.00000 2.00000, 2.99037 1.80397, 2.... + 1 POLYGON ((4.00000 1.00000, 3.99037 0.80397, 3.... + Name: buffered, dtype: geometry + Returns ------- @@ -310,6 +333,23 @@ class GeoDataFrame(GeoPandasBase, DataFrame): can be anything accepted by :meth:`pyproj.CRS.from_user_input() `, such as an authority string (eg "EPSG:4326") or a WKT string. + + Examples + -------- + + >>> gdf.crs + + Name: WGS 84 + Axis Info [ellipsoidal]: + - Lat[north]: Geodetic latitude (degree) + - Lon[east]: Geodetic longitude (degree) + Area of Use: + - name: World + - bounds: (-180.0, -90.0, 180.0, 90.0) + Datum: World Geodetic System 1984 + - Ellipsoid: WGS 84 + - Prime Meridian: Greenwich + """ return self._crs @@ -358,6 +398,8 @@ class GeoDataFrame(GeoPandasBase, DataFrame): def from_file(cls, filename, **kwargs): """Alternate constructor to create a ``GeoDataFrame`` from a file. + It is recommended to use :func:`geopandas.read_file` instead. + Can load a ``GeoDataFrame`` from a file in any format recognized by `fiona`. See http://fiona.readthedocs.io/en/latest/manual.html for details. @@ -374,7 +416,31 @@ class GeoDataFrame(GeoPandasBase, DataFrame): Examples -------- - >>> df = geopandas.GeoDataFrame.from_file('nybb.shp') + + >>> path = geopandas.datasets.get_path('nybb') + >>> gdf = geopandas.GeoDataFrame.from_file(path) + >>> gdf + BoroCode BoroName Shape_Leng Shape_Area \ + geometry + 0 5 Staten Island 330470.010332 1.623820e+09 MULTIPOLYGON ((\ +(970217.022 145643.332, 970227.... + 1 4 Queens 896344.047763 3.045213e+09 MULTIPOLYGON ((\ +(1029606.077 156073.814, 102957... + 2 3 Brooklyn 741080.523166 1.937479e+09 MULTIPOLYGON ((\ +(1021176.479 151374.797, 102100... + 3 1 Manhattan 359299.096471 6.364715e+08 MULTIPOLYGON ((\ +(981219.056 188655.316, 980940.... + 4 2 Bronx 464392.991824 1.186925e+09 MULTIPOLYGON ((\ +(1012821.806 229228.265, 101278... + + The recommended method of reading files is :func:`geopandas.read_file`: + + >>> gdf = geopandas.read_file(path) + + See also + -------- + read_file + """ return geopandas.io.file._read_file(filename, **kwargs) @@ -409,6 +475,34 @@ class GeoDataFrame(GeoPandasBase, DataFrame): For more information about the ``__geo_interface__``, see https://gist.github.com/sgillies/2217756 + Examples + -------- + >>> feature_coll = { + ... "type": "FeatureCollection", + ... "features": [ + ... { + ... "id": "0", + ... "type": "Feature", + ... "properties": {"col1": "name1"}, + ... "geometry": {"type": "Point", "coordinates": (1.0, 2.0)}, + ... "bbox": (1.0, 2.0, 1.0, 2.0), + ... }, + ... { + ... "id": "1", + ... "type": "Feature", + ... "properties": {"col1": "name2"}, + ... "geometry": {"type": "Point", "coordinates": (2.0, 1.0)}, + ... "bbox": (2.0, 1.0, 2.0, 1.0), + ... }, + ... ], + ... "bbox": (1.0, 1.0, 2.0, 2.0), + ... } + >>> df = geopandas.GeoDataFrame.from_features(feature_coll) + >>> df + geometry col1 + 0 POINT (1.00000 2.00000) name1 + 1 POINT (2.00000 1.00000) name2 + """ # Handle feature collections if hasattr(features, "__geo_interface__"): @@ -523,6 +617,24 @@ class GeoDataFrame(GeoPandasBase, DataFrame): - ``drop``: remove the property from the feature. This applies to each feature individually so that features may have different properties. - ``keep``: output the missing entries as NaN. + + Examples + -------- + + >>> from shapely.geometry import Point + >>> d = {'col1': ['name1', 'name2'], 'geometry': [Point(1, 2), Point(2, 1)]} + >>> gdf = geopandas.GeoDataFrame(d, crs="EPSG:4326") + >>> gdf + col1 geometry + 0 name1 POINT (1.00000 2.00000) + 1 name2 POINT (2.00000 1.00000) + + >>> gdf.to_json() + '{"type": "FeatureCollection", "features": [{"id": "0", "type": "Feature", \ +"properties": {"col1": "name1"}, "geometry": {"type": "Point", "coordinates": [1.0,\ + 2.0]}}, {"id": "1", "type": "Feature", "properties": {"col1": "name2"}, "geometry"\ +: {"type": "Point", "coordinates": [2.0, 1.0]}}]}' + """ return json.dumps(self._to_geo(na=na, show_bbox=show_bbox), **kwargs) @@ -536,6 +648,26 @@ class GeoDataFrame(GeoPandasBase, DataFrame): This differs from `_to_geo()` only in that it is a property with default args instead of a method + + Examples + -------- + + >>> from shapely.geometry import Point + >>> d = {'col1': ['name1', 'name2'], 'geometry': [Point(1, 2), Point(2, 1)]} + >>> gdf = geopandas.GeoDataFrame(d, crs="EPSG:4326") + >>> gdf + col1 geometry + 0 name1 POINT (1.00000 2.00000) + 1 name2 POINT (2.00000 1.00000) + + >>> gdf.__geo_interface__ + {'type': 'FeatureCollection', 'features': [{'id': '0', 'type': 'Feature', \ +'properties': {'col1': 'name1'}, 'geometry': {'type': 'Point', 'coordinates': (1.0\ +, 2.0)}, 'bbox': (1.0, 2.0, 1.0, 2.0)}, {'id': '1', 'type': 'Feature', 'properties\ +': {'col1': 'name2'}, 'geometry': {'type': 'Point', 'coordinates': (2.0, 1.0)}, 'b\ +box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} + + """ return self._to_geo(na="null", show_bbox=True) @@ -555,6 +687,22 @@ class GeoDataFrame(GeoPandasBase, DataFrame): * keep: output the missing entries as NaN show_bbox : include bbox (bounds) in the geojson. default False + + Examples + -------- + + >>> from shapely.geometry import Point + >>> d = {'col1': ['name1', 'name2'], 'geometry': [Point(1, 2), Point(2, 1)]} + >>> gdf = geopandas.GeoDataFrame(d, crs="EPSG:4326") + >>> gdf + col1 geometry + 0 name1 POINT (1.00000 2.00000) + 1 name2 POINT (2.00000 1.00000) + + >>> feature = next(gdf.iterfeatures()) + >>> feature + {'id': '0', 'type': 'Feature', 'properties': {'col1': 'name1'}, 'geometry': {\ +'type': 'Point', 'coordinates': (1.0, 2.0)}} """ if na not in ["null", "drop", "keep"]: raise ValueError("Unknown na method {0}".format(na)) @@ -656,6 +804,11 @@ class GeoDataFrame(GeoPandasBase, DataFrame): Name of the compression to use. Use ``None`` for no compression. kwargs Additional keyword arguments passed to to pyarrow.parquet.write_table(). + + Examples + -------- + + >>> gdf.to_parquet('data.parquet') """ from geopandas.io.arrow import _to_parquet @@ -694,6 +847,11 @@ class GeoDataFrame(GeoPandasBase, DataFrame): compression. By default uses LZ4 if available, otherwise uncompressed. kwargs Additional keyword arguments passed to to pyarrow.feather.write_feather(). + + Examples + -------- + + >>> gdf.to_feather('data.feather') """ from geopandas.io.arrow import _to_feather @@ -743,6 +901,15 @@ class GeoDataFrame(GeoPandasBase, DataFrame): See Also -------- GeoSeries.to_file + + Examples + -------- + + >>> gdf.to_file('dataframe.shp') + + >>> gdf.to_file('dataframe.gpkg', driver='GPKG', layer='name1') + + >>> gdf.to_file('dataframe.geojson', driver='GeoJSON') """ from geopandas.io.file import _to_file @@ -773,6 +940,45 @@ class GeoDataFrame(GeoPandasBase, DataFrame): allow_override : bool, default False If the the GeoDataFrame already has a CRS, allow to replace the existing CRS, even when both are not equal. + + Examples + -------- + >>> from shapely.geometry import Point + >>> d = {'col1': ['name1', 'name2'], 'geometry': [Point(1, 2), Point(2, 1)]} + >>> gdf = geopandas.GeoDataFrame(d) + >>> gdf + col1 geometry + 0 name1 POINT (1.00000 2.00000) + 1 name2 POINT (2.00000 1.00000) + + Setting CRS to a GeoDataFrame without one: + + >>> gdf.crs is None + True + + >>> gdf = gdf.set_crs('epsg:3857') + >>> gdf.crs + + Name: WGS 84 / Pseudo-Mercator + Axis Info [cartesian]: + - X[east]: Easting (metre) + - Y[north]: Northing (metre) + Area of Use: + - name: World - 85°S to 85°N + - bounds: (-180.0, -85.06, 180.0, 85.06) + Coordinate Operation: + - name: Popular Visualisation Pseudo-Mercator + - method: Popular Visualisation Pseudo Mercator + Datum: World Geodetic System 1984 + - Ellipsoid: WGS 84 + - Prime Meridian: Greenwich + + Overriding existing CRS: + + >>> gdf = gdf.set_crs(4326, allow_override=True) + + Without ``allow_override=True``, ``set_crs`` returns an error if you try to + override CRS. """ if not inplace: df = self.copy() @@ -811,6 +1017,49 @@ class GeoDataFrame(GeoPandasBase, DataFrame): Returns ------- GeoDataFrame + + Examples + -------- + >>> from shapely.geometry import Point + >>> d = {'col1': ['name1', 'name2'], 'geometry': [Point(1, 2), Point(2, 1)]} + >>> gdf = geopandas.GeoDataFrame(d, crs=4326) + >>> gdf + col1 geometry + 0 name1 POINT (1.00000 1.00000) + 1 name2 POINT (2.00000 2.00000) + >>> gdf.crs + + Name: WGS 84 + Axis Info [ellipsoidal]: + - Lat[north]: Geodetic latitude (degree) + - Lon[east]: Geodetic longitude (degree) + Area of Use: + - name: World + - bounds: (-180.0, -90.0, 180.0, 90.0) + Datum: World Geodetic System 1984 + - Ellipsoid: WGS 84 + - Prime Meridian: Greenwich + + >>> gdf = gdf.to_crs(3857) + >>> gdf + col1 geometry + 0 name1 POINT (111319.491 222684.209) + 1 name2 POINT (222638.982 111325.143) + >>> gdf.crs + + Name: WGS 84 / Pseudo-Mercator + Axis Info [cartesian]: + - X[east]: Easting (metre) + - Y[north]: Northing (metre) + Area of Use: + - name: World - 85°S to 85°N + - bounds: (-180.0, -85.06, 180.0, 85.06) + Coordinate Operation: + - name: Popular Visualisation Pseudo-Mercator + - method: Popular Visualisation Pseudo Mercator + Datum: World Geodetic System 1984 + - Ellipsoid: WGS 84 + - Prime Meridian: Greenwich """ if inplace: df = self @@ -944,6 +1193,28 @@ class GeoDataFrame(GeoPandasBase, DataFrame): Returns ------- GeoDataFrame + + Examples + -------- + >>> from shapely.geometry import Point + >>> d = { + ... "col1": ["name1", "name2", "name1"], + ... "geometry": [Point(1, 2), Point(2, 1), Point(0, 1)], + ... } + >>> gdf = geopandas.GeoDataFrame(d, crs=4326) + >>> gdf + col1 geometry + 0 name1 POINT (1.00000 2.00000) + 1 name2 POINT (2.00000 1.00000) + 2 name1 POINT (0.00000 1.00000) + + >>> dissolved = gdf.dissolve('col1') + >>> dissolved + geometry + col1 + name1 MULTIPOINT (0.00000 1.00000, 1.00000 2.00000) + name2 POINT (2.00000 1.00000) + """ # Process non-spatial component @@ -990,6 +1261,30 @@ class GeoDataFrame(GeoPandasBase, DataFrame): Exploded geodataframe with each single geometry as a separate entry in the geodataframe. + Examples + -------- + + >>> from shapely.geometry import MultiPoint + >>> d = { + ... "col1": ["name1", "name2"], + ... "geometry": [ + ... MultiPoint([(1, 2), (3, 4)]), + ... MultiPoint([(2, 1), (0, 0)]), + ... ], + ... } + >>> gdf = geopandas.GeoDataFrame(d, crs=4326) + >>> gdf + col1 geometry + 0 name1 MULTIPOINT (1.00000 2.00000, 3.00000 4.00000) + 1 name2 MULTIPOINT (2.00000 1.00000, 0.00000 0.00000) + + >>> exploded = gdf.explode() + >>> exploded + col1 geometry + 0 0 name1 POINT (1.00000 2.00000) + 1 name1 POINT (3.00000 4.00000) + 1 0 name2 POINT (2.00000 1.00000) + 1 name2 POINT (0.00000 0.00000) """ df_copy = self.copy() diff --git a/geopandas/geoseries.py b/geopandas/geoseries.py index b79f598..078f4f8 100644 --- a/geopandas/geoseries.py +++ b/geopandas/geoseries.py @@ -193,12 +193,56 @@ class GeoSeries(GeoPandasBase, Series): @property def x(self): - """Return the x location of point geometries in a GeoSeries""" + """Return the x location of point geometries in a GeoSeries + + Returns + ------- + pandas.Series + + Examples + -------- + + >>> from shapely.geometry import Point + >>> s = geopandas.GeoSeries([Point(1, 1), Point(2, 2), Point(3, 3)]) + >>> s.x + 0 1.0 + 1 2.0 + 2 3.0 + dtype: float64 + + See Also + -------- + + GeoSeries.y + + """ return _delegate_property("x", self) @property def y(self): - """Return the y location of point geometries in a GeoSeries""" + """Return the y location of point geometries in a GeoSeries + + Returns + ------- + pandas.Series + + Examples + -------- + + >>> from shapely.geometry import Point + >>> s = geopandas.GeoSeries([Point(1, 1), Point(2, 2), Point(3, 3)]) + >>> s.y + 0 1.0 + 1 2.0 + 2 3.0 + dtype: float64 + + See Also + -------- + + GeoSeries.x + + """ return _delegate_property("y", self) @classmethod @@ -207,6 +251,8 @@ class GeoSeries(GeoPandasBase, Series): Can load a ``GeoSeries`` from a file from any format recognized by `fiona`. See http://fiona.readthedocs.io/en/latest/manual.html for details. + From a file with attributes loads only geometry column. Note that to do + that, GeoPandas first loads the whole GeoDataFrame. Parameters ---------- @@ -218,6 +264,19 @@ class GeoSeries(GeoPandasBase, Series): These arguments are passed to fiona.open, and can be used to access multi-layer data, data stored within archives (zip files), etc. + + Examples + -------- + + >>> path = geopandas.datasets.get_path('nybb') + >>> s = geopandas.GeoSeries.from_file(path) + >>> s + 0 MULTIPOLYGON (((970217.022 145643.332, 970227.... + 1 MULTIPOLYGON (((1029606.077 156073.814, 102957... + 2 MULTIPOLYGON (((1021176.479 151374.797, 102100... + 3 MULTIPOLYGON (((981219.056 188655.316, 980940.... + 4 MULTIPOLYGON (((1012821.806 229228.265, 101278... + Name: geometry, dtype: geometry """ from geopandas import GeoDataFrame @@ -233,6 +292,20 @@ class GeoSeries(GeoPandasBase, Series): represents the ``GeoSeries`` as a GeoJSON-like ``FeatureCollection``. Note that the features will have an empty ``properties`` dict as they don't have associated attributes (geometry only). + + Examples + -------- + + >>> from shapely.geometry import Point + >>> s = geopandas.GeoSeries([Point(1, 1), Point(2, 2), Point(3, 3)]) + >>> s.__geo_interface__ + {'type': 'FeatureCollection', 'features': [{'id': '0', 'type': 'Feature', \ +'properties': {}, 'geometry': {'type': 'Point', 'coordinates': (1.0, 1.0)}, \ +'bbox': (1.0, 1.0, 1.0, 1.0)}, {'id': '1', 'type': 'Feature', \ +'properties': {}, 'geometry': {'type': 'Point', 'coordinates': (2.0, 2.0)}, \ +'bbox': (2.0, 2.0, 2.0, 2.0)}, {'id': '2', 'type': 'Feature', 'properties': \ +{}, 'geometry': {'type': 'Point', 'coordinates': (3.0, 3.0)}, 'bbox': (3.0, \ +3.0, 3.0, 3.0)}], 'bbox': (1.0, 1.0, 3.0, 3.0)} """ from geopandas import GeoDataFrame @@ -268,6 +341,15 @@ class GeoSeries(GeoPandasBase, Series): See Also -------- GeoDataFrame.to_file + + Examples + -------- + + >>> s.to_file('series.shp') + + >>> s.to_file('series.gpkg', driver='GPKG', layer='name1') + + >>> s.to_file('series.geojson', driver='GeoJSON') """ from geopandas import GeoDataFrame @@ -342,6 +424,24 @@ class GeoSeries(GeoPandasBase, Series): A boolean pandas Series of the same size as the GeoSeries, True where a value is NA. + Examples + -------- + + >>> from shapely.geometry import Polygon + >>> s = geopandas.GeoSeries( + ... [Polygon([(0, 0), (1, 1), (0, 1)]), None, Polygon([])] + ... ) + >>> s + 0 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 0.... + 1 None + 2 GEOMETRYCOLLECTION EMPTY + dtype: geometry + >>> s.isna() + 0 False + 1 True + 2 False + dtype: bool + See Also -------- GeoSeries.notna : inverse of isna @@ -383,6 +483,24 @@ class GeoSeries(GeoPandasBase, Series): A boolean pandas Series of the same size as the GeoSeries, False where a value is NA. + Examples + -------- + + >>> from shapely.geometry import Polygon + >>> s = geopandas.GeoSeries( + ... [Polygon([(0, 0), (1, 1), (0, 1)]), None, Polygon([])] + ... ) + >>> s + 0 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 0.... + 1 None + 2 GEOMETRYCOLLECTION EMPTY + dtype: geometry + >>> s.notna() + 0 True + 1 False + 2 True + dtype: bool + See Also -------- GeoSeries.isna : inverse of notna @@ -412,6 +530,35 @@ class GeoSeries(GeoPandasBase, Series): """Fill NA values with a geometry (empty polygon by default). "method" is currently not implemented for pandas <= 0.12. + + Examples + -------- + + >>> from shapely.geometry import Polygon + >>> s = geopandas.GeoSeries( + ... [ + ... Polygon([(0, 0), (1, 1), (0, 1)]), + ... None, + ... Polygon([(0, 0), (-1, 1), (0, -1)]), + ... ] + ... ) + >>> s + 0 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 0.... + 1 None + 2 POLYGON ((0.00000 0.00000, -1.00000 1.00000, 0... + dtype: geometry + + >>> s.fillna() + 0 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 0.... + 1 GEOMETRYCOLLECTION EMPTY + 2 POLYGON ((0.00000 0.00000, -1.00000 1.00000, 0... + dtype: geometry + + >>> s.fillna(Polygon([(0, 1), (2, 1), (1, 2)])) + 0 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 0.... + 1 POLYGON ((0.00000 1.00000, 2.00000 1.00000, 1.... + 2 POLYGON ((0.00000 0.00000, -1.00000 1.00000, 0... + dtype: geometry """ if value is None: value = BaseGeometry() @@ -471,6 +618,45 @@ class GeoSeries(GeoPandasBase, Series): Returns ------- GeoSeries + + Examples + -------- + >>> from shapely.geometry import Point + >>> s = geopandas.GeoSeries([Point(1, 1), Point(2, 2), Point(3, 3)]) + >>> s + 0 POINT (1.00000 1.00000) + 1 POINT (2.00000 2.00000) + 2 POINT (3.00000 3.00000) + + Setting CRS to a GeoSeries without one: + + >>> s.crs is None + True + + >>> s = s.set_crs('epsg:3857') + >>> s.crs + + Name: WGS 84 / Pseudo-Mercator + Axis Info [cartesian]: + - X[east]: Easting (metre) + - Y[north]: Northing (metre) + Area of Use: + - name: World - 85°S to 85°N + - bounds: (-180.0, -85.06, 180.0, 85.06) + Coordinate Operation: + - name: Popular Visualisation Pseudo-Mercator + - method: Popular Visualisation Pseudo Mercator + Datum: World Geodetic System 1984 + - Ellipsoid: WGS 84 + - Prime Meridian: Greenwich + + Overriding existing CRS: + + >>> s = s.set_crs(4326, allow_override=True) + + Without ``allow_override=True``, ``set_crs`` returns an error if you try to + override CRS. + """ if crs is not None: crs = CRS.from_user_input(crs) @@ -519,6 +705,49 @@ class GeoSeries(GeoPandasBase, Series): Returns ------- GeoSeries + + Examples + -------- + >>> from shapely.geometry import Point + >>> s = geopandas.GeoSeries([Point(1, 1), Point(2, 2), Point(3, 3)], crs=4326) + >>> s + 0 POINT (1.00000 1.00000) + 1 POINT (2.00000 2.00000) + 2 POINT (3.00000 3.00000) + >>> s.crs + + Name: WGS 84 + Axis Info [ellipsoidal]: + - Lat[north]: Geodetic latitude (degree) + - Lon[east]: Geodetic longitude (degree) + Area of Use: + - name: World + - bounds: (-180.0, -90.0, 180.0, 90.0) + Datum: World Geodetic System 1984 + - Ellipsoid: WGS 84 + - Prime Meridian: Greenwich + + >>> s = s.to_crs(3857) + >>> s + 0 POINT (111319.491 111325.143) + 1 POINT (222638.982 222684.209) + 2 POINT (333958.472 334111.171) + >>> s.crs + + Name: WGS 84 / Pseudo-Mercator + Axis Info [cartesian]: + - X[east]: Easting (metre) + - Y[north]: Northing (metre) + Area of Use: + - name: World - 85°S to 85°N + - bounds: (-180.0, -85.06, 180.0, 85.06) + Coordinate Operation: + - name: Popular Visualisation Pseudo-Mercator + - method: Popular Visualisation Pseudo Mercator + Datum: World Geodetic System 1984 + - Ellipsoid: WGS 84 + - Prime Meridian: Greenwich + """ if self.crs is None: raise ValueError( @@ -550,6 +779,27 @@ class GeoSeries(GeoPandasBase, Series): Parameters ---------- *kwargs* that will be passed to json.dumps(). + + Returns + ------- + JSON string + + Examples + -------- + >>> from shapely.geometry import Point + >>> s = geopandas.GeoSeries([Point(1, 1), Point(2, 2), Point(3, 3)]) + >>> s + 0 POINT (1.00000 1.00000) + 1 POINT (2.00000 2.00000) + 2 POINT (3.00000 3.00000) + + >>> s.to_json() + '{"type": "FeatureCollection", "features": [{"id": "0", "type": "Feature", "pr\ +operties": {}, "geometry": {"type": "Point", "coordinates": [1.0, 1.0]}, "bbox": [1.0,\ + 1.0, 1.0, 1.0]}, {"id": "1", "type": "Feature", "properties": {}, "geometry": {"type"\ +: "Point", "coordinates": [2.0, 2.0]}, "bbox": [2.0, 2.0, 2.0, 2.0]}, {"id": "2", "typ\ +e": "Feature", "properties": {}, "geometry": {"type": "Point", "coordinates": [3.0, 3.\ +0]}, "bbox": [3.0, 3.0, 3.0, 3.0]}], "bbox": [1.0, 1.0, 3.0, 3.0]}' """ return json.dumps(self.__geo_interface__, **kwargs) From aa9f9c1ed8637bf38ea8f8d1a01b4668326e3f01 Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Thu, 8 Oct 2020 19:16:00 +0100 Subject: [PATCH 052/316] DOC: add sphinx-toggleprompt to red environment (#1650) --- doc/environment.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/environment.yml b/doc/environment.yml index 82b6982..8eddaa5 100644 --- a/doc/environment.yml +++ b/doc/environment.yml @@ -33,3 +33,4 @@ dependencies: - geos=3.8.0 - pip: - myst-nb + - sphinx-toggleprompt From 63de9bd1820080eedc443c09df7686e1022304a0 Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Sat, 10 Oct 2020 18:44:11 +0100 Subject: [PATCH 053/316] DOC/CI: enable doctest (#1651) * inital doctest work * doctest * skip from_file * test docstring with postgis only * use doctest-plus * c-f * conditional imports * revert * revert conda * fixture to conftest.py * minimise changes, verbose output * remove blank line * revert pandas doc --- .github/workflows/tests.yaml | 11 +++++++- ci/travis/38-latest-conda-forge.yaml | 3 +- geopandas/array.py | 9 +++++- geopandas/base.py | 37 +++++++++++++----------- geopandas/conftest.py | 7 +++++ geopandas/geodataframe.py | 42 +++++++++++++++------------- geopandas/geoseries.py | 22 +++++++++------ geopandas/io/file.py | 4 +-- geopandas/io/sql.py | 9 +++--- geopandas/tests/test_api.py | 2 +- geopandas/tools/clip.py | 1 - geopandas/tools/geocoding.py | 32 ++++++++++----------- 12 files changed, 107 insertions(+), 72 deletions(-) create mode 100644 geopandas/conftest.py diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 5861d90..1e27318 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -116,6 +116,15 @@ jobs: source activate test conda install postgis -c conda-forge source ci/travis/setup_postgres.sh - pytest -v -r s -color=yes --cov=geopandas --cov-append --cov-report term-missing --cov-report xml geopandas/io/tests/test_sql.py | tee /dev/stderr | if grep SKIPPED >/dev/null;then echo "TESTS SKIPPED, FAILING" && exit 1;fi + pytest -v -r s --color=yes --cov=geopandas --cov-append --cov-report term-missing --cov-report xml geopandas/io/tests/test_sql.py | tee /dev/stderr | if grep SKIPPED >/dev/null;then echo "TESTS SKIPPED, FAILING" && exit 1;fi + - name: Test doctsrings + shell: bash + if: contains(matrix.env, '38-latest-conda-forge.yaml') && contains(matrix.os, 'ubuntu') + env: + USE_PYGEOS: 1 + run: | + source activate test + pytest -v --color=yes --doctest-only geopandas --ignore=geopandas/datasets + - uses: codecov/codecov-action@v1 diff --git a/ci/travis/38-latest-conda-forge.yaml b/ci/travis/38-latest-conda-forge.yaml index a572785..7dd6b92 100644 --- a/ci/travis/38-latest-conda-forge.yaml +++ b/ci/travis/38-latest-conda-forge.yaml @@ -27,4 +27,5 @@ dependencies: - libspatialite - geoalchemy2 - pyarrow - \ No newline at end of file + # doctest testing + - pytest-doctestplus \ No newline at end of file diff --git a/geopandas/array.py b/geopandas/array.py index 27a40c0..d9f8dcf 100644 --- a/geopandas/array.py +++ b/geopandas/array.py @@ -243,10 +243,17 @@ def points_from_xy(x, y, z=None, crs=None): Examples -------- + >>> import pandas as pd + >>> df = pd.DataFrame({'x': [0, 1, 2], 'y': [0, 1, 2], 'z': [0, 1, 2]}) + >>> df + x y z + 0 0 0 0 + 1 1 1 1 + 2 2 2 2 >>> geometry = geopandas.points_from_xy(x=[1, 0], y=[0, 1]) >>> geometry = geopandas.points_from_xy(df['x'], df['y'], df['z']) >>> gdf = geopandas.GeoDataFrame( - df, geometry=geopandas.points_from_xy(df['x'], df['y'])) + ... df, geometry=geopandas.points_from_xy(df['x'], df['y'])) Returns ------- diff --git a/geopandas/base.py b/geopandas/base.py index 077b704..b916644 100644 --- a/geopandas/base.py +++ b/geopandas/base.py @@ -142,7 +142,7 @@ class GeoPandasBase(object): Examples -------- - >>> s.crs + >>> s.crs # doctest: +SKIP Name: WGS 84 Axis Info [ellipsoidal]: @@ -175,9 +175,9 @@ class GeoPandasBase(object): ... LineString([(0, 0), (1, 1)])]} >>> gdf = geopandas.GeoDataFrame(d, crs="EPSG:4326") >>> gdf.geom_type - 0 Point - 1 Polygon - 2 LineString + 0 Point + 1 Polygon + 2 LineString dtype: object """ return _delegate_property("geom_type", self) @@ -210,7 +210,7 @@ GeometryCollection >>> s 0 LINESTRING (0.00000 0.00000, 1.00000 1.00000, ... 1 LINESTRING (10.00000 0.00000, 10.00000 5.00000... - 2 MULTILINESTRING ((0.00000 0.00000, 1.00000 1.0... + 2 MULTILINESTRING ((0.00000 0.00000, 1.00000 0.0... 3 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 0.... 4 POINT (0.00000 1.00000) 5 GEOMETRYCOLLECTION (POINT (1.00000 0.00000), L... @@ -351,8 +351,8 @@ GeometryCollection >>> s.is_ring 0 False - 1 True - 2 True + 1 True + 2 True dtype: bool """ @@ -480,6 +480,7 @@ GeometryCollection 2 MULTIPOINT (0.00000 0.00000, 1.00000 1.00000, ... 3 MULTIPOINT (0.00000 0.00000, 1.00000 1.00000) 4 POINT (0.00000 0.00000) + dtype: geometry >>> s.convex_hull 0 POLYGON ((0.00000 0.00000, 0.00000 1.00000, 1.... @@ -1188,17 +1189,21 @@ GeometryCollection Examples -------- - >>> gdf # gdf is GeoSeries of MultiPoints - 0 MULTIPOINT (0 0, 1 1) - 1 MULTIPOINT (2 2, 3 3, 4 4) + >>> from shapely.geometry import MultiPoint + >>> s = geopandas.GeoSeries( + ... [MultiPoint([(0, 0), (1, 1)]), MultiPoint([(2, 2), (3, 3), (4, 4)])] + ... ) + >>> s + 0 MULTIPOINT (0.00000 0.00000, 1.00000 1.00000) + 1 MULTIPOINT (2.00000 2.00000, 3.00000 3.00000, ... dtype: geometry - >>> gdf.explode() - 0 0 POINT (0 0) - 1 POINT (1 1) - 1 0 POINT (2 2) - 1 POINT (3 3) - 2 POINT (4 4) + >>> s.explode() + 0 0 POINT (0.00000 0.00000) + 1 POINT (1.00000 1.00000) + 1 0 POINT (2.00000 2.00000) + 1 POINT (3.00000 3.00000) + 2 POINT (4.00000 4.00000) dtype: geometry """ diff --git a/geopandas/conftest.py b/geopandas/conftest.py new file mode 100644 index 0000000..601c92f --- /dev/null +++ b/geopandas/conftest.py @@ -0,0 +1,7 @@ +import pytest +import geopandas + + +@pytest.fixture(autouse=True) +def add_geopandas(doctest_namespace): + doctest_namespace["geopandas"] = geopandas diff --git a/geopandas/geodataframe.py b/geopandas/geodataframe.py index 357ec2a..49d5bda 100644 --- a/geopandas/geodataframe.py +++ b/geopandas/geodataframe.py @@ -224,7 +224,7 @@ class GeoDataFrame(GeoPandasBase, DataFrame): Using existing column: >>> gdf["buffered"] = gdf.buffer(2) - >>> df2 = df.set_geometry("buffered") + >>> df2 = gdf.set_geometry("buffered") >>> df2.geometry 0 POLYGON ((3.00000 2.00000, 2.99037 1.80397, 2.... 1 POLYGON ((4.00000 1.00000, 3.99037 0.80397, 3.... @@ -300,6 +300,9 @@ class GeoDataFrame(GeoPandasBase, DataFrame): Examples -------- + >>> from shapely.geometry import Point + >>> d = {'col1': ['name1', 'name2'], 'geometry': [Point(1, 2), Point(2, 1)]} + >>> df = geopandas.GeoDataFrame(d, crs="EPSG:4326") >>> df1 = df.rename_geometry('geom1') >>> df1.geometry.name 'geom1' @@ -337,7 +340,7 @@ class GeoDataFrame(GeoPandasBase, DataFrame): Examples -------- - >>> gdf.crs + >>> gdf.crs # doctest: +SKIP Name: WGS 84 Axis Info [ellipsoidal]: @@ -419,7 +422,7 @@ class GeoDataFrame(GeoPandasBase, DataFrame): >>> path = geopandas.datasets.get_path('nybb') >>> gdf = geopandas.GeoDataFrame.from_file(path) - >>> gdf + >>> gdf # doctest: +SKIP BoroCode BoroName Shape_Leng Shape_Area \ geometry 0 5 Staten Island 330470.010332 1.623820e+09 MULTIPOLYGON ((\ @@ -499,7 +502,7 @@ class GeoDataFrame(GeoPandasBase, DataFrame): ... } >>> df = geopandas.GeoDataFrame.from_features(feature_coll) >>> df - geometry col1 + geometry col1 0 POINT (1.00000 2.00000) name1 1 POINT (2.00000 1.00000) name2 @@ -576,9 +579,10 @@ class GeoDataFrame(GeoPandasBase, DataFrame): Examples -------- >>> sql = "SELECT geom, highway FROM roads" + SpatiaLite >>> sql = "SELECT ST_Binary(geom) AS geom, highway FROM roads" - >>> df = geopandas.GeoDataFrame.from_postgis(sql, con) + >>> df = geopandas.GeoDataFrame.from_postgis(sql, con) # doctest: +SKIP """ df = geopandas.io.sql._read_postgis( @@ -808,7 +812,7 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} Examples -------- - >>> gdf.to_parquet('data.parquet') + >>> gdf.to_parquet('data.parquet') # doctest: +SKIP """ from geopandas.io.arrow import _to_parquet @@ -851,7 +855,7 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} Examples -------- - >>> gdf.to_feather('data.feather') + >>> gdf.to_feather('data.feather') # doctest: +SKIP """ from geopandas.io.arrow import _to_feather @@ -868,7 +872,7 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} providers is available via: >>> import fiona - >>> fiona.supported_drivers + >>> fiona.supported_drivers # doctest: +SKIP Parameters ---------- @@ -905,11 +909,11 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} Examples -------- - >>> gdf.to_file('dataframe.shp') + >>> gdf.to_file('dataframe.shp') # doctest: +SKIP - >>> gdf.to_file('dataframe.gpkg', driver='GPKG', layer='name1') + >>> gdf.to_file('dataframe.gpkg', driver='GPKG', layer='name') # doctest: +SKIP - >>> gdf.to_file('dataframe.geojson', driver='GeoJSON') + >>> gdf.to_file('dataframe.geojson', driver='GeoJSON') # doctest: +SKIP """ from geopandas.io.file import _to_file @@ -957,7 +961,7 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} True >>> gdf = gdf.set_crs('epsg:3857') - >>> gdf.crs + >>> gdf.crs # doctest: +SKIP Name: WGS 84 / Pseudo-Mercator Axis Info [cartesian]: @@ -1025,9 +1029,9 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} >>> gdf = geopandas.GeoDataFrame(d, crs=4326) >>> gdf col1 geometry - 0 name1 POINT (1.00000 1.00000) - 1 name2 POINT (2.00000 2.00000) - >>> gdf.crs + 0 name1 POINT (1.00000 2.00000) + 1 name2 POINT (2.00000 1.00000) + >>> gdf.crs # doctest: +SKIP Name: WGS 84 Axis Info [ellipsoidal]: @@ -1045,7 +1049,7 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} col1 geometry 0 name1 POINT (111319.491 222684.209) 1 name2 POINT (222638.982 111325.143) - >>> gdf.crs + >>> gdf.crs # doctest: +SKIP Name: WGS 84 / Pseudo-Mercator Axis Info [cartesian]: @@ -1209,7 +1213,7 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} 2 name1 POINT (0.00000 1.00000) >>> dissolved = gdf.dissolve('col1') - >>> dissolved + >>> dissolved # doctest: +SKIP geometry col1 name1 MULTIPOINT (0.00000 1.00000, 1.00000 2.00000) @@ -1386,8 +1390,8 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} >>> from sqlalchemy import create_engine >>> engine = create_engine("postgres://myusername:mypassword@myhost:5432\ -/mydatabase";) - >>> gdf.to_postgis("my_table", engine) +/mydatabase") # doctest: +SKIP + >>> gdf.to_postgis("my_table", engine) # doctest: +SKIP """ geopandas.io.sql._write_postgis( self, name, con, schema, if_exists, index, index_label, chunksize, dtype diff --git a/geopandas/geoseries.py b/geopandas/geoseries.py index 078f4f8..9201a3e 100644 --- a/geopandas/geoseries.py +++ b/geopandas/geoseries.py @@ -85,9 +85,9 @@ class GeoSeries(GeoPandasBase, Series): >>> from shapely.geometry import Point >>> s = geopandas.GeoSeries([Point(1, 1), Point(2, 2), Point(3, 3)]) >>> s - 0 POINT (1 1) - 1 POINT (2 2) - 2 POINT (3 3) + 0 POINT (1.00000 1.00000) + 1 POINT (2.00000 2.00000) + 2 POINT (3.00000 3.00000) dtype: geometry See Also @@ -345,11 +345,11 @@ class GeoSeries(GeoPandasBase, Series): Examples -------- - >>> s.to_file('series.shp') + >>> s.to_file('series.shp') # doctest: +SKIP - >>> s.to_file('series.gpkg', driver='GPKG', layer='name1') + >>> s.to_file('series.gpkg', driver='GPKG', layer='name1') # doctest: +SKIP - >>> s.to_file('series.geojson', driver='GeoJSON') + >>> s.to_file('series.geojson', driver='GeoJSON') # doctest: +SKIP """ from geopandas import GeoDataFrame @@ -627,6 +627,7 @@ class GeoSeries(GeoPandasBase, Series): 0 POINT (1.00000 1.00000) 1 POINT (2.00000 2.00000) 2 POINT (3.00000 3.00000) + dtype: geometry Setting CRS to a GeoSeries without one: @@ -634,7 +635,7 @@ class GeoSeries(GeoPandasBase, Series): True >>> s = s.set_crs('epsg:3857') - >>> s.crs + >>> s.crs # doctest: +SKIP Name: WGS 84 / Pseudo-Mercator Axis Info [cartesian]: @@ -714,7 +715,8 @@ class GeoSeries(GeoPandasBase, Series): 0 POINT (1.00000 1.00000) 1 POINT (2.00000 2.00000) 2 POINT (3.00000 3.00000) - >>> s.crs + dtype: geometry + >>> s.crs # doctest: +SKIP Name: WGS 84 Axis Info [ellipsoidal]: @@ -732,7 +734,8 @@ class GeoSeries(GeoPandasBase, Series): 0 POINT (111319.491 111325.143) 1 POINT (222638.982 222684.209) 2 POINT (333958.472 334111.171) - >>> s.crs + dtype: geometry + >>> s.crs # doctest: +SKIP Name: WGS 84 / Pseudo-Mercator Axis Info [cartesian]: @@ -792,6 +795,7 @@ class GeoSeries(GeoPandasBase, Series): 0 POINT (1.00000 1.00000) 1 POINT (2.00000 2.00000) 2 POINT (3.00000 3.00000) + dtype: geometry >>> s.to_json() '{"type": "FeatureCollection", "features": [{"id": "0", "type": "Feature", "pr\ diff --git a/geopandas/io/file.py b/geopandas/io/file.py index 080935a..4f98e69 100644 --- a/geopandas/io/file.py +++ b/geopandas/io/file.py @@ -77,7 +77,7 @@ def _read_file(filename, bbox=None, mask=None, rows=None, **kwargs): Examples -------- - >>> df = geopandas.read_file("nybb.shp") + >>> df = geopandas.read_file("nybb.shp") # doctest: +SKIP Returns ------- @@ -212,7 +212,7 @@ def _to_file( A dictionary of supported OGR providers is available via: >>> import fiona - >>> fiona.supported_drivers + >>> fiona.supported_drivers # doctest: +SKIP Parameters ---------- diff --git a/geopandas/io/sql.py b/geopandas/io/sql.py index e1aa9eb..a833867 100644 --- a/geopandas/io/sql.py +++ b/geopandas/io/sql.py @@ -107,9 +107,10 @@ def _read_postgis( -------- PostGIS >>> sql = "SELECT geom, kind FROM polygons" + SpatiaLite >>> sql = "SELECT ST_AsBinary(geom) AS geom, kind FROM polygons" - >>> df = geopandas.read_postgis(sql, con) + >>> df = geopandas.read_postgis(sql, con) # doctest: +SKIP """ if chunksize is None: @@ -322,10 +323,10 @@ def _write_postgis( Examples -------- - >>> from sqlalchemy import create_engine + >>> from sqlalchemy import create_engine # doctest: +SKIP >>> engine = create_engine("postgres://myusername:mypassword@myhost:5432\ -/mydatabase";) - >>> gdf.to_postgis("my_table", engine) +/mydatabase";) # doctest: +SKIP + >>> gdf.to_postgis("my_table", engine) # doctest: +SKIP """ try: from geoalchemy2 import Geometry diff --git a/geopandas/tests/test_api.py b/geopandas/tests/test_api.py index 45a3431..22f9e85 100644 --- a/geopandas/tests/test_api.py +++ b/geopandas/tests/test_api.py @@ -11,7 +11,7 @@ def test_no_additional_imports(): "pytest", "py", "ipython", - # 'matplotlib', # matplotlib gets imported by pandas, see below + # "matplotlib", # matplotlib gets imported by pandas, see below "descartes", "mapclassify", # 'rtree', # rtree actually gets imported if installed diff --git a/geopandas/tools/clip.py b/geopandas/tools/clip.py index 75ef3ce..6e677b9 100644 --- a/geopandas/tools/clip.py +++ b/geopandas/tools/clip.py @@ -107,7 +107,6 @@ def clip(gdf, mask, keep_geom_type=False): Clip points (global cities) with a polygon (the South American continent): >>> import geopandas - >>> path = >>> world = geopandas.read_file( ... geopandas.datasets.get_path('naturalearth_lowres')) >>> south_america = world[world['continent'] == "South America"] diff --git a/geopandas/tools/geocoding.py b/geopandas/tools/geocoding.py index 0398773..8db7f9f 100644 --- a/geopandas/tools/geocoding.py +++ b/geopandas/tools/geocoding.py @@ -52,14 +52,13 @@ def geocode(strings, provider=None, **kwargs): Examples -------- - >>> df = geocode(['boston, ma', '1600 pennsylvania ave. washington, dc']) - >>> df - address \\ - 0 Boston, MA, USA - 1 1600 Pennsylvania Avenue Northwest, President'... - geometry - 0 POINT (-71.0597732 42.3584308) - 1 POINT (-77.0365305 38.8977332) + >>> df = geopandas.tools.geocode( # doctest: +SKIP + ... ["boston, ma", "1600 pennsylvania ave. washington, dc"] + ... ) + >>> df # doctest: +SKIP + geometry address + 0 POINT (-71.05863 42.35899) Boston, MA, United States + 1 POINT (-77.03651 38.89766) 1600 Pennsylvania Ave NW, Washington, DC 20006... """ if provider is None: @@ -107,15 +106,14 @@ def reverse_geocode(points, provider=None, **kwargs): Examples -------- - >>> df = reverse_geocode([Point(-71.0594869, 42.3584697), - Point(-77.0365305, 38.8977332)]) - >>> df - address \\ - 0 29 Court Square, Boston, MA 02108, USA - 1 1600 Pennsylvania Avenue Northwest, President'... - geometry - 0 POINT (-71.0594869 42.3584697) - 1 POINT (-77.0365305 38.8977332) + >>> from shapely.geometry import Point + >>> df = geopandas.tools.reverse_geocode( # doctest: +SKIP + ... [Point(-71.0594869, 42.3584697), Point(-77.0365305, 38.8977332)] + ... ) + >>> df # doctest: +SKIP + geometry address + 0 POINT (-71.05941 42.35837) 29 Court Sq, Boston, MA 02108, United States + 1 POINT (-77.03641 38.89766) 1600 Pennsylvania Ave NW, Washington, DC 20006... """ if provider is None: From 7e595d08a5a88ddc34de6faeb81e3f23a3ba4370 Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Sat, 10 Oct 2020 20:03:25 +0100 Subject: [PATCH 054/316] DOC/CI: remove Travis from docs and paths (#1632) * DOC/CI: remove Travis from docs and paths * use envs * fix * typo * how to trigger check --- .github/workflows/tests.yaml | 26 +++++++++---------- CONTRIBUTING.md | 14 +++++----- README.md | 2 +- ci/{travis => envs}/36-minimal.yaml | 0 ci/{travis => envs}/36-pd025.yaml | 0 ci/{travis => envs}/37-dev.yaml | 0 .../37-latest-conda-forge.yaml | 0 ci/{travis => envs}/37-latest-defaults.yaml | 0 .../38-latest-conda-forge.yaml | 2 +- ci/{travis => envs}/38-no-optional-deps.yaml | 0 ci/{travis => envs}/setup_postgres.sh | 0 doc/source/community/contributing.rst | 20 ++++++-------- doc/source/getting_started/install.rst | 2 -- 13 files changed, 29 insertions(+), 37 deletions(-) rename ci/{travis => envs}/36-minimal.yaml (100%) rename ci/{travis => envs}/36-pd025.yaml (100%) rename ci/{travis => envs}/37-dev.yaml (100%) rename ci/{travis => envs}/37-latest-conda-forge.yaml (100%) rename ci/{travis => envs}/37-latest-defaults.yaml (100%) rename ci/{travis => envs}/38-latest-conda-forge.yaml (86%) rename ci/{travis => envs}/38-no-optional-deps.yaml (100%) rename ci/{travis => envs}/setup_postgres.sh (100%) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 1e27318..4aafd32 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -27,30 +27,30 @@ jobs: postgis: [false] dev: [false] env: - - ci/travis/36-minimal.yaml - - ci/travis/38-no-optional-deps.yaml - - ci/travis/36-pd025.yaml - - ci/travis/37-latest-defaults.yaml - - ci/travis/37-latest-conda-forge.yaml - - ci/travis/38-latest-conda-forge.yaml + - ci/envs/36-minimal.yaml + - ci/envs/38-no-optional-deps.yaml + - ci/envs/36-pd025.yaml + - ci/envs/37-latest-defaults.yaml + - ci/envs/37-latest-conda-forge.yaml + - ci/envs/38-latest-conda-forge.yaml include: - - env: ci/travis/37-latest-conda-forge.yaml + - env: ci/envs/37-latest-conda-forge.yaml os: macos-latest postgis: false dev: false - - env: ci/travis/38-latest-conda-forge.yaml + - env: ci/envs/38-latest-conda-forge.yaml os: macos-latest postgis: false dev: false - - env: ci/travis/37-latest-conda-forge.yaml + - env: ci/envs/37-latest-conda-forge.yaml os: windows-latest postgis: false dev: false - - env: ci/travis/38-latest-conda-forge.yaml + - env: ci/envs/38-latest-conda-forge.yaml os: windows-latest postgis: false dev: false - - env: ci/travis/37-dev.yaml + - env: ci/envs/37-dev.yaml os: ubuntu-latest dev: true @@ -115,10 +115,10 @@ jobs: run: | source activate test conda install postgis -c conda-forge - source ci/travis/setup_postgres.sh + source ci/envs/setup_postgres.sh pytest -v -r s --color=yes --cov=geopandas --cov-append --cov-report term-missing --cov-report xml geopandas/io/tests/test_sql.py | tee /dev/stderr | if grep SKIPPED >/dev/null;then echo "TESTS SKIPPED, FAILING" && exit 1;fi - - name: Test doctsrings + - name: Test docstrings shell: bash if: contains(matrix.env, '38-latest-conda-forge.yaml') && contains(matrix.os, 'ubuntu') env: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 9507a77..c94d503 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -10,8 +10,8 @@ readable code. Performance matters, but not at the expense of those goals. In general, GeoPandas follows the conventions of the pandas project -where applicable. Please read the [pandas contributing -guidelines](http://pandas.pydata.org/pandas-docs/stable/contributing.html). +where applicable. Please read the [contributing +guidelines](https://geopandas.readthedocs.io/en/latest/community/contributing.html). In particular, when submitting a pull request: @@ -22,11 +22,9 @@ In particular, when submitting a pull request: as a guide). - All existing tests should pass. Please make sure that the test suite passes, both locally and on - [Travis CI](https://travis-ci.org/geopandas/geopandas). Status on - Travis will be visible on a pull request. If you want to enable - Travis CI on your own fork, please read the pandas guidelines link - above or the - [getting started docs](https://docs.travis-ci.com/user/tutorial/). + [GitHub Actions](https://github.com/geopandas/geopandas/actions). Status on + GHA will be visible on a pull request. GHA are automatically enabled + on your own fork as well. To trigger a check, make a PR to your own fork. - New functionality should include tests. Please write reasonable tests for your code and make sure that they pass on your pull request. @@ -41,7 +39,7 @@ is a great way to get started if you'd like to make a contribution. Style ----- -- GeoPandas supports Python 3.5+ only. The last version of GeoPandas +- GeoPandas supports Python 3.6+ only. The last version of GeoPandas supporting Python 2 is 0.6. - GeoPandas follows [the PEP 8 diff --git a/README.md b/README.md index 61dcbc0..4c5ed38 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -GeoPandas [![build status](https://secure.travis-ci.org/geopandas/geopandas.png?branch=master)](https://travis-ci.org/geopandas/geopandas) [![Coverage Status](https://codecov.io/gh/geopandas/geopandas/branch/master/graph/badge.svg)](https://codecov.io/gh/geopandas/geopandas) [![Join the chat at https://gitter.im/geopandas/geopandas](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/geopandas/geopandas?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Binder](https://mybinder.org/badge.svg)](https://mybinder.org/v2/gh/geopandas/geopandas/master) [![DOI](https://zenodo.org/badge/11002815.svg)](https://zenodo.org/badge/latestdoi/11002815) +GeoPandas [![Actions Status](https://github.com/geopandas/geopandas/workflows/Tests/badge.svg)](https://github.com/geopandas/geopandas/actions?query=workflow%3ATests) [![Coverage Status](https://codecov.io/gh/geopandas/geopandas/branch/master/graph/badge.svg)](https://codecov.io/gh/geopandas/geopandas) [![Join the chat at https://gitter.im/geopandas/geopandas](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/geopandas/geopandas?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Binder](https://mybinder.org/badge.svg)](https://mybinder.org/v2/gh/geopandas/geopandas/master) [![DOI](https://zenodo.org/badge/11002815.svg)](https://zenodo.org/badge/latestdoi/11002815) ========= Python tools for geographic data diff --git a/ci/travis/36-minimal.yaml b/ci/envs/36-minimal.yaml similarity index 100% rename from ci/travis/36-minimal.yaml rename to ci/envs/36-minimal.yaml diff --git a/ci/travis/36-pd025.yaml b/ci/envs/36-pd025.yaml similarity index 100% rename from ci/travis/36-pd025.yaml rename to ci/envs/36-pd025.yaml diff --git a/ci/travis/37-dev.yaml b/ci/envs/37-dev.yaml similarity index 100% rename from ci/travis/37-dev.yaml rename to ci/envs/37-dev.yaml diff --git a/ci/travis/37-latest-conda-forge.yaml b/ci/envs/37-latest-conda-forge.yaml similarity index 100% rename from ci/travis/37-latest-conda-forge.yaml rename to ci/envs/37-latest-conda-forge.yaml diff --git a/ci/travis/37-latest-defaults.yaml b/ci/envs/37-latest-defaults.yaml similarity index 100% rename from ci/travis/37-latest-defaults.yaml rename to ci/envs/37-latest-defaults.yaml diff --git a/ci/travis/38-latest-conda-forge.yaml b/ci/envs/38-latest-conda-forge.yaml similarity index 86% rename from ci/travis/38-latest-conda-forge.yaml rename to ci/envs/38-latest-conda-forge.yaml index 7dd6b92..462fefc 100644 --- a/ci/travis/38-latest-conda-forge.yaml +++ b/ci/envs/38-latest-conda-forge.yaml @@ -20,7 +20,7 @@ dependencies: - descartes - mapclassify - geopy - # installed in travis.yml, because not available on windows + # installed in tests.yaml, because not available on windows # - postgis - SQLalchemy - psycopg2 diff --git a/ci/travis/38-no-optional-deps.yaml b/ci/envs/38-no-optional-deps.yaml similarity index 100% rename from ci/travis/38-no-optional-deps.yaml rename to ci/envs/38-no-optional-deps.yaml diff --git a/ci/travis/setup_postgres.sh b/ci/envs/setup_postgres.sh similarity index 100% rename from ci/travis/setup_postgres.sh rename to ci/envs/setup_postgres.sh diff --git a/doc/source/community/contributing.rst b/doc/source/community/contributing.rst index 88482ac..8553b6c 100644 --- a/doc/source/community/contributing.rst +++ b/doc/source/community/contributing.rst @@ -21,11 +21,9 @@ In particular, when submitting a pull request: - All existing tests should pass. Please make sure that the test suite passes, both locally and on - `Travis CI `_. Status on - Travis will be visible on a pull request. If you want to enable - Travis CI on your own fork, please read the pandas guidelines link - above or the - `getting started docs `_. + `GitHub Actions `_. Status on + GHA will be visible on a pull request. GHA are automatically enabled + on your own fork as well. To trigger a check, make a PR to your own fork. - New functionality should include tests. Please write reasonable tests for your code and make sure that they pass on your pull request. @@ -46,7 +44,7 @@ In particular, when submitting a pull request: imports when possible, and explicit relative imports for local imports when necessary in tests. -- GeoPandas supports Python 3.5+ only. The last version of GeoPandas +- GeoPandas supports Python 3.6+ only. The last version of GeoPandas supporting Python 2 is 0.6. @@ -109,11 +107,9 @@ want to clone your fork to your machine:: This creates the directory `geopandas-yourname` and connects your repository to the upstream (main project) *GeoPandas* repository. -The testing suite will run automatically on Travis-CI once your pull request is -submitted. However, if you wish to run the test suite on a branch prior to -submitting the pull request, then Travis-CI needs to be hooked up to your -GitHub repository. Instructions for doing so are `here -`__. +The testing suite will run automatically on GitHub Actions once your pull request is +submitted. The test suite will also autmatically run on your branch so you can +check it prior to submitting the pull request. Creating a branch ~~~~~~~~~~~~~~~~~~ @@ -292,7 +288,7 @@ and uses `Black `_ and `Flake8 `_ to ensure a consistent code format throughout the project. -Continuous Integration (Travis CI) will run those tools and +Continuous Integration (GitHub Actions) will run those tools and report any stylistic errors in your code. Therefore, it is helpful before submitting code to run the check yourself:: diff --git a/doc/source/getting_started/install.rst b/doc/source/getting_started/install.rst index 1a417af..fcb2588 100644 --- a/doc/source/getting_started/install.rst +++ b/doc/source/getting_started/install.rst @@ -231,8 +231,6 @@ More specifically, whether the speedups are used or not is determined by: .. _libspatialindex: https://github.com/libspatialindex/libspatialindex -.. _Travis CI: https://travis-ci.org/geopandas/geopandas - .. _conda: https://conda.io/en/latest/ .. _Anaconda distribution: https://www.anaconda.com/distribution/ From 7044aa479dbae72c14dfb647a5a782a01cff81d1 Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Tue, 13 Oct 2020 13:19:58 +0100 Subject: [PATCH 055/316] REGR: CRS lost in GeoSeries.explode() --- geopandas/base.py | 2 +- geopandas/tests/test_geom_methods.py | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/geopandas/base.py b/geopandas/base.py index b916644..0ba12f7 100644 --- a/geopandas/base.py +++ b/geopandas/base.py @@ -1219,7 +1219,7 @@ GeometryCollection index.extend(idxs) geometries.extend(geoms) index = MultiIndex.from_tuples(index, names=self.index.names + [None]) - return gpd.GeoSeries(geometries, index=index).__finalize__(self) + return gpd.GeoSeries(geometries, index=index, crs=self.crs).__finalize__(self) @property def cx(self): diff --git a/geopandas/tests/test_geom_methods.py b/geopandas/tests/test_geom_methods.py index 3f557d8..9a0638a 100644 --- a/geopandas/tests/test_geom_methods.py +++ b/geopandas/tests/test_geom_methods.py @@ -691,7 +691,8 @@ class TestGeomMethods: def test_explode_geoseries(self): s = GeoSeries( - [MultiPoint([(0, 0), (1, 1)]), MultiPoint([(2, 2), (3, 3), (4, 4)])] + [MultiPoint([(0, 0), (1, 1)]), MultiPoint([(2, 2), (3, 3), (4, 4)])], + crs=4326, ) s.index.name = "test_index_name" expected_index_name = ["test_index_name", None] @@ -699,6 +700,7 @@ class TestGeomMethods: expected = GeoSeries( [Point(0, 0), Point(1, 1), Point(2, 2), Point(3, 3), Point(4, 4)], index=MultiIndex.from_tuples(index, names=expected_index_name), + crs=4326, ) assert_geoseries_equal(expected, s.explode()) From 998375c8b0b5ce85aac757e9464b768a0dbe7393 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Fri, 16 Oct 2020 11:22:17 +0200 Subject: [PATCH 056/316] Compatibility with Shapely 1.8 deprecation warnings (iteration) (#1659) --- geopandas/_compat.py | 32 ++++++++++++ geopandas/_vectorized.py | 74 +++++++++++++++++----------- geopandas/array.py | 3 +- geopandas/geodataframe.py | 4 +- geopandas/geoseries.py | 4 +- geopandas/plotting.py | 2 +- geopandas/tests/test_geodataframe.py | 2 +- 7 files changed, 87 insertions(+), 34 deletions(-) diff --git a/geopandas/_compat.py b/geopandas/_compat.py index 907678b..f416ace 100644 --- a/geopandas/_compat.py +++ b/geopandas/_compat.py @@ -1,3 +1,4 @@ +import contextlib from distutils.version import LooseVersion import importlib import os @@ -21,6 +22,8 @@ PANDAS_GE_11 = str(pd.__version__) >= LooseVersion("1.1.0") SHAPELY_GE_17 = str(shapely.__version__) >= LooseVersion("1.7.0") +SHAPELY_GE_18 = str(shapely.__version__) >= LooseVersion("1.8") +SHAPELY_GE_20 = str(shapely.__version__) >= LooseVersion("2.0") HAS_PYGEOS = None USE_PYGEOS = None @@ -101,6 +104,35 @@ def set_use_pygeos(val=None): set_use_pygeos() +# compat related to deprecation warnings introduced in Shapely 1.8 +# -> creating a numpy array from a list-like of Multi-part geometries, +# although doing the correct thing (not expanding in its parts), still raises +# the warning about iteration being deprecated +# This adds a context manager to explicitly ignore this warning + + +try: + from shapely.errors import ShapelyDeprecationWarning as shapely_warning +except ImportError: + shapely_warning = None + + +if shapely_warning is not None and not SHAPELY_GE_20: + + @contextlib.contextmanager + def ignore_shapely2_warnings(): + with warnings.catch_warnings(): + warnings.filterwarnings("ignore", "Iteration", shapely_warning) + yield + + +else: + + @contextlib.contextmanager + def ignore_shapely2_warnings(): + yield + + def import_optional_dependency(name: str, extra: str = ""): """ Import an optional dependency. diff --git a/geopandas/_vectorized.py b/geopandas/_vectorized.py index 86fb6c4..118e8f4 100644 --- a/geopandas/_vectorized.py +++ b/geopandas/_vectorized.py @@ -102,7 +102,8 @@ def from_shapely(data): if compat.USE_PYGEOS and compat.PYGEOS_SHAPELY_COMPAT: if not isinstance(data, np.ndarray): arr = np.empty(len(data), dtype=object) - arr[:] = data + with compat.ignore_shapely2_warnings(): + arr[:] = data else: arr = data try: @@ -140,14 +141,16 @@ def from_shapely(data): # numpy can expand geometry collections into 2D arrays, use this # two-step construction to avoid this aout = np.empty(len(data), dtype=object) - aout[:] = out + with compat.ignore_shapely2_warnings(): + aout[:] = out return aout def to_shapely(data): if compat.USE_PYGEOS: out = np.empty(len(data), dtype=object) - out[:] = [_pygeos_to_shapely(geom) for geom in data] + with compat.ignore_shapely2_warnings(): + out[:] = [_pygeos_to_shapely(geom) for geom in data] return out else: return data @@ -172,7 +175,8 @@ def from_wkb(data): out.append(geom) aout = np.empty(len(data), dtype=object) - aout[:] = out + with compat.ignore_shapely2_warnings(): + aout[:] = out return aout @@ -208,7 +212,8 @@ def from_wkt(data): out.append(geom) aout = np.empty(len(data), dtype=object) - aout[:] = out + with compat.ignore_shapely2_warnings(): + aout[:] = out return aout @@ -281,10 +286,11 @@ def _binary_geo(op, left, right): # intersection can return empty GeometryCollections, and if the # result are only those, numpy will coerce it to empty 2D array data = np.empty(len(left), dtype=object) - data[:] = [ - getattr(s, op)(right) if s is not None and right is not None else None - for s in left - ] + with compat.ignore_shapely2_warnings(): + data[:] = [ + getattr(s, op)(right) if s is not None and right is not None else None + for s in left + ] return data elif isinstance(right, np.ndarray): if len(left) != len(right): @@ -293,12 +299,13 @@ def _binary_geo(op, left, right): ) raise ValueError(msg) data = np.empty(len(left), dtype=object) - data[:] = [ - getattr(this_elem, op)(other_elem) - if this_elem is not None and other_elem is not None - else None - for this_elem, other_elem in zip(left, right) - ] + with compat.ignore_shapely2_warnings(): + data[:] = [ + getattr(this_elem, op)(other_elem) + if this_elem is not None and other_elem is not None + else None + for this_elem, other_elem in zip(left, right) + ] return data else: raise TypeError("Type not known: {0} vs {1}".format(type(left), type(right))) @@ -432,7 +439,8 @@ def _affinity_method(op, left, *args, **kwargs): res = getattr(shapely.affinity, op)(geom, *args, **kwargs) out.append(res) data = np.empty(len(left), dtype=object) - data[:] = out + with compat.ignore_shapely2_warnings(): + data[:] = out return from_shapely(data) @@ -545,7 +553,8 @@ def _unary_geo(op, left, *args, **kwargs): """Unary operation that returns new geometries""" # ensure 1D output, see note above data = np.empty(len(left), dtype=object) - data[:] = [getattr(geom, op, None) for geom in left] + with compat.ignore_shapely2_warnings(): + data[:] = [getattr(geom, op, None) for geom in left] return data @@ -767,16 +776,22 @@ def buffer(data, distance, resolution=16, **kwargs): "length of the GeoSeries" ) - out[:] = [ - geom.buffer(dist, resolution, **kwargs) if geom is not None else None - for geom, dist in zip(data, distance) - ] + with compat.ignore_shapely2_warnings(): + out[:] = [ + geom.buffer(dist, resolution, **kwargs) + if geom is not None + else None + for geom, dist in zip(data, distance) + ] return out - out[:] = [ - geom.buffer(distance, resolution, **kwargs) if geom is not None else None - for geom in data - ] + with compat.ignore_shapely2_warnings(): + out[:] = [ + geom.buffer(distance, resolution, **kwargs) + if geom is not None + else None + for geom in data + ] return out @@ -808,10 +823,11 @@ def simplify(data, tolerance, preserve_topology=True): else: # method and not a property -> can't use _unary_geo out = np.empty(len(data), dtype=object) - out[:] = [ - geom.simplify(tolerance, preserve_topology=preserve_topology) - for geom in data - ] + with compat.ignore_shapely2_warnings(): + out[:] = [ + geom.simplify(tolerance, preserve_topology=preserve_topology) + for geom in data + ] return out diff --git a/geopandas/array.py b/geopandas/array.py index d9f8dcf..fe7fce2 100644 --- a/geopandas/array.py +++ b/geopandas/array.py @@ -372,7 +372,8 @@ class GeometryArray(ExtensionArray): raise TypeError("should be valid geometry") if isinstance(key, (slice, list, np.ndarray)): value_array = np.empty(1, dtype=object) - value_array[:] = [value] + with compat.ignore_shapely2_warnings(): + value_array[:] = [value] self.data[key] = value_array else: self.data[key] = value diff --git a/geopandas/geodataframe.py b/geopandas/geodataframe.py index 49d5bda..49d7c3f 100644 --- a/geopandas/geodataframe.py +++ b/geopandas/geodataframe.py @@ -16,6 +16,7 @@ from geopandas.base import GeoPandasBase, is_geometry_type from geopandas.geoseries import GeoSeries import geopandas.io from geopandas.plotting import plot_dataframe +from . import _compat as compat DEFAULT_GEO_COLUMN_NAME = "geometry" @@ -86,7 +87,8 @@ class GeoDataFrame(GeoPandasBase, DataFrame): def __init__(self, *args, **kwargs): crs = kwargs.pop("crs", None) geometry = kwargs.pop("geometry", None) - super(GeoDataFrame, self).__init__(*args, **kwargs) + with compat.ignore_shapely2_warnings(): + super(GeoDataFrame, self).__init__(*args, **kwargs) # need to set this before calling self['geometry'], because # getitem accesses crs diff --git a/geopandas/geoseries.py b/geopandas/geoseries.py index 9201a3e..b12ae0a 100644 --- a/geopandas/geoseries.py +++ b/geopandas/geoseries.py @@ -15,6 +15,7 @@ from geopandas.plotting import plot_series from .array import GeometryArray, GeometryDtype, from_shapely from .base import is_geometry_type from . import _vectorized as vectorized +from ._compat import ignore_shapely2_warnings _SERIES_WARNING_MSG = """\ @@ -155,7 +156,8 @@ class GeoSeries(GeoPandasBase, Series): # https://github.com/pandas-dev/pandas/issues/26469 kwargs.pop("dtype", None) # Use Series constructor to handle input data - s = pd.Series(data, index=index, name=name, **kwargs) + with ignore_shapely2_warnings(): + s = pd.Series(data, index=index, name=name, **kwargs) # prevent trying to convert non-geometry objects if s.dtype != object: if s.empty: diff --git a/geopandas/plotting.py b/geopandas/plotting.py index 7294956..2aeacf8 100644 --- a/geopandas/plotting.py +++ b/geopandas/plotting.py @@ -46,7 +46,7 @@ def _flatten_multi_geoms(geoms, prefix="Multi"): for ix, geom in enumerate(geoms): if geom.type.startswith(prefix): - for poly in geom: + for poly in geom.geoms: components.append(poly) component_index.append(ix) else: diff --git a/geopandas/tests/test_geodataframe.py b/geopandas/tests/test_geodataframe.py index ed9518c..07d011e 100644 --- a/geopandas/tests/test_geodataframe.py +++ b/geopandas/tests/test_geodataframe.py @@ -557,7 +557,7 @@ class TestDataFrame: def test_dataframe_to_geodataframe(self): df = pd.DataFrame( - {"A": range(len(self.df)), "location": list(self.df.geometry)}, + {"A": range(len(self.df)), "location": np.array(self.df.geometry)}, index=self.df.index, ) gf = df.set_geometry("location", crs=self.df.crs) From 924cdf65c7c15b01749d1cdd036c5c291e87b0f4 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Fri, 16 Oct 2020 15:08:59 +0200 Subject: [PATCH 057/316] ENH: support pandas' new .attrs functionality (#1658) --- geopandas/_compat.py | 3 +- geopandas/geodataframe.py | 5 ++- geopandas/tests/test_pandas_methods.py | 47 ++++++++++++++++++++++++-- 3 files changed, 48 insertions(+), 7 deletions(-) diff --git a/geopandas/_compat.py b/geopandas/_compat.py index f416ace..a55f28d 100644 --- a/geopandas/_compat.py +++ b/geopandas/_compat.py @@ -12,8 +12,9 @@ import shapely # ----------------------------------------------------------------------------- PANDAS_GE_025 = str(pd.__version__) >= LooseVersion("0.25.0") -PANDAS_GE_10 = str(pd.__version__) >= LooseVersion("0.26.0.dev") +PANDAS_GE_10 = str(pd.__version__) >= LooseVersion("1.0.0") PANDAS_GE_11 = str(pd.__version__) >= LooseVersion("1.1.0") +PANDAS_GE_12 = str(pd.__version__) >= LooseVersion("1.2.0") # ----------------------------------------------------------------------------- diff --git a/geopandas/geodataframe.py b/geopandas/geodataframe.py index 49d7c3f..25a62e9 100644 --- a/geopandas/geodataframe.py +++ b/geopandas/geodataframe.py @@ -1149,6 +1149,8 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} def __finalize__(self, other, method=None, **kwargs): """propagate metadata from other to self """ + self = super().__finalize__(other, method=method, **kwargs) + # merge operation: using metadata of the left object if method == "merge": for name in self._metadata: @@ -1157,9 +1159,6 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} elif method == "concat": for name in self._metadata: object.__setattr__(self, name, getattr(other.objs[0], name, None)) - else: - for name in self._metadata: - object.__setattr__(self, name, getattr(other, name, None)) return self diff --git a/geopandas/tests/test_pandas_methods.py b/geopandas/tests/test_pandas_methods.py index 7d9ac56..ac4ac61 100644 --- a/geopandas/tests/test_pandas_methods.py +++ b/geopandas/tests/test_pandas_methods.py @@ -9,7 +9,7 @@ from shapely.geometry import Point, GeometryCollection import geopandas from geopandas import GeoDataFrame, GeoSeries -from geopandas._compat import PANDAS_GE_025, PANDAS_GE_11 +import geopandas._compat as compat from geopandas.array import from_shapely from geopandas.testing import assert_geodataframe_equal, assert_geoseries_equal @@ -71,7 +71,7 @@ def test_repr_all_missing(): def test_repr_empty(): # https://github.com/geopandas/geopandas/issues/1195 s = GeoSeries([]) - if PANDAS_GE_025: + if compat.PANDAS_GE_025: # repr with correct name fixed in pandas 0.25 assert repr(s) == "GeoSeries([], dtype: geometry)" else: @@ -455,7 +455,7 @@ def test_groupby(df): # applying on the geometry column res = df.groupby("value2")["geometry"].apply(lambda x: x.cascaded_union) - if PANDAS_GE_11: + if compat.PANDAS_GE_11: exp = GeoSeries( [shapely.geometry.MultiPoint([(0, 0), (2, 2)]), Point(1, 1)], index=pd.Index([1, 2], name="value2"), @@ -518,3 +518,44 @@ def test_apply_convert_dtypes_keyword(s): # ensure the convert_dtypes keyword is accepted res = s.apply(lambda x: x, convert_dtype=True, args=()) assert_geoseries_equal(res, s) + + +@pytest.mark.skipif(not compat.PANDAS_GE_10, reason="attrs introduced in pandas 1.0") +def test_preserve_attrs(df): + # https://github.com/geopandas/geopandas/issues/1654 + df.attrs["name"] = "my_name" + attrs = {"name": "my_name"} + assert df.attrs == attrs + + # preserve attrs in indexing operations + for subset in [df[:2], df[df["value1"] > 2], df[["value2", "geometry"]]]: + assert df.attrs == attrs + + # preserve attrs in methods + df2 = df.reset_index() + assert df2.attrs == attrs + + +@pytest.mark.skipif(not compat.PANDAS_GE_12, reason="attrs introduced in pandas 1.0") +def test_preserve_flags(df): + # https://github.com/geopandas/geopandas/issues/1654 + df = df.set_flags(allows_duplicate_labels=False) + assert df.flags.allows_duplicate_labels is False + + # preserve flags in indexing operations + for subset in [df[:2], df[df["value1"] > 2], df[["value2", "geometry"]]]: + assert df.flags.allows_duplicate_labels is False + + # preserve attrs in methods + df2 = df.reset_index() + assert df2.flags.allows_duplicate_labels is False + + # it is honored for operations that introduce duplicate labels + with pytest.raises(ValueError): + df.reindex([0, 0, 1]) + + with pytest.raises(ValueError): + df[["value1", "value1", "geometry"]] + + with pytest.raises(ValueError): + pd.concat([df, df]) From 9fdeb1474185c8d2edaede428f57d258810d87b7 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Wed, 28 Oct 2020 09:19:17 +0100 Subject: [PATCH 058/316] Compatibility with Shapely 1.8 deprecation warnings (array interface, asShape) (#1662) --- geopandas/_compat.py | 4 +++- geopandas/_vectorized.py | 5 +---- geopandas/plotting.py | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/geopandas/_compat.py b/geopandas/_compat.py index a55f28d..413a424 100644 --- a/geopandas/_compat.py +++ b/geopandas/_compat.py @@ -123,7 +123,9 @@ if shapely_warning is not None and not SHAPELY_GE_20: @contextlib.contextmanager def ignore_shapely2_warnings(): with warnings.catch_warnings(): - warnings.filterwarnings("ignore", "Iteration", shapely_warning) + warnings.filterwarnings( + "ignore", "Iteration|The array interface", shapely_warning + ) yield diff --git a/geopandas/_vectorized.py b/geopandas/_vectorized.py index 118e8f4..da3bde1 100644 --- a/geopandas/_vectorized.py +++ b/geopandas/_vectorized.py @@ -122,10 +122,7 @@ def from_shapely(data): else: out.append(geom) elif hasattr(geom, "__geo_interface__"): - geom = shapely.geometry.asShape(geom) - # asShape returns GeometryProxy -> trigger actual materialization - # with one of its methods - geom.wkb + geom = shapely.geometry.shape(geom) if compat.USE_PYGEOS: out.append(_shapely_to_pygeos(geom)) else: diff --git a/geopandas/plotting.py b/geopandas/plotting.py index 2aeacf8..8edd02a 100644 --- a/geopandas/plotting.py +++ b/geopandas/plotting.py @@ -200,7 +200,7 @@ def _plot_linestring_collection( _expand_kwargs(kwargs, multiindex) - segments = [np.array(linestring)[:, :2] for linestring in geoms] + segments = [np.array(linestring.coords)[:, :2] for linestring in geoms] collection = LineCollection(segments, **kwargs) if values is not None: From ca101aae93e7bfdf11068a2297bd8e503c3e8156 Mon Sep 17 00:00:00 2001 From: Nick Hand Date: Sun, 8 Nov 2020 00:22:47 -0500 Subject: [PATCH 059/316] BUG: categories passed as a series are not properly sorted (#1670) * add regression test * reindex if column is a Series when plotting * remove unnecessary import * add test for pd.Series colors w/o index too Co-authored-by: Nick Hand --- geopandas/plotting.py | 4 ++++ geopandas/tests/test_plotting.py | 37 ++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/geopandas/plotting.py b/geopandas/plotting.py index 8edd02a..41e5fed 100644 --- a/geopandas/plotting.py +++ b/geopandas/plotting.py @@ -636,6 +636,10 @@ def plot_dataframe( ) else: values = column + + # Make sure index of a Series matches index of df + if isinstance(values, pd.Series): + values = values.reindex(df.index) else: values = df[column] diff --git a/geopandas/tests/test_plotting.py b/geopandas/tests/test_plotting.py index 7102ddd..03b889a 100644 --- a/geopandas/tests/test_plotting.py +++ b/geopandas/tests/test_plotting.py @@ -86,6 +86,43 @@ class TestPointPlotting: expected_colors = cmap(np.arange(self.N) / (self.N - 1)) _check_colors(self.N, ax.collections[0].get_facecolors(), expected_colors) + def test_series_color_no_index(self): + + # Color order with ordered index + colors_ord = pd.Series(["a", "b", "c", "a", "b", "c", "a", "b", "c", "a"]) + + # Plot using Series as color + ax1 = self.df.plot(colors_ord) + + # Correct answer: Add as column to df and plot + self.df["colors_ord"] = colors_ord + ax2 = self.df.plot("colors_ord") + + # Confirm out-of-order index re-sorted + point_colors1 = ax1.collections[0].get_facecolors() + point_colors2 = ax2.collections[0].get_facecolors() + np.testing.assert_array_equal(point_colors1[1], point_colors2[1]) + + def test_series_color_index(self): + + # Color order with out-of-order index + colors_ord = pd.Series( + ["a", "a", "a", "a", "b", "b", "b", "c", "c", "c"], + index=[0, 3, 6, 9, 1, 4, 7, 2, 5, 8], + ) + + # Plot using Series as color + ax1 = self.df.plot(colors_ord) + + # Correct answer: Add as column to df and plot + self.df["colors_ord"] = colors_ord + ax2 = self.df.plot("colors_ord") + + # Confirm out-of-order index re-sorted + point_colors1 = ax1.collections[0].get_facecolors() + point_colors2 = ax2.collections[0].get_facecolors() + np.testing.assert_array_equal(point_colors1[1], point_colors2[1]) + def test_colormap(self): # without specifying values but cmap specified -> no uniform color From a6d45c90dec828153f8d84a244a33621be01d3d2 Mon Sep 17 00:00:00 2001 From: Adrian Garcia Badaracco <1755071+adriangb@users.noreply.github.com> Date: Mon, 9 Nov 2020 14:52:26 -0600 Subject: [PATCH 060/316] TST/MAINT: Deprecation of has_sindex (#1690) * Hacky deletion of has_sindex * remove unused imports --- geopandas/array.py | 4 ++-- geopandas/base.py | 5 ----- geopandas/conftest.py | 20 +++++++++++++++++++ geopandas/sindex.py | 11 +---------- geopandas/tests/test_overlay.py | 4 +--- geopandas/tests/test_sindex.py | 30 ++++------------------------- geopandas/tools/tests/test_clip.py | 4 +--- geopandas/tools/tests/test_sjoin.py | 6 ++---- 8 files changed, 31 insertions(+), 53 deletions(-) diff --git a/geopandas/array.py b/geopandas/array.py index fe7fce2..8051bc3 100644 --- a/geopandas/array.py +++ b/geopandas/array.py @@ -27,7 +27,7 @@ except ImportError: from . import _compat as compat from . import _vectorized as vectorized -from .sindex import get_sindex_class +from .sindex import _get_sindex_class class GeometryDtype(ExtensionDtype): @@ -293,7 +293,7 @@ class GeometryArray(ExtensionArray): @property def sindex(self): if self._sindex is None: - self._sindex = get_sindex_class()(self.data) + self._sindex = _get_sindex_class()(self.data) return self._sindex @property diff --git a/geopandas/base.py b/geopandas/base.py index 0ba12f7..f04a4e7 100644 --- a/geopandas/base.py +++ b/geopandas/base.py @@ -11,11 +11,6 @@ from shapely.ops import cascaded_union import geopandas as gpd from .array import GeometryArray, GeometryDtype -from .sindex import has_sindex - -# for backwards compat -# this will be static (will NOT follow USE_PYGEOS changes) -HAS_SINDEX = has_sindex() def is_geometry_type(data): diff --git a/geopandas/conftest.py b/geopandas/conftest.py index 601c92f..3ab031c 100644 --- a/geopandas/conftest.py +++ b/geopandas/conftest.py @@ -5,3 +5,23 @@ import geopandas @pytest.fixture(autouse=True) def add_geopandas(doctest_namespace): doctest_namespace["geopandas"] = geopandas + + +def pytest_configure(config): + config.addinivalue_line( + "markers", + "skip_no_sindex: skips the tests if there is no spatial index backend", + ) + + +try: + geopandas.sindex._get_sindex_class() + has_sindex_backend = True +except ImportError: + has_sindex_backend = False + + +def pytest_runtest_setup(item): + skip_no_sindex = any(mark for mark in item.iter_markers(name="skip_no_sindex")) + if skip_no_sindex and not has_sindex_backend: + pytest.skip("Skipped because there is no spatial index backend available") diff --git a/geopandas/sindex.py b/geopandas/sindex.py index fd46c12..e762782 100644 --- a/geopandas/sindex.py +++ b/geopandas/sindex.py @@ -16,16 +16,7 @@ VALID_QUERY_PREDICATES = { } -def has_sindex(): - """Dynamically checks for ability to generate spatial index.""" - try: - get_sindex_class() - return True - except ImportError: - return False - - -def get_sindex_class(): +def _get_sindex_class(): """Dynamically chooses a spatial indexing backend. Required to comply with _compat.USE_PYGEOS. diff --git a/geopandas/tests/test_overlay.py b/geopandas/tests/test_overlay.py index 467fbb9..000ee43 100644 --- a/geopandas/tests/test_overlay.py +++ b/geopandas/tests/test_overlay.py @@ -14,9 +14,7 @@ import pytest DATA = os.path.join(os.path.abspath(os.path.dirname(__file__)), "data", "overlay") -pytestmark = pytest.mark.skipif( - not geopandas.sindex.has_sindex(), reason="overlay requires spatial index" -) +pytestmark = pytest.mark.skip_no_sindex @pytest.fixture diff --git a/geopandas/tests/test_sindex.py b/geopandas/tests/test_sindex.py index a99cdfc..6bd94bf 100644 --- a/geopandas/tests/test_sindex.py +++ b/geopandas/tests/test_sindex.py @@ -12,36 +12,14 @@ from numpy.testing import assert_array_equal import geopandas from geopandas import _compat as compat -from geopandas import GeoDataFrame, GeoSeries, read_file, sindex, datasets +from geopandas import GeoDataFrame, GeoSeries, read_file, datasets import pytest import numpy as np -class TestNoSindex: - @pytest.mark.skipif(sindex.has_sindex(), reason="Spatial index present, skipping") - def test_no_sindex_installed(self): - """Checks that an error is raised when no spatial index is present.""" - with pytest.raises(ImportError): - sindex.get_sindex_class() - - @pytest.mark.skipif( - compat.HAS_RTREE or not compat.HAS_PYGEOS, - reason="rtree cannot be disabled via flags", - ) - def test_no_sindex_active(self): - """Checks that an error is given when rtree is not installed - and compat.USE_PYGEOS is False. - """ - state = compat.USE_PYGEOS # try to save state - compat.set_use_pygeos(False) - with pytest.raises(ImportError): - sindex.get_sindex_class() - compat.set_use_pygeos(state) # try to restore state - - @pytest.mark.skipif(sys.platform.startswith("win"), reason="fails on AppVeyor") -@pytest.mark.skipif(not sindex.has_sindex(), reason="Spatial index absent, skipping") +@pytest.mark.skip_no_sindex class TestSeriesSindex: def test_empty_geoseries(self): """Tests creating a spatial index from an empty GeoSeries.""" @@ -107,7 +85,7 @@ class TestSeriesSindex: @pytest.mark.skipif(sys.platform.startswith("win"), reason="fails on AppVeyor") -@pytest.mark.skipif(not sindex.has_sindex(), reason="Spatial index absent, skipping") +@pytest.mark.skip_no_sindex class TestFrameSindex: def setup_method(self): data = { @@ -211,7 +189,7 @@ class TestJoinSindex: assert res == ["Bronx", "Queens"] -@pytest.mark.skipif(not sindex.has_sindex(), reason="Spatial index absent, skipping") +@pytest.mark.skip_no_sindex class TestPygeosInterface: def setup_method(self): data = { diff --git a/geopandas/tools/tests/test_clip.py b/geopandas/tools/tests/test_clip.py index 328bc92..da969f8 100644 --- a/geopandas/tools/tests/test_clip.py +++ b/geopandas/tools/tests/test_clip.py @@ -14,9 +14,7 @@ from geopandas.testing import assert_geodataframe_equal, assert_geoseries_equal import pytest -pytestmark = pytest.mark.skipif( - not geopandas.sindex.has_sindex(), reason="clip requires spatial index" -) +pytestmark = pytest.mark.skip_no_sindex @pytest.fixture diff --git a/geopandas/tools/tests/test_sjoin.py b/geopandas/tools/tests/test_sjoin.py index a5a2d01..e8d822e 100644 --- a/geopandas/tools/tests/test_sjoin.py +++ b/geopandas/tools/tests/test_sjoin.py @@ -6,15 +6,13 @@ import pandas as pd from shapely.geometry import Point, Polygon, GeometryCollection import geopandas -from geopandas import GeoDataFrame, GeoSeries, read_file, sindex, sjoin +from geopandas import GeoDataFrame, GeoSeries, read_file, sjoin from pandas.testing import assert_frame_equal import pytest -pytestmark = pytest.mark.skipif( - not sindex.has_sindex(), reason="sjoin requires spatial index" -) +pytestmark = pytest.mark.skip_no_sindex @pytest.fixture() From c823893cdebccd6a412152b412ec04ed48ff0d2d Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Tue, 10 Nov 2020 18:54:06 +0000 Subject: [PATCH 061/316] GH: link geopandas-feedstock for conda-forge issue (#1685) * GH: link geopandas-feedstock for conda-forge issue * the --- .github/ISSUE_TEMPLATE/installation_issue.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/installation_issue.md b/.github/ISSUE_TEMPLATE/installation_issue.md index d056433..6e588b9 100644 --- a/.github/ISSUE_TEMPLATE/installation_issue.md +++ b/.github/ISSUE_TEMPLATE/installation_issue.md @@ -1,7 +1,7 @@ --- -name: Installation Issue -about: Ask about installing geopandas +name: Installation Issue +about: Ask about installing geopandas title: "" labels: "installation" @@ -11,6 +11,8 @@ labels: "installation" - [ ] I have looked through [issues labeled "installation"](https://github.com/geopandas/geopandas/labels/installation) in the geopandas repo. +- If your issue is related to installation using the `conda-forge` channel, please open an issue in [geopandas-feedstock repository](https://github.com/conda-forge/geopandas-feedstock) instead. + --- #### System information @@ -23,7 +25,7 @@ using]
[if using conda, paste the output of `conda info` and `conda list`; if using -pip, `pip freeze`] +pip, `pip freeze`]
From f33c483a33cc1247f8ab704bb99c3f150910a7fa Mon Sep 17 00:00:00 2001 From: Adrian Garcia Badaracco <1755071+adriangb@users.noreply.github.com> Date: Tue, 10 Nov 2020 13:11:16 -0600 Subject: [PATCH 062/316] ENH: add public has_sindex method (#1627) * add public sindex_generated method to GeoDataFrame, GeoSeries and GeometryArray * add docstring * doc suggestions * PR feedback * revert docstring * geometry -> geom * edit docstring * Update geopandas/array.py Co-authored-by: Martin Fleischmann * formatting * PR feedback * Update base.py * add to api docs Co-authored-by: Martin Fleischmann --- benchmarks/sindex.py | 5 ++- doc/source/docs/reference/geodataframe.rst | 1 + doc/source/docs/reference/geoseries.rst | 1 + geopandas/array.py | 24 +++++++++++++ geopandas/base.py | 32 ++++++++++++++++++ geopandas/tests/test_sindex.py | 39 +++++++++++++++++----- 6 files changed, 91 insertions(+), 11 deletions(-) diff --git a/benchmarks/sindex.py b/benchmarks/sindex.py index 1be3b58..7b3a8f1 100644 --- a/benchmarks/sindex.py +++ b/benchmarks/sindex.py @@ -65,9 +65,8 @@ class BenchIndexCreation: lazy-building indexes are actually built. """ # Note: the GeoDataFram._sindex_generated attribute will - # be removed by GH#1444 but is kept so that - # benchmarks can be run comparing pre GH#1444 to - # post GH#1444 + # be removed by GH#1444 but is kept here (in the benchmarks + # so that we can compare pre GH#1444 to post GH#1444 if needed self.data[tree_geom_type]._sindex_generated = None self.data[tree_geom_type].geometry.values._sindex = None tree = self.data[tree_geom_type].sindex diff --git a/doc/source/docs/reference/geodataframe.rst b/doc/source/docs/reference/geodataframe.rst index e1ce804..05ae651 100644 --- a/doc/source/docs/reference/geodataframe.rst +++ b/doc/source/docs/reference/geodataframe.rst @@ -72,6 +72,7 @@ Spatial index :toctree: api/ GeoDataFrame.sindex + GeoDataFrame.has_sindex Interface --------- diff --git a/doc/source/docs/reference/geoseries.rst b/doc/source/docs/reference/geoseries.rst index 16921e2..fb545b2 100644 --- a/doc/source/docs/reference/geoseries.rst +++ b/doc/source/docs/reference/geoseries.rst @@ -150,6 +150,7 @@ Spatial index :toctree: api/ GeoSeries.sindex + GeoSeries.has_sindex Interface --------- diff --git a/geopandas/array.py b/geopandas/array.py index 8051bc3..242e275 100644 --- a/geopandas/array.py +++ b/geopandas/array.py @@ -296,6 +296,30 @@ class GeometryArray(ExtensionArray): self._sindex = _get_sindex_class()(self.data) return self._sindex + @property + def has_sindex(self): + """Check the existence of the spatial index without generating it. + + Use the `.sindex` attribute on a GeoDataFrame or GeoSeries + to generate a spatial index if it does not yet exist, + which may take considerable time based on the underlying index + implementation. + + Note that the underlying spatial index may not be fully + initialized until the first use. + + See Also + --------- + GeoDataFrame.has_sindex + + Returns + ------- + bool + `True` if the spatial index has been generated or + `False` if not. + """ + return self._sindex is not None + @property def crs(self): """ diff --git a/geopandas/base.py b/geopandas/base.py index f04a4e7..e7cfed2 100644 --- a/geopandas/base.py +++ b/geopandas/base.py @@ -964,6 +964,38 @@ GeometryCollection def sindex(self): return self.geometry.values.sindex + @property + def has_sindex(self): + """Check the existence of the spatial index without generating it. + + Use the `.sindex` attribute on a GeoDataFrame or GeoSeries + to generate a spatial index if it does not yet exist, + which may take considerable time based on the underlying index + implementation. + + Note that the underlying spatial index may not be fully + initialized until the first use. + + Examples + -------- + + >>> from shapely.geometry import Point + >>> d = {'geometry': [Point(1, 2), Point(2, 1)]} + >>> gdf = geopandas.GeoDataFrame(d) + >>> gdf.has_sindex + False + >>> index = gdf.sindex + >>> gdf.has_sindex + True + + Returns + ------- + bool + `True` if the spatial index has been generated or + `False` if not. + """ + return self.geometry.values.has_sindex + def buffer(self, distance, resolution=16, **kwargs): """Returns a ``GeoSeries`` of geometries representing all points within a given `distance` of each geometric object. diff --git a/geopandas/tests/test_sindex.py b/geopandas/tests/test_sindex.py index 6bd94bf..a498ae4 100644 --- a/geopandas/tests/test_sindex.py +++ b/geopandas/tests/test_sindex.py @@ -21,6 +21,29 @@ import numpy as np @pytest.mark.skipif(sys.platform.startswith("win"), reason="fails on AppVeyor") @pytest.mark.skip_no_sindex class TestSeriesSindex: + def test_has_sindex(self): + """Test the has_sindex method.""" + t1 = Polygon([(0, 0), (1, 0), (1, 1)]) + t2 = Polygon([(0, 0), (1, 1), (0, 1)]) + + d = GeoDataFrame({"geom": [t1, t2]}, geometry="geom") + assert not d.has_sindex + d.sindex + assert d.has_sindex + d.geometry.values._sindex = None + assert not d.has_sindex + d.sindex + assert d.has_sindex + + s = GeoSeries([t1, t2]) + assert not s.has_sindex + s.sindex + assert s.has_sindex + s.values._sindex = None + assert not s.has_sindex + s.sindex + assert s.has_sindex + def test_empty_geoseries(self): """Tests creating a spatial index from an empty GeoSeries.""" s = GeoSeries(dtype=object) @@ -91,9 +114,9 @@ class TestFrameSindex: data = { "A": range(5), "B": range(-5, 0), - "location": [Point(x, y) for x, y in zip(range(5), range(5))], + "geom": [Point(x, y) for x, y in zip(range(5), range(5))], } - self.df = GeoDataFrame(data, geometry="location") + self.df = GeoDataFrame(data, geometry="geom") def test_sindex(self): self.df.crs = "epsg:4326" @@ -133,7 +156,7 @@ class TestFrameSindex: """Selecting a single column should not rebuild the spatial index.""" # Selecting geometry column preserves the index original_index = self.df.sindex - geometry_col = self.df["location"] + geometry_col = self.df["geom"] assert geometry_col.sindex is original_index geometry_col = self.df.geometry assert geometry_col.sindex is original_index @@ -145,9 +168,9 @@ class TestFrameSindex: """Selecting a subset of columns preserves the index.""" original_index = self.df.sindex # Selecting a subset of columns preserves the index - subset1 = self.df[["location", "A"]] + subset1 = self.df[["geom", "A"]] assert subset1.sindex is original_index - subset2 = self.df[["A", "location"]] + subset2 = self.df[["A", "geom"]] assert subset2.sindex is original_index @@ -193,11 +216,11 @@ class TestJoinSindex: class TestPygeosInterface: def setup_method(self): data = { - "location": [Point(x, y) for x, y in zip(range(5), range(5))] + "geom": [Point(x, y) for x, y in zip(range(5), range(5))] + [box(10, 10, 20, 20)] # include a box geometry } - self.df = GeoDataFrame(data, geometry="location") - self.expected_size = len(data["location"]) + self.df = GeoDataFrame(data, geometry="geom") + self.expected_size = len(data["geom"]) # --------------------------- `intersection` tests -------------------------- # @pytest.mark.parametrize( From aa687662791863d55d3e27e8d468d9eb2eed82bd Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Tue, 10 Nov 2020 21:31:42 +0100 Subject: [PATCH 063/316] TST/ENH: support array-like alpha + fix plotting tests for matplotlib dev version (#1676) --- .github/workflows/tests.yaml | 2 -- geopandas/plotting.py | 10 +++++- geopandas/tests/test_plotting.py | 60 +++++++++++++++++++++++++++----- 3 files changed, 60 insertions(+), 12 deletions(-) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 4aafd32..81bb47f 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -88,7 +88,6 @@ jobs: - name: Test without PyGEOS shell: bash - continue-on-error: ${{ matrix.dev }} env: USE_PYGEOS: 0 run: | @@ -97,7 +96,6 @@ jobs: - name: Test with PyGEOS shell: bash - continue-on-error: ${{ matrix.dev }} if: env.HAS_PYGEOS == 1 env: USE_PYGEOS: 1 diff --git a/geopandas/plotting.py b/geopandas/plotting.py index 41e5fed..e84dcfb 100644 --- a/geopandas/plotting.py +++ b/geopandas/plotting.py @@ -63,9 +63,17 @@ def _expand_kwargs(kwargs, multiindex): it (in place) to the correct length/formats with help of 'multiindex', unless the value appears to already be a valid (single) value for the key. """ + import matplotlib from matplotlib.colors import is_color_like from typing import Iterable + mpl = matplotlib.__version__ + if mpl >= LooseVersion("3.4") or (mpl > LooseVersion("3.3.2") and "+" in mpl): + # alpha is supported as array argument with matplotlib 3.4+ + scalar_kwargs = ["marker"] + else: + scalar_kwargs = ["marker", "alpha"] + for att, value in kwargs.items(): if "color" in att: # color(s), edgecolor(s), facecolor(s) if is_color_like(value): @@ -78,7 +86,7 @@ def _expand_kwargs(kwargs, multiindex): and isinstance(value[1], Iterable) ): continue - elif att in ["marker", "alpha"]: + elif att in scalar_kwargs: # For these attributes, only a single value is allowed, so never expand. continue diff --git a/geopandas/tests/test_plotting.py b/geopandas/tests/test_plotting.py index 03b889a..60c307e 100644 --- a/geopandas/tests/test_plotting.py +++ b/geopandas/tests/test_plotting.py @@ -208,8 +208,15 @@ class TestPointPlotting: def test_style_kwargs_alpha(self): ax = self.df.plot(alpha=0.7) np.testing.assert_array_equal([0.7], ax.collections[0].get_alpha()) - with pytest.raises(TypeError): # no list allowed for alpha - ax = self.df.plot(alpha=[0.7, 0.2]) + try: + ax = self.df.plot(alpha=np.linspace(0, 0.0, 1.0, self.N)) + except TypeError: + # no list allowed for alpha up to matplotlib 3.3 + pass + else: + np.testing.assert_array_equal( + np.linspace(0, 0.0, 1.0, self.N), ax.collections[0].get_alpha() + ) def test_legend(self): with warnings.catch_warnings(record=True) as _: # don't print warning @@ -297,8 +304,15 @@ class TestPointPlotting: def test_multipoints_alpha(self): ax = self.df2.plot(alpha=0.7) np.testing.assert_array_equal([0.7], ax.collections[0].get_alpha()) - with pytest.raises(TypeError): # no list allowed for alpha + try: ax = self.df2.plot(alpha=[0.7, 0.2]) + except TypeError: + # no list allowed for alpha up to matplotlib 3.3 + pass + else: + np.testing.assert_array_equal( + [0.7] * 10 + [0.2] * 10, ax.collections[0].get_alpha() + ) def test_categories(self): self.df["cats_object"] = ["cat1", "cat2"] * 5 @@ -478,8 +492,15 @@ class TestLineStringPlotting: def test_style_kwargs_alpha(self): ax = self.df.plot(alpha=0.7) np.testing.assert_array_equal([0.7], ax.collections[0].get_alpha()) - with pytest.raises(TypeError): # no list allowed for alpha - ax = self.df.plot(alpha=[0.7, 0.2]) + try: + ax = self.df.plot(alpha=np.linspace(0, 0.0, 1.0, self.N)) + except TypeError: + # no list allowed for alpha up to matplotlib 3.3 + pass + else: + np.testing.assert_array_equal( + np.linspace(0, 0.0, 1.0, self.N), ax.collections[0].get_alpha() + ) def test_subplots_norm(self): # colors of subplots are the same as for plot (norm is applied) @@ -639,8 +660,13 @@ class TestPolygonPlotting: # alpha ax = self.df.plot(alpha=0.7) np.testing.assert_array_equal([0.7], ax.collections[0].get_alpha()) - with pytest.raises(TypeError): # no list allowed for alpha + try: ax = self.df.plot(alpha=[0.7, 0.2]) + except TypeError: + # no list allowed for alpha up to matplotlib 3.3 + pass + else: + np.testing.assert_array_equal([0.7, 0.2], ax.collections[0].get_alpha()) def test_legend_kwargs(self): @@ -737,8 +763,15 @@ class TestPolygonPlotting: def test_multipolygons_alpha(self): ax = self.df2.plot(alpha=0.7) np.testing.assert_array_equal([0.7], ax.collections[0].get_alpha()) - with pytest.raises(TypeError): # no list allowed for alpha + try: ax = self.df2.plot(alpha=[0.7, 0.2]) + except TypeError: + # no list allowed for alpha up to matplotlib 3.3 + pass + else: + np.testing.assert_array_equal( + [0.7, 0.7, 0.2, 0.2], ax.collections[0].get_alpha() + ) def test_subplots_norm(self): # colors of subplots are the same as for plot (norm is applied) @@ -883,8 +916,17 @@ class TestNonuniformGeometryPlotting: def test_style_kwargs_alpha(self): ax = self.df.plot(alpha=0.7) np.testing.assert_array_equal([0.7], ax.collections[0].get_alpha()) - with pytest.raises(TypeError): # no list allowed for alpha - ax = self.df.plot(alpha=[0.7, 0.2, 0.9]) + # TODO splitting array-like arguments for the different plot types + # is not yet supported - https://github.com/geopandas/geopandas/issues/1379 + # try: + # ax = self.df.plot(alpha=[0.7, 0.2, 0.9]) + # except TypeError: + # # no list allowed for alpha up to matplotlib 3.3 + # pass + # else: + # np.testing.assert_array_equal( + # [0.7, 0.2, 0.9], ax.collections[0].get_alpha() + # ) class TestGeographicAspect: From 57262a8821ab3c0f348279b6d6fb14512dde8982 Mon Sep 17 00:00:00 2001 From: Adrian Garcia Badaracco <1755071+adriangb@users.noreply.github.com> Date: Mon, 16 Nov 2020 15:18:19 -0600 Subject: [PATCH 064/316] ENH/MAINT: Let wrappers handle valid predicates (#1698) * Let wrappers handle valid predicates * Check for error in tests * Allow None for pygeos * set syntax duuuhh * replace query bulk predicate check * Remove error handling changes * Add tests; make valid_preds a class method * make things just a property --- geopandas/sindex.py | 58 +++++++++++------ geopandas/tests/test_sindex.py | 112 ++++++++++++++++++++++++++++++++- 2 files changed, 149 insertions(+), 21 deletions(-) diff --git a/geopandas/sindex.py b/geopandas/sindex.py index e762782..0716bc9 100644 --- a/geopandas/sindex.py +++ b/geopandas/sindex.py @@ -5,17 +5,6 @@ import numpy as np from . import _compat as compat -VALID_QUERY_PREDICATES = { - None, - "intersects", - "within", - "contains", - "overlaps", - "crosses", - "touches", -} - - def _get_sindex_class(): """Dynamically chooses a spatial indexing backend. @@ -63,10 +52,6 @@ if compat.HAS_RTREE: Geometries from which to build the spatial index. """ - # set of valid predicates for this spatial index - # by default, the global set - valid_query_predicates = VALID_QUERY_PREDICATES - def __init__(self, geometry): stream = ( (i, item.bounds, None) @@ -89,6 +74,27 @@ if compat.HAS_RTREE: [None] * self.geometries.size, dtype=object ) + @property + def valid_query_predicates(self): + """Returns valid predicates for this spatial index. + + Returns + ------- + set + Set of valid predicates for this spatial index. + """ + return { + None, + "intersects", + "within", + "contains", + "overlaps", + "crosses", + "touches", + "covers", + "contains_properly", + } + def query(self, geometry, predicate=None, sort=False): """Compatibility layer for pygeos.query. @@ -173,7 +179,12 @@ if compat.HAS_RTREE: elif predicate is not None: # For the remaining predicates, # we compare input_geom.predicate(tree_geom) - if predicate in ("contains", "intersects"): + if predicate in ( + "contains", + "intersects", + "covers", + "contains_properly", + ): # prepare this input geometry geometry = prep(geometry) tree_idx = [ @@ -277,10 +288,6 @@ if compat.HAS_PYGEOS: Geometries from which to build the spatial index. """ - # set of valid predicates for this spatial index - # by default, the global set - valid_query_predicates = VALID_QUERY_PREDICATES - def __init__(self, geometry): # set empty geometries to None to avoid segfault on GEOS <= 3.6 # see: @@ -293,6 +300,17 @@ if compat.HAS_PYGEOS: # store geometries, including empty geometries for user access self.geometries = geometry.copy() + @property + def valid_query_predicates(self): + """Returns valid predicates for this spatial index. + + Returns + ------- + set + Set of valid predicates for this spatial index. + """ + return pygeos.strtree.VALID_PREDICATES | set([None]) + def query(self, geometry, predicate=None, sort=False): """Wrapper for pygeos.query. diff --git a/geopandas/tests/test_sindex.py b/geopandas/tests/test_sindex.py index a498ae4..a739196 100644 --- a/geopandas/tests/test_sindex.py +++ b/geopandas/tests/test_sindex.py @@ -297,6 +297,56 @@ class TestPygeosInterface: box(-0.5, -0.5, 1.5, 1.5), [], ), # bbox intersects but geom does not touch + ( + "contains", + box(10, 10, 20, 20), + [5], + ), # contains but does not contains_properly + ( + "covers", + box(-0.5, -0.5, 1, 1), + [0, 1], + ), # covers (0, 0) and (1, 1) + ( + "covers", + box(0.001, 0.001, 0.99, 0.99), + [], + ), # does not cover any + ( + "covers", + box(0, 0, 1, 1), + [0, 1], + ), # covers but does not contain + ( + "contains_properly", + box(0, 0, 1, 1), + [], + ), # intersects but does not contain + ( + "contains_properly", + box(0, 0, 1.001, 1.001), + [1], + ), # intersects 2 and contains 1 + ( + "contains_properly", + box(0.5, 0.5, 1.001, 1.001), + [1], + ), # intersects 1 and contains 1 + ( + "contains_properly", + box(0.5, 0.5, 1.5, 1.5), + [1], + ), # intersects and contains + ( + "contains_properly", + box(-1, -1, 2, 2), + [0, 1], + ), # intersects and contains multiple + ( + "contains_properly", + box(10, 10, 20, 20), + [], + ), # contains but does not contains_properly ), ) def test_query(self, predicate, test_geom, expected): @@ -395,7 +445,11 @@ class TestPygeosInterface: ("within", [(0.25, 0.28, 0.75, 0.75)], [[], []]), # does not intersect ("within", [(0, 0, 10, 10)], [[], []]), # intersects but is not within ("within", [(11, 11, 12, 12)], [[0], [5]]), # intersects and is within - ("contains", [(0, 0, 1, 1)], [[], []]), # intersects but does not contain + ( + "contains", + [(0, 0, 1, 1)], + [[], []], + ), # intersects and covers, but does not contain ( "contains", [(0, 0, 1.001, 1.001)], @@ -412,6 +466,62 @@ class TestPygeosInterface: [(-1, -1, 2, 2)], [[0, 0], [0, 1]], ), # intersects and contains multiple + ( + "contains", + [(10, 10, 20, 20)], + [[0], [5]], + ), # contains but does not contains_properly + ("touches", [(-1, -1, 0, 0)], [[0], [0]]), # bbox intersects and touches + ( + "touches", + [(-0.5, -0.5, 1.5, 1.5)], + [[], []], + ), # bbox intersects but geom does not touch + ( + "covers", + [(-0.5, -0.5, 1, 1)], + [[0, 0], [0, 1]], + ), # covers (0, 0) and (1, 1) + ( + "covers", + [(0.001, 0.001, 0.99, 0.99)], + [[], []], + ), # does not cover any + ( + "covers", + [(0, 0, 1, 1)], + [[0, 0], [0, 1]], + ), # covers but does not contain + ( + "contains_properly", + [(0, 0, 1, 1)], + [[], []], + ), # intersects but does not contain + ( + "contains_properly", + [(0, 0, 1.001, 1.001)], + [[0], [1]], + ), # intersects 2 and contains 1 + ( + "contains_properly", + [(0.5, 0.5, 1.001, 1.001)], + [[0], [1]], + ), # intersects 1 and contains 1 + ( + "contains_properly", + [(0.5, 0.5, 1.5, 1.5)], + [[0], [1]], + ), # intersects and contains + ( + "contains_properly", + [(-1, -1, 2, 2)], + [[0, 0], [0, 1]], + ), # intersects and contains multiple + ( + "contains_properly", + [(10, 10, 20, 20)], + [[], []], + ), # contains but does not contains_properly ), ) def test_query_bulk(self, predicate, test_geom, expected): From cdb42821ababcf29b6f7f94dd66fa9cb5a8f6071 Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Mon, 16 Nov 2020 22:45:19 +0000 Subject: [PATCH 065/316] CI: fix conda setup (#1706) * CI: fix conda setup * fix env variables * another attempt * fix echo --- .github/workflows/tests.yaml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 81bb47f..6a5b469 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -2,11 +2,11 @@ name: Tests on: push: - branches: [ master ] + branches: [master] pull_request: - branches: [ master ] + branches: [master] schedule: - - cron: '0 0 * * *' + - cron: "0 0 * * *" jobs: Linting: @@ -58,7 +58,7 @@ jobs: - uses: actions/checkout@v2 - name: Setup Conda - uses: s-weigand/setup-conda@v1.0.4 + uses: s-weigand/setup-conda@v1 with: activate-conda: false @@ -66,7 +66,6 @@ jobs: shell: bash run: conda env create -f ${{ matrix.env }} - - name: Check and Log Environment shell: bash run: | @@ -80,10 +79,10 @@ jobs: if ( cat conda.txt | grep -q pygeos ) then echo "Setting HAS_PYGEOS=1" - echo '::set-env name=HAS_PYGEOS::1' + echo "HAS_PYGEOS=1" >> $GITHUB_ENV else echo "Setting HAS_PYGEOS=0" - echo '::set-env name=HAS_PYGEOS::0' + echo "HAS_PYGEOS=0" >> $GITHUB_ENV fi - name: Test without PyGEOS @@ -124,5 +123,5 @@ jobs: run: | source activate test pytest -v --color=yes --doctest-only geopandas --ignore=geopandas/datasets - + - uses: codecov/codecov-action@v1 From 55d72a1010e2f23e80b305512079bcde7d82b7bb Mon Sep 17 00:00:00 2001 From: James McBride Date: Wed, 18 Nov 2020 14:23:39 -0800 Subject: [PATCH 066/316] BUG: Keep geoms within geometry collections after overlay (#1582) * BUG: Keep geoms within geometry collections after overlay The approach here is to apply an explode operation after the result of the overlay, then filter by geom types, and apply a dissolve based on the level of the index from the explode representing the original geometry groupings. * Add test for geom collection from overlay Overlays with complex geometries could produce geometry collections that would be dropped with keep_geom_type=True. This tests that such cases return the geometries that correspond to geom_type with keep_geom_type=True. * Update geopandas/tools/overlay.py Co-authored-by: Martin Fleischmann Co-authored-by: Martin Fleischmann --- .../tests/data/overlay/geom_type/df1.geojson | 1 + .../tests/data/overlay/geom_type/df2.geojson | 1 + geopandas/tests/test_overlay.py | 15 +++++++++++++++ geopandas/tools/overlay.py | 14 +++++++++++--- 4 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 geopandas/tests/data/overlay/geom_type/df1.geojson create mode 100644 geopandas/tests/data/overlay/geom_type/df2.geojson diff --git a/geopandas/tests/data/overlay/geom_type/df1.geojson b/geopandas/tests/data/overlay/geom_type/df1.geojson new file mode 100644 index 0000000..50d1206 --- /dev/null +++ b/geopandas/tests/data/overlay/geom_type/df1.geojson @@ -0,0 +1 @@ +{"type": "FeatureCollection", "features": [{"id": "9", "type": "Feature", "properties": {"acres": 4.96074455173779, "idx": 9, "value": 2}, "geometry": {"type": "Polygon", "coordinates": [[[-95.58937565036604, 60.755964062925905], [-95.58937565036604, 60.75598209180554], [-95.58936454178152, 60.75598209180555], [-95.58936454178152, 60.75599110624536], [-95.58935343319699, 60.75599110624537], [-95.58934232461245, 60.75599110624537], [-95.58934232461245, 60.75600012068519], [-95.58933121602794, 60.75600012068519], [-95.58933121602794, 60.756009135125026], [-95.5893201074434, 60.75600913512501], [-95.5893201074434, 60.75601814956483], [-95.58930899885887, 60.75601814956484], [-95.58929789027435, 60.75601814956484], [-95.58929789027435, 60.756027164004664], [-95.58928678168982, 60.756027164004664], [-95.58927567310528, 60.756027164004664], [-95.58927567310528, 60.75603617844449], [-95.58926456452075, 60.75603617844449], [-95.58926456452075, 60.756045192884315], [-95.5892534559362, 60.75604519288431], [-95.5892423473517, 60.7560451928843], [-95.5892423473517, 60.75605420732413], [-95.58923123876716, 60.75605420732413], [-95.58923123876716, 60.75607223620378], [-95.58922013018262, 60.75607223620377], [-95.58922013018262, 60.7560812506436], [-95.58920902159808, 60.7560812506436], [-95.58920902159808, 60.756099279523234], [-95.58919791301358, 60.756099279523234], [-95.58919791301358, 60.756117308402885], [-95.58918680442903, 60.756117308402885], [-95.58918680442903, 60.75612632284271], [-95.5891756958445, 60.75612632284271], [-95.5891756958445, 60.75614435172235], [-95.58916458725996, 60.756144351722334], [-95.58916458725996, 60.756162380602], [-95.58915347867546, 60.756162380602], [-95.58915347867546, 60.75617139504182], [-95.58914237009091, 60.75617139504182], [-95.58914237009091, 60.75618942392147], [-95.58913126150641, 60.75618942392147], [-95.58913126150641, 60.75621646724094], [-95.58912015292186, 60.75621646724094], [-95.58912015292186, 60.75625252500023], [-95.58910904433733, 60.75625252500023], [-95.58910904433733, 60.756279568319705], [-95.58909793575279, 60.756279568319705], [-95.58909793575279, 60.756288582759524], [-95.58908682716829, 60.75628858275951], [-95.58908682716829, 60.756306611639175], [-95.58907571858374, 60.75630661163917], [-95.58907571858374, 60.75632464051881], [-95.58906460999921, 60.75632464051881], [-95.58906460999921, 60.75633365495864], [-95.58905350141468, 60.75633365495864], [-95.58905350141468, 60.756351683838275], [-95.58904239283017, 60.756351683838275], [-95.58904239283017, 60.75636971271793], [-95.58903128424562, 60.75636971271793], [-95.58903128424562, 60.756387741597564], [-95.58902017566109, 60.75638774159757], [-95.58902017566109, 60.75639675603739], [-95.58900906707656, 60.7563967560374], [-95.58900906707656, 60.756414784917034], [-95.58899795849204, 60.756414784917034], [-95.58899795849204, 60.75643281379669], [-95.58898684990751, 60.7564328137967], [-95.58898684990751, 60.756441828236504], [-95.58897574132297, 60.75644182823651], [-95.58897574132297, 60.75645985711615], [-95.58896463273845, 60.75645985711616], [-95.58896463273845, 60.75648690043562], [-95.58895352415392, 60.75648690043561], [-95.58895352415392, 60.75679339138959], [-95.58894241556939, 60.756793391389586], [-95.58894241556939, 60.75682043470906], [-95.58893130698488, 60.756820434709056], [-95.58893130698488, 60.756829449148874], [-95.58892019840034, 60.756829449148874], [-95.58892019840034, 60.75684747802852], [-95.5889090898158, 60.756847478028526], [-95.5889090898158, 60.75686550690818], [-95.58889798123127, 60.75686550690817], [-95.58889798123127, 60.756874521348], [-95.58888687264673, 60.75687452134798], [-95.58888687264673, 60.75689255022763], [-95.58887576406222, 60.75689255022763], [-95.58887576406222, 60.75691057910728], [-95.58886465547768, 60.756910579107284], [-95.58886465547768, 60.75692860798693], [-95.58885354689315, 60.75692860798692], [-95.58885354689315, 60.756937622426754], [-95.5888424383086, 60.75693762242674], [-95.5888424383086, 60.7569556513064], [-95.5888313297241, 60.756955651306406], [-95.5888313297241, 60.75697368018604], [-95.58882022113956, 60.75697368018604], [-95.58882022113956, 60.756982694625854], [-95.58880911255503, 60.756982694625854], [-95.58880911255503, 60.75700072350551], [-95.58879800397048, 60.75700072350551], [-95.58879800397048, 60.75702776682498], [-95.58878689538598, 60.75702776682499], [-95.58878689538598, 60.757063824584264], [-95.58877578680143, 60.75706382458427], [-95.58877578680143, 60.75707283902409], [-95.58876467821693, 60.7570728390241], [-95.58876467821693, 60.7570818534639], [-95.58875356963239, 60.757081853463916], [-95.58875356963239, 60.75709086790375], [-95.58874246104786, 60.75709086790374], [-95.58873135246331, 60.757090867903734], [-95.58873135246331, 60.75709988234357], [-95.58870913529427, 60.75709988234356], [-95.58869802670974, 60.75709988234356], [-95.58869802670974, 60.75710889678338], [-95.58845363785008, 60.757108896783386], [-95.58844252926555, 60.75710889678338], [-95.58844252926555, 60.757117911223204], [-95.58843142068103, 60.75711791122322], [-95.5884203120965, 60.75711791122322], [-95.5884203120965, 60.75712692566304], [-95.58840920351196, 60.75712692566302], [-95.58840920351196, 60.757135940102856], [-95.58837587775838, 60.757135940102856], [-95.58836476917384, 60.75713594010286], [-95.58836476917384, 60.757144954542674], [-95.58828700908214, 60.75714495454267], [-95.5882759004976, 60.75714495454267], [-95.5882759004976, 60.7571539689825], [-95.58820924899044, 60.7571539689825], [-95.58820924899044, 60.757144954542674], [-95.58819814040592, 60.75714495454267], [-95.58819814040592, 60.757135940102856], [-95.58818703182139, 60.757135940102856], [-95.58818703182139, 60.75712692566304], [-95.58817592323685, 60.75712692566303], [-95.58817592323685, 60.757117911223204], [-95.58816481465232, 60.75711791122322], [-95.58816481465232, 60.75710889678338], [-95.58815370606777, 60.75710889678338], [-95.58815370606777, 60.75709086790374], [-95.58814259748327, 60.75709086790374], [-95.58814259748327, 60.757072839024104], [-95.58813148889872, 60.7570728390241], [-95.58813148889872, 60.75705481014444], [-95.5881203803142, 60.75705481014444], [-95.5881203803142, 60.75660408815332], [-95.58810927172965, 60.75660408815332], [-95.58810927172965, 60.75658605927365], [-95.58809816314515, 60.756586059273666], [-95.58809816314515, 60.75656803039402], [-95.5880870545606, 60.75656803039402], [-95.5880870545606, 60.7565590159542], [-95.58807594597607, 60.75655901595421], [-95.58807594597607, 60.75655000151438], [-95.58806483739156, 60.75655000151438], [-95.58806483739156, 60.756540987074565], [-95.58805372880703, 60.75654098707455], [-95.58805372880703, 60.75653197263474], [-95.58804262022248, 60.75653197263473], [-95.58804262022248, 60.75652295819491], [-95.58802040305343, 60.75652295819491], [-95.58802040305343, 60.75651394375508], [-95.58799818588436, 60.75651394375509], [-95.58799818588436, 60.75650492931526], [-95.58797596871531, 60.75650492931526], [-95.58797596871531, 60.756495914875444], [-95.58792042579266, 60.75649591487544], [-95.58792042579266, 60.75648690043562], [-95.58789820862361, 60.75648690043561], [-95.58789820862361, 60.75647788599579], [-95.58787599145457, 60.75647788599579], [-95.58787599145457, 60.75646887155597], [-95.58786488287002, 60.75646887155597], [-95.58786488287002, 60.756459857116155], [-95.58784266570096, 60.75645985711616], [-95.58784266570096, 60.75645084267633], [-95.58782044853191, 60.75645084267634], [-95.58782044853191, 60.75644182823651], [-95.58780933994737, 60.75644182823651], [-95.58780933994737, 60.75643281379668], [-95.5877871227783, 60.756432813796685], [-95.5877871227783, 60.75642379935685], [-95.58776490560925, 60.75642379935686], [-95.58776490560925, 60.75641478491704], [-95.58775379702472, 60.756414784917034], [-95.58775379702472, 60.756405770477215], [-95.58774268844017, 60.75640577047721], [-95.58774268844017, 60.75639675603739], [-95.58773157985567, 60.75639675603738], [-95.58773157985567, 60.75638774159756], [-95.58772047127113, 60.75638774159757], [-95.58772047127113, 60.756378727157745], [-95.58770936268662, 60.756378727157745], [-95.58770936268662, 60.756360698278094], [-95.58769825410208, 60.756360698278094], [-95.58769825410208, 60.75634266939846], [-95.58768714551755, 60.75634266939845], [-95.58768714551755, 60.7563246405188], [-95.587676036933, 60.756324640518805], [-95.587676036933, 60.75631562607899], [-95.5876649283485, 60.75631562607898], [-95.5876649283485, 60.756297597199335], [-95.58765381976396, 60.75629759719934], [-95.58765381976396, 60.7562795683197], [-95.58764271117943, 60.7562795683197], [-95.58764271117943, 60.756261539440054], [-95.58763160259488, 60.75626153944006], [-95.58763160259488, 60.75624351056042], [-95.58762049401038, 60.75624351056042], [-95.58762049401038, 60.7558108174489], [-95.58763160259488, 60.755810817448925], [-95.58763160259488, 60.75578377412945], [-95.58764271117943, 60.755783774129455], [-95.58764271117943, 60.755765745249796], [-95.58765381976396, 60.75576574524981], [-95.58765381976396, 60.75575673080998], [-95.5876649283485, 60.755756730809985], [-95.5876649283485, 60.75574771637016], [-95.587676036933, 60.75574771637016], [-95.587676036933, 60.755729687490515], [-95.58768714551755, 60.755729687490515], [-95.58769825410208, 60.755729687490515], [-95.58769825410208, 60.755720673050696], [-95.58770936268662, 60.75572067305069], [-95.58770936268662, 60.75571165861086], [-95.58772047127113, 60.755711658610856], [-95.58772047127113, 60.75570264417103], [-95.58773157985567, 60.755702644171045], [-95.58774268844017, 60.75570264417104], [-95.58774268844017, 60.75569362973122], [-95.58775379702472, 60.75569362973121], [-95.58777601419379, 60.75569362973122], [-95.58777601419379, 60.75568461529139], [-95.58780933994737, 60.75568461529141], [-95.58780933994737, 60.75569362973122], [-95.58783155711644, 60.75569362973123], [-95.58783155711644, 60.75570264417104], [-95.58785377428549, 60.755702644171045], [-95.58785377428549, 60.75571165861086], [-95.58787599145457, 60.75571165861086], [-95.58787599145457, 60.75572067305069], [-95.58789820862361, 60.75572067305069], [-95.58789820862361, 60.75572968749052], [-95.58790931720813, 60.75572968749053], [-95.58790931720813, 60.75573870193034], [-95.58793153437719, 60.75573870193034], [-95.58793153437719, 60.75574771637016], [-95.58795375154625, 60.755747716370166], [-95.58795375154625, 60.75575673080996], [-95.58797596871531, 60.75575673080998], [-95.58797596871531, 60.755765745249796], [-95.58798707729986, 60.7557657452498], [-95.58798707729986, 60.75577475968964], [-95.5880092944689, 60.755774759689636], [-95.5880092944689, 60.75578377412945], [-95.58803151163798, 60.75578377412945], [-95.58803151163798, 60.75579278856928], [-95.58804262022248, 60.75579278856928], [-95.58804262022248, 60.75580180300909], [-95.58806483739156, 60.755801803009085], [-95.58806483739156, 60.755810817448925], [-95.5880870545606, 60.75581081744891], [-95.5880870545606, 60.75581983188873], [-95.58832033483573, 60.75581983188873], [-95.58832033483573, 60.75581081744892], [-95.58833144342026, 60.75581081744891], [-95.58833144342026, 60.75580180300909], [-95.58834255200479, 60.75580180300909], [-95.58834255200479, 60.75579278856928], [-95.58835366058933, 60.75579278856927], [-95.58835366058933, 60.75576574524981], [-95.58836476917384, 60.7557657452498], [-95.58836476917384, 60.75573870193034], [-95.58837587775838, 60.75573870193033], [-95.58837587775838, 60.75568461529141], [-95.58836476917384, 60.75568461529141], [-95.58836476917384, 60.755666586411756], [-95.58835366058933, 60.75566658641174], [-95.58835366058933, 60.75565757197193], [-95.58834255200479, 60.75565757197194], [-95.58834255200479, 60.755648557532105], [-95.58833144342026, 60.7556485575321], [-95.58833144342026, 60.755639543092286], [-95.58832033483573, 60.755639543092286], [-95.58832033483573, 60.75563052865246], [-95.58830922625121, 60.75563052865246], [-95.58830922625121, 60.755621514212635], [-95.58828700908214, 60.75562151421264], [-95.58828700908214, 60.75561249977282], [-95.58826479191309, 60.75561249977282], [-95.58826479191309, 60.755603485333], [-95.58825368332856, 60.755603485333], [-95.58825368332856, 60.75559447089318], [-95.58824257474404, 60.75559447089316], [-95.58824257474404, 60.75558545645335], [-95.5882314661595, 60.755585456453346], [-95.5882314661595, 60.75557644201353], [-95.58822035757497, 60.75557644201353], [-95.58822035757497, 60.75556742757371], [-95.58820924899044, 60.75556742757369], [-95.58820924899044, 60.75554939869405], [-95.58819814040592, 60.75554939869406], [-95.58819814040592, 60.75553136981441], [-95.58818703182139, 60.75553136981442], [-95.58818703182139, 60.75551334093476], [-95.58817592323685, 60.755513340934776], [-95.58817592323685, 60.75550432649495], [-95.58816481465232, 60.75550432649495], [-95.58816481465232, 60.7554862976153], [-95.58815370606777, 60.75548629761529], [-95.58815370606777, 60.75546826873566], [-95.58814259748327, 60.75546826873565], [-95.58814259748327, 60.75545023985601], [-95.58813148889872, 60.755450239855996], [-95.58813148889872, 60.755432210976366], [-95.5881203803142, 60.755432210976366], [-95.5881203803142, 60.755260936619734], [-95.58813148889872, 60.75526093661973], [-95.58813148889872, 60.755233893300264], [-95.58814259748327, 60.75523389330026], [-95.58814259748327, 60.75521586442062], [-95.58815370606777, 60.75521586442063], [-95.58815370606777, 60.755206849980794], [-95.58816481465232, 60.755206849980794], [-95.58816481465232, 60.75518882110116], [-95.58817592323685, 60.75518882110116], [-95.58817592323685, 60.75517079222149], [-95.58818703182139, 60.7551707922215], [-95.58818703182139, 60.75516177778168], [-95.58819814040592, 60.75516177778167], [-95.58819814040592, 60.755143748902036], [-95.58820924899044, 60.755143748902036], [-95.58820924899044, 60.75492740234629], [-95.58822035757497, 60.7549274023463], [-95.58822035757497, 60.754909373466646], [-95.5882314661595, 60.75490937346664], [-95.5882314661595, 60.754891344586994], [-95.58824257474404, 60.754891344587], [-95.58824257474404, 60.75488233014718], [-95.58825368332856, 60.75488233014717], [-95.58825368332856, 60.754873315707364], [-95.58826479191309, 60.75487331570736], [-95.5882759004976, 60.75487331570735], [-95.5882759004976, 60.754864301267524], [-95.58830922625121, 60.75486430126753], [-95.58830922625121, 60.75487331570735], [-95.58833144342026, 60.754873315707364], [-95.58833144342026, 60.754882330147176], [-95.58835366058933, 60.75488233014717], [-95.58835366058933, 60.754891344586994], [-95.58837587775838, 60.754891344586994], [-95.58837587775838, 60.754900359026834], [-95.58839809492746, 60.75490035902682], [-95.58839809492746, 60.754909373466646], [-95.58840920351196, 60.75490937346664], [-95.58840920351196, 60.75491838790648], [-95.58843142068103, 60.75491838790648], [-95.58843142068103, 60.7549274023463], [-95.58845363785008, 60.75492740234629], [-95.58845363785008, 60.75493641678613], [-95.58847585501913, 60.754936416786116], [-95.58847585501913, 60.754945431225934], [-95.58848696360367, 60.75494543122592], [-95.58848696360367, 60.75495444566575], [-95.5884980721882, 60.754954445665746], [-95.5884980721882, 60.754963460105586], [-95.58850918077275, 60.754963460105586], [-95.58850918077275, 60.754972474545404], [-95.58852028935725, 60.754972474545404], [-95.58852028935725, 60.75498148898524], [-95.5885313979418, 60.75498148898522], [-95.5885313979418, 60.754999517864874], [-95.58854250652632, 60.75499951786488], [-95.58854250652632, 60.75501754674452], [-95.58855361511087, 60.75501754674452], [-95.58855361511087, 60.755026561184344], [-95.5885647236954, 60.75502656118434], [-95.5885647236954, 60.75503557562417], [-95.58857583227991, 60.75503557562416], [-95.58857583227991, 60.75504459006399], [-95.58858694086445, 60.75504459006399], [-95.58858694086445, 60.755053604503814], [-95.58859804944898, 60.755053604503814], [-95.58859804944898, 60.755062618943626], [-95.58862026661804, 60.755062618943626], [-95.58862026661804, 60.75507163338346], [-95.58864248378708, 60.75507163338346], [-95.58864248378708, 60.75508064782328], [-95.58865359237161, 60.75508064782327], [-95.58865359237161, 60.75508966226311], [-95.58867580954069, 60.75508966226311], [-95.58867580954069, 60.75509867670293], [-95.58869802670974, 60.75509867670293], [-95.58869802670974, 60.75510769114275], [-95.58870913529427, 60.75510769114275], [-95.58870913529427, 60.75511670558255], [-95.58873135246331, 60.755116705582566], [-95.58873135246331, 60.755125720022384], [-95.58875356963239, 60.75512572002238], [-95.58875356963239, 60.75513473446221], [-95.58880911255503, 60.75513473446222], [-95.58880911255503, 60.755143748902036], [-95.5888313297241, 60.755143748902036], [-95.5888313297241, 60.755152763341854], [-95.58885354689315, 60.75515276334186], [-95.58885354689315, 60.755170792221506], [-95.58886465547768, 60.75517079222149], [-95.58886465547768, 60.75524290774008], [-95.58885354689315, 60.75524290774008], [-95.58885354689315, 60.75526093661973], [-95.5888424383086, 60.75526093661973], [-95.5888424383086, 60.75526995105955], [-95.5888313297241, 60.75526995105955], [-95.58882022113956, 60.755269951059546], [-95.58882022113956, 60.75527896549938], [-95.58862026661804, 60.755278965499365], [-95.58860915803352, 60.75527896549937], [-95.58860915803352, 60.7552879799392], [-95.58859804944898, 60.7552879799392], [-95.58858694086445, 60.75528797993919], [-95.58858694086445, 60.75529699437902], [-95.58857583227991, 60.755296994379016], [-95.58857583227991, 60.75530600881885], [-95.5885647236954, 60.75530600881885], [-95.5885647236954, 60.755324037698486], [-95.58855361511087, 60.75532403769849], [-95.58855361511087, 60.755351081017956], [-95.58854250652632, 60.75535108101796], [-95.58854250652632, 60.755432210976366], [-95.58855361511087, 60.755432210976366], [-95.58855361511087, 60.75544122541619], [-95.5885647236954, 60.755441225416185], [-95.5885647236954, 60.755459254295836], [-95.58857583227991, 60.755459254295836], [-95.58857583227991, 60.75547728317547], [-95.58858694086445, 60.75547728317548], [-95.58858694086445, 60.7554862976153], [-95.58859804944898, 60.755486297615285], [-95.58859804944898, 60.75550432649495], [-95.58860915803352, 60.755504326494936], [-95.58860915803352, 60.75552235537458], [-95.58862026661804, 60.75552235537459], [-95.58862026661804, 60.75556742757369], [-95.58863137520257, 60.7555674275737], [-95.58863137520257, 60.755585456453346], [-95.58864248378708, 60.75558545645334], [-95.58864248378708, 60.755603485333], [-95.58865359237161, 60.755603485333], [-95.58865359237161, 60.75562151421265], [-95.58866470095614, 60.75562151421264], [-95.58866470095614, 60.75563052865246], [-95.58867580954069, 60.75563052865245], [-95.58867580954069, 60.75563954309229], [-95.5886869181252, 60.755639543092286], [-95.5886869181252, 60.755648557532105], [-95.58869802670974, 60.755648557532105], [-95.58869802670974, 60.75565757197193], [-95.58870913529427, 60.75565757197193], [-95.58870913529427, 60.75566658641174], [-95.58873135246331, 60.75566658641175], [-95.58873135246331, 60.75567560085157], [-95.58875356963239, 60.75567560085157], [-95.58875356963239, 60.75568461529141], [-95.58895352415392, 60.755684615291415], [-95.58895352415392, 60.75569362973122], [-95.58897574132297, 60.755693629731226], [-95.58897574132297, 60.75570264417104], [-95.58898684990751, 60.755702644171045], [-95.58898684990751, 60.75571165861086], [-95.58900906707656, 60.755711658610856], [-95.58900906707656, 60.75572067305069], [-95.58903128424562, 60.755720673050696], [-95.58903128424562, 60.755729687490515], [-95.58904239283017, 60.755729687490515], [-95.58904239283017, 60.75573870193034], [-95.58906460999921, 60.75573870193034], [-95.58906460999921, 60.75574771637015], [-95.58908682716829, 60.75574771637015], [-95.58908682716829, 60.755756730809985], [-95.58909793575279, 60.75575673080998], [-95.58909793575279, 60.7557657452498], [-95.58912015292186, 60.7557657452498], [-95.58912015292186, 60.755774759689636], [-95.58913126150641, 60.75577475968963], [-95.58913126150641, 60.75578377412944], [-95.58915347867546, 60.75578377412944], [-95.58915347867546, 60.755792788569266], [-95.58916458725996, 60.75579278856928], [-95.58916458725996, 60.755801803009085], [-95.58918680442903, 60.755801803009085], [-95.58918680442903, 60.75581081744891], [-95.58920902159808, 60.75581081744892], [-95.58920902159808, 60.75581983188873], [-95.58922013018262, 60.75581983188873], [-95.58922013018262, 60.75582884632856], [-95.5892423473517, 60.75582884632856], [-95.5892423473517, 60.75583786076839], [-95.5892534559362, 60.755837860768395], [-95.5892534559362, 60.7558468752082], [-95.58927567310528, 60.75584687520821], [-95.58927567310528, 60.755855889648025], [-95.58928678168982, 60.755855889648025], [-95.58928678168982, 60.75586490408786], [-95.58930899885887, 60.75586490408785], [-95.58930899885887, 60.755873918527676], [-95.5893201074434, 60.75587391852767], [-95.5893201074434, 60.75588293296748], [-95.58934232461245, 60.755882932967474], [-95.58934232461245, 60.75589194740732], [-95.58936454178152, 60.755891947407314], [-95.58936454178152, 60.755900961847146], [-95.58937565036604, 60.755900961847146], [-95.58937565036604, 60.755964062925905]]]}}]} \ No newline at end of file diff --git a/geopandas/tests/data/overlay/geom_type/df2.geojson b/geopandas/tests/data/overlay/geom_type/df2.geojson new file mode 100644 index 0000000..f1d471c --- /dev/null +++ b/geopandas/tests/data/overlay/geom_type/df2.geojson @@ -0,0 +1 @@ +{"type": "FeatureCollection", "features": [{"id": "77", "type": "Feature", "properties": {"acres": 3.859654188573176, "idx": 77, "value": 1}, "geometry": {"type": "Polygon", "coordinates": [[[-95.58719836779824, 60.755928005166616], [-95.5871872592137, 60.7559280051666], [-95.5871872592137, 60.75552235537458], [-95.58717615062918, 60.75552235537459], [-95.58717615062918, 60.75468401247108], [-95.58716504204466, 60.75468401247108], [-95.58716504204466, 60.75448569479499], [-95.5871761506293, 60.75448569479499], [-95.5871872592137, 60.75448569479498], [-95.5871872592137, 60.754494709234805], [-95.58719836779824, 60.754494709234805], [-95.58719836779824, 60.754503723674624], [-95.58720947638278, 60.754503723674624], [-95.58720947638278, 60.75451273811445], [-95.5872205849673, 60.75451273811445], [-95.5872205849673, 60.75452175255427], [-95.58723169355183, 60.754521752554275], [-95.58723169355183, 60.75453076699409], [-95.58724280213636, 60.75453076699409], [-95.58724280213636, 60.75453978143392], [-95.5872539107209, 60.75453978143391], [-95.5872539107209, 60.75454879587373], [-95.5872650193054, 60.75454879587374], [-95.5872650193054, 60.754557810313564], [-95.58727612788995, 60.75455781031357], [-95.58727612788995, 60.7545758391932], [-95.58728723647448, 60.7545758391932], [-95.58728723647448, 60.75461189695249], [-95.58729834505903, 60.7546118969525], [-95.58729834505903, 60.75462992583214], [-95.58730945364353, 60.75462992583214], [-95.58730945364353, 60.754647954711785], [-95.58732056222807, 60.754647954711785], [-95.58732056222807, 60.75466598359144], [-95.5873316708126, 60.75466598359144], [-95.5873316708126, 60.75468401247107], [-95.58734277939715, 60.754684012471074], [-95.58734277939715, 60.7546930269109], [-95.58735388798165, 60.75469302691089], [-95.58735388798165, 60.754711055790544], [-95.5873649965662, 60.754711055790544], [-95.5873649965662, 60.75472908467019], [-95.5873761051507, 60.754729084670196], [-95.5873761051507, 60.75474711354984], [-95.58738721373524, 60.75474711354984], [-95.58738721373524, 60.75475612798965], [-95.58739832231977, 60.75475612798965], [-95.58739832231977, 60.754765142429484], [-95.58740943090432, 60.75476514242948], [-95.58740943090432, 60.7547741568693], [-95.58742053948882, 60.7547741568693], [-95.58742053948882, 60.75478317130912], [-95.58743164807336, 60.75478317130912], [-95.58743164807336, 60.75479218574895], [-95.58745386524244, 60.75479218574894], [-95.58745386524244, 60.75480120018877], [-95.58747608241148, 60.75480120018877], [-95.58747608241148, 60.75481021462859], [-95.58748719099601, 60.7548102146286], [-95.58748719099601, 60.75481922906841], [-95.58749829958055, 60.75481922906842], [-95.58749829958055, 60.75482824350824], [-95.58750940816509, 60.754828243508236], [-95.58750940816509, 60.75483725794807], [-95.5875205167496, 60.75483725794807], [-95.5875205167496, 60.75484627238787], [-95.58753162533414, 60.75484627238789], [-95.58753162533414, 60.75486430126754], [-95.58754273391865, 60.75486430126753], [-95.58754273391865, 60.754882330147176], [-95.58755384250318, 60.75488233014718], [-95.58755384250318, 60.754891344586994], [-95.58756495108771, 60.754891344587], [-95.58756495108771, 60.754900359026834], [-95.58757605967226, 60.75490035902682], [-95.58757605967226, 60.75490937346665], [-95.58758716825677, 60.754909373466646], [-95.58758716825677, 60.75491838790648], [-95.5875982768413, 60.75491838790647], [-95.5875982768413, 60.75492740234629], [-95.58762049401038, 60.75492740234629], [-95.58762049401038, 60.754936416786116], [-95.58769825410208, 60.75493641678611], [-95.58769825410208, 60.7549274023463], [-95.5877093626868, 60.75492740234629], [-95.58773157985567, 60.7549274023463], [-95.58773157985567, 60.75491838790648], [-95.5877426884403, 60.75491838790648], [-95.58775379702472, 60.75491838790647], [-95.58775379702472, 60.75490937346665], [-95.58776490560925, 60.75490937346664], [-95.58776490560925, 60.75490035902683], [-95.58777601419379, 60.75490035902683], [-95.58777601419379, 60.754891344586994], [-95.5877871227783, 60.75489134458701], [-95.5877871227783, 60.75483725794807], [-95.58777601419379, 60.75483725794806], [-95.58777601419379, 60.75481922906842], [-95.58776490560925, 60.75481922906842], [-95.58776490560925, 60.7548102146286], [-95.58775379702472, 60.7548102146286], [-95.58775379702472, 60.75479218574894], [-95.58774268844017, 60.75479218574894], [-95.58774268844017, 60.7547741568693], [-95.58773157985567, 60.75477415686929], [-95.58773157985567, 60.754756127989644], [-95.58772047127113, 60.754756127989644], [-95.58772047127113, 60.75474711354983], [-95.58770936268662, 60.75474711354984], [-95.58770936268662, 60.75472908467019], [-95.58769825410208, 60.754729084670196], [-95.58769825410208, 60.754711055790544], [-95.58768714551755, 60.754711055790544], [-95.58768714551755, 60.7546930269109], [-95.587676036933, 60.7546930269109], [-95.587676036933, 60.75468401247108], [-95.5876649283485, 60.75468401247108], [-95.5876649283485, 60.75466598359144], [-95.58765381976396, 60.754665983591444], [-95.58765381976396, 60.75464795471179], [-95.58764271117943, 60.754647954711785], [-95.58764271117943, 60.75462992583215], [-95.58763160259488, 60.75462992583214], [-95.58763160259488, 60.7546118969525], [-95.58762049401038, 60.75461189695249], [-95.58762049401038, 60.75458485363303], [-95.58763160259488, 60.754584853633034], [-95.58763160259488, 60.75455781031358], [-95.58764271117943, 60.754557810313564], [-95.58764271117943, 60.75453978143393], [-95.58765381976396, 60.75453978143392], [-95.58765381976396, 60.75453076699409], [-95.5876649283485, 60.75453076699409], [-95.5876649283485, 60.75451273811445], [-95.587676036933, 60.754512738114435], [-95.587676036933, 60.7544947092348], [-95.58768714551755, 60.7544947092348], [-95.58768714551755, 60.75448569479498], [-95.58769825410208, 60.75448569479499], [-95.58769825410208, 60.75446766591533], [-95.58770936268662, 60.75446766591532], [-95.58770936268662, 60.75444963703569], [-95.58772047127113, 60.75444963703569], [-95.58772047127113, 60.75444062259586], [-95.58773157985567, 60.754440622595865], [-95.58773157985567, 60.754422593716214], [-95.58774268844017, 60.75442259371622], [-95.58774268844017, 60.754413579276395], [-95.58775379702485, 60.75441357927639], [-95.58776490560925, 60.75441357927639], [-95.58776490560925, 60.754404564836584], [-95.58777601419379, 60.75440456483658], [-95.58777601419379, 60.75439555039674], [-95.58778712277842, 60.754395550396744], [-95.58779823136284, 60.75439555039675], [-95.58779823136284, 60.754386535956925], [-95.5878093399475, 60.75438653595693], [-95.58782044853191, 60.754386535956925], [-95.58782044853191, 60.754377521517114], [-95.58783155711644, 60.754377521517114], [-95.58783155711644, 60.75436850707728], [-95.58784266570109, 60.75436850707729], [-95.58785377428549, 60.75436850707728], [-95.58785377428549, 60.75435949263747], [-95.58786488287015, 60.75435949263747], [-95.58787599145457, 60.75435949263746], [-95.58787599145457, 60.75435047819764], [-95.58788710003908, 60.75435047819763], [-95.58788710003908, 60.75434146375782], [-95.58789820862374, 60.75434146375782], [-95.58790931720813, 60.75434146375782], [-95.58790931720813, 60.754332449318], [-95.58792042579284, 60.754332449317985], [-95.58794264296174, 60.754332449317985], [-95.58794264296174, 60.75432343487817], [-95.58814259748327, 60.754323434878174], [-95.58814259748327, 60.75433244931799], [-95.58816481465232, 60.754332449317985], [-95.58816481465232, 60.75434146375782], [-95.58818703182139, 60.75434146375782], [-95.58818703182139, 60.75435047819764], [-95.58820924899044, 60.754350478197644], [-95.58820924899044, 60.75435949263746], [-95.5882314661595, 60.75435949263746], [-95.5882314661595, 60.75436850707728], [-95.58824257474404, 60.75436850707729], [-95.58824257474404, 60.754377521517114], [-95.58826479191309, 60.75437752151711], [-95.58826479191309, 60.75438653595694], [-95.58828700908214, 60.75438653595692], [-95.58828700908214, 60.754395550396744], [-95.58830922625121, 60.75439555039675], [-95.58830922625121, 60.75440456483658], [-95.58832033483573, 60.75440456483657], [-95.58832033483573, 60.754413579276395], [-95.58833144342026, 60.7544135792764], [-95.58833144342026, 60.754422593716214], [-95.58834255200479, 60.754422593716214], [-95.58834255200479, 60.75443160815605], [-95.58835366058933, 60.75443160815605], [-95.58835366058933, 60.754440622595865], [-95.58836476917384, 60.754440622595865], [-95.58836476917384, 60.75445865147551], [-95.58837587775838, 60.75445865147551], [-95.58837587775838, 60.754476680355154], [-95.58838698634291, 60.75447668035514], [-95.58838698634291, 60.75448569479499], [-95.58839809492746, 60.75448569479499], [-95.58839809492746, 60.7544947092348], [-95.58840920351196, 60.7544947092348], [-95.58840920351196, 60.75450372367462], [-95.5884203120965, 60.754503723674624], [-95.5884203120965, 60.75451273811444], [-95.58843142068103, 60.75451273811444], [-95.58843142068103, 60.75452175255426], [-95.58845363785008, 60.75452175255427], [-95.58845363785008, 60.75453076699409], [-95.58847585501913, 60.75453076699409], [-95.58847585501913, 60.754539781433905], [-95.58848696360367, 60.75453978143391], [-95.58848696360367, 60.75454879587374], [-95.5884980721882, 60.75454879587374], [-95.5884980721882, 60.75455781031357], [-95.58850918077275, 60.75455781031356], [-95.58850918077275, 60.75456682475338], [-95.58852028935725, 60.75456682475338], [-95.58852028935725, 60.7545758391932], [-95.5885313979418, 60.7545758391932], [-95.5885313979418, 60.754593868072845], [-95.58854250652632, 60.754593868072845], [-95.58854250652632, 60.75461189695248], [-95.58855361511087, 60.7546118969525], [-95.58855361511087, 60.75462091139233], [-95.5885647236954, 60.75462091139232], [-95.5885647236954, 60.754629925832134], [-95.58857583227991, 60.754629925832134], [-95.58857583227991, 60.754638940271974], [-95.58858694086445, 60.75463894027197], [-95.58858694086445, 60.754647954711785], [-95.58859804944898, 60.754647954711785], [-95.58859804944898, 60.75465696915161], [-95.58862026661804, 60.75465696915162], [-95.58862026661804, 60.754665983591444], [-95.58864248378708, 60.754665983591444], [-95.58864248378708, 60.754674998031255], [-95.58865359237161, 60.75467499803125], [-95.58865359237161, 60.75468401247108], [-95.58867580954069, 60.754684012471074], [-95.58867580954069, 60.75469302691089], [-95.58869802670974, 60.75469302691089], [-95.58869802670974, 60.75470204135073], [-95.58870913529427, 60.754702041350725], [-95.58870913529427, 60.754711055790544], [-95.58873135246331, 60.75471105579055], [-95.58873135246331, 60.75472007023037], [-95.58875356963239, 60.75472007023037], [-95.58875356963239, 60.754729084670196], [-95.58880911255503, 60.754729084670196], [-95.58880911255503, 60.75473809911001], [-95.5888313297241, 60.75473809911002], [-95.5888313297241, 60.75474711354983], [-95.58885354689315, 60.75474711354983], [-95.58885354689315, 60.75475612798965], [-95.58887576406222, 60.754756127989644], [-95.58887576406222, 60.75476514242948], [-95.58889798123127, 60.754765142429484], [-95.58889798123127, 60.7547741568693], [-95.5889090898158, 60.75477415686931], [-95.5889090898158, 60.75478317130913], [-95.58893130698488, 60.75478317130912], [-95.58893130698488, 60.75479218574894], [-95.58895352415392, 60.75479218574895], [-95.58895352415392, 60.754801200188766], [-95.58913126150641, 60.75480120018877], [-95.58913126150641, 60.754792185748954], [-95.58914237009104, 60.75479218574895], [-95.58915347867546, 60.754792185748954], [-95.58915347867546, 60.75478317130914], [-95.58916458725996, 60.75478317130913], [-95.58916458725996, 60.754774156869296], [-95.58917569584463, 60.75477415686931], [-95.58918680442903, 60.7547741568693], [-95.58918680442903, 60.75476514242948], [-95.5891979130137, 60.754765142429484], [-95.58920902159808, 60.754765142429484], [-95.58920902159808, 60.75475612798965], [-95.58922013018262, 60.754756127989666], [-95.58922013018262, 60.75474711354983], [-95.58923123876728, 60.75474711354983], [-95.5892423473517, 60.75474711354984], [-95.5892423473517, 60.754738099110014], [-95.58925345593639, 60.754738099110014], [-95.58927567310528, 60.754738099110014], [-95.58927567310528, 60.754729084670196], [-95.58944230187322, 60.75472908467019], [-95.58944230187322, 60.75473809911002], [-95.58943119328869, 60.754738099110014], [-95.58943119328869, 60.75475612798966], [-95.58942008470416, 60.75475612798965], [-95.58942008470416, 60.754774156869296], [-95.58940897611964, 60.754774156869296], [-95.58940897611964, 60.754792185748954], [-95.5893978675351, 60.754792185748954], [-95.5893978675351, 60.754801200188766], [-95.58938675895057, 60.754801200188766], [-95.58938675895057, 60.75482824350824], [-95.58937565036604, 60.75482824350824], [-95.58937565036604, 60.75483725794807], [-95.58936454178152, 60.75483725794807], [-95.58936454178152, 60.754855286827706], [-95.58935343319699, 60.754855286827706], [-95.58935343319699, 60.754873315707364], [-95.58934232461245, 60.75487331570736], [-95.58934232461245, 60.754891344587], [-95.58933121602794, 60.75489134458701], [-95.58933121602794, 60.754909373466646], [-95.5893201074434, 60.75490937346665], [-95.5893201074434, 60.75491838790648], [-95.58930899885887, 60.75491838790648], [-95.58930899885887, 60.75493641678611], [-95.58929789027435, 60.754936416786116], [-95.58929789027435, 60.75495444566575], [-95.58928678168982, 60.75495444566575], [-95.58928678168982, 60.7549724745454], [-95.58927567310528, 60.754972474545404], [-95.58927567310528, 60.754990503425056], [-95.58926456452075, 60.75499050342504], [-95.58926456452075, 60.755008532304686], [-95.5892534559362, 60.755008532304686], [-95.5892534559362, 60.75501754674452], [-95.5892423473517, 60.75501754674452], [-95.5892423473517, 60.75503557562416], [-95.58923123876716, 60.75503557562416], [-95.58923123876716, 60.75505360450382], [-95.58922013018262, 60.7550536045038], [-95.58922013018262, 60.75506261894363], [-95.58920902159808, 60.75506261894363], [-95.58920902159808, 60.75507163338345], [-95.58919791301358, 60.755071633383466], [-95.58919791301358, 60.75508064782327], [-95.58918680442903, 60.75508064782327], [-95.58918680442903, 60.7550896622631], [-95.5891756958445, 60.75508966226311], [-95.5891756958445, 60.75510769114275], [-95.58916458725996, 60.75510769114275], [-95.58916458725996, 60.755116705582566], [-95.58915347867546, 60.75511670558255], [-95.58915347867546, 60.755125720022384], [-95.58914237009091, 60.75512572002239], [-95.58914237009091, 60.755143748902036], [-95.58913126150641, 60.75514374890204], [-95.58913126150641, 60.755152763341854], [-95.58912015292186, 60.75515276334186], [-95.58912015292186, 60.75516177778168], [-95.58910904433733, 60.75516177778169], [-95.58910904433733, 60.7551707922215], [-95.58909793575279, 60.755170792221506], [-95.58909793575279, 60.75517980666133], [-95.58908682716829, 60.75517980666133], [-95.58908682716829, 60.75519783554097], [-95.58907571858374, 60.755197835540976], [-95.58907571858374, 60.7552068499808], [-95.58906460999921, 60.7552068499808], [-95.58906460999921, 60.75521586442063], [-95.58905350141468, 60.755215864420634], [-95.58905350141468, 60.75522487886044], [-95.58904239283017, 60.75522487886044], [-95.58904239283017, 60.75524290774008], [-95.58903128424562, 60.75524290774008], [-95.58903128424562, 60.75525192217991], [-95.58902017566109, 60.75525192217991], [-95.58902017566109, 60.75526093661975], [-95.58900906707656, 60.75526093661973], [-95.58900906707656, 60.75527896549938], [-95.58899795849204, 60.75527896549938], [-95.58899795849204, 60.755287979939204], [-95.58898684990751, 60.75528797993919], [-95.58898684990751, 60.75529699437903], [-95.58897574132297, 60.75529699437902], [-95.58897574132297, 60.75530600881885], [-95.58896463273845, 60.75530600881885], [-95.58896463273845, 60.7553240376985], [-95.58895352415392, 60.75532403769849], [-95.58895352415392, 60.75533305213831], [-95.58894241556939, 60.75533305213831], [-95.58894241556939, 60.75534206657814], [-95.58893130698488, 60.75534206657813], [-95.58893130698488, 60.75536009545778], [-95.58892019840034, 60.75536009545778], [-95.58892019840034, 60.75536910989761], [-95.5889090898158, 60.755369109897615], [-95.5889090898158, 60.755378124337426], [-95.58889798123127, 60.75537812433742], [-95.58889798123127, 60.755387138777245], [-95.58888687264673, 60.755387138777245], [-95.58888687264673, 60.75539615321708], [-95.58887576406222, 60.75539615321708], [-95.58887576406222, 60.755414182096715], [-95.58886465547768, 60.755414182096715], [-95.58886465547768, 60.75542319653654], [-95.58885354689315, 60.755423196536555], [-95.58885354689315, 60.755441225416185], [-95.5888424383086, 60.755441225416185], [-95.5888424383086, 60.75545925429584], [-95.5888313297241, 60.755459254295836], [-95.5888313297241, 60.755477283175466], [-95.58882022113956, 60.755477283175466], [-95.58882022113956, 60.75549531205512], [-95.58880911255503, 60.755495312055125], [-95.58880911255503, 60.75551334093477], [-95.58879800397048, 60.75551334093477], [-95.58879800397048, 60.75554939869406], [-95.58878689538598, 60.75554939869405], [-95.58878689538598, 60.755594470893165], [-95.58879800397048, 60.755594470893165], [-95.58879800397048, 60.755603485333], [-95.58880911255503, 60.755603485333], [-95.58880911255503, 60.75561249977282], [-95.58882022113956, 60.755612499772816], [-95.58882022113956, 60.75562151421263], [-95.5888313297241, 60.75562151421264], [-95.5888313297241, 60.755630528652446], [-95.58885354689315, 60.75563052865245], [-95.58885354689315, 60.755639543092286], [-95.58886465547768, 60.75563954309228], [-95.58886465547768, 60.755648557532105], [-95.58888687264673, 60.755648557532105], [-95.58888687264673, 60.75565757197192], [-95.5889090898158, 60.75565757197193], [-95.5889090898158, 60.755666586411756], [-95.58892019840034, 60.755666586411756], [-95.58892019840034, 60.75567560085157], [-95.58894241556939, 60.75567560085157], [-95.58894241556939, 60.75568461529141], [-95.58876467821693, 60.75568461529139], [-95.58876467821693, 60.755675600851575], [-95.58875356963239, 60.75567560085157], [-95.58875356963239, 60.755666586411756], [-95.58874246104786, 60.755666586411756], [-95.58874246104786, 60.75565757197192], [-95.58873135246331, 60.75565757197193], [-95.58873135246331, 60.755639543092286], [-95.58872024387881, 60.75563954309229], [-95.58872024387881, 60.75562151421264], [-95.58870913529427, 60.75562151421264], [-95.58870913529427, 60.75554038425424], [-95.58872024387881, 60.75554038425425], [-95.58872024387881, 60.755522355374595], [-95.58873135246331, 60.75552235537459], [-95.58873135246331, 60.755513340934776], [-95.58874246104786, 60.75551334093476], [-95.58874246104786, 60.75549531205512], [-95.58875356963239, 60.75549531205512], [-95.58875356963239, 60.75547728317548], [-95.58876467821693, 60.75547728317547], [-95.58876467821693, 60.755468268735655], [-95.58877578680143, 60.755468268735655], [-95.58877578680143, 60.755441225416185], [-95.58878689538598, 60.75544122541619], [-95.58878689538598, 60.755387138777245], [-95.58877578680143, 60.755387138777245], [-95.58877578680143, 60.75536910989761], [-95.58876467821693, 60.7553691098976], [-95.58876467821693, 60.755351081017956], [-95.58875356963239, 60.75535108101796], [-95.58875356963239, 60.75534206657814], [-95.58874246104786, 60.75534206657813], [-95.58874246104786, 60.75533305213831], [-95.58873135246331, 60.75533305213831], [-95.58873135246331, 60.75532403769849], [-95.58872024387881, 60.75532403769849], [-95.58872024387881, 60.75531502325866], [-95.58870913529427, 60.75531502325867], [-95.58870913529427, 60.75530600881885], [-95.5886869181252, 60.75530600881885], [-95.5886869181252, 60.75529699437902], [-95.58866470095614, 60.755296994379016], [-95.58866470095614, 60.755287979939204], [-95.58864248378708, 60.7552879799392], [-95.58864248378708, 60.75527896549937], [-95.58858694086445, 60.75527896549938], [-95.58858694086445, 60.75526995105955], [-95.5885647236954, 60.75526995105956], [-95.5885647236954, 60.75526093661974], [-95.58854250652632, 60.755260936619734], [-95.58854250652632, 60.75525192217991], [-95.5885313979418, 60.75525192217991], [-95.5885313979418, 60.755242907740076], [-95.58852028935725, 60.755242907740076], [-95.58852028935725, 60.755233893300264], [-95.5884980721882, 60.755233893300264], [-95.5884980721882, 60.75522487886043], [-95.58847585501913, 60.755224878860446], [-95.58847585501913, 60.755215864420634], [-95.58846474643462, 60.75521586442063], [-95.58846474643462, 60.7552068499808], [-95.58844252926555, 60.7552068499808], [-95.58844252926555, 60.755197835540976], [-95.58843142068103, 60.75519783554097], [-95.58843142068103, 60.75518882110114], [-95.58840920351196, 60.75518882110116], [-95.58840920351196, 60.755179806661324], [-95.58838698634291, 60.75517980666134], [-95.58838698634291, 60.75517079222151], [-95.58837587775838, 60.75517079222149], [-95.58837587775838, 60.75516177778168], [-95.58835366058933, 60.75516177778167], [-95.58835366058933, 60.75515276334184], [-95.58833144342026, 60.75515276334186], [-95.58833144342026, 60.75514374890204], [-95.58830922625121, 60.755143748902036], [-95.58830922625121, 60.755134734462224], [-95.58810927172965, 60.75513473446222], [-95.58810927172965, 60.75514374890204], [-95.58808705456079, 60.755143748902036], [-95.58807594597607, 60.755143748902036], [-95.58807594597607, 60.755152763341854], [-95.58806483739168, 60.75515276334186], [-95.58805372880703, 60.755152763341854], [-95.58805372880703, 60.75516177778169], [-95.58804262022248, 60.75516177778168], [-95.58804262022248, 60.755170792221506], [-95.58803151163798, 60.7551707922215], [-95.58803151163798, 60.75517980666134], [-95.58802040305356, 60.755179806661324], [-95.5880092944689, 60.75517980666133], [-95.5880092944689, 60.755197835540976], [-95.58799818588436, 60.75519783554097], [-95.58799818588436, 60.755206849980794], [-95.58798707729986, 60.75520684998081], [-95.58798707729986, 60.755215864420634], [-95.58797596871531, 60.75521586442063], [-95.58797596871531, 60.755233893300264], [-95.58796486013078, 60.755233893300264], [-95.58796486013078, 60.755260936619734], [-95.58795375154625, 60.75526093661973], [-95.58795375154625, 60.755441225416185], [-95.58794264296174, 60.755441225416185], [-95.58794264296174, 60.755468268735655], [-95.58793153437719, 60.755468268735655], [-95.58793153437719, 60.75547728317548], [-95.58792042579266, 60.75547728317547], [-95.58792042579266, 60.755495312055125], [-95.58790931720813, 60.75549531205512], [-95.58790931720813, 60.75550432649495], [-95.58789820862361, 60.75550432649495], [-95.58789820862361, 60.75551334093476], [-95.58788710003908, 60.75551334093477], [-95.58788710003908, 60.75552235537458], [-95.5878759914547, 60.75552235537459], [-95.58786488287002, 60.75552235537459], [-95.58786488287002, 60.75553136981442], [-95.58785377428549, 60.75553136981441], [-95.58785377428549, 60.75554038425424], [-95.58783155711663, 60.75554038425424], [-95.58782044853191, 60.75554038425424], [-95.58782044853191, 60.75554939869406], [-95.58775379702472, 60.75554939869405], [-95.58775379702472, 60.75554038425424], [-95.58773157985567, 60.75554038425424], [-95.58773157985567, 60.75553136981442], [-95.58770936268662, 60.75553136981441], [-95.58770936268662, 60.75552235537459], [-95.58769825410208, 60.75552235537459], [-95.58769825410208, 60.75551334093476], [-95.587676036933, 60.75551334093477], [-95.587676036933, 60.75550432649494], [-95.58765381976396, 60.755504326494936], [-95.58765381976396, 60.75549531205512], [-95.58764271117943, 60.755495312055125], [-95.58764271117943, 60.755486297615285], [-95.58762049401038, 60.7554862976153], [-95.58762049401038, 60.75547728317547], [-95.5875982768413, 60.755477283175466], [-95.5875982768413, 60.75546826873566], [-95.58758716825677, 60.755468268735655], [-95.58758716825677, 60.75545925429583], [-95.58757605967226, 60.755459254295836], [-95.58757605967226, 60.755450239855996], [-95.58756495108771, 60.75545023985601], [-95.58756495108771, 60.755441225416185], [-95.58755384250318, 60.755441225416185], [-95.58755384250318, 60.755432210976366], [-95.58754273391865, 60.755432210976366], [-95.58754273391865, 60.7554141820967], [-95.58753162533414, 60.755414182096715], [-95.58753162533414, 60.75539615321708], [-95.5875205167496, 60.75539615321708], [-95.5875205167496, 60.75537812433743], [-95.58750940816509, 60.75537812433742], [-95.58750940816509, 60.755369109897615], [-95.58749829958055, 60.75536910989761], [-95.58749829958055, 60.75535108101796], [-95.58748719099601, 60.75535108101795], [-95.58748719099601, 60.75533305213831], [-95.58747608241148, 60.75533305213832], [-95.58747608241148, 60.75531502325867], [-95.58746497382697, 60.75531502325866], [-95.58746497382697, 60.75529699437902], [-95.58745386524244, 60.75529699437901], [-95.58745386524244, 60.755116705582566], [-95.5874427566579, 60.75511670558255], [-95.5874427566579, 60.75510769114275], [-95.58743164807336, 60.75510769114275], [-95.58743164807336, 60.755098676702914], [-95.58740943090432, 60.755098676702914], [-95.58740943090432, 60.7550896622631], [-95.5873316708126, 60.755089662263096], [-95.5873316708126, 60.755098676702914], [-95.5873205622282, 60.75509867670292], [-95.58730945364353, 60.755098676702914], [-95.58730945364353, 60.75510769114275], [-95.58729834505903, 60.755107691142754], [-95.58729834505903, 60.7551257200224], [-95.58728723647448, 60.755125720022384], [-95.58728723647448, 60.7555674275737], [-95.58729834505903, 60.7555674275737], [-95.58729834505903, 60.755585456453346], [-95.58730945364353, 60.755585456453346], [-95.58730945364353, 60.75560348533298], [-95.58732056222807, 60.75560348533298], [-95.58732056222807, 60.75562151421264], [-95.5873316708126, 60.75562151421264], [-95.5873316708126, 60.75563052865246], [-95.58734277939715, 60.755630528652446], [-95.58734277939715, 60.75563954309227], [-95.58735388798165, 60.755639543092286], [-95.58735388798165, 60.755648557532105], [-95.5873649965662, 60.75564855753211], [-95.5873649965662, 60.75565757197193], [-95.5873761051507, 60.75565757197192], [-95.5873761051507, 60.755666586411756], [-95.58739832231977, 60.755666586411756], [-95.58739832231977, 60.75567560085157], [-95.58742053948882, 60.75567560085157], [-95.58742053948882, 60.75568461529141], [-95.58747608241148, 60.75568461529141], [-95.58747608241148, 60.75569362973121], [-95.58748719099601, 60.75569362973122], [-95.58748719099601, 60.75570264417104], [-95.58749829958055, 60.755702644171045], [-95.58749829958055, 60.755711658610856], [-95.58750940816509, 60.755711658610856], [-95.58750940816509, 60.75573870193034], [-95.5875205167496, 60.75573870193035], [-95.5875205167496, 60.7557657452498], [-95.58750940816509, 60.7557657452498], [-95.58750940816509, 60.755801803009085], [-95.58749829958055, 60.75580180300909], [-95.58749829958055, 60.75581081744892], [-95.58748719099601, 60.755810817448925], [-95.58748719099601, 60.755819831888736], [-95.58745386524268, 60.755819831888736], [-95.5874427566579, 60.75581983188873], [-95.5874427566579, 60.75582884632856], [-95.587420539489, 60.75582884632856], [-95.58740943090432, 60.75582884632856], [-95.58740943090432, 60.75583786076839], [-95.5873983223199, 60.755837860768395], [-95.58738721373524, 60.75583786076838], [-95.58738721373524, 60.7558468752082], [-95.5873761051507, 60.7558468752082], [-95.5873761051507, 60.755855889648025], [-95.58736499656632, 60.755855889648025], [-95.58735388798165, 60.75585588964804], [-95.58735388798165, 60.75586490408785], [-95.58734277939728, 60.75586490408786], [-95.5873316708126, 60.75586490408785], [-95.5873316708126, 60.75587391852767], [-95.58732056222807, 60.755873918527676], [-95.58732056222807, 60.75588293296749], [-95.58730945364366, 60.755882932967495], [-95.58729834505903, 60.75588293296748], [-95.58729834505903, 60.75589194740732], [-95.58727612789012, 60.755891947407314], [-95.5872650193054, 60.75589194740732], [-95.5872650193054, 60.75590096184715], [-95.58725391072103, 60.75590096184715], [-95.58724280213636, 60.75590096184715], [-95.58724280213636, 60.75590997628696], [-95.58722058496747, 60.755909976286965], [-95.58720947638278, 60.755909976286965], [-95.58720947638278, 60.755918990726784], [-95.58719836779824, 60.755918990726784], [-95.58719836779824, 60.755928005166616]]]}}]} \ No newline at end of file diff --git a/geopandas/tests/test_overlay.py b/geopandas/tests/test_overlay.py index 000ee43..149e095 100644 --- a/geopandas/tests/test_overlay.py +++ b/geopandas/tests/test_overlay.py @@ -520,3 +520,18 @@ def test_keep_geom_type_error(): df1 = GeoDataFrame({"col1": [1, 2], "geometry": polys1}) with pytest.raises(TypeError): overlay(dfcol, df1, keep_geom_type=True) + + +def test_keep_geom_type_geometry_collection(): + # GH 1581 + + df1 = read_file(os.path.join(DATA, "geom_type", "df1.geojson")) + df2 = read_file(os.path.join(DATA, "geom_type", "df2.geojson")) + + intersection = overlay(df1, df2, keep_geom_type=True) + assert len(intersection) == 1 + assert (intersection.geom_type == "Polygon").all() + + intersection = overlay(df1, df2, keep_geom_type=False) + assert len(intersection) == 1 + assert (intersection.geom_type == "GeometryCollection").all() diff --git a/geopandas/tools/overlay.py b/geopandas/tools/overlay.py index c352e2a..7d1d97a 100644 --- a/geopandas/tools/overlay.py +++ b/geopandas/tools/overlay.py @@ -220,16 +220,24 @@ def overlay(df1, df2, how="intersection", keep_geom_type=True): result = dfunion[dfunion["__idx1"].notnull()].copy() if keep_geom_type: + key_order = result.keys() + exploded = result.reset_index(drop=True).explode() + exploded = exploded.reset_index(level=0) + type = df1.geom_type.iloc[0] if type in polys: - result = result.loc[result.geom_type.isin(polys)] + exploded = exploded.loc[exploded.geom_type.isin(polys)] elif type in lines: - result = result.loc[result.geom_type.isin(lines)] + exploded = exploded.loc[exploded.geom_type.isin(lines)] elif type in points: - result = result.loc[result.geom_type.isin(points)] + exploded = exploded.loc[exploded.geom_type.isin(points)] else: raise TypeError("`keep_geom_type` does not support {}.".format(type)) + # level_0 created with above reset_index operation + # and represents the original geometry collections + result = exploded.dissolve(by="level_0")[key_order] + result.reset_index(drop=True, inplace=True) result.drop(["__idx1", "__idx2"], axis=1, inplace=True) return result From 59d3b2b7260b485e95e06a38f1c3e218b0a40a46 Mon Sep 17 00:00:00 2001 From: Giacomo Caria <44147817+gcaria@users.noreply.github.com> Date: Sun, 22 Nov 2020 23:02:29 +0100 Subject: [PATCH 067/316] Suppress warning when calling repr of empty GeoSeries (#1673) Co-authored-by: Giacomo Caria --- geopandas/array.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/geopandas/array.py b/geopandas/array.py index 242e275..e9a3ae0 100644 --- a/geopandas/array.py +++ b/geopandas/array.py @@ -1005,7 +1005,9 @@ class GeometryArray(ExtensionArray): if precision is None: # dummy heuristic based on 10 first geometries that should # work in most cases - xmin, ymin, xmax, ymax = self[~self.isna()][:10].total_bounds + with warnings.catch_warnings(): + warnings.simplefilter("ignore", category=RuntimeWarning) + xmin, ymin, xmax, ymax = self[~self.isna()][:10].total_bounds if ( (-180 <= xmin <= 180) and (-180 <= xmax <= 180) From cdb9c375908ae71415410330ce9ac5c53753d7f1 Mon Sep 17 00:00:00 2001 From: Flavin Date: Mon, 23 Nov 2020 14:53:42 -0600 Subject: [PATCH 068/316] REF: Add geometry and crs to GDF.__init__ signature (#1714) --- geopandas/geodataframe.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/geopandas/geodataframe.py b/geopandas/geodataframe.py index 25a62e9..b7d758d 100644 --- a/geopandas/geodataframe.py +++ b/geopandas/geodataframe.py @@ -84,9 +84,7 @@ class GeoDataFrame(GeoPandasBase, DataFrame): _geometry_column_name = DEFAULT_GEO_COLUMN_NAME - def __init__(self, *args, **kwargs): - crs = kwargs.pop("crs", None) - geometry = kwargs.pop("geometry", None) + def __init__(self, *args, geometry=None, crs=None, **kwargs): with compat.ignore_shapely2_warnings(): super(GeoDataFrame, self).__init__(*args, **kwargs) From 5856332704233fcd54696999d9ee4f16f1a1ebff Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Tue, 24 Nov 2020 12:01:02 +0000 Subject: [PATCH 069/316] ENH: allow GeoDataFrame.dissolve(by=None) (#1568) * ENH: dissolve(by=None) * use array --- geopandas/geodataframe.py | 6 +++++- geopandas/tests/test_dissolve.py | 29 +++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/geopandas/geodataframe.py b/geopandas/geodataframe.py index b7d758d..0257919 100644 --- a/geopandas/geodataframe.py +++ b/geopandas/geodataframe.py @@ -1186,7 +1186,8 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} Parameters ---------- by : string, default None - Column whose values define groups to be dissolved + Column whose values define groups to be dissolved. If None, + whole GeoDataFrame is considered a single group. aggfunc : function or string, default "first" Aggregation function for manipulation of data associated with each group. Passed to pandas `groupby.agg` method. @@ -1220,6 +1221,9 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} """ + if by is None: + by = np.zeros(len(self), dtype="int64") + # Process non-spatial component data = self.drop(labels=self.geometry.name, axis=1) aggregated_data = data.groupby(by=by).agg(aggfunc) diff --git a/geopandas/tests/test_dissolve.py b/geopandas/tests/test_dissolve.py index d2485ed..cc5c6ee 100644 --- a/geopandas/tests/test_dissolve.py +++ b/geopandas/tests/test_dissolve.py @@ -99,3 +99,32 @@ def test_reset_index(nybb_polydf, first): test = nybb_polydf.dissolve("manhattan_bronx", as_index=False) comparison = first.reset_index() assert_frame_equal(comparison, test, check_column_type=False) + + +def test_dissolve_none(nybb_polydf): + test = nybb_polydf.dissolve(by=None) + expected = GeoDataFrame( + { + nybb_polydf.geometry.name: [nybb_polydf.geometry.unary_union], + "BoroName": ["Staten Island"], + "BoroCode": [5], + "manhattan_bronx": [5], + }, + geometry=nybb_polydf.geometry.name, + crs=nybb_polydf.crs, + ) + assert_frame_equal(expected, test, check_column_type=False) + + +def test_dissolve_none_mean(nybb_polydf): + test = nybb_polydf.dissolve(aggfunc="mean") + expected = GeoDataFrame( + { + nybb_polydf.geometry.name: [nybb_polydf.geometry.unary_union], + "BoroCode": [3.0], + "manhattan_bronx": [5.4], + }, + geometry=nybb_polydf.geometry.name, + crs=nybb_polydf.crs, + ) + assert_frame_equal(expected, test, check_column_type=False) From c08594463092741b81362ea6f3b143e2dde25556 Mon Sep 17 00:00:00 2001 From: Giacomo Caria <44147817+gcaria@users.noreply.github.com> Date: Wed, 25 Nov 2020 23:15:36 +0100 Subject: [PATCH 070/316] REG: Do not attempt to plot empty geometries (#1702) * Do not attempt to plot empty geometries. Fixes #1657 * Add test for plotting of empty geometry * Add warning when plotting GeoSeries with only empty geometries * Add test for plotting GeoSeries with only empty geometry Co-authored-by: Giacomo Caria --- geopandas/plotting.py | 14 ++++++++++++-- geopandas/tests/test_plotting.py | 21 +++++++++++++++++++++ 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/geopandas/plotting.py b/geopandas/plotting.py index e84dcfb..b4df187 100644 --- a/geopandas/plotting.py +++ b/geopandas/plotting.py @@ -45,7 +45,7 @@ def _flatten_multi_geoms(geoms, prefix="Multi"): return geoms, np.arange(len(geoms)) for ix, geom in enumerate(geoms): - if geom.type.startswith(prefix): + if geom.type.startswith(prefix) and not geom.is_empty: for poly in geom.geoms: components.append(poly) component_index.append(ix) @@ -151,7 +151,9 @@ def _plot_polygon_collection( _expand_kwargs(kwargs, multiindex) - collection = PatchCollection([PolygonPatch(poly) for poly in geoms], **kwargs) + collection = PatchCollection( + [PolygonPatch(poly) for poly in geoms if not poly.is_empty], **kwargs + ) if values is not None: collection.set_array(np.asarray(values)) @@ -385,6 +387,14 @@ def plot_series( ) return ax + if s.is_empty.all(): + warnings.warn( + "The GeoSeries you are attempting to plot is " + "composed of empty geometries. Nothing has been displayed.", + UserWarning, + ) + return ax + # if cmap is specified, create range of colors based on cmap values = None if cmap is not None: diff --git a/geopandas/tests/test_plotting.py b/geopandas/tests/test_plotting.py index 60c307e..6653af3 100644 --- a/geopandas/tests/test_plotting.py +++ b/geopandas/tests/test_plotting.py @@ -4,6 +4,7 @@ import warnings import numpy as np import pandas as pd +from shapely import wkt from shapely.affinity import rotate from shapely.geometry import ( MultiPolygon, @@ -19,6 +20,7 @@ from shapely.geometry import ( from geopandas import GeoDataFrame, GeoSeries, read_file from geopandas.datasets import get_path +import geopandas._compat as compat import pytest @@ -277,6 +279,11 @@ class TestPointPlotting: np.testing.assert_array_equal(actual_colors_orig[1], actual_colors_sub[0]) def test_empty_plot(self): + + s = GeoSeries([Polygon()]) + with pytest.warns(UserWarning): + ax = s.plot() + assert len(ax.collections) == 0 s = GeoSeries([]) with pytest.warns(UserWarning): ax = s.plot() @@ -286,6 +293,20 @@ class TestPointPlotting: ax = df.plot() assert len(ax.collections) == 0 + def test_empty_geometry(self): + + if compat.USE_PYGEOS: + s = GeoSeries([wkt.loads("POLYGON EMPTY")]) + s = GeoSeries( + [Polygon([(0, 0), (1, 0), (1, 1)]), wkt.loads("POLYGON EMPTY")] + ) + ax = s.plot() + assert len(ax.collections) == 1 + if not compat.USE_PYGEOS: + s = GeoSeries([Polygon([(0, 0), (1, 0), (1, 1)]), Polygon()]) + ax = s.plot() + assert len(ax.collections) == 1 + def test_multipoints(self): # MultiPoints From a0edbee7d2d950db6d4f9d8068f0b1e09004e51d Mon Sep 17 00:00:00 2001 From: "Alan D. Snow" Date: Fri, 27 Nov 2020 04:15:26 -0600 Subject: [PATCH 071/316] ENH: Add estimate_utm_crs method to GeoSeries and GeoDataFrame (#1646) * ENH: Add estimate_tum_crs method to GeoSeries and GeoDataFrame * Add examples & expect release in 0.9 * undo changes in CI * Update geopandas/geoseries.py Co-authored-by: Martin Fleischmann * pytest.mark.skipif Co-authored-by: Martin Fleischmann * Update geopandas/geodataframe.py Co-authored-by: Martin Fleischmann * more skipif * use pyproj to transform bounds Co-authored-by: Martin Fleischmann --- doc/source/docs/reference/geodataframe.rst | 1 + doc/source/docs/reference/geoseries.rst | 1 + geopandas/geodataframe.py | 40 ++++++++++++ geopandas/geoseries.py | 73 ++++++++++++++++++++++ geopandas/tests/test_geodataframe.py | 14 +++++ geopandas/tests/test_geoseries.py | 32 ++++++++++ 6 files changed, 161 insertions(+) diff --git a/doc/source/docs/reference/geodataframe.rst b/doc/source/docs/reference/geodataframe.rst index 05ae651..71c1a85 100644 --- a/doc/source/docs/reference/geodataframe.rst +++ b/doc/source/docs/reference/geodataframe.rst @@ -37,6 +37,7 @@ Projection handling GeoDataFrame.crs GeoDataFrame.set_crs GeoDataFrame.to_crs + GeoDataFrame.estimate_utm_crs Active geometry handling ------------------------ diff --git a/doc/source/docs/reference/geoseries.rst b/doc/source/docs/reference/geoseries.rst index fb545b2..a1499d3 100644 --- a/doc/source/docs/reference/geoseries.rst +++ b/doc/source/docs/reference/geoseries.rst @@ -123,6 +123,7 @@ Projection handling GeoSeries.crs GeoSeries.set_crs GeoSeries.to_crs + GeoSeries.estimate_utm_crs Missing values -------------- diff --git a/geopandas/geodataframe.py b/geopandas/geodataframe.py index 0257919..e9a2047 100644 --- a/geopandas/geodataframe.py +++ b/geopandas/geodataframe.py @@ -1075,6 +1075,46 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} if not inplace: return df + def estimate_utm_crs(self, datum_name="WGS 84"): + """Returns the estimated UTM CRS based on the bounds of the dataset. + + .. versionadded:: 0.9 + + .. note:: Requires pyproj 3+ + + Parameters + ---------- + datum_name : str, optional + The name of the datum to use in the query. Default is WGS 84. + + Returns + ------- + pyproj.CRS + + Examples + -------- + >>> world = geopandas.read_file( + ... geopandas.datasets.get_path("naturalearth_lowres") + ... ) + >>> germany = world.loc[world.name == "Germany"] + >>> germany.estimate_utm_crs() # doctest: +SKIP + + Name: WGS 84 / UTM zone 32N + Axis Info [cartesian]: + - E[east]: Easting (metre) + - N[north]: Northing (metre) + Area of Use: + - name: World - N hemisphere - 6°E to 12°E - by country + - bounds: (6.0, 0.0, 12.0, 84.0) + Coordinate Operation: + - name: UTM zone 32N + - method: Transverse Mercator + Datum: World Geodetic System 1984 + - Ellipsoid: WGS 84 + - Prime Meridian: Greenwich + """ + return self.geometry.estimate_utm_crs(datum_name=datum_name) + def __getitem__(self, key): """ If the result is a column containing only 'geometry', return a diff --git a/geopandas/geoseries.py b/geopandas/geoseries.py index b12ae0a..02e5f11 100644 --- a/geopandas/geoseries.py +++ b/geopandas/geoseries.py @@ -777,6 +777,79 @@ class GeoSeries(GeoPandasBase, Series): GeometryArray(new_data), crs=crs, index=self.index, name=self.name ) + def estimate_utm_crs(self, datum_name="WGS 84"): + """Returns the estimated UTM CRS based on the bounds of the dataset. + + .. versionadded:: 0.9 + + .. note:: Requires pyproj 3+ + + Parameters + ---------- + datum_name : str, optional + The name of the datum to use in the query. Default is WGS 84. + + Returns + ------- + pyproj.CRS + + Examples + -------- + >>> world = geopandas.read_file( + ... geopandas.datasets.get_path("naturalearth_lowres") + ... ) + >>> germany = world.loc[world.name == "Germany"] + >>> germany.geometry.estimate_utm_crs() # doctest: +SKIP + + Name: WGS 84 / UTM zone 32N + Axis Info [cartesian]: + - E[east]: Easting (metre) + - N[north]: Northing (metre) + Area of Use: + - name: World - N hemisphere - 6°E to 12°E - by country + - bounds: (6.0, 0.0, 12.0, 84.0) + Coordinate Operation: + - name: UTM zone 32N + - method: Transverse Mercator + Datum: World Geodetic System 1984 + - Ellipsoid: WGS 84 + - Prime Meridian: Greenwich + """ + try: + from pyproj.aoi import AreaOfInterest + from pyproj.database import query_utm_crs_info + except ImportError: + raise RuntimeError("pyproj 3+ required for estimate_utm_crs.") + + if not self.crs: + raise RuntimeError("crs must be set to estimate UTM CRS.") + + minx, miny, maxx, maxy = self.total_bounds + # ensure using geographic coordinates + if not self.crs.is_geographic: + lon, lat = Transformer.from_crs( + self.crs, "EPSG:4326", always_xy=True + ).transform((minx, maxx, minx, maxx), (miny, miny, maxy, maxy)) + x_center = np.mean(lon) + y_center = np.mean(lat) + else: + x_center = np.mean([minx, maxx]) + y_center = np.mean([miny, maxy]) + + utm_crs_list = query_utm_crs_info( + datum_name=datum_name, + area_of_interest=AreaOfInterest( + west_lon_degree=x_center, + south_lat_degree=y_center, + east_lon_degree=x_center, + north_lat_degree=y_center, + ), + ) + try: + return CRS.from_epsg(utm_crs_list[0].code) + except IndexError: + raise RuntimeError("Unable to determine UTM CRS") + def to_json(self, **kwargs): """ Returns a GeoJSON string representation of the GeoSeries. diff --git a/geopandas/tests/test_geodataframe.py b/geopandas/tests/test_geodataframe.py index 07d011e..4c6bc69 100644 --- a/geopandas/tests/test_geodataframe.py +++ b/geopandas/tests/test_geodataframe.py @@ -2,11 +2,14 @@ import json import os import shutil import tempfile +from distutils.version import LooseVersion import numpy as np import pandas as pd import fiona +import pyproj +from pyproj import CRS from pyproj.exceptions import CRSError from shapely.geometry import Point @@ -20,6 +23,9 @@ from pandas.testing import assert_frame_equal, assert_index_equal, assert_series import pytest +PYPROJ_LT_3 = LooseVersion(pyproj.__version__) < LooseVersion("3") + + class TestDataFrame: def setup_method(self): N = 10 @@ -659,6 +665,14 @@ class TestDataFrame: assert_frame_equal(self.df, unpickled) assert self.df.crs == unpickled.crs + def test_estimate_utm_crs(self): + if PYPROJ_LT_3: + with pytest.raises(RuntimeError, match=r"pyproj 3\+ required"): + self.df.estimate_utm_crs() + else: + assert self.df.estimate_utm_crs() == CRS("EPSG:32618") + assert self.df.estimate_utm_crs("NAD83") == CRS("EPSG:26918") + def check_geodataframe(df, geometry_column="geometry"): assert isinstance(df, GeoDataFrame) diff --git a/geopandas/tests/test_geoseries.py b/geopandas/tests/test_geoseries.py index 72b6f23..9bcc763 100644 --- a/geopandas/tests/test_geoseries.py +++ b/geopandas/tests/test_geoseries.py @@ -1,3 +1,4 @@ +from distutils.version import LooseVersion import json import os import random @@ -8,6 +9,7 @@ import numpy as np from numpy.testing import assert_array_equal import pandas as pd +from pyproj import CRS from shapely.geometry import ( LineString, MultiLineString, @@ -17,6 +19,7 @@ from shapely.geometry import ( Polygon, ) from shapely.geometry.base import BaseGeometry +import pyproj from geopandas import GeoSeries, GeoDataFrame from geopandas.array import GeometryArray, GeometryDtype @@ -26,6 +29,9 @@ from pandas.testing import assert_series_equal import pytest +PYPROJ_LT_3 = LooseVersion(pyproj.__version__) < LooseVersion("3") + + class TestSeries: def setup_method(self): self.tempdir = tempfile.mkdtemp() @@ -182,6 +188,32 @@ class TestSeries: with pytest.raises(ValueError): self.landmarks.to_crs(crs=None, epsg=None) + def test_estimate_utm_crs__geographic(self): + if PYPROJ_LT_3: + with pytest.raises(RuntimeError, match=r"pyproj 3\+ required"): + self.landmarks.estimate_utm_crs() + else: + assert self.landmarks.estimate_utm_crs() == CRS("EPSG:32618") + assert self.landmarks.estimate_utm_crs("NAD83") == CRS("EPSG:26918") + + @pytest.mark.skipif(PYPROJ_LT_3, reason="requires pyproj 3 or higher") + def test_estimate_utm_crs__projected(self): + assert self.landmarks.to_crs("EPSG:3857").estimate_utm_crs() == CRS( + "EPSG:32618" + ) + + @pytest.mark.skipif(PYPROJ_LT_3, reason="requires pyproj 3 or higher") + def test_estimate_utm_crs__out_of_bounds(self): + with pytest.raises(RuntimeError, match="Unable to determine UTM CRS"): + GeoSeries( + [Polygon([(0, 90), (1, 90), (2, 90)])], crs="EPSG:4326" + ).estimate_utm_crs() + + @pytest.mark.skipif(PYPROJ_LT_3, reason="requires pyproj 3 or higher") + def test_estimate_utm_crs__missing_crs(self): + with pytest.raises(RuntimeError, match="crs must be set"): + GeoSeries([Polygon([(0, 90), (1, 90), (2, 90)])]).estimate_utm_crs() + def test_fillna(self): # default is to fill with empty geometry na = self.na_none.fillna() From c325570e86ec534857ed03fd256f2426e3b2aad0 Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Fri, 27 Nov 2020 10:30:23 +0000 Subject: [PATCH 072/316] CI: add Python3.9 to CI matrix (#1703) --- .github/workflows/tests.yaml | 1 + ci/envs/39-latest-conda-forge.yaml | 31 ++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 ci/envs/39-latest-conda-forge.yaml diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 6a5b469..b93554b 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -33,6 +33,7 @@ jobs: - ci/envs/37-latest-defaults.yaml - ci/envs/37-latest-conda-forge.yaml - ci/envs/38-latest-conda-forge.yaml + - ci/envs/39-latest-conda-forge.yaml include: - env: ci/envs/37-latest-conda-forge.yaml os: macos-latest diff --git a/ci/envs/39-latest-conda-forge.yaml b/ci/envs/39-latest-conda-forge.yaml new file mode 100644 index 0000000..1f85652 --- /dev/null +++ b/ci/envs/39-latest-conda-forge.yaml @@ -0,0 +1,31 @@ +name: test +channels: + - conda-forge +dependencies: + - python=3.9 + # required + - pandas + - shapely + - fiona + - pyproj + - pygeos + # testing + - pytest + - pytest-cov + - pytest-xdist + - fsspec + # optional + - rtree + - matplotlib + - descartes + - mapclassify + - geopy + # installed in tests.yaml, because not available on windows + # - postgis + - SQLalchemy + - psycopg2 + - libspatialite + - geoalchemy2 + - pyarrow + # doctest testing + - pytest-doctestplus From 5096498fcd31ad51b0e8f21239b9c4a402b0468d Mon Sep 17 00:00:00 2001 From: Martijn Visser Date: Thu, 3 Dec 2020 23:58:38 +0100 Subject: [PATCH 073/316] DOC: remove misplaced curly bracket from projection.rst (#1721) --- doc/source/docs/user_guide/projections.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/docs/user_guide/projections.rst b/doc/source/docs/user_guide/projections.rst index 82e6a93..21d4fc7 100644 --- a/doc/source/docs/user_guide/projections.rst +++ b/doc/source/docs/user_guide/projections.rst @@ -71,7 +71,7 @@ the :attr:`GeoSeries.crs` attribute): .. sourcecode:: python - my_geoseries = my_geoseries.set_crs("EPSG:4326"}) + my_geoseries = my_geoseries.set_crs("EPSG:4326") my_geoseries = my_geoseries.set_crs(epsg=4326) From e506de5900685cb3cae72dc89ea6f9ff92ceaf45 Mon Sep 17 00:00:00 2001 From: Jake Clarke Date: Mon, 7 Dec 2020 20:34:03 +1100 Subject: [PATCH 074/316] DOC: Fixing a typo in "South America" (#1725) --- doc/source/docs/user_guide/set_operations.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/docs/user_guide/set_operations.rst b/doc/source/docs/user_guide/set_operations.rst index 676a25f..bb01c87 100644 --- a/doc/source/docs/user_guide/set_operations.rst +++ b/doc/source/docs/user_guide/set_operations.rst @@ -138,7 +138,7 @@ First, we load the countries and cities example datasets and select : world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres')) capitals = geopandas.read_file(geopandas.datasets.get_path('naturalearth_cities')) - # Select South Amarica and some columns + # Select South America and some columns countries = world[world['continent'] == "South America"] countries = countries[['geometry', 'name']] From 1ef924270e950c6e8862335c42ace8d90e5cb3db Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Sun, 20 Dec 2020 16:48:02 +0100 Subject: [PATCH 075/316] DEP: No longer rely on descartes, use own version of PolygonPatch (#1677) --- README.md | 6 ++- ci/envs/36-minimal.yaml | 1 - ci/envs/36-pd025.yaml | 1 - ci/envs/37-dev.yaml | 1 - ci/envs/37-latest-conda-forge.yaml | 1 - ci/envs/37-latest-defaults.yaml | 1 - ci/envs/38-latest-conda-forge.yaml | 1 - doc/environment.yml | 1 - doc/source/about/about_geopandas.rst | 3 +- .../user_guide/geometric_manipulations.rst | 3 +- doc/source/getting_started/install.rst | 3 -- doc/source/index.rst | 3 +- environment.yml | 2 +- geopandas/plotting.py | 37 ++++++++++++++----- geopandas/tests/test_api.py | 1 - geopandas/tests/test_plotting.py | 16 ++++++++ requirements-dev.txt | 1 - 17 files changed, 51 insertions(+), 31 deletions(-) diff --git a/README.md b/README.md index 4c5ed38..ab9fd4e 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ for all details. GeoPandas depends on the following packages: - ``fiona`` - ``pyproj`` -Further, ``descartes`` and ``matplotlib`` are optional dependencies, required +Further, ``matplotlib`` is an optional dependency, required for plotting, and [``rtree``](https://github.com/Toblerity/rtree) is an optional dependency, required for spatial joins. ``rtree`` requires the C library [``libspatialindex``](https://github.com/libspatialindex/libspatialindex). @@ -87,7 +87,9 @@ Other operations return GeoPandas objects: ![Example 2](examples/test_buffer.png) -GeoPandas objects also know how to plot themselves. GeoPandas uses [descartes](https://pypi.python.org/pypi/descartes) to generate a [matplotlib](http://matplotlib.org) plot. To generate a plot of our GeoSeries, use: +GeoPandas objects also know how to plot themselves. GeoPandas uses +[matplotlib](http://matplotlib.org) for plotting. To generate a plot of our +GeoSeries, use: >>> g.plot() diff --git a/ci/envs/36-minimal.yaml b/ci/envs/36-minimal.yaml index 16e9d99..91a55e2 100644 --- a/ci/envs/36-minimal.yaml +++ b/ci/envs/36-minimal.yaml @@ -18,7 +18,6 @@ dependencies: # optional - rtree - matplotlib - - descartes - matplotlib=2.2 - mapclassify>=2.2.0 - geopy diff --git a/ci/envs/36-pd025.yaml b/ci/envs/36-pd025.yaml index 1d4fe4e..56a9e5a 100644 --- a/ci/envs/36-pd025.yaml +++ b/ci/envs/36-pd025.yaml @@ -17,7 +17,6 @@ dependencies: # optional - rtree - matplotlib - - descartes #- geopy - SQLalchemy - libspatialite diff --git a/ci/envs/37-dev.yaml b/ci/envs/37-dev.yaml index 266537f..0f5a270 100644 --- a/ci/envs/37-dev.yaml +++ b/ci/envs/37-dev.yaml @@ -15,7 +15,6 @@ dependencies: - fsspec # optional - rtree - - descartes #- geopy - SQLalchemy - libspatialite diff --git a/ci/envs/37-latest-conda-forge.yaml b/ci/envs/37-latest-conda-forge.yaml index 6023ab6..a0d148a 100644 --- a/ci/envs/37-latest-conda-forge.yaml +++ b/ci/envs/37-latest-conda-forge.yaml @@ -17,7 +17,6 @@ dependencies: # optional - rtree - matplotlib - - descartes - mapclassify - geopy - SQLalchemy diff --git a/ci/envs/37-latest-defaults.yaml b/ci/envs/37-latest-defaults.yaml index baecc06..c7664dc 100644 --- a/ci/envs/37-latest-defaults.yaml +++ b/ci/envs/37-latest-defaults.yaml @@ -17,7 +17,6 @@ dependencies: # optional - rtree - matplotlib - - descartes #- geopy - SQLalchemy - libspatialite diff --git a/ci/envs/38-latest-conda-forge.yaml b/ci/envs/38-latest-conda-forge.yaml index 462fefc..5ebdc26 100644 --- a/ci/envs/38-latest-conda-forge.yaml +++ b/ci/envs/38-latest-conda-forge.yaml @@ -17,7 +17,6 @@ dependencies: # optional - rtree - matplotlib - - descartes - mapclassify - geopy # installed in tests.yaml, because not available on windows diff --git a/doc/environment.yml b/doc/environment.yml index 8eddaa5..0238ef8 100644 --- a/doc/environment.yml +++ b/doc/environment.yml @@ -10,7 +10,6 @@ dependencies: - rtree=0.9.4 - geopy=1.21.0 - matplotlib=3.1.3 -- descartes=1.1.0 - mapclassify=2.2.0 - sphinx=2.4.1 - pydata-sphinx-theme=0.3.1 diff --git a/doc/source/about/about_geopandas.rst b/doc/source/about/about_geopandas.rst index 98d0152..966c88a 100644 --- a/doc/source/about/about_geopandas.rst +++ b/doc/source/about/about_geopandas.rst @@ -5,12 +5,11 @@ GeoPandas is an open source project to make working with geospatial data in python easier. GeoPandas extends the datatypes used by `pandas`_ to allow spatial operations on geometric types. Geometric operations are performed by `shapely`_. Geopandas further depends on -`fiona`_ for file access and `descartes`_ and `matplotlib`_ for plotting. +`fiona`_ for file access and `matplotlib`_ for plotting. .. _pandas: http://pandas.pydata.org .. _shapely: https://shapely.readthedocs.io .. _fiona: https://fiona.readthedocs.io -.. _Descartes: https://pypi.python.org/pypi/descartes .. _matplotlib: http://matplotlib.org Description diff --git a/doc/source/docs/user_guide/geometric_manipulations.rst b/doc/source/docs/user_guide/geometric_manipulations.rst index 0ce70fc..4df1b8f 100644 --- a/doc/source/docs/user_guide/geometric_manipulations.rst +++ b/doc/source/docs/user_guide/geometric_manipulations.rst @@ -114,7 +114,7 @@ Other operations return GeoPandas objects: .. image:: ../../_static/test_buffer.png -GeoPandas objects also know how to plot themselves. GeoPandas uses `descartes`_ to generate a `matplotlib`_ plot. To generate a plot of our GeoSeries, use: +GeoPandas objects also know how to plot themselves. GeoPandas uses `matplotlib`_ for plotting. To generate a plot of our GeoSeries, use: .. sourcecode:: python @@ -222,7 +222,6 @@ borough that are in the holes: 5 0.558075 dtype: float64 -.. _Descartes: https://pypi.python.org/pypi/descartes .. _matplotlib: http://matplotlib.org .. _fiona: http://fiona.readthedocs.io/en/latest/ .. _geopy: https://github.com/geopy/geopy diff --git a/doc/source/getting_started/install.rst b/doc/source/getting_started/install.rst index fcb2588..398b13d 100644 --- a/doc/source/getting_started/install.rst +++ b/doc/source/getting_started/install.rst @@ -156,7 +156,6 @@ Further, optional dependencies are: For plotting, these additional packages may be used: - `matplotlib`_ (>= 2.2.0) -- `descartes`_ - `mapclassify`_ (>= 2.2.0) @@ -213,8 +212,6 @@ More specifically, whether the speedups are used or not is determined by: .. _fiona: https://fiona.readthedocs.io -.. _Descartes: https://pypi.python.org/pypi/descartes - .. _matplotlib: http://matplotlib.org .. _geopy: https://github.com/geopy/geopy diff --git a/doc/source/index.rst b/doc/source/index.rst index ddfcc93..95498db 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -5,12 +5,11 @@ GeoPandas is an open source project to make working with geospatial data in python easier. GeoPandas extends the datatypes used by `pandas`_ to allow spatial operations on geometric types. Geometric operations are performed by `shapely`_. Geopandas further depends on -`fiona`_ for file access and `descartes`_ and `matplotlib`_ for plotting. +`fiona`_ for file access and `matplotlib`_ for plotting. .. _pandas: http://pandas.pydata.org .. _shapely: https://shapely.readthedocs.io .. _fiona: https://fiona.readthedocs.io -.. _Descartes: https://pypi.python.org/pypi/descartes .. _matplotlib: http://matplotlib.org Description diff --git a/environment.yml b/environment.yml index 531543d..a116f56 100644 --- a/environment.yml +++ b/environment.yml @@ -16,8 +16,8 @@ dependencies: - geopy # plotting - - descartes>=1.0 - matplotlib>=2.2 + - mapclassify # testing - pytest>=3.1.0 diff --git a/geopandas/plotting.py b/geopandas/plotting.py index b4df187..ddf6d2e 100644 --- a/geopandas/plotting.py +++ b/geopandas/plotting.py @@ -94,6 +94,32 @@ def _expand_kwargs(kwargs, multiindex): kwargs[att] = np.take(value, multiindex, axis=0) +def _PolygonPatch(polygon, **kwargs): + """Constructs a matplotlib patch from a Polygon geometry + + The `kwargs` are those supported by the matplotlib.patches.PathPatch class + constructor. Returns an instance of matplotlib.patches.PathPatch. + + Example (using Shapely Point and a matplotlib axes):: + + b = shapely.geometry.Point(0, 0).buffer(1.0) + patch = _PolygonPatch(b, fc='blue', ec='blue', alpha=0.5) + ax.add_patch(patch) + + GeoPandas originally relied on the descartes package by Sean Gillies + (BSD license, https://pypi.org/project/descartes) for PolygonPatch, but + this dependency was removed in favor of the below matplotlib code. + """ + from matplotlib.patches import PathPatch + from matplotlib.path import Path + + path = Path.make_compound_path( + Path(np.asarray(polygon.exterior.coords)[:, :2]), + *[Path(np.asarray(ring.coords)[:, :2]) for ring in polygon.interiors] + ) + return PathPatch(path, **kwargs) + + def _plot_polygon_collection( ax, geoms, values=None, color=None, cmap=None, vmin=None, vmax=None, **kwargs ): @@ -123,15 +149,6 @@ def _plot_polygon_collection( ------- collection : matplotlib.collections.Collection that was plotted """ - - try: - from descartes.patch import PolygonPatch - except ImportError: - raise ImportError( - "The descartes package is required for plotting polygons in geopandas. " - "You can install it using 'conda install -c conda-forge descartes' or " - "'pip install descartes'." - ) from matplotlib.collections import PatchCollection geoms, multiindex = _flatten_multi_geoms(geoms) @@ -152,7 +169,7 @@ def _plot_polygon_collection( _expand_kwargs(kwargs, multiindex) collection = PatchCollection( - [PolygonPatch(poly) for poly in geoms if not poly.is_empty], **kwargs + [_PolygonPatch(poly) for poly in geoms if not poly.is_empty], **kwargs ) if values is not None: diff --git a/geopandas/tests/test_api.py b/geopandas/tests/test_api.py index 22f9e85..4181ec0 100644 --- a/geopandas/tests/test_api.py +++ b/geopandas/tests/test_api.py @@ -12,7 +12,6 @@ def test_no_additional_imports(): "py", "ipython", # "matplotlib", # matplotlib gets imported by pandas, see below - "descartes", "mapclassify", # 'rtree', # rtree actually gets imported if installed "sqlalchemy", diff --git a/geopandas/tests/test_plotting.py b/geopandas/tests/test_plotting.py index 6653af3..fe1eb27 100644 --- a/geopandas/tests/test_plotting.py +++ b/geopandas/tests/test_plotting.py @@ -1469,6 +1469,22 @@ def test_column_values(): ax = df.plot(column=np.array([1, 2, 3])) +def test_polygon_patch(): + # test adapted from descartes by Sean Gillies + # (BSD license, https://pypi.org/project/descartes). + from geopandas.plotting import _PolygonPatch + from matplotlib.patches import PathPatch + + polygon = ( + Point(0, 0).buffer(10.0).difference(MultiPoint([(-5, 0), (5, 0)]).buffer(3.0)) + ) + + patch = _PolygonPatch(polygon) + assert isinstance(patch, PathPatch) + path = patch.get_path() + assert len(path.vertices) == len(path.codes) == 198 + + def _check_colors(N, actual_colors, expected_colors, alpha=None): """ Asserts that the members of `collection` match the `expected_colors` diff --git a/requirements-dev.txt b/requirements-dev.txt index 6462768..1d2d1e7 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -12,7 +12,6 @@ SQLAlchemy>=0.8.3 geopy # plotting -descartes>=1.0 matplotlib>=2.2 mapclassify From bdbca79d91b86b644df16182902928a6b98866b4 Mon Sep 17 00:00:00 2001 From: Isaac Boates Date: Sun, 27 Dec 2020 12:25:04 +0100 Subject: [PATCH 076/316] ENH: fallback to DataFrame.explode() when the specified column is not the geometry column (#1720) * WIP: Added check to GeoDataFrame.explode() to see if it should fall back to the default pandas method of the same name * Will geometrically explode if the column dtype is geometry, and defaults to active geometry column if left as None * changed type check to isinstance * moved explode() definition from GeoPandasBase to GeoSeries * Removed ignore_index from explode() args * cleanup * black * skipif * skipif pandas 024 * added test for epxlode pandas fallback when column param is provided as arg instead of kwarg * Using assert_geodataframe_equal instead of assert_frame equal and test column param supplied as arg or kwarg in both cases per function (ignore_index=True or False) * blacken + docs Co-authored-by: Martin Fleischmann --- doc/source/docs/reference/geoseries.rst | 5 +- geopandas/base.py | 52 +----------------- geopandas/geodataframe.py | 13 ++++- geopandas/geoseries.py | 54 ++++++++++++++++++- geopandas/tests/test_geom_methods.py | 70 +++++++++++++++++++++++++ 5 files changed, 138 insertions(+), 56 deletions(-) diff --git a/doc/source/docs/reference/geoseries.rst b/doc/source/docs/reference/geoseries.rst index a1499d3..a657d21 100644 --- a/doc/source/docs/reference/geoseries.rst +++ b/doc/source/docs/reference/geoseries.rst @@ -96,13 +96,14 @@ Affine transformations GeoSeries.skew GeoSeries.translate -Aggregating methods -------------------- +Aggregating and exploding +------------------------- .. autosummary:: :toctree: api/ GeoSeries.unary_union + GeoSeries.explode Reading and writing files ------------------------- diff --git a/geopandas/base.py b/geopandas/base.py index e7cfed2..e675a51 100644 --- a/geopandas/base.py +++ b/geopandas/base.py @@ -2,14 +2,12 @@ from warnings import warn import numpy as np import pandas as pd -from pandas import DataFrame, MultiIndex, Series +from pandas import DataFrame, Series from shapely.geometry import box from shapely.geometry.base import BaseGeometry from shapely.ops import cascaded_union -import geopandas as gpd - from .array import GeometryArray, GeometryDtype @@ -1200,54 +1198,6 @@ GeometryCollection "skew", self, xs, ys, origin=origin, use_radians=use_radians ) - def explode(self): - """ - Explode multi-part geometries into multiple single geometries. - - Single rows can become multiple rows. - This is analogous to PostGIS's ST_Dump(). The 'path' index is the - second level of the returned MultiIndex - - Returns - ------ - A GeoSeries with a MultiIndex. The levels of the MultiIndex are the - original index and a zero-based integer index that counts the - number of single geometries within a multi-part geometry. - - Examples - -------- - >>> from shapely.geometry import MultiPoint - >>> s = geopandas.GeoSeries( - ... [MultiPoint([(0, 0), (1, 1)]), MultiPoint([(2, 2), (3, 3), (4, 4)])] - ... ) - >>> s - 0 MULTIPOINT (0.00000 0.00000, 1.00000 1.00000) - 1 MULTIPOINT (2.00000 2.00000, 3.00000 3.00000, ... - dtype: geometry - - >>> s.explode() - 0 0 POINT (0.00000 0.00000) - 1 POINT (1.00000 1.00000) - 1 0 POINT (2.00000 2.00000) - 1 POINT (3.00000 3.00000) - 2 POINT (4.00000 4.00000) - dtype: geometry - - """ - index = [] - geometries = [] - for idx, s in self.geometry.iteritems(): - if s.type.startswith("Multi") or s.type == "GeometryCollection": - geoms = s.geoms - idxs = [(idx, i) for i in range(len(geoms))] - else: - geoms = [s] - idxs = [(idx, 0)] - index.extend(idxs) - geometries.extend(geoms) - index = MultiIndex.from_tuples(index, names=self.index.names + [None]) - return gpd.GeoSeries(geometries, index=index, crs=self.crs).__finalize__(self) - @property def cx(self): """ diff --git a/geopandas/geodataframe.py b/geopandas/geodataframe.py index e9a2047..d122e53 100644 --- a/geopandas/geodataframe.py +++ b/geopandas/geodataframe.py @@ -1288,8 +1288,8 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} return aggregated - # overrides GeoPandasBase method - def explode(self): + # overrides the pandas native explode method to break up features geometrically + def explode(self, column=None, **kwargs): """ Explode muti-part geometries into multiple single geometries. @@ -1333,6 +1333,15 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} 1 0 name2 POINT (2.00000 1.00000) 1 name2 POINT (0.00000 0.00000) """ + + # If no column is specified then default to the active geometry column + if column is None: + column = self.geometry.name + # If the specified column is not a geometry dtype use pandas explode + if not isinstance(self[column].dtype, GeometryDtype): + return super(GeoDataFrame, self).explode(column, **kwargs) + # TODO: make sure index behaviour is consistent + df_copy = self.copy() if "level_1" in df_copy.columns: # GH1393 diff --git a/geopandas/geoseries.py b/geopandas/geoseries.py index 02e5f11..e671808 100644 --- a/geopandas/geoseries.py +++ b/geopandas/geoseries.py @@ -3,7 +3,7 @@ import warnings import numpy as np import pandas as pd -from pandas import Series +from pandas import Series, MultiIndex from pandas.core.internals import SingleBlockManager from pyproj import CRS, Transformer @@ -590,6 +590,58 @@ class GeoSeries(GeoPandasBase, Series): plot.__doc__ = plot_series.__doc__ + def explode(self): + """ + Explode multi-part geometries into multiple single geometries. + + Single rows can become multiple rows. + This is analogous to PostGIS's ST_Dump(). The 'path' index is the + second level of the returned MultiIndex + + Returns + ------ + A GeoSeries with a MultiIndex. The levels of the MultiIndex are the + original index and a zero-based integer index that counts the + number of single geometries within a multi-part geometry. + + Examples + -------- + >>> from shapely.geometry import MultiPoint + >>> s = geopandas.GeoSeries( + ... [MultiPoint([(0, 0), (1, 1)]), MultiPoint([(2, 2), (3, 3), (4, 4)])] + ... ) + >>> s + 0 MULTIPOINT (0.00000 0.00000, 1.00000 1.00000) + 1 MULTIPOINT (2.00000 2.00000, 3.00000 3.00000, ... + dtype: geometry + + >>> s.explode() + 0 0 POINT (0.00000 0.00000) + 1 POINT (1.00000 1.00000) + 1 0 POINT (2.00000 2.00000) + 1 POINT (3.00000 3.00000) + 2 POINT (4.00000 4.00000) + dtype: geometry + + See also + -------- + GeoDataFrame.explode + + """ + index = [] + geometries = [] + for idx, s in self.geometry.iteritems(): + if s.type.startswith("Multi") or s.type == "GeometryCollection": + geoms = s.geoms + idxs = [(idx, i) for i in range(len(geoms))] + else: + geoms = [s] + idxs = [(idx, 0)] + index.extend(idxs) + geometries.extend(geoms) + index = MultiIndex.from_tuples(index, names=self.index.names + [None]) + return GeoSeries(geometries, index=index, crs=self.crs).__finalize__(self) + # # Additional methods # diff --git a/geopandas/tests/test_geom_methods.py b/geopandas/tests/test_geom_methods.py index 9a0638a..92e6e4d 100644 --- a/geopandas/tests/test_geom_methods.py +++ b/geopandas/tests/test_geom_methods.py @@ -11,6 +11,7 @@ from shapely.ops import unary_union from geopandas import GeoDataFrame, GeoSeries from geopandas.base import GeoPandasBase +from geopandas.testing import assert_geodataframe_equal from geopandas.tests.util import assert_geoseries_equal, geom_almost_equals, geom_equals from geopandas import _compat as compat from pandas.testing import assert_frame_equal, assert_series_equal @@ -741,6 +742,75 @@ class TestGeomMethods: expected_df = expected_df.set_index(expected_index) assert_frame_equal(test_df, expected_df) + @pytest.mark.skipif( + not compat.PANDAS_GE_025, + reason="pandas explode introduced in pandas 0.25", + ) + def test_explode_pandas_fallback(self): + d = { + "col1": [["name1", "name2"], ["name3", "name4"]], + "geometry": [ + MultiPoint([(1, 2), (3, 4)]), + MultiPoint([(2, 1), (0, 0)]), + ], + } + gdf = GeoDataFrame(d, crs=4326) + expected_df = GeoDataFrame( + { + "col1": ["name1", "name2", "name3", "name4"], + "geometry": [ + MultiPoint([(1, 2), (3, 4)]), + MultiPoint([(1, 2), (3, 4)]), + MultiPoint([(2, 1), (0, 0)]), + MultiPoint([(2, 1), (0, 0)]), + ], + }, + index=[0, 0, 1, 1], + crs=4326, + ) + + # Test with column provided as arg + exploded_df = gdf.explode("col1") + assert_geodataframe_equal(exploded_df, expected_df) + + # Test with column provided as kwarg + exploded_df = gdf.explode(column="col1") + assert_geodataframe_equal(exploded_df, expected_df) + + @pytest.mark.skipif( + not compat.PANDAS_GE_11, + reason="ignore_index keyword introduced in pandas 1.1.0", + ) + def test_explode_pandas_fallback_ignore_index(self): + d = { + "col1": [["name1", "name2"], ["name3", "name4"]], + "geometry": [ + MultiPoint([(1, 2), (3, 4)]), + MultiPoint([(2, 1), (0, 0)]), + ], + } + gdf = GeoDataFrame(d, crs=4326) + expected_df = GeoDataFrame( + { + "col1": ["name1", "name2", "name3", "name4"], + "geometry": [ + MultiPoint([(1, 2), (3, 4)]), + MultiPoint([(1, 2), (3, 4)]), + MultiPoint([(2, 1), (0, 0)]), + MultiPoint([(2, 1), (0, 0)]), + ], + }, + crs=4326, + ) + + # Test with column provided as arg + exploded_df = gdf.explode("col1", ignore_index=True) + assert_geodataframe_equal(exploded_df, expected_df) + + # Test with column provided as kwarg + exploded_df = gdf.explode(column="col1", ignore_index=True) + assert_geodataframe_equal(exploded_df, expected_df) + # # Test '&', '|', '^', and '-' # From 387e3fd68e5234e2a355b6571cb3267d1d7b5d71 Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Sun, 27 Dec 2020 13:54:55 +0000 Subject: [PATCH 077/316] REGR: fix pickle issues (#1747) * fix shapely pickling * test * fix 1746 * explain * fix tests * try with fixture * fix tests on windows --- geopandas/array.py | 16 ++++++++-------- geopandas/io/tests/test_pickle.py | 24 +++++++++++++++++++++++- 2 files changed, 31 insertions(+), 9 deletions(-) diff --git a/geopandas/array.py b/geopandas/array.py index e9a3ae0..9c3f7ff 100644 --- a/geopandas/array.py +++ b/geopandas/array.py @@ -417,20 +417,20 @@ class GeometryArray(ExtensionArray): # "and CRS of existing geometries." # ) - if compat.USE_PYGEOS: - - def __getstate__(self): + def __getstate__(self): + if compat.USE_PYGEOS: return (pygeos.to_wkb(self.data), self._crs) + else: + return self.__dict__ - def __setstate__(self, state): + def __setstate__(self, state): + if compat.USE_PYGEOS: geoms = pygeos.from_wkb(state[0]) self._crs = state[1] + self._sindex = None # pygeos.STRtree could not be pickled yet self.data = geoms self.base = None - - else: - - def __setstate__(self, state): + else: if "_crs" not in state: state["_crs"] = None self.__dict__.update(state) diff --git a/geopandas/io/tests/test_pickle.py b/geopandas/io/tests/test_pickle.py index 081d0ad..0327714 100644 --- a/geopandas/io/tests/test_pickle.py +++ b/geopandas/io/tests/test_pickle.py @@ -14,7 +14,8 @@ import pyproj import pytest from geopandas.testing import assert_geodataframe_equal from geopandas import _compat as compat - +import geopandas +from shapely.geometry import Point DATA_PATH = pathlib.Path(os.path.dirname(__file__)) / "data" @@ -35,6 +36,14 @@ def legacy_pickle(request): return request.param +@pytest.fixture +def with_use_pygeos_false(): + orig = geopandas.options.use_pygeos + geopandas.options.use_pygeos = not orig + yield + geopandas.options.use_pygeos = orig + + @pytest.mark.skipif( compat.USE_PYGEOS or (str(pyproj.__version__) < LooseVersion("2.4")), reason=( @@ -58,3 +67,16 @@ def test_round_trip_current(tmpdir, current_pickle_data): value.to_pickle(path) result = pd.read_pickle(path) assert_geodataframe_equal(result, value) + assert isinstance(result.has_sindex, bool) + + +@pytest.mark.skipif(not compat.HAS_PYGEOS, reason="requires pygeos to test #1745") +def test_pygeos_switch(tmpdir, with_use_pygeos_false): + gdf_crs = geopandas.GeoDataFrame( + {"a": [0.1, 0.2, 0.3], "geometry": [Point(1, 1), Point(2, 2), Point(3, 3)]}, + crs="EPSG:4326", + ) + path = str(tmpdir / "gdf_crs.pickle") + gdf_crs.to_pickle(path) + result = pd.read_pickle(path) + assert_geodataframe_equal(result, gdf_crs) From 7a6fcbbb0bbf02cc4ae0e97d582dc30a1cfa05a0 Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Sun, 27 Dec 2020 14:04:18 +0000 Subject: [PATCH 078/316] DOC: another batch of docstring examples (#1733) * docstring examples * fix buffer * Apply suggestions from code review Co-authored-by: Flavin * Update geopandas/base.py Co-authored-by: Joris Van den Bossche * use matplotlib plot directive Co-authored-by: Flavin Co-authored-by: Joris Van den Bossche --- doc/source/_static/code/buffer.py | 43 +++++++ doc/source/conf.py | 1 + geopandas/base.py | 197 +++++++++++++++++++++++++++++- geopandas/geodataframe.py | 17 +++ geopandas/geoseries.py | 41 +++++++ geopandas/io/arrow.py | 22 ++++ geopandas/io/file.py | 16 +++ geopandas/io/sql.py | 10 +- 8 files changed, 339 insertions(+), 8 deletions(-) create mode 100644 doc/source/_static/code/buffer.py diff --git a/doc/source/_static/code/buffer.py b/doc/source/_static/code/buffer.py new file mode 100644 index 0000000..cda8556 --- /dev/null +++ b/doc/source/_static/code/buffer.py @@ -0,0 +1,43 @@ +""" +Create an illustrative figure for different kwargs +in buffer method. +""" + + +import geopandas +import matplotlib.pyplot as plt + +from shapely.geometry import Point, LineString, Polygon + +s = geopandas.GeoSeries( + [ + Point(0, 0), + LineString([(1, -1), (1, 0), (2, 0), (2, 1)]), + Polygon([(3, -1), (4, 0), (3, 1)]), + ] +) + +fix, axs = plt.subplots( + 3, 2, figsize=(12, 12), sharex=True, sharey=True, bbox_inches="tight" +) +for ax in axs.flatten(): + s.plot(ax=ax) + ax.set(xticks=[], yticks=[]) + +s.buffer(0.2).plot(ax=axs[0, 0], alpha=0.6) +axs[0, 0].set_title("s.buffer(0.2)") + +s.buffer(0.2, resolution=2).plot(ax=axs[0, 1], alpha=0.6) +axs[0, 1].set_title("s.buffer(0.2, resolution=2)") + +s.buffer(0.2, cap_style=2).plot(ax=axs[1, 0], alpha=0.6) +axs[1, 0].set_title("s.buffer(0.2, cap_style=2)") + +s.buffer(0.2, cap_style=3).plot(ax=axs[1, 1], alpha=0.6) +axs[1, 1].set_title("s.buffer(0.2, cap_style=3)") + +s.buffer(0.2, join_style=2).plot(ax=axs[2, 0], alpha=0.6) +axs[2, 0].set_title("s.buffer(0.2, join_style=2)") + +s.buffer(0.2, join_style=3).plot(ax=axs[2, 1], alpha=0.6) +axs[2, 1].set_title("s.buffer(0.2, join_style=3)") diff --git a/doc/source/conf.py b/doc/source/conf.py index 2be0bc0..5f211f3 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -36,6 +36,7 @@ extensions = [ "myst_nb", "numpydoc", 'sphinx_toggleprompt', + "matplotlib.sphinxext.plot_directive" ] # continue doc build and only print warnings/errors in examples diff --git a/geopandas/base.py b/geopandas/base.py index e675a51..f9401c0 100644 --- a/geopandas/base.py +++ b/geopandas/base.py @@ -996,7 +996,7 @@ GeometryCollection def buffer(self, distance, resolution=16, **kwargs): """Returns a ``GeoSeries`` of geometries representing all points within - a given `distance` of each geometric object. + a given ``distance`` of each geometric object. See http://shapely.readthedocs.io/en/latest/manual.html#object.buffer for details. @@ -1006,9 +1006,38 @@ GeometryCollection distance : float, np.array, pd.Series The radius of the buffer. If np.array or pd.Series are used then it must have same length as the GeoSeries. - resolution: int - Optional, the resolution of the buffer around each vertex. + resolution : int (optional, default 16) + The resolution of the buffer around each vertex. + + Examples + -------- + >>> from shapely.geometry import Point, LineString, Polygon + >>> s = geopandas.GeoSeries( + ... [ + ... Point(0, 0), + ... LineString([(1, -1), (1, 0), (2, 0), (2, 1)]), + ... Polygon([(3, -1), (4, 0), (3, 1)]), + ... ] + ... ) + >>> s + 0 POINT (0.00000 0.00000) + 1 LINESTRING (1.00000 -1.00000, 1.00000 0.00000,... + 2 POLYGON ((3.00000 -1.00000, 4.00000 0.00000, 3... + dtype: geometry + + >>> s.buffer(0.2) + 0 POLYGON ((0.20000 0.00000, 0.19904 -0.01960, 0... + 1 POLYGON ((0.80000 0.00000, 0.80096 0.01960, 0.... + 2 POLYGON ((2.80000 -1.00000, 2.80000 1.00000, 2... + dtype: geometry + + ``**kwargs`` accept further specification as ``join_style`` and ``cap_style``. + See the following illustration of different options. + + .. plot:: _static/code/buffer.py + """ + # TODO: update docstring based on pygeos after shapely 2.0 if isinstance(distance, pd.Series): if not self.index.equals(distance.index): raise ValueError( @@ -1033,9 +1062,32 @@ GeometryCollection tolerance : float All points in a simplified geometry will be no more than `tolerance` distance from the original. - preserve_topology: bool + preserve_topology: bool (default True) False uses a quicker algorithm, but may produce self-intersecting or otherwise invalid geometries. + + Notes + ----- + Invalid geometric objects may result from simplification that does not + preserve topology and simplification may be sensitive to the order of + coordinates: two geometries differing only in order of coordinates may be + simplified differently. + + Examples + -------- + >>> from shapely.geometry import Point, LineString + >>> s = geopandas.GeoSeries( + ... [Point(0, 0).buffer(1), LineString([(0, 0), (1, 10), (0, 20)])] + ... ) + >>> s + 0 POLYGON ((1.00000 0.00000, 0.99518 -0.09802, 0... + 1 LINESTRING (0.00000 0.00000, 1.00000 10.00000,... + dtype: geometry + + >>> s.simplify(1) + 0 POLYGON ((1.00000 0.00000, 0.00000 -1.00000, -... + 1 LINESTRING (0.00000 0.00000, 0.00000 20.00000) + dtype: geometry """ return _delegate_geo_method("simplify", self, *args, **kwargs) @@ -1108,10 +1160,35 @@ GeometryCollection ---------- matrix: List or tuple 6 or 12 items for 2D or 3D transformations respectively. + For 2D affine transformations, - the 6 parameter matrix is [a, b, d, e, xoff, yoff] + the 6 parameter matrix is ``[a, b, d, e, xoff, yoff]`` + For 3D affine transformations, - the 12 parameter matrix is [a, b, c, d, e, f, g, h, i, xoff, yoff, zoff] + the 12 parameter matrix is ``[a, b, c, d, e, f, g, h, i, xoff, yoff, zoff]`` + + Examples + -------- + >>> from shapely.geometry import Point, LineString, Polygon + >>> s = geopandas.GeoSeries( + ... [ + ... Point(1, 1), + ... LineString([(1, -1), (1, 0)]), + ... Polygon([(3, -1), (4, 0), (3, 1)]), + ... ] + ... ) + >>> s + 0 POINT (1.00000 1.00000) + 1 LINESTRING (1.00000 -1.00000, 1.00000 0.00000) + 2 POLYGON ((3.00000 -1.00000, 4.00000 0.00000, 3... + dtype: geometry + + >>> s.affine_transform([2, 3, 2, 4, 5, 2]) + 0 POINT (10.00000 8.00000) + 1 LINESTRING (4.00000 0.00000, 7.00000 4.00000) + 2 POLYGON ((8.00000 4.00000, 13.00000 10.00000, ... + dtype: geometry + """ # noqa (E501 link is longer than max line length) return _delegate_geo_method("affine_transform", self, matrix) @@ -1127,6 +1204,29 @@ GeometryCollection Amount of offset along each dimension. xoff, yoff, and zoff for translation along the x, y, and z dimensions respectively. + + Examples + -------- + >>> from shapely.geometry import Point, LineString, Polygon + >>> s = geopandas.GeoSeries( + ... [ + ... Point(1, 1), + ... LineString([(1, -1), (1, 0)]), + ... Polygon([(3, -1), (4, 0), (3, 1)]), + ... ] + ... ) + >>> s + 0 POINT (1.00000 1.00000) + 1 LINESTRING (1.00000 -1.00000, 1.00000 0.00000) + 2 POLYGON ((3.00000 -1.00000, 4.00000 0.00000, 3... + dtype: geometry + + >>> s.translate(2, 3) + 0 POINT (3.00000 4.00000) + 1 LINESTRING (3.00000 2.00000, 3.00000 3.00000) + 2 POLYGON ((5.00000 2.00000, 6.00000 3.00000, 5.... + dtype: geometry + """ # noqa (E501 link is longer than max line length) return _delegate_geo_method("translate", self, xoff, yoff, zoff) @@ -1148,6 +1248,35 @@ GeometryCollection object or a coordinate tuple (x, y). use_radians : boolean Whether to interpret the angle of rotation as degrees or radians + + Examples + -------- + >>> from shapely.geometry import Point, LineString, Polygon + >>> s = geopandas.GeoSeries( + ... [ + ... Point(1, 1), + ... LineString([(1, -1), (1, 0)]), + ... Polygon([(3, -1), (4, 0), (3, 1)]), + ... ] + ... ) + >>> s + 0 POINT (1.00000 1.00000) + 1 LINESTRING (1.00000 -1.00000, 1.00000 0.00000) + 2 POLYGON ((3.00000 -1.00000, 4.00000 0.00000, 3... + dtype: geometry + + >>> s.rotate(90) + 0 POINT (1.00000 1.00000) + 1 LINESTRING (1.50000 -0.50000, 0.50000 -0.50000) + 2 POLYGON ((4.50000 -0.50000, 3.50000 0.50000, 2... + dtype: geometry + + >>> s.rotate(90, origin=(0, 0)) + 0 POINT (-1.00000 1.00000) + 1 LINESTRING (1.00000 1.00000, 0.00000 1.00000) + 2 POLYGON ((1.00000 3.00000, 0.00000 4.00000, -1... + dtype: geometry + """ return _delegate_geo_method( "rotate", self, angle, origin=origin, use_radians=use_radians @@ -1170,6 +1299,34 @@ GeometryCollection The point of origin can be a keyword 'center' for the 2D bounding box center (default), 'centroid' for the geometry's 2D centroid, a Point object or a coordinate tuple (x, y, z). + + Examples + -------- + >>> from shapely.geometry import Point, LineString, Polygon + >>> s = geopandas.GeoSeries( + ... [ + ... Point(1, 1), + ... LineString([(1, -1), (1, 0)]), + ... Polygon([(3, -1), (4, 0), (3, 1)]), + ... ] + ... ) + >>> s + 0 POINT (1.00000 1.00000) + 1 LINESTRING (1.00000 -1.00000, 1.00000 0.00000) + 2 POLYGON ((3.00000 -1.00000, 4.00000 0.00000, 3... + dtype: geometry + + >>> s.scale(2, 3) + 0 POINT (1.00000 1.00000) + 1 LINESTRING (1.00000 -2.00000, 1.00000 1.00000) + 2 POLYGON ((2.50000 -3.00000, 4.50000 0.00000, 2... + dtype: geometry + + >>> s.scale(2, 3, origin=(0, 0)) + 0 POINT (2.00000 3.00000) + 1 LINESTRING (2.00000 -3.00000, 2.00000 0.00000) + 2 POLYGON ((6.00000 -3.00000, 8.00000 0.00000, 6... + dtype: geometry """ return _delegate_geo_method("scale", self, xfact, yfact, zfact, origin=origin) @@ -1193,6 +1350,34 @@ GeometryCollection object or a coordinate tuple (x, y). use_radians : boolean Whether to interpret the shear angle(s) as degrees or radians + + Examples + -------- + >>> from shapely.geometry import Point, LineString, Polygon + >>> s = geopandas.GeoSeries( + ... [ + ... Point(1, 1), + ... LineString([(1, -1), (1, 0)]), + ... Polygon([(3, -1), (4, 0), (3, 1)]), + ... ] + ... ) + >>> s + 0 POINT (1.00000 1.00000) + 1 LINESTRING (1.00000 -1.00000, 1.00000 0.00000) + 2 POLYGON ((3.00000 -1.00000, 4.00000 0.00000, 3... + dtype: geometry + + >>> s.skew(45, 30) + 0 POINT (1.00000 1.00000) + 1 LINESTRING (0.50000 -1.00000, 1.50000 0.00000) + 2 POLYGON ((2.00000 -1.28868, 4.00000 0.28868, 4... + dtype: geometry + + >>> s.skew(45, 30, origin=(0, 0)) + 0 POINT (2.00000 1.57735) + 1 LINESTRING (0.00000 -0.42265, 1.00000 0.57735) + 2 POLYGON ((2.00000 0.73205, 4.00000 2.30940, 4.... + dtype: geometry """ return _delegate_geo_method( "skew", self, xs, ys, origin=origin, use_radians=use_radians diff --git a/geopandas/geodataframe.py b/geopandas/geodataframe.py index d122e53..507da60 100644 --- a/geopandas/geodataframe.py +++ b/geopandas/geodataframe.py @@ -578,11 +578,28 @@ class GeoDataFrame(GeoPandasBase, DataFrame): Examples -------- + PostGIS + + >>> from sqlalchemy import create_engine # doctest: +SKIP + >>> db_connection_url = "postgres://myusername:mypassword@myhost:5432/mydb" + >>> con = create_engine(db_connection_url) # doctest: +SKIP >>> sql = "SELECT geom, highway FROM roads" + >>> df = geopandas.GeoDataFrame.from_postgis(sql, con) # doctest: +SKIP SpatiaLite + >>> sql = "SELECT ST_Binary(geom) AS geom, highway FROM roads" >>> df = geopandas.GeoDataFrame.from_postgis(sql, con) # doctest: +SKIP + + The recommended method of reading from PostGIS is + :func:`geopandas.read_postgis`: + + >>> df = geopandas.read_postgis(sql, con) # doctest: +SKIP + + See also + -------- + geopandas.read_postgis + """ df = geopandas.io.sql._read_postgis( diff --git a/geopandas/geoseries.py b/geopandas/geoseries.py index e671808..59b6d92 100644 --- a/geopandas/geoseries.py +++ b/geopandas/geoseries.py @@ -91,6 +91,47 @@ class GeoSeries(GeoPandasBase, Series): 2 POINT (3.00000 3.00000) dtype: geometry + >>> s = geopandas.GeoSeries( + ... [Point(1, 1), Point(2, 2), Point(3, 3)], crs="EPSG:3857" + ... ) + >>> s.crs # doctest: +SKIP + + Name: WGS 84 / Pseudo-Mercator + Axis Info [cartesian]: + - X[east]: Easting (metre) + - Y[north]: Northing (metre) + Area of Use: + - name: World - 85°S to 85°N + - bounds: (-180.0, -85.06, 180.0, 85.06) + Coordinate Operation: + - name: Popular Visualisation Pseudo-Mercator + - method: Popular Visualisation Pseudo Mercator + Datum: World Geodetic System 1984 + - Ellipsoid: WGS 84 + - Prime Meridian: Greenwich + + >>> s = geopandas.GeoSeries( + ... [Point(1, 1), Point(2, 2), Point(3, 3)], index=["a", "b", "c"], crs=4326 + ... ) + >>> s + a POINT (1.00000 1.00000) + b POINT (2.00000 2.00000) + c POINT (3.00000 3.00000) + dtype: geometry + + >>> s.crs + + Name: WGS 84 + Axis Info [ellipsoidal]: + - Lat[north]: Geodetic latitude (degree) + - Lon[east]: Geodetic longitude (degree) + Area of Use: + - name: World + - bounds: (-180.0, -90.0, 180.0, 90.0) + Datum: World Geodetic System 1984 + - Ellipsoid: WGS 84 + - Prime Meridian: Greenwich + See Also -------- GeoDataFrame diff --git a/geopandas/io/arrow.py b/geopandas/io/arrow.py index acd574f..014d0da 100644 --- a/geopandas/io/arrow.py +++ b/geopandas/io/arrow.py @@ -394,6 +394,17 @@ def _read_parquet(path, columns=None, **kwargs): Returns ------- GeoDataFrame + + Examples + -------- + >>> df = geopandas.read_parquet("data.parquet") # doctest: +SKIP + + Specifying columns to read: + + >>> df = geopandas.read_parquet( + ... "data.parquet", + ... columns=["geometry", "pop_est"] + ... ) # doctest: +SKIP """ parquet = import_optional_dependency( @@ -439,6 +450,17 @@ def _read_feather(path, columns=None, **kwargs): Returns ------- GeoDataFrame + + Examples + -------- + >>> df = geopandas.read_feather("data.feather") # doctest: +SKIP + + Specifying columns to read: + + >>> df = geopandas.read_feather( + ... "data.feather", + ... columns=["geometry", "pop_est"] + ... ) # doctest: +SKIP """ feather = import_optional_dependency( diff --git a/geopandas/io/file.py b/geopandas/io/file.py index 4f98e69..2ce09bc 100644 --- a/geopandas/io/file.py +++ b/geopandas/io/file.py @@ -79,6 +79,22 @@ def _read_file(filename, bbox=None, mask=None, rows=None, **kwargs): -------- >>> df = geopandas.read_file("nybb.shp") # doctest: +SKIP + Specifying layer of GPKG: + + >>> df = geopandas.read_file("file.gpkg", layer='cities') # doctest: +SKIP + + Reading only first 10 rows: + + >>> df = geopandas.read_file("nybb.shp", rows=10) # doctest: +SKIP + + Reading only geometries intersecting ``mask``: + + >>> df = geopandas.read_file("nybb.shp", mask=polygon) # doctest: +SKIP + + Reading only geometries intersecting ``bbox``: + + >>> df = geopandas.read_file("nybb.shp", bbox=(0, 10, 0, 20)) # doctest: +SKIP + Returns ------- :obj:`geopandas.GeoDataFrame` or :obj:`pandas.DataFrame` : diff --git a/geopandas/io/sql.py b/geopandas/io/sql.py index a833867..66c9d85 100644 --- a/geopandas/io/sql.py +++ b/geopandas/io/sql.py @@ -106,10 +106,16 @@ def _read_postgis( Examples -------- PostGIS - >>> sql = "SELECT geom, kind FROM polygons" + + >>> from sqlalchemy import create_engine # doctest: +SKIP + >>> db_connection_url = "postgres://myusername:mypassword@myhost:5432/mydatabase" + >>> con = create_engine(db_connection_url) # doctest: +SKIP + >>> sql = "SELECT geom, highway FROM roads" + >>> df = geopandas.read_postgis(sql, con) # doctest: +SKIP SpatiaLite - >>> sql = "SELECT ST_AsBinary(geom) AS geom, kind FROM polygons" + + >>> sql = "SELECT ST_Binary(geom) AS geom, highway FROM roads" >>> df = geopandas.read_postgis(sql, con) # doctest: +SKIP """ From 4a84f0b8ebaeeb2958c58172100a946b0417d7a5 Mon Sep 17 00:00:00 2001 From: Giacomo Caria <44147817+gcaria@users.noreply.github.com> Date: Sun, 27 Dec 2020 15:30:35 +0100 Subject: [PATCH 079/316] BUG: Expand values as colors only once when plotting MultPoints (#1694) * Expand values as colors only once. Fixes #1679 * Fix test_multipoints when using values as colors * Add comment about expansion of values Co-authored-by: Giacomo Caria Co-authored-by: Martin Fleischmann --- geopandas/plotting.py | 3 +-- geopandas/tests/test_plotting.py | 6 +++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/geopandas/plotting.py b/geopandas/plotting.py index ddf6d2e..c176569 100644 --- a/geopandas/plotting.py +++ b/geopandas/plotting.py @@ -281,8 +281,7 @@ def _plot_point_collection( raise ValueError("Can only specify one of 'values' and 'color' kwargs") geoms, multiindex = _flatten_multi_geoms(geoms) - if values is not None: - values = np.take(values, multiindex, axis=0) + # values are expanded below as kwargs["c"] x = [p.x for p in geoms] y = [p.y for p in geoms] diff --git a/geopandas/tests/test_plotting.py b/geopandas/tests/test_plotting.py index fe1eb27..864ff2a 100644 --- a/geopandas/tests/test_plotting.py +++ b/geopandas/tests/test_plotting.py @@ -314,13 +314,13 @@ class TestPointPlotting: _check_colors(4, ax.collections[0].get_facecolors(), [MPL_DFT_COLOR] * 4) ax = self.df2.plot(column="values") - cmap = plt.get_cmap() + cmap = plt.get_cmap(lut=2) expected_colors = [cmap(0)] * self.N + [cmap(1)] * self.N - _check_colors(2, ax.collections[0].get_facecolors(), expected_colors) + _check_colors(20, ax.collections[0].get_facecolors(), expected_colors) ax = self.df2.plot(color=["r", "b"]) # colors are repeated for all components within a MultiPolygon - _check_colors(2, ax.collections[0].get_facecolors(), ["r"] * 10 + ["b"] * 10) + _check_colors(20, ax.collections[0].get_facecolors(), ["r"] * 10 + ["b"] * 10) def test_multipoints_alpha(self): ax = self.df2.plot(alpha=0.7) From 7d3136b83420f805820ba39686d135fc933d1e3e Mon Sep 17 00:00:00 2001 From: Tim Gates Date: Mon, 28 Dec 2020 18:44:14 +1100 Subject: [PATCH 080/316] DOC: fix simple typo, recommenend -> recommend (#1755) --- doc/source/docs/user_guide/projections.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/docs/user_guide/projections.rst b/doc/source/docs/user_guide/projections.rst index 21d4fc7..4eb1530 100644 --- a/doc/source/docs/user_guide/projections.rst +++ b/doc/source/docs/user_guide/projections.rst @@ -240,7 +240,7 @@ For example, instead of: gdf.crs = "+proj=laea +lat_0=45 +lon_0=-100 +x_0=0 +y_0=0 +a=6370997 +b=6370997 +units=m +no_defs" -we recommenend to do: +we recommend to do: .. code-block:: python From 8383e17a830396c20b40cdbd5bc15edff7ae2ef9 Mon Sep 17 00:00:00 2001 From: sangarshanan Date: Mon, 28 Dec 2020 19:27:28 +0530 Subject: [PATCH 081/316] ENH: Overload from_dict to accept crs and geometry (#1619) --- geopandas/geodataframe.py | 26 ++++++++++++++++++++++++++ geopandas/tests/test_geodataframe.py | 10 ++++++++++ 2 files changed, 36 insertions(+) diff --git a/geopandas/geodataframe.py b/geopandas/geodataframe.py index 507da60..e18d40b 100644 --- a/geopandas/geodataframe.py +++ b/geopandas/geodataframe.py @@ -397,6 +397,32 @@ class GeoDataFrame(GeoPandasBase, DataFrame): except Exception: pass + @classmethod + def from_dict(cls, data, geometry=None, crs=None, **kwargs): + """ + Construct GeoDataFrame from dict of array-like or dicts by + overiding DataFrame.from_dict method with geometry and crs + + Parameters + ---------- + data : dict + Of the form {field : array-like} or {field : dict}. + geometry : str or array (optional) + If str, column to use as geometry. If array, will be set as 'geometry' + column on GeoDataFrame. + crs : str or dict (optional) + Coordinate reference system to set on the resulting frame. + kwargs : key-word arguments + These arguments are passed to DataFrame.from_dict + + Returns + ------- + GeoDataFrame + + """ + dataframe = super().from_dict(data, **kwargs) + return GeoDataFrame(dataframe, geometry=geometry, crs=crs) + @classmethod def from_file(cls, filename, **kwargs): """Alternate constructor to create a ``GeoDataFrame`` from a file. diff --git a/geopandas/tests/test_geodataframe.py b/geopandas/tests/test_geodataframe.py index 4c6bc69..83b748f 100644 --- a/geopandas/tests/test_geodataframe.py +++ b/geopandas/tests/test_geodataframe.py @@ -479,6 +479,16 @@ class TestDataFrame: assert_frame_equal(self.df2.loc[5:], self.df2.cx[:, 5:]) assert_frame_equal(self.df2.loc[5:], self.df2.cx[5:, 5:]) + def test_from_dict(self): + data = {"A": [1], "geometry": [Point(0.0, 0.0)]} + df = GeoDataFrame.from_dict(data, crs=3857) + assert df.crs == "epsg:3857" + assert df._geometry_column_name == "geometry" + + data = {"B": [1], "location": [Point(0.0, 0.0)]} + df = GeoDataFrame.from_dict(data, geometry="location") + assert df._geometry_column_name == "location" + def test_from_features(self): nybb_filename = geopandas.datasets.get_path("nybb") with fiona.open(nybb_filename) as f: From d1b71c4bfd81f3919aedd70948beb02ae4182bbf Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Mon, 28 Dec 2020 21:22:20 +0000 Subject: [PATCH 082/316] BUG: implement custom __contains__ for GeometryArray (#1753) Co-authored-by: Joris Van den Bossche --- geopandas/array.py | 21 +++++++++++++++++++-- geopandas/tests/test_array.py | 9 +++++++++ geopandas/tests/test_extension_array.py | 16 +++++++++++++++- 3 files changed, 43 insertions(+), 3 deletions(-) diff --git a/geopandas/array.py b/geopandas/array.py index 9c3f7ff..114141c 100644 --- a/geopandas/array.py +++ b/geopandas/array.py @@ -144,7 +144,7 @@ def _shapely_to_geom(geom): def _is_scalar_geometry(geom): if compat.USE_PYGEOS: - return isinstance(geom, pygeos.Geometry) + return isinstance(geom, (pygeos.Geometry, BaseGeometry)) else: return isinstance(geom, BaseGeometry) @@ -1063,7 +1063,9 @@ class GeometryArray(ExtensionArray): def _binop(self, other, op): def convert_values(param): - if isinstance(param, ExtensionArray) or pd.api.types.is_list_like(param): + if not _is_scalar_geometry(param) and ( + isinstance(param, ExtensionArray) or pd.api.types.is_list_like(param) + ): ovalues = param else: # Assume its an object ovalues = [param] * len(self) @@ -1091,3 +1093,18 @@ class GeometryArray(ExtensionArray): def __ne__(self, other): return self._binop(other, operator.ne) + + def __contains__(self, item): + """ + Return for `item in self`. + """ + if _isna(item): + if ( + item is self.dtype.na_value + or isinstance(item, self.dtype.type) + or item is None + ): + return self.isna().any() + else: + return False + return (self == item).any() diff --git a/geopandas/tests/test_array.py b/geopandas/tests/test_array.py index 94d7f50..3f128f9 100644 --- a/geopandas/tests/test_array.py +++ b/geopandas/tests/test_array.py @@ -769,6 +769,15 @@ def test_equality_ops(): res = a1 != a2 assert res.tolist() == [False, True, False] + # check the correct expansion of list-like geometry + multi_poly = shapely.geometry.MultiPolygon( + [shapely.geometry.box(0, 0, 1, 1), shapely.geometry.box(3, 3, 4, 4)] + ) + a3 = from_shapely([points[1], points[2], points[3], multi_poly]) + + res = a3 == multi_poly + assert res.tolist() == [False, False, False, True] + def test_dir(): assert "contains" in dir(P) diff --git a/geopandas/tests/test_extension_array.py b/geopandas/tests/test_extension_array.py index da940fc..3bb8e4f 100644 --- a/geopandas/tests/test_extension_array.py +++ b/geopandas/tests/test_extension_array.py @@ -287,7 +287,21 @@ class TestDtype(extension_tests.BaseDtypeTests): class TestInterface(extension_tests.BaseInterfaceTests): - pass + def test_contains(self, data, data_missing): + # overrided due to the inconsistency between + # GeometryDtype.na_value = np.nan + # and None being used as NA in array + + # ensure data without missing values + data = data[~data.isna()] + + # first elements are non-missing + assert data[0] in data + assert data_missing[0] in data_missing + + assert None in data_missing + assert None not in data + assert pd.NaT not in data_missing class TestConstructors(extension_tests.BaseConstructorsTests): From 36521787c3e6484c00c2ffb8cdde60798d6d1616 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Thu, 31 Dec 2020 13:47:46 -0600 Subject: [PATCH 083/316] DOC: italics can't be nested in links (#1762) --- .../user_guide/geometric_manipulations.rst | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/doc/source/docs/user_guide/geometric_manipulations.rst b/doc/source/docs/user_guide/geometric_manipulations.rst index 4df1b8f..3d51f8f 100644 --- a/doc/source/docs/user_guide/geometric_manipulations.rst +++ b/doc/source/docs/user_guide/geometric_manipulations.rst @@ -3,7 +3,7 @@ Geometric Manipulations ======================== -*geopandas* makes available all the tools for geometric manipulations in the `*shapely* library `_. +*geopandas* makes available all the tools for geometric manipulations in the `shapely library `_. Note that documentation for all set-theoretic tools for creating new shapes using the relationship between two different spatial datasets -- like creating intersections, or differences -- can be found on the :doc:`set operations ` page. @@ -130,20 +130,20 @@ GeoPandas also implements alternate constructors that can read any data format r >>> boros.sort_index(inplace=True) >>> boros BoroName Shape_Leng Shape_Area \ - BoroCode - 1 Manhattan 359299.096471 6.364715e+08 - 2 Bronx 464392.991824 1.186925e+09 - 3 Brooklyn 741080.523166 1.937479e+09 - 4 Queens 896344.047763 3.045213e+09 - 5 Staten Island 330470.010332 1.623820e+09 - - geometry - BoroCode - 1 MULTIPOLYGON (((981219.0557861328 188655.31579... - 2 MULTIPOLYGON (((1012821.805786133 229228.26458... - 3 MULTIPOLYGON (((1021176.479003906 151374.79699... - 4 MULTIPOLYGON (((1029606.076599121 156073.81420... - 5 MULTIPOLYGON (((970217.0223999023 145643.33221... + BoroCode + 1 Manhattan 359299.096471 6.364715e+08 + 2 Bronx 464392.991824 1.186925e+09 + 3 Brooklyn 741080.523166 1.937479e+09 + 4 Queens 896344.047763 3.045213e+09 + 5 Staten Island 330470.010332 1.623820e+09 + + geometry + BoroCode + 1 MULTIPOLYGON (((981219.0557861328 188655.31579... + 2 MULTIPOLYGON (((1012821.805786133 229228.26458... + 3 MULTIPOLYGON (((1021176.479003906 151374.79699... + 4 MULTIPOLYGON (((1029606.076599121 156073.81420... + 5 MULTIPOLYGON (((970217.0223999023 145643.33221... .. image:: ../../_static/nyc.png From f53d77c9504db2184b624bfff9e1373e2e5e0d65 Mon Sep 17 00:00:00 2001 From: "Alan D. Snow" Date: Tue, 5 Jan 2021 03:03:13 -0600 Subject: [PATCH 084/316] DOC: Update rtree wheel information in installation instructions (#1770) --- doc/source/getting_started/install.rst | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/doc/source/getting_started/install.rst b/doc/source/getting_started/install.rst index 398b13d..2732844 100644 --- a/doc/source/getting_started/install.rst +++ b/doc/source/getting_started/install.rst @@ -94,14 +94,13 @@ as well:: - `fiona`_ provides binary wheels with the dependencies included for Mac and Linux, but not for Windows. - - `pyproj`_ and `shapely`_ provide binary wheels with dependencies included + - `pyproj`_, `rtree`_, and `shapely`_ provide binary wheels with dependencies included for Mac, Linux, and Windows. - - `rtree`_ does not provide wheels. - Windows wheels for `shapely`, `fiona`, `pyproj` and `rtree` can be found at `Christopher Gohlke's website `_. - So depending on your platform, you might need to compile and install their + Depending on your platform, you might need to compile and install their C dependencies manually. We refer to the individual packages for more details on installing those. Using conda (see above) avoids the need to compile the dependencies yourself. From 1a6bb4204d45260fd9f7ee49319d577bfc60a0eb Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Sun, 10 Jan 2021 19:18:03 +0000 Subject: [PATCH 085/316] TST: skip test_argreduce_series (#1767) --- geopandas/tests/test_extension_array.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/geopandas/tests/test_extension_array.py b/geopandas/tests/test_extension_array.py index 3bb8e4f..7d56894 100644 --- a/geopandas/tests/test_extension_array.py +++ b/geopandas/tests/test_extension_array.py @@ -506,6 +506,10 @@ class TestMethods(extension_tests.BaseMethodsTests): def test_argmin_argmax_all_na(self): pass + @no_sorting + def test_argreduce_series(self): + pass + class TestCasting(extension_tests.BaseCastingTests): pass From 630f13bacb6dd2a287a77a94c218225af8bad895 Mon Sep 17 00:00:00 2001 From: Giacomo Caria <44147817+gcaria@users.noreply.github.com> Date: Thu, 14 Jan 2021 14:34:32 +0100 Subject: [PATCH 086/316] TST: Fix plotting tests (#1766) --- geopandas/tests/test_plotting.py | 48 +++++++++++++++++++------------- 1 file changed, 29 insertions(+), 19 deletions(-) diff --git a/geopandas/tests/test_plotting.py b/geopandas/tests/test_plotting.py index 864ff2a..84b3b0f 100644 --- a/geopandas/tests/test_plotting.py +++ b/geopandas/tests/test_plotting.py @@ -148,7 +148,7 @@ class TestPointPlotting: # colors ax = self.points.plot(cmap=plt.get_cmap("Set1", lut=5)) cmap = plt.get_cmap("Set1", lut=5) - exp_colors = cmap(list(range(5)) * 3) + exp_colors = cmap(list(range(5)) * 2) _check_colors(self.N, ax.collections[0].get_facecolors(), exp_colors) def test_single_color(self): @@ -541,17 +541,17 @@ class TestLineStringPlotting: # MultiLineStrings ax = self.df2.plot() assert len(ax.collections[0].get_paths()) == 4 - _check_colors(4, ax.collections[0].get_facecolors(), [MPL_DFT_COLOR] * 4) + _check_colors(4, ax.collections[0].get_edgecolors(), [MPL_DFT_COLOR] * 4) ax = self.df2.plot("values") cmap = plt.get_cmap(lut=2) # colors are repeated for all components within a MultiLineString expected_colors = [cmap(0), cmap(0), cmap(1), cmap(1)] - _check_colors(4, ax.collections[0].get_facecolors(), expected_colors) + _check_colors(4, ax.collections[0].get_edgecolors(), expected_colors) ax = self.df2.plot(color=["r", "b"]) # colors are repeated for all components within a MultiLineString - _check_colors(4, ax.collections[0].get_facecolors(), ["r", "r", "b", "b"]) + _check_colors(4, ax.collections[0].get_edgecolors(), ["r", "r", "b", "b"]) class TestPolygonPlotting: @@ -577,11 +577,11 @@ class TestPolygonPlotting: ax = self.polys.plot(color="green") _check_colors(2, ax.collections[0].get_facecolors(), ["green"] * 2) # color only sets facecolor - _check_colors(2, ax.collections[0].get_edgecolors(), ["k"] * 2) + assert len(ax.collections[0].get_edgecolors()) == 0 ax = self.df.plot(color="green") _check_colors(2, ax.collections[0].get_facecolors(), ["green"] * 2) - _check_colors(2, ax.collections[0].get_edgecolors(), ["k"] * 2) + assert len(ax.collections[0].get_edgecolors()) == 0 # check rgba tuple GH1178 ax = self.df.plot(color=(0.5, 0.5, 0.5)) @@ -845,17 +845,23 @@ class TestGeometryCollectionPlotting: def test_colors(self): # default uniform color ax = self.series.plot() - _check_colors(1, ax.collections[0].get_facecolors(), [MPL_DFT_COLOR]) # poly - _check_colors(2, ax.collections[1].get_edgecolors(), [MPL_DFT_COLOR]) # line - _check_colors(2, ax.collections[2].get_facecolors(), [MPL_DFT_COLOR]) # point + _check_colors( + 2, ax.collections[0].get_facecolors(), [MPL_DFT_COLOR] * 2 + ) # poly + _check_colors( + 2, ax.collections[1].get_edgecolors(), [MPL_DFT_COLOR] * 2 + ) # line + _check_colors(1, ax.collections[2].get_facecolors(), [MPL_DFT_COLOR]) # point def test_values(self): ax = self.df.plot("values") cmap = plt.get_cmap() - exp_colors = cmap(np.arange(2) / 1) - _check_colors(1, ax.collections[0].get_facecolors(), exp_colors) # poly - _check_colors(2, ax.collections[1].get_edgecolors(), [exp_colors[0]]) # line - _check_colors(2, ax.collections[2].get_facecolors(), [exp_colors[1]]) # point + exp_colors = cmap([0.0, 1.0]) + _check_colors(2, ax.collections[0].get_facecolors(), exp_colors) # poly + _check_colors( + 2, ax.collections[1].get_edgecolors(), [exp_colors[0]] * 2 + ) # line + _check_colors(1, ax.collections[2].get_facecolors(), [exp_colors[1]]) # point class TestNonuniformGeometryPlotting: @@ -1325,8 +1331,8 @@ class TestPlotCollections: coll = _plot_linestring_collection(ax, self.lines, self.values, vmin=3, vmax=5) fig.canvas.draw_idle() cmap = plt.get_cmap() - expected_colors = cmap([0]) - _check_colors(self.N, coll.get_color(), expected_colors) + expected_colors = [cmap(0)] + _check_colors(self.N, coll.get_color(), expected_colors * 3) ax.cla() def test_polygons(self): @@ -1341,7 +1347,7 @@ class TestPlotCollections: # default: single default matplotlib color coll = _plot_polygon_collection(ax, self.polygons) _check_colors(self.N, coll.get_facecolor(), [MPL_DFT_COLOR] * self.N) - _check_colors(self.N, coll.get_edgecolor(), ["k"] * self.N) + assert len(coll.get_edgecolor()) == 0 ax.cla() # default: color sets both facecolor and edgecolor @@ -1376,7 +1382,7 @@ class TestPlotCollections: # only setting facecolor keeps default for edgecolor coll = _plot_polygon_collection(ax, self.polygons, facecolor="g") _check_colors(self.N, coll.get_facecolor(), ["g"] * self.N) - _check_colors(self.N, coll.get_edgecolor(), ["k"] * self.N) + assert len(coll.get_edgecolor()) == 0 ax.cla() # custom facecolor and edgecolor @@ -1419,8 +1425,8 @@ class TestPlotCollections: coll = _plot_polygon_collection(ax, self.polygons, self.values, vmin=3, vmax=5) fig.canvas.draw_idle() cmap = plt.get_cmap() - exp_colors = cmap([0]) - _check_colors(self.N, coll.get_facecolor(), exp_colors) + exp_colors = [cmap(0)] + _check_colors(self.N, coll.get_facecolor(), exp_colors * 3) ax.cla() # override edgecolor @@ -1515,6 +1521,10 @@ def _check_colors(N, actual_colors, expected_colors, alpha=None): actual_colors = map(tuple, actual_colors) all_actual_colors = list(itertools.islice(itertools.cycle(actual_colors), N)) + assert len(all_actual_colors) == len(expected_colors), ( + "Different " "lengths of actual and expected colors!" + ) + for actual, expected in zip(all_actual_colors, expected_colors): assert actual == conv.to_rgba(expected, alpha=alpha), "{} != {}".format( actual, conv.to_rgba(expected, alpha=alpha) From eabe4049dd8596526b39f2a4beca470f4b84943e Mon Sep 17 00:00:00 2001 From: Jacob Hayes Date: Thu, 14 Jan 2021 08:20:03 -0600 Subject: [PATCH 087/316] ENH: support for sqlalchemy connections in to_postgis to support external transactions (#1638) --- geopandas/geodataframe.py | 4 ++-- geopandas/io/sql.py | 40 +++++++++++++++++++++++++++++----- geopandas/io/tests/test_sql.py | 36 ++++++++++++++++++++++++++---- 3 files changed, 69 insertions(+), 11 deletions(-) diff --git a/geopandas/geodataframe.py b/geopandas/geodataframe.py index e18d40b..d7c79b2 100644 --- a/geopandas/geodataframe.py +++ b/geopandas/geodataframe.py @@ -577,7 +577,7 @@ class GeoDataFrame(GeoPandasBase, DataFrame): Parameters ---------- sql : string - con : DB connection object or SQLAlchemy engine + con : sqlalchemy.engine.Connection or sqlalchemy.engine.Engine geom_col : string, default 'geom' column name to convert to shapely geometries crs : optional @@ -1455,7 +1455,7 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} ---------- name : str Name of the target table. - con : sqlalchemy.engine.Engine + con : sqlalchemy.engine.Connection or sqlalchemy.engine.Engine Active connection to the PostGIS database. if_exists : {'fail', 'replace', 'append'}, default 'fail' How to behave if the table already exists: diff --git a/geopandas/io/sql.py b/geopandas/io/sql.py index 66c9d85..250478e 100644 --- a/geopandas/io/sql.py +++ b/geopandas/io/sql.py @@ -1,4 +1,5 @@ import warnings +from contextlib import contextmanager import pandas as pd @@ -9,6 +10,35 @@ from geopandas import GeoDataFrame from .. import _compat as compat +@contextmanager +def _get_conn(conn_or_engine): + """ + Yield a connection within a transaction context. + + Engine.begin() returns a Connection with an implicit Transaction while + Connection.begin() returns the Transaction. This helper will always return a + Connection with an implicit (possibly nested) Transaction. + + Parameters + ---------- + conn_or_engine : Connection or Engine + A sqlalchemy Connection or Engine instance + Returns + ------- + Connection + """ + from sqlalchemy.engine.base import Engine, Connection + + if isinstance(conn_or_engine, Connection): + with conn_or_engine.begin(): + yield conn_or_engine + elif isinstance(conn_or_engine, Engine): + with conn_or_engine.begin() as conn: + yield conn + else: + raise ValueError(f"Unknown Connectable: {conn_or_engine}") + + def _df_to_geodf(df, geom_col="geom", crs=None): """ Transforms a pandas DataFrame into a GeoDataFrame. @@ -83,7 +113,7 @@ def _read_postgis( sql : string SQL query to execute in selecting entries from database, or name of the table to read from the database. - con : DB connection object or SQLAlchemy engine + con : sqlalchemy.engine.Connection or sqlalchemy.engine.Engine Active connection to the database to query. geom_col : string, default 'geom' column name to convert to shapely geometries @@ -301,7 +331,7 @@ def _write_postgis( ---------- name : str Name of the target table. - con : sqlalchemy.engine.Engine + con : sqlalchemy.engine.Connection or sqlalchemy.engine.Engine Active connection to the PostGIS database. if_exists : {'fail', 'replace', 'append'}, default 'fail' How to behave if the table already exists: @@ -371,14 +401,14 @@ def _write_postgis( if if_exists == "append": # Check that the geometry srid matches with the current GeoDataFrame - with con.begin() as connection: + with _get_conn(con) as connection: if schema is not None: schema_name = schema else: schema_name = "public" # Only check SRID if table exists - if connection.run_callable(connection.dialect.has_table, name, schema): + if connection.dialect.has_table(connection, name, schema): target_srid = connection.execute( "SELECT Find_SRID('{schema}', '{table}', '{geom_col}');".format( schema=schema_name, table=name, geom_col=geom_name @@ -394,7 +424,7 @@ def _write_postgis( ) raise ValueError(msg) - with con.begin() as connection: + with _get_conn(con) as connection: gdf.to_sql( name, diff --git a/geopandas/io/tests/test_sql.py b/geopandas/io/tests/test_sql.py index bf3beff..c9e6465 100644 --- a/geopandas/io/tests/test_sql.py +++ b/geopandas/io/tests/test_sql.py @@ -11,7 +11,7 @@ import pandas as pd import geopandas from geopandas import GeoDataFrame, read_file, read_postgis -from geopandas.io.sql import _write_postgis as write_postgis +from geopandas.io.sql import _get_conn as get_conn, _write_postgis as write_postgis from geopandas.tests.util import create_postgis, create_spatialite, validate_boro_df import pytest @@ -111,11 +111,11 @@ def connection_spatialite(): con.close() -def drop_table_if_exists(engine, table): +def drop_table_if_exists(conn_or_engine, table): sqlalchemy = pytest.importorskip("sqlalchemy") - if engine.has_table(table): - metadata = sqlalchemy.MetaData(engine) + if conn_or_engine.dialect.has_table(conn_or_engine, table): + metadata = sqlalchemy.MetaData(conn_or_engine) metadata.reflect() table = metadata.tables.get(table) if table is not None: @@ -188,6 +188,19 @@ def df_3D_geoms(): class TestIO: + def test_get_conn(self, engine_postgis): + Connection = pytest.importorskip("sqlalchemy.engine.base").Connection + + engine = engine_postgis + with get_conn(engine) as output: + assert isinstance(output, Connection) + with engine.connect() as conn: + with get_conn(conn) as output: + assert isinstance(output, Connection) + with pytest.raises(ValueError): + with get_conn(object()): + pass + def test_read_postgis_default(self, connection_postgis, df_nybb): con = connection_postgis create_postgis(con, df_nybb) @@ -331,6 +344,21 @@ class TestIO: df = read_postgis(sql, engine, geom_col="geometry") validate_boro_df(df) + def test_write_postgis_sqlalchemy_connection(self, engine_postgis, df_nybb): + """Tests that GeoDataFrame can be written to PostGIS with defaults.""" + with engine_postgis.begin() as con: + table = "nybb_con" + + # If table exists, delete it before trying to write with defaults + drop_table_if_exists(con, table) + + # Write to db + write_postgis(df_nybb, con=con, name=table, if_exists="fail") + # Validate + sql = "SELECT * FROM {table};".format(table=table) + df = read_postgis(sql, con, geom_col="geometry") + validate_boro_df(df) + def test_write_postgis_fail_when_table_exists(self, engine_postgis, df_nybb): """ Tests that uploading the same table raises error when: if_replace='fail'. From 77f0119c16cadae9578bcd9d8f4e373a85e30c1a Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Sun, 24 Jan 2021 19:43:12 +0000 Subject: [PATCH 088/316] TST: skip pandas EA test (pandas #38733) (#1790) --- geopandas/tests/test_extension_array.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/geopandas/tests/test_extension_array.py b/geopandas/tests/test_extension_array.py index 7d56894..5c2a01d 100644 --- a/geopandas/tests/test_extension_array.py +++ b/geopandas/tests/test_extension_array.py @@ -510,6 +510,10 @@ class TestMethods(extension_tests.BaseMethodsTests): def test_argreduce_series(self): pass + @no_sorting + def test_argmax_argmin_no_skipna_notimplemented(self): + pass + class TestCasting(extension_tests.BaseCastingTests): pass From c07ae3c50b6aa20e745b3693321c469e0d828a1c Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Sun, 24 Jan 2021 23:01:37 +0100 Subject: [PATCH 089/316] DEP: lazily import fiona only when used (to make it possible to not have it installed) (#1775) * DEP: lazily import fiona only when used (to make it possible to not have it installed) * fix test --- geopandas/io/file.py | 26 +++++++++++++++++++++++--- geopandas/tests/test_api.py | 2 ++ geopandas/tests/test_geodataframe.py | 2 +- 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/geopandas/io/file.py b/geopandas/io/file.py index 2ce09bc..59a5e0d 100644 --- a/geopandas/io/file.py +++ b/geopandas/io/file.py @@ -4,15 +4,25 @@ import warnings import numpy as np import pandas as pd -import fiona import pyproj from shapely.geometry import mapping from shapely.geometry.base import BaseGeometry +try: + import fiona + + fiona_import_error = None +except ImportError as err: + fiona = None + fiona_import_error = str(err) + try: from fiona import Env as fiona_env except ImportError: - from fiona import drivers as fiona_env + try: + from fiona import drivers as fiona_env + except ImportError: + fiona_env = None from geopandas import GeoDataFrame, GeoSeries @@ -27,6 +37,14 @@ _VALID_URLS = set(uses_relative + uses_netloc + uses_params) _VALID_URLS.discard("") +def _check_fiona(func): + if fiona is None: + raise ImportError( + f"the {func} requires the 'fiona' package, but it is not installed or does " + f"not import correctly.\nImporting fiona resulted in: {fiona_import_error}" + ) + + def _is_url(url): """Check to see if *url* has a valid protocol.""" try: @@ -106,6 +124,7 @@ def _read_file(filename, bbox=None, mask=None, rows=None, **kwargs): may fail. In this case, the proper encoding can be specified explicitly by using the encoding keyword parameter, e.g. ``encoding='utf-8'``. """ + _check_fiona("'read_file' function") if _is_url(filename): req = _urlopen(filename) path_or_bytes = req.read() @@ -221,7 +240,7 @@ def _to_file( index=None, mode="w", crs=None, - **kwargs + **kwargs, ): """ Write this GeoDataFrame to an OGR data source @@ -272,6 +291,7 @@ def _to_file( may fail. In this case, the proper encoding can be specified explicitly by using the encoding keyword parameter, e.g. ``encoding='utf-8'``. """ + _check_fiona("'to_file' method") if index is None: # Determine if index attribute(s) should be saved to file index = list(df.index.names) != [None] or type(df.index) not in ( diff --git a/geopandas/tests/test_api.py b/geopandas/tests/test_api.py index 4181ec0..5ca9dfc 100644 --- a/geopandas/tests/test_api.py +++ b/geopandas/tests/test_api.py @@ -11,6 +11,8 @@ def test_no_additional_imports(): "pytest", "py", "ipython", + # fiona actually gets imported if installed (but error suppressed until used) + # "fiona", # "matplotlib", # matplotlib gets imported by pandas, see below "mapclassify", # 'rtree', # rtree actually gets imported if installed diff --git a/geopandas/tests/test_geodataframe.py b/geopandas/tests/test_geodataframe.py index 83b748f..49f5614 100644 --- a/geopandas/tests/test_geodataframe.py +++ b/geopandas/tests/test_geodataframe.py @@ -7,7 +7,6 @@ from distutils.version import LooseVersion import numpy as np import pandas as pd -import fiona import pyproj from pyproj import CRS from pyproj.exceptions import CRSError @@ -490,6 +489,7 @@ class TestDataFrame: assert df._geometry_column_name == "location" def test_from_features(self): + fiona = pytest.importorskip("fiona") nybb_filename = geopandas.datasets.get_path("nybb") with fiona.open(nybb_filename) as f: features = list(f) From b3db3be001d19100f3ed16d07e96f09a423c89d8 Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Mon, 25 Jan 2021 20:15:39 +0000 Subject: [PATCH 090/316] GHA: Automatic release to GitHub and PyPI (#1578) also create github release (thanks to pysal) Co-authored-by: Joris Van den Bossche --- .github/workflows/release_to_pypi.yml | 60 +++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 .github/workflows/release_to_pypi.yml diff --git a/.github/workflows/release_to_pypi.yml b/.github/workflows/release_to_pypi.yml new file mode 100644 index 0000000..cf25cda --- /dev/null +++ b/.github/workflows/release_to_pypi.yml @@ -0,0 +1,60 @@ +name: Publish geopandas to PyPI / GitHub + +on: + push: + tags: + - "v*" + +jobs: + build-n-publish: + name: Build and publish geopandas to PyPI + runs-on: ubuntu-latest + + steps: + - name: Checkout source + uses: actions/checkout@v2 + + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: "3.x" + + - name: Build a binary wheel and a source tarball + run: | + python -m pip install --upgrade pip + pip install setuptools wheel + python setup.py sdist bdist_wheel + + - name: Publish distribution to PyPI + uses: pypa/gh-action-pypi-publish@master + with: + user: __token__ + password: ${{ secrets.PYPI_API_TOKEN }} + + - name: Create GitHub Release + id: create_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token + with: + tag_name: ${{ github.ref }} + release_name: ${{ github.ref }} + draft: false + prerelease: false + + - name: Get Asset name + run: | + export PKG=$(ls dist/) + set -- $PKG + echo "name=$1" >> $GITHUB_ENV + + - name: Upload Release Asset (sdist) to GitHub + id: upload-release-asset + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: dist/${{ env.name }} + asset_name: ${{ env.name }} + asset_content_type: application/zip From 407ed72339fdeaf205eea8c34f7439d86aa57141 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Tue, 26 Jan 2021 08:14:13 +0100 Subject: [PATCH 091/316] GHA: ensure to upload sdist to GitHub release (#1797) --- .github/workflows/release_to_pypi.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release_to_pypi.yml b/.github/workflows/release_to_pypi.yml index cf25cda..92b4773 100644 --- a/.github/workflows/release_to_pypi.yml +++ b/.github/workflows/release_to_pypi.yml @@ -44,7 +44,7 @@ jobs: - name: Get Asset name run: | - export PKG=$(ls dist/) + export PKG=$(ls dist/ | grep tar) set -- $PKG echo "name=$1" >> $GITHUB_ENV From 27d07dd15aa24224c9141b2e7e851e7eb9e87319 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Tue, 26 Jan 2021 08:14:33 +0100 Subject: [PATCH 092/316] CI: remove pygeos from builds using defaults channel (not compatible with pygeos 0.9) (#1794) --- ci/envs/36-pd025.yaml | 1 - ci/envs/37-latest-defaults.yaml | 1 - 2 files changed, 2 deletions(-) diff --git a/ci/envs/36-pd025.yaml b/ci/envs/36-pd025.yaml index 56a9e5a..554e237 100644 --- a/ci/envs/36-pd025.yaml +++ b/ci/envs/36-pd025.yaml @@ -25,4 +25,3 @@ dependencies: - pyproj==2.3.1 - geopy - mapclassify==2.2.0 - - pygeos diff --git a/ci/envs/37-latest-defaults.yaml b/ci/envs/37-latest-defaults.yaml index c7664dc..6b08024 100644 --- a/ci/envs/37-latest-defaults.yaml +++ b/ci/envs/37-latest-defaults.yaml @@ -24,4 +24,3 @@ dependencies: - pip: - geopy - mapclassify - - pygeos From 6bdb001ed69b38c16027c8cd3bc2a702dccc7096 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Tue, 26 Jan 2021 21:35:39 +0100 Subject: [PATCH 093/316] Fix compatilibilty with numpy 1.20.0 (#1729) --- .github/workflows/tests.yaml | 2 +- ci/envs/{37-dev.yaml => 38-dev.yaml} | 5 +++-- geopandas/array.py | 4 +++- geopandas/io/tests/test_file.py | 2 -- geopandas/tests/test_array.py | 6 +++--- geopandas/tests/test_extension_array.py | 17 ++++++++++++++++- 6 files changed, 26 insertions(+), 10 deletions(-) rename ci/envs/{37-dev.yaml => 38-dev.yaml} (86%) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index b93554b..a1327c8 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -51,7 +51,7 @@ jobs: os: windows-latest postgis: false dev: false - - env: ci/envs/37-dev.yaml + - env: ci/envs/38-dev.yaml os: ubuntu-latest dev: true diff --git a/ci/envs/37-dev.yaml b/ci/envs/38-dev.yaml similarity index 86% rename from ci/envs/37-dev.yaml rename to ci/envs/38-dev.yaml index 0f5a270..5b060fc 100644 --- a/ci/envs/37-dev.yaml +++ b/ci/envs/38-dev.yaml @@ -1,8 +1,8 @@ name: test channels: - - defaults + - conda-forge dependencies: - - python=3.7.3 + - python=3.8 - cython # required - fiona @@ -23,6 +23,7 @@ dependencies: - geopy - mapclassify>=2.2.0 # dev versions of packages + - git+https://github.com/numpy/numpy.git@master - git+https://github.com/pydata/pandas.git@master - git+https://github.com/matplotlib/matplotlib.git@master - git+https://github.com/Toblerity/Shapely.git@master diff --git a/geopandas/array.py b/geopandas/array.py index 114141c..ea2accc 100644 --- a/geopandas/array.py +++ b/geopandas/array.py @@ -783,7 +783,9 @@ class GeometryArray(ExtensionArray): "Value should be either a BaseGeometry or None, got %s" % str(value) ) # self.data[idx] = value - self.data[idx] = np.array([value], dtype=object) + value_arr = np.empty(1, dtype=object) + value_arr[:] = [value] + self.data[idx] = value_arr return self def fillna(self, value=None, method=None, limit=None): diff --git a/geopandas/io/tests/test_file.py b/geopandas/io/tests/test_file.py index 96b11a1..5951122 100644 --- a/geopandas/io/tests/test_file.py +++ b/geopandas/io/tests/test_file.py @@ -159,7 +159,6 @@ def test_to_file_types(tmpdir, df_points): """ Test various integer type columns (GH#93) """ tempfilename = os.path.join(str(tmpdir), "int.shp") int_types = [ - np.int, np.int8, np.int16, np.int32, @@ -169,7 +168,6 @@ def test_to_file_types(tmpdir, df_points): np.uint16, np.uint32, np.uint64, - np.long, ] geometry = df_points.geometry data = dict( diff --git a/geopandas/tests/test_array.py b/geopandas/tests/test_array.py index 3f128f9..9b0f0e0 100644 --- a/geopandas/tests/test_array.py +++ b/geopandas/tests/test_array.py @@ -52,8 +52,8 @@ def equal_geometries(result, expected): def test_points(): - x = np.arange(10).astype(np.float) - y = np.arange(10).astype(np.float) ** 2 + x = np.arange(10).astype(np.float64) + y = np.arange(10).astype(np.float64) ** 2 points = points_from_xy(x, y) assert isinstance(points, GeometryArray) @@ -500,7 +500,7 @@ def test_unary_float(attr): na_value = np.nan result = getattr(T, attr) assert isinstance(result, np.ndarray) - assert result.dtype == np.float + assert result.dtype == np.dtype("float64") expected = [getattr(t, attr) if t is not None else na_value for t in triangles] np.testing.assert_allclose(result, expected) diff --git a/geopandas/tests/test_extension_array.py b/geopandas/tests/test_extension_array.py index 5c2a01d..37d37a3 100644 --- a/geopandas/tests/test_extension_array.py +++ b/geopandas/tests/test_extension_array.py @@ -16,6 +16,7 @@ expected to be available to pytest by the inherited pandas tests). import operator import numpy as np +from numpy.testing import assert_array_equal import pandas as pd from pandas.tests.extension import base as extension_tests @@ -46,7 +47,8 @@ def dtype(): def make_data(): - a = np.array([shapely.geometry.Point(i, i) for i in range(100)], dtype=object) + a = np.empty(100, dtype=object) + a[:] = [shapely.geometry.Point(i, i) for i in range(100)] ga = from_shapely(a) return ga @@ -287,6 +289,19 @@ class TestDtype(extension_tests.BaseDtypeTests): class TestInterface(extension_tests.BaseInterfaceTests): + def test_array_interface(self, data): + # we are overriding this base test because the creation of `expected` + # potentionally doesn't work for shapely geometries + # TODO can be removed with Shapely 2.0 + result = np.array(data) + assert result[0] == data[0] + + result = np.array(data, dtype=object) + # expected = np.array(list(data), dtype=object) + expected = np.empty(len(data), dtype=object) + expected[:] = list(data) + assert_array_equal(result, expected) + def test_contains(self, data, data_missing): # overrided due to the inconsistency between # GeometryDtype.na_value = np.nan From 5759f0c4ec981bcd99f59f3da3f4fdae45992aa9 Mon Sep 17 00:00:00 2001 From: Brendan Ward Date: Thu, 28 Jan 2021 00:44:56 -0800 Subject: [PATCH 094/316] ENH: integrate pygeos.get_parts for faster explode() (#1693) --- benchmarks/geom_methods.py | 12 ++++++++++-- geopandas/_compat.py | 5 +++++ geopandas/geoseries.py | 37 +++++++++++++++++++++++++++++++++++-- 3 files changed, 50 insertions(+), 4 deletions(-) diff --git a/benchmarks/geom_methods.py b/benchmarks/geom_methods.py index ab6ac61..0da8b4c 100644 --- a/benchmarks/geom_methods.py +++ b/benchmarks/geom_methods.py @@ -2,7 +2,7 @@ import random import numpy as np from geopandas import GeoSeries -from shapely.geometry import Point, LineString, Polygon +from shapely.geometry import Point, Polygon, MultiPolygon def with_attributes(**attrs): @@ -25,10 +25,15 @@ class Bench: triangles3 = GeoSeries([Polygon([(random.random(), random.random()) for _ in range(3)]) for _ in range(10000)]) + triangles4 = GeoSeries([ + MultiPolygon([ + Polygon([(random.random(), random.random()) for _ in range(3)]) + ]) for _ in range(10000)]) triangle = Polygon([(random.random(), random.random()) for _ in range(3)]) self.triangles, self.triangles2 = triangles, triangles2 self.triangles_big = triangles3 + self.multi_triangles = triangles4 self.triangle = triangle @with_attributes(param_names=['op'], @@ -98,7 +103,10 @@ class Bench: def time_buffer(self, *args): self.points.buffer(2) + def time_explode(self, *args): + self.multi_triangles.explode() + # TODO -# project, interpolate, affine_transform, translate, rotate, scale, skew, explode +# project, interpolate, affine_transform, translate, rotate, scale, skew # cx indexer diff --git a/geopandas/_compat.py b/geopandas/_compat.py index 413a424..36501f5 100644 --- a/geopandas/_compat.py +++ b/geopandas/_compat.py @@ -26,14 +26,19 @@ SHAPELY_GE_17 = str(shapely.__version__) >= LooseVersion("1.7.0") SHAPELY_GE_18 = str(shapely.__version__) >= LooseVersion("1.8") SHAPELY_GE_20 = str(shapely.__version__) >= LooseVersion("2.0") + HAS_PYGEOS = None USE_PYGEOS = None PYGEOS_SHAPELY_COMPAT = None +PYGEOS_GE_09 = None + try: import pygeos # noqa HAS_PYGEOS = True + PYGEOS_GE_09 = str(pygeos.__version__) >= LooseVersion("0.9") + except ImportError: HAS_PYGEOS = False diff --git a/geopandas/geoseries.py b/geopandas/geoseries.py index 59b6d92..e9381a9 100644 --- a/geopandas/geoseries.py +++ b/geopandas/geoseries.py @@ -15,7 +15,7 @@ from geopandas.plotting import plot_series from .array import GeometryArray, GeometryDtype, from_shapely from .base import is_geometry_type from . import _vectorized as vectorized -from ._compat import ignore_shapely2_warnings +from . import _compat as compat _SERIES_WARNING_MSG = """\ @@ -197,7 +197,7 @@ class GeoSeries(GeoPandasBase, Series): # https://github.com/pandas-dev/pandas/issues/26469 kwargs.pop("dtype", None) # Use Series constructor to handle input data - with ignore_shapely2_warnings(): + with compat.ignore_shapely2_warnings(): s = pd.Series(data, index=index, name=name, **kwargs) # prevent trying to convert non-geometry objects if s.dtype != object: @@ -669,6 +669,39 @@ class GeoSeries(GeoPandasBase, Series): GeoDataFrame.explode """ + + if compat.USE_PYGEOS and compat.PYGEOS_GE_09: + import pygeos # noqa + + geometries, outer_idx = pygeos.get_parts( + self.values.data, return_index=True + ) + + if len(outer_idx): + # Generate inner index as a range per value of outer_idx + # 1. identify the start of each run of values in outer_idx + # 2. count number of values per run + # 3. use cumulative sums to create an incremental range + # starting at 0 in each run + run_start = np.r_[True, outer_idx[:-1] != outer_idx[1:]] + counts = np.diff(np.r_[np.nonzero(run_start)[0], len(outer_idx)]) + inner_index = (~run_start).cumsum() + inner_index -= np.repeat(inner_index[run_start], counts) + + else: + inner_index = [] + + # extract original index values based on integer index + outer_index = self.index.take(outer_idx) + + index = MultiIndex.from_arrays( + [outer_index, inner_index], names=self.index.names + [None] + ) + + return GeoSeries(geometries, index=index, crs=self.crs).__finalize__(self) + + # else PyGEOS is not available or version <= 0.8 + index = [] geometries = [] for idx, s in self.geometry.iteritems(): From cfc732e6104b8e97081486f97cb0a8fc79ac880f Mon Sep 17 00:00:00 2001 From: Will Schlitzer Date: Thu, 28 Jan 2021 20:27:06 +0000 Subject: [PATCH 095/316] DOC: Update copyright year (#1806) --- doc/source/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/conf.py b/doc/source/conf.py index 5f211f3..c9d566c 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -97,7 +97,7 @@ master_doc = "index" # General information about the project. project = u"GeoPandas" -copyright = u"2013–2019, GeoPandas developers" +copyright = u"2013–2021, GeoPandas developers" # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the From 79aeefacd71dccbe86fac741d1e4809fba0e3d4e Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Sat, 30 Jan 2021 11:00:00 +0000 Subject: [PATCH 096/316] DOC: documentation improvements (#1750) * docstring changes * cx * notes * ci fix * skip check * updates based on the review * Update geopandas/base.py Co-authored-by: Flavin * typo Co-authored-by: Flavin --- doc/source/docs/reference/geodataframe.rst | 8 ++ doc/source/docs/reference/geoseries.rst | 8 ++ geopandas/array.py | 13 +++ geopandas/base.py | 109 +++++++++++++++++++-- geopandas/datasets/__init__.py | 6 ++ geopandas/geodataframe.py | 73 +++++++++++++- geopandas/geoseries.py | 23 ++++- geopandas/plotting.py | 21 ++++ geopandas/tools/clip.py | 2 +- geopandas/tools/overlay.py | 56 +++++++++++ geopandas/tools/sjoin.py | 59 ++++++++++- 11 files changed, 362 insertions(+), 16 deletions(-) diff --git a/doc/source/docs/reference/geodataframe.rst b/doc/source/docs/reference/geodataframe.rst index 71c1a85..c6988f8 100644 --- a/doc/source/docs/reference/geodataframe.rst +++ b/doc/source/docs/reference/geodataframe.rst @@ -75,6 +75,14 @@ Spatial index GeoDataFrame.sindex GeoDataFrame.has_sindex +Indexing +-------- + +.. autosummary:: + :toctree: api/ + + GeoDataFrame.cx + Interface --------- diff --git a/doc/source/docs/reference/geoseries.rst b/doc/source/docs/reference/geoseries.rst index a657d21..44a23fe 100644 --- a/doc/source/docs/reference/geoseries.rst +++ b/doc/source/docs/reference/geoseries.rst @@ -154,6 +154,14 @@ Spatial index GeoSeries.sindex GeoSeries.has_sindex +Indexing +-------- + +.. autosummary:: + :toctree: api/ + + GeoSeries.cx + Interface --------- diff --git a/geopandas/array.py b/geopandas/array.py index ea2accc..ea0eb72 100644 --- a/geopandas/array.py +++ b/geopandas/array.py @@ -233,6 +233,9 @@ def points_from_xy(x, y, z=None, crs=None): """ Generate GeometryArray of shapely Point geometries from x, y(, z) coordinates. + In case of geographic coordinates, it is assumed that longitude is captured by + ``x`` coordinates and latitude by ``y``. + Parameters ---------- x, y, z : iterable @@ -255,6 +258,16 @@ def points_from_xy(x, y, z=None, crs=None): >>> gdf = geopandas.GeoDataFrame( ... df, geometry=geopandas.points_from_xy(df['x'], df['y'])) + Having geographic coordinates: + + >>> df = pd.DataFrame({'longitude': [-140, 0, 123], 'latitude': [-65, 1, 48]}) + >>> df + longitude latitude + 0 -140 -65 + 1 0 1 + 2 123 48 + >>> geometry = geopandas.points_from_xy(df.longitude, df.latitude, crs="EPSG:4326") + Returns ------- output : GeometryArray diff --git a/geopandas/base.py b/geopandas/base.py index f9401c0..b2e2802 100644 --- a/geopandas/base.py +++ b/geopandas/base.py @@ -87,7 +87,7 @@ class GeoPandasBase(object): @property def area(self): """Returns a ``Series`` containing the area of each geometry in the - ``GeoSeries``. + ``GeoSeries`` expressed in the units of the CRS. Examples -------- @@ -117,6 +117,19 @@ class GeoPandasBase(object): 3 0.0 4 0.0 dtype: float64 + + See also + -------- + GeoSeries.length : measure length + + Notes + ----- + Area may be invalid for a geographic CRS using degrees as units; + use :meth:`GeoSeries.to_crs` to project geometries to a planar + CRS before using this function. + + Every operation in GeoPandas is planar, i.e. the potential third + dimension is not taken into account. """ return _delegate_property("area", self) @@ -147,6 +160,11 @@ class GeoPandasBase(object): Datum: World Geodetic System 1984 - Ellipsoid: WGS 84 - Prime Meridian: Greenwich + + See also + -------- + GeoSeries.set_crs : assign CRS + GeoSeries.to_crs : re-project to another CRS """ return self.geometry.values.crs @@ -182,7 +200,11 @@ class GeoPandasBase(object): @property def length(self): - """Returns a ``Series`` containing the length of each geometry. + """Returns a ``Series`` containing the length of each geometry + expressed in the units of the CRS. + + In the case of a (Multi)Polygon it measures the length + of its exterior (i.e. perimeter). Examples -------- @@ -217,6 +239,20 @@ GeometryCollection 4 0.000000 5 16.180340 dtype: float64 + + See also + -------- + GeoSeries.area : measure area of a polygon + + Notes + ----- + Length may be invalid for a geographic CRS using degrees as units; + use :meth:`GeoSeries.to_crs` to project geometries to a planar + CRS before using this function. + + Every operation in GeoPandas is planar, i.e. the potential third + dimension is not taken into account. + """ return _delegate_property("length", self) @@ -321,6 +357,11 @@ GeometryCollection """Returns a ``Series`` of ``dtype('bool')`` with value ``True`` for features that are closed. + When constructing a LinearRing, the sequence of coordinates may be + explicitly closed by passing identical values in the first and last indices. + Otherwise, the sequence will be implicitly closed by copying the first tuple + to the last index. + Examples -------- >>> from shapely.geometry import LineString, LinearRing @@ -337,11 +378,6 @@ GeometryCollection 2 LINEARRING (0.00000 0.00000, 1.00000 1.00000, ... dtype: geometry - Note: When constructing a LinearRing, the sequence of coordinates may be - explicitly closed by passing identical values in the first and last indices. - Otherwise, the sequence will be implicitly closed by copying the first tuple - to the last index. - >>> s.is_ring 0 False 1 True @@ -356,6 +392,11 @@ GeometryCollection """Returns a ``Series`` of ``dtype('bool')`` with value ``True`` for features that have a z-component. + Notes + ------ + Every operation in GeoPandas is planar, i.e. the potential third + dimension is not taken into account. + Examples -------- >>> from shapely.geometry import Point @@ -409,6 +450,10 @@ GeometryCollection 2 GEOMETRYCOLLECTION EMPTY dtype: geometry + See also + -------- + GeoSeries.exterior : outer boundary (without interior rings) + """ return _delegate_property("boundary", self) @@ -441,6 +486,10 @@ GeometryCollection 1 POINT (0.70711 0.50000) 2 POINT (0.00000 0.00000) dtype: geometry + + See also + -------- + GeoSeries.representative_point : point guaranteed to be within each geometry """ return _delegate_property("centroid", self) @@ -483,6 +532,10 @@ GeometryCollection 4 POINT (0.00000 0.00000) dtype: geometry + See also + -------- + GeoSeries.envelope : bounding rectangle geometry + """ return _delegate_property("convex_hull", self) @@ -520,6 +573,10 @@ GeometryCollection 2 POLYGON ((0.00000 0.00000, 1.00000 0.00000, 1.... 3 POINT (0.00000 0.00000) dtype: geometry + + See also + -------- + GeoSeries.convex_hull : convex hull geometry """ return _delegate_property("envelope", self) @@ -553,6 +610,11 @@ GeometryCollection 1 LINEARRING (1.00000 0.00000, 2.00000 1.00000, ... 2 None dtype: geometry + + See also + -------- + GeoSeries.boundary : complete set-theoretic boundary + GeoSeries.interiors : list of inner rings of each polygon """ # TODO: return empty geometry for non-polygons return _delegate_property("exterior", self) @@ -591,6 +653,10 @@ GeometryCollection 0 [LINEARRING (1 1, 2 1, 1 2, 1 1), LINEARRING (... 1 [] dtype: object + + See also + -------- + GeoSeries.exterior : outer boundary """ return _delegate_property("interiors", self) @@ -620,6 +686,10 @@ GeometryCollection 1 POINT (1.00000 1.00000) 2 POINT (0.00000 0.00000) dtype: geometry + + See also + -------- + GeoSeries.centroid : geometric centroid """ return _delegate_geo_method("representative_point", self) @@ -1392,6 +1462,31 @@ GeometryCollection ``xmin``, ``xmax``, ``ymin``, and ``ymax`` can be provided, but input must include a comma separating x and y slices. That is, ``.cx[:, :]`` will return the full series/frame, but ``.cx[:]`` is not implemented. + + Examples + -------- + >>> from shapely.geometry import LineString, Point + >>> s = geopandas.GeoSeries( + ... [Point(0, 0), Point(1, 2), Point(3, 3), LineString([(0, 0), (3, 3)])] + ... ) + >>> s + 0 POINT (0.00000 0.00000) + 1 POINT (1.00000 2.00000) + 2 POINT (3.00000 3.00000) + 3 LINESTRING (0.00000 0.00000, 3.00000 3.00000) + dtype: geometry + + >>> s.cx[0:1, 0:1] + 0 POINT (0.00000 0.00000) + 3 LINESTRING (0.00000 0.00000, 3.00000 3.00000) + dtype: geometry + + >>> s.cx[:, 1:] + 1 POINT (1.00000 2.00000) + 2 POINT (3.00000 3.00000) + 3 LINESTRING (0.00000 0.00000, 3.00000 3.00000) + dtype: geometry + """ return _CoordinateIndexer(self) diff --git a/geopandas/datasets/__init__.py b/geopandas/datasets/__init__.py index a592b56..b56d202 100644 --- a/geopandas/datasets/__init__.py +++ b/geopandas/datasets/__init__.py @@ -18,6 +18,12 @@ def get_path(dataset): The name of the dataset. See ``geopandas.datasets.available`` for all options. + Examples + -------- + >>> geopandas.datasets.get_path("naturalearth_lowres") # doctest: +SKIP + '.../python3.8/site-packages/geopandas/datasets/\ +naturalearth_lowres/naturalearth_lowres.shp' + """ if dataset in _available_dir: return os.path.abspath(os.path.join(_module_path, dataset, dataset + ".shp")) diff --git a/geopandas/geodataframe.py b/geopandas/geodataframe.py index d7c79b2..09188ef 100644 --- a/geopandas/geodataframe.py +++ b/geopandas/geodataframe.py @@ -78,6 +78,10 @@ class GeoDataFrame(GeoPandasBase, DataFrame): col1 object geometry geometry dtype: object + + See also + -------- + GeoSeries : Series object designed to store shapely geometry objects """ _metadata = ["_crs", "_geometry_column_name"] @@ -230,10 +234,13 @@ class GeoDataFrame(GeoPandasBase, DataFrame): 1 POLYGON ((4.00000 1.00000, 3.99037 0.80397, 3.... Name: buffered, dtype: geometry - Returns ------- GeoDataFrame + + See also + -------- + GeoDataFrame.rename_geometry : rename an active geometry column """ # Most of the code here is taken from DataFrame.set_index() if inplace: @@ -313,6 +320,10 @@ class GeoDataFrame(GeoPandasBase, DataFrame): Returns ------- geodataframe : GeoDataFrame + + See also + -------- + GeoDataFrame.set_geometry : set the active geometry """ geometry_col = self.geometry.name if col in self.columns: @@ -353,6 +364,11 @@ class GeoDataFrame(GeoPandasBase, DataFrame): - Ellipsoid: WGS 84 - Prime Meridian: Greenwich + See also + -------- + GeoDataFrame.set_crs : assign CRS + GeoDataFrame.to_crs : re-project to another CRS + """ return self._crs @@ -468,7 +484,8 @@ class GeoDataFrame(GeoPandasBase, DataFrame): See also -------- - read_file + read_file : read file to GeoDataFame + GeoDataFrame.to_file : write GeoDataFrame to file """ return geopandas.io.file._read_file(filename, **kwargs) @@ -624,8 +641,7 @@ class GeoDataFrame(GeoPandasBase, DataFrame): See also -------- - geopandas.read_postgis - + geopandas.read_postgis : read PostGIS database to GeoDataFrame """ df = geopandas.io.sql._read_postgis( @@ -682,6 +698,14 @@ class GeoDataFrame(GeoPandasBase, DataFrame): 2.0]}}, {"id": "1", "type": "Feature", "properties": {"col1": "name2"}, "geometry"\ : {"type": "Point", "coordinates": [2.0, 1.0]}}]}' + Alternatively, you can write GeoJSON to file: + + >>> gdf.to_file(path, driver="GeoJSON") # doctest: +SKIP + + See also + -------- + GeoDataFrame.to_file : write GeoDataFrame to file + """ return json.dumps(self._to_geo(na=na, show_bbox=show_bbox), **kwargs) @@ -856,6 +880,11 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} -------- >>> gdf.to_parquet('data.parquet') # doctest: +SKIP + + See also + -------- + GeoDataFrame.to_feather : write GeoDataFrame to feather + GeoDataFrame.to_file : write GeoDataFrame to file """ from geopandas.io.arrow import _to_parquet @@ -899,6 +928,11 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} -------- >>> gdf.to_feather('data.feather') # doctest: +SKIP + + See also + -------- + GeoDataFrame.to_parquet : write GeoDataFrame to parquet + GeoDataFrame.to_file : write GeoDataFrame to file """ from geopandas.io.arrow import _to_feather @@ -948,6 +982,9 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} See Also -------- GeoSeries.to_file + GeoDataFrame.to_postgis : write GeoDataFrame to PostGIS database + GeoDataFrame.to_parquet : write GeoDataFrame to parquet + GeoDataFrame.to_feather : write GeoDataFrame to feather Examples -------- @@ -957,6 +994,10 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} >>> gdf.to_file('dataframe.gpkg', driver='GPKG', layer='name') # doctest: +SKIP >>> gdf.to_file('dataframe.geojson', driver='GeoJSON') # doctest: +SKIP + + With selected drivers you can also append to a file with `mode="a"`: + + >>> gdf.to_file('dataframe.shp', mode="a") # doctest: +SKIP """ from geopandas.io.file import _to_file @@ -1026,6 +1067,11 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} Without ``allow_override=True``, ``set_crs`` returns an error if you try to override CRS. + + See also + -------- + GeoDataFrame.to_crs : re-project to another CRS + """ if not inplace: df = self.copy() @@ -1107,6 +1153,10 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} Datum: World Geodetic System 1984 - Ellipsoid: WGS 84 - Prime Meridian: Greenwich + + See also + -------- + GeoDataFrame.set_crs : assign CRS without re-projection """ if inplace: df = self @@ -1302,6 +1352,10 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} name1 MULTIPOINT (0.00000 1.00000, 1.00000 2.00000) name2 POINT (2.00000 1.00000) + See also + -------- + GeoDataFrame.explode : explode muti-part geometries into single geometries + """ if by is None: @@ -1375,6 +1429,11 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} 1 name1 POINT (3.00000 4.00000) 1 0 name2 POINT (2.00000 1.00000) 1 name2 POINT (0.00000 0.00000) + + See also + -------- + GeoDataFrame.dissolve : dissolve geometries into a single observation. + """ # If no column is specified then default to the active geometry column @@ -1487,6 +1546,12 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} >>> engine = create_engine("postgres://myusername:mypassword@myhost:5432\ /mydatabase") # doctest: +SKIP >>> gdf.to_postgis("my_table", engine) # doctest: +SKIP + + See also + -------- + GeoDataFrame.to_file : write GeoDataFrame to file + read_postgis : read PostGIS database to GeoDataFrame + """ geopandas.io.sql._write_postgis( self, name, con, schema, if_exists, index, index_label, chunksize, dtype diff --git a/geopandas/geoseries.py b/geopandas/geoseries.py index e9381a9..793cf7c 100644 --- a/geopandas/geoseries.py +++ b/geopandas/geoseries.py @@ -320,6 +320,10 @@ class GeoSeries(GeoPandasBase, Series): 3 MULTIPOLYGON (((981219.056 188655.316, 980940.... 4 MULTIPOLYGON (((1012821.806 229228.265, 101278... Name: geometry, dtype: geometry + + See Also + -------- + read_file : read file to GeoDataFame """ from geopandas import GeoDataFrame @@ -383,7 +387,8 @@ class GeoSeries(GeoPandasBase, Series): See Also -------- - GeoDataFrame.to_file + GeoDataFrame.to_file : write GeoDataFrame to file + read_file : read file to GeoDataFame Examples -------- @@ -602,6 +607,10 @@ class GeoSeries(GeoPandasBase, Series): 1 POLYGON ((0.00000 1.00000, 2.00000 1.00000, 1.... 2 POLYGON ((0.00000 0.00000, -1.00000 1.00000, 0... dtype: geometry + + See Also + -------- + GeoSeries.isna : detect missing values """ if value is None: value = BaseGeometry() @@ -786,6 +795,10 @@ class GeoSeries(GeoPandasBase, Series): Without ``allow_override=True``, ``set_crs`` returns an error if you try to override CRS. + See Also + -------- + GeoSeries.to_crs : re-project to another CRS + """ if crs is not None: crs = CRS.from_user_input(crs) @@ -879,6 +892,10 @@ class GeoSeries(GeoPandasBase, Series): - Ellipsoid: WGS 84 - Prime Meridian: Greenwich + See Also + -------- + GeoSeries.set_crs : assign CRS + """ if self.crs is None: raise ValueError( @@ -1005,6 +1022,10 @@ operties": {}, "geometry": {"type": "Point", "coordinates": [1.0, 1.0]}, "bbox": : "Point", "coordinates": [2.0, 2.0]}, "bbox": [2.0, 2.0, 2.0, 2.0]}, {"id": "2", "typ\ e": "Feature", "properties": {}, "geometry": {"type": "Point", "coordinates": [3.0, 3.\ 0]}, "bbox": [3.0, 3.0, 3.0, 3.0]}], "bbox": [1.0, 1.0, 3.0, 3.0]}' + + See Also + -------- + GeoSeries.to_file : write GeoSeries to file """ return json.dumps(self.__geo_interface__, **kwargs) diff --git a/geopandas/plotting.py b/geopandas/plotting.py index c176569..275175e 100644 --- a/geopandas/plotting.py +++ b/geopandas/plotting.py @@ -587,6 +587,27 @@ def plot_dataframe( ------- ax : matplotlib axes instance + Examples + -------- + >>> df = geopandas.read_file(geopandas.datasets.get_path("naturalearth_lowres")) + >>> df.head() # doctest: +SKIP + pop_est continent name iso_a3 \ +gdp_md_est geometry + 0 920938 Oceania Fiji FJI 8374.0 MULTIPOLY\ +GON (((180.00000 -16.06713, 180.00000... + 1 53950935 Africa Tanzania TZA 150600.0 POLYGON (\ +(33.90371 -0.95000, 34.07262 -1.05982... + 2 603253 Africa W. Sahara ESH 906.5 POLYGON (\ +(-8.66559 27.65643, -8.66512 27.58948... + 3 35623680 North America Canada CAN 1674000.0 MULTIPOLY\ +GON (((-122.84000 49.00000, -122.9742... + 4 326625791 North America United States of America USA 18560000.0 MULTIPOLY\ +GON (((-122.84000 49.00000, -120.0000... + + >>> df.plot("pop_est", cmap="Blues") # doctest: +SKIP + + See the User Guide page :doc:`../../user_guide/mapping` for details. + """ if "colormap" in style_kwds: warnings.warn( diff --git a/geopandas/tools/clip.py b/geopandas/tools/clip.py index 6e677b9..12d41c6 100644 --- a/geopandas/tools/clip.py +++ b/geopandas/tools/clip.py @@ -106,7 +106,6 @@ def clip(gdf, mask, keep_geom_type=False): -------- Clip points (global cities) with a polygon (the South American continent): - >>> import geopandas >>> world = geopandas.read_file( ... geopandas.datasets.get_path('naturalearth_lowres')) >>> south_america = world[world['continent'] == "South America"] @@ -114,6 +113,7 @@ def clip(gdf, mask, keep_geom_type=False): ... geopandas.datasets.get_path('naturalearth_cities')) >>> capitals.shape (202, 2) + >>> sa_capitals = geopandas.clip(capitals, south_america) >>> sa_capitals.shape (12, 2) diff --git a/geopandas/tools/overlay.py b/geopandas/tools/overlay.py index 7d1d97a..d3c0bf8 100644 --- a/geopandas/tools/overlay.py +++ b/geopandas/tools/overlay.py @@ -145,6 +145,8 @@ def overlay(df1, df2, how="intersection", keep_geom_type=True): combination of (Multi)LineString and LinearRing shapes. Implements several methods that are all effectively subsets of the union. + See the User Guide page :doc:`../../user_guide/set_operations` for details. + Parameters ---------- df1 : GeoDataFrame @@ -162,6 +164,60 @@ def overlay(df1, df2, how="intersection", keep_geom_type=True): GeoDataFrame with new set of polygons and attributes resulting from the overlay + Examples + -------- + >>> from shapely.geometry import Polygon + >>> polys1 = geopandas.GeoSeries([Polygon([(0,0), (2,0), (2,2), (0,2)]), + ... Polygon([(2,2), (4,2), (4,4), (2,4)])]) + >>> polys2 = geopandas.GeoSeries([Polygon([(1,1), (3,1), (3,3), (1,3)]), + ... Polygon([(3,3), (5,3), (5,5), (3,5)])]) + >>> df1 = geopandas.GeoDataFrame({'geometry': polys1, 'df1_data':[1,2]}) + >>> df2 = geopandas.GeoDataFrame({'geometry': polys2, 'df2_data':[1,2]}) + + >>> geopandas.overlay(df1, df2, how='union') + df1_data df2_data geometry + 0 1.0 1.0 POLYGON ((1.00000 2.00000, 2.00000 2.00000, 2.... + 1 2.0 1.0 POLYGON ((2.00000 2.00000, 2.00000 3.00000, 3.... + 2 2.0 2.0 POLYGON ((3.00000 4.00000, 4.00000 4.00000, 4.... + 3 1.0 NaN POLYGON ((0.00000 0.00000, 0.00000 2.00000, 1.... + 4 2.0 NaN MULTIPOLYGON (((3.00000 3.00000, 4.00000 3.000... + 5 NaN 1.0 MULTIPOLYGON (((2.00000 2.00000, 3.00000 2.000... + 6 NaN 2.0 POLYGON ((3.00000 4.00000, 3.00000 5.00000, 5.... + + >>> geopandas.overlay(df1, df2, how='intersection') + df1_data df2_data geometry + 0 1 1 POLYGON ((1.00000 2.00000, 2.00000 2.00000, 2.... + 1 2 1 POLYGON ((2.00000 2.00000, 2.00000 3.00000, 3.... + 2 2 2 POLYGON ((3.00000 4.00000, 4.00000 4.00000, 4.... + + >>> geopandas.overlay(df1, df2, how='symmetric_difference') + df1_data df2_data geometry + 0 1.0 NaN POLYGON ((0.00000 0.00000, 0.00000 2.00000, 1.... + 1 2.0 NaN MULTIPOLYGON (((3.00000 3.00000, 4.00000 3.000... + 2 NaN 1.0 MULTIPOLYGON (((2.00000 2.00000, 3.00000 2.000... + 3 NaN 2.0 POLYGON ((3.00000 4.00000, 3.00000 5.00000, 5.... + + >>> geopandas.overlay(df1, df2, how='difference') + geometry df1_data + 0 POLYGON ((0.00000 0.00000, 0.00000 2.00000, 1.... 1 + 1 MULTIPOLYGON (((2.00000 3.00000, 2.00000 4.000... 2 + + >>> geopandas.overlay(df1, df2, how='identity') + df1_data df2_data geometry + 0 1.0 1.0 POLYGON ((1.00000 2.00000, 2.00000 2.00000, 2.... + 1 2.0 1.0 POLYGON ((2.00000 2.00000, 2.00000 3.00000, 3.... + 2 2.0 2.0 POLYGON ((3.00000 4.00000, 4.00000 4.00000, 4.... + 3 1.0 NaN POLYGON ((0.00000 0.00000, 0.00000 2.00000, 1.... + 4 2.0 NaN MULTIPOLYGON (((3.00000 3.00000, 4.00000 3.000... + + See also + -------- + sjoin : spatial join + + Notes + ------ + Every operation in GeoPandas is planar, i.e. the potential third + dimension is not taken into account. """ # Allowed operations allowed_hows = [ diff --git a/geopandas/tools/sjoin.py b/geopandas/tools/sjoin.py index 067fc79..8e2aea6 100644 --- a/geopandas/tools/sjoin.py +++ b/geopandas/tools/sjoin.py @@ -11,6 +11,9 @@ def sjoin( ): """Spatial join of two GeoDataFrames. + See the User Guide page :doc:`../../user_guide/mergingdata` for details. + + Parameters ---------- left_df, right_df : GeoDataFrames @@ -23,13 +26,63 @@ def sjoin( left_df geometry column op : string, default 'intersects' Binary predicate. Valid values are determined by the spatial index used. - You can check the valid values in `left_df` or `right_df` as - `left_df.sindex.valid_query_predicates` or - `right_df.sindex.valid_query_predicates` + You can check the valid values in left_df or right_df as + ``left_df.sindex.valid_query_predicates`` or + ``right_df.sindex.valid_query_predicates`` lsuffix : string, default 'left' Suffix to apply to overlapping column names (left GeoDataFrame). rsuffix : string, default 'right' Suffix to apply to overlapping column names (right GeoDataFrame). + + Examples + -------- + >>> countries = geopandas.read_file(geopandas.datasets.get_\ +path("naturalearth_lowres")) + >>> cities = geopandas.read_file(geopandas.datasets.get_path("naturalearth_cities")) + >>> countries.head() # doctest: +SKIP + pop_est continent name \ +iso_a3 gdp_md_est geometry + 0 920938 Oceania Fiji FJI 8374.0 MULTIPOLY\ +GON (((180.00000 -16.06713, 180.00000... + 1 53950935 Africa Tanzania TZA 150600.0 POLYGON (\ +(33.90371 -0.95000, 34.07262 -1.05982... + 2 603253 Africa W. Sahara ESH 906.5 POLYGON (\ +(-8.66559 27.65643, -8.66512 27.58948... + 3 35623680 North America Canada CAN 1674000.0 MULTIPOLY\ +GON (((-122.84000 49.00000, -122.9742... + 4 326625791 North America United States of America USA 18560000.0 MULTIPOLY\ +GON (((-122.84000 49.00000, -120.0000... + >>> cities.head() + name geometry + 0 Vatican City POINT (12.45339 41.90328) + 1 San Marino POINT (12.44177 43.93610) + 2 Vaduz POINT (9.51667 47.13372) + 3 Luxembourg POINT (6.13000 49.61166) + 4 Palikir POINT (158.14997 6.91664) + + >>> cities_w_country_data = geopandas.sjoin(cities, countries) + >>> cities_w_country_data.head() # doctest: +SKIP + name_left geometry index_right pop_est continent name_\ +right iso_a3 gdp_md_est + 0 Vatican City POINT (12.45339 41.90328) 141 62137802 Europe \ +Italy ITA 2221000.0 + 1 San Marino POINT (12.44177 43.93610) 141 62137802 Europe \ +Italy ITA 2221000.0 + 192 Rome POINT (12.48131 41.89790) 141 62137802 Europe \ +Italy ITA 2221000.0 + 2 Vaduz POINT (9.51667 47.13372) 114 8754413 Europe Au\ +stria AUT 416600.0 + 184 Vienna POINT (16.36469 48.20196) 114 8754413 Europe Au\ +stria AUT 416600.0 + + See also + -------- + overlay : overlay operation resulting in a new geometry + + Notes + ------ + Every operation in GeoPandas is planar, i.e. the potential third + dimension is not taken into account. """ _basic_checks(left_df, right_df, how, lsuffix, rsuffix) From 5119410b3bcee826ffc91701b7c9bb19e74714d7 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Sat, 30 Jan 2021 18:17:39 +0100 Subject: [PATCH 097/316] Only use pygeos is a recent version is installed (#1792) --- doc/source/getting_started/install.rst | 6 +++--- geopandas/_compat.py | 16 ++++++++++++---- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/doc/source/getting_started/install.rst b/doc/source/getting_started/install.rst index 2732844..0d56a06 100644 --- a/doc/source/getting_started/install.rst +++ b/doc/source/getting_started/install.rst @@ -175,9 +175,9 @@ experimental speedups by installing PyGEOS. This can be done with conda More specifically, whether the speedups are used or not is determined by: -- If PyGEOS is installed, it will be used by default (but installing GeoPandas - will not yet automatically install PyGEOS as dependency, you need to do this - manually). +- If PyGEOS >= 0.8 is installed, it will be used by default (but installing + GeoPandas will not yet automatically install PyGEOS as dependency, you need + to do this manually). - You can still toggle the use of PyGEOS when it is available, by: diff --git a/geopandas/_compat.py b/geopandas/_compat.py index 36501f5..138cf8a 100644 --- a/geopandas/_compat.py +++ b/geopandas/_compat.py @@ -36,9 +36,17 @@ PYGEOS_GE_09 = None try: import pygeos # noqa - HAS_PYGEOS = True - PYGEOS_GE_09 = str(pygeos.__version__) >= LooseVersion("0.9") - + # only automatically use pygeos if version is high enough + if str(pygeos.__version__) >= LooseVersion("0.8"): + HAS_PYGEOS = True + PYGEOS_GE_09 = str(pygeos.__version__) >= LooseVersion("0.9") + else: + warnings.warn( + "The installed version of PyGEOS is too old ({0} installed, 0.8 required)," + " and thus GeoPandas will not use PyGEOS.".format(pygeos.__version__), + UserWarning, + ) + HAS_PYGEOS = False except ImportError: HAS_PYGEOS = False @@ -73,7 +81,7 @@ def set_use_pygeos(val=None): import pygeos # noqa # validate the pygeos version - if not str(pygeos.__version__) >= LooseVersion("0.6"): + if not str(pygeos.__version__) >= LooseVersion("0.8"): raise ImportError( "PyGEOS >= 0.6 is required, version {0} is installed".format( pygeos.__version__ From e2d5615882f1340836bab14d2b054cdce9f15982 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Sat, 6 Feb 2021 19:12:45 +0100 Subject: [PATCH 098/316] CI: force fiona version to 1.8.13 for minimal build (#1815) --- ci/envs/36-minimal.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/envs/36-minimal.yaml b/ci/envs/36-minimal.yaml index 91a55e2..7bec4c4 100644 --- a/ci/envs/36-minimal.yaml +++ b/ci/envs/36-minimal.yaml @@ -8,7 +8,7 @@ dependencies: - numpy=1.15 - pandas==0.24 - shapely=1.6 - - fiona=1.8 + - fiona=1.8.13 #- pyproj # testing - pytest From 622fd9cb2b1624e851928eaa02558c2479d5e3ce Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Sat, 6 Feb 2021 18:13:16 +0000 Subject: [PATCH 099/316] TST: check exact warning (#1811) --- geopandas/tests/test_geom_methods.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/geopandas/tests/test_geom_methods.py b/geopandas/tests/test_geom_methods.py index 92e6e4d..e494042 100644 --- a/geopandas/tests/test_geom_methods.py +++ b/geopandas/tests/test_geom_methods.py @@ -672,7 +672,8 @@ class TestGeomMethods: # do not warn for 0 self.g4.buffer(0) - assert len(record) == 0 + for r in record: + assert "Geometry is in a geographic CRS." not in str(r.message) def test_envelope(self): e = self.g3.envelope From efea225166a74404927e81b06a253f3d21ad2c0e Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Mon, 8 Feb 2021 11:57:50 +0100 Subject: [PATCH 100/316] TST: fix tests with matplotlib master (#1817) * TST: fix tests with matplotlib master * also fix legend height test + more robust method to get specific axes object * fix robust helper method for old matplotlib * typo --- geopandas/tests/test_plotting.py | 46 ++++++++++++++++++++++++-------- 1 file changed, 35 insertions(+), 11 deletions(-) diff --git a/geopandas/tests/test_plotting.py b/geopandas/tests/test_plotting.py index 84b3b0f..e64474f 100644 --- a/geopandas/tests/test_plotting.py +++ b/geopandas/tests/test_plotting.py @@ -1,3 +1,4 @@ +from distutils.version import LooseVersion import itertools import warnings @@ -234,7 +235,7 @@ class TestPointPlotting: # the colorbar matches the Point colors ax = self.df.plot(column="values", cmap="RdYlGn", legend=True) point_colors = ax.collections[0].get_facecolors() - cbar_colors = ax.get_figure().axes[1].collections[-1].get_facecolors() + cbar_colors = _get_colorbar_ax(ax.get_figure()).collections[-1].get_facecolors() # first point == bottom of colorbar np.testing.assert_array_equal(point_colors[0], cbar_colors[0]) # last point == top of colorbar @@ -257,7 +258,7 @@ class TestPointPlotting: ) ax = self.df[1:].plot(column="exp", cmap="RdYlGn", legend=True, norm=norm) point_colors = ax.collections[0].get_facecolors() - cbar_colors = ax.get_figure().axes[1].collections[-1].get_facecolors() + cbar_colors = _get_colorbar_ax(ax.get_figure()).collections[-1].get_facecolors() # first point == bottom of colorbar np.testing.assert_array_equal(point_colors[0], cbar_colors[0]) # last point == top of colorbar @@ -710,8 +711,8 @@ class TestPolygonPlotting: legend=True, legend_kwds={"label": label_txt}, ) - - assert ax.get_figure().axes[1].get_ylabel() == label_txt + cax = _get_colorbar_ax(ax.get_figure()) + assert cax.get_ylabel() == label_txt ax = self.df.plot( column="values", @@ -720,7 +721,8 @@ class TestPolygonPlotting: legend_kwds={"label": label_txt, "orientation": "horizontal"}, ) - assert ax.get_figure().axes[1].get_xlabel() == label_txt + cax = _get_colorbar_ax(ax.get_figure()) + assert cax.get_xlabel() == label_txt def test_fmt_ignore(self): # test if fmt is removed if scheme is not passed (it would raise Error) @@ -1141,21 +1143,21 @@ class TestMapclassifyPlotting: # base case with warnings.catch_warnings(record=True) as _: # don't print warning ax = self.df.plot(column="pop_est", cmap="OrRd", legend=True) - plot_height = ax.get_figure().get_axes()[0].get_position().height - legend_height = ax.get_figure().get_axes()[1].get_position().height + plot_height = _get_ax(ax.get_figure(), "").get_position().height + legend_height = _get_ax(ax.get_figure(), "").get_position().height assert abs(plot_height - legend_height) >= 1e-6 # fix heights with cax argument - ax2 = plt.axes() + fig, ax2 = plt.subplots() from mpl_toolkits.axes_grid1 import make_axes_locatable divider = make_axes_locatable(ax2) - cax = divider.append_axes("right", size="5%", pad=0.1) + cax = divider.append_axes("right", size="5%", pad=0.1, label="fixed_colorbar") with warnings.catch_warnings(record=True) as _: ax2 = self.df.plot( column="pop_est", cmap="OrRd", legend=True, cax=cax, ax=ax2 ) - plot_height = ax2.get_figure().get_axes()[0].get_position().height - legend_height = ax2.get_figure().get_axes()[1].get_position().height + plot_height = _get_ax(fig, "").get_position().height + legend_height = _get_ax(fig, "fixed_colorbar").get_position().height assert abs(plot_height - legend_height) < 1e-6 @@ -1546,3 +1548,25 @@ def _style_to_vertices(markerstyle): # TODO: Vertices values are twice the actual path; unclear, why. path = matplotlib.markers.MarkerStyle(markerstyle).get_path() return path.vertices / 2 + + +def _get_ax(fig, label): + """ + Helper function to not rely on the order of `fig.axes`. + Previously, we did `fig.axes[1]`, but in matplotlib 3.4 the order switched + and the colorbar ax was first and subplot ax second. + """ + if matplotlib.__version__ < LooseVersion("3.0.0"): + if label == "": + return fig.axes[1] + elif label == "": + return fig.axes[0] + for ax in fig.axes: + if ax.get_label() == label: + return ax + else: + raise ValueError("no ax found with label {0}".format(label)) + + +def _get_colorbar_ax(fig): + return _get_ax(fig, "") From 1548cbacbc171c77f86309e9e10ad88d4a45d482 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Wed, 17 Feb 2021 15:03:49 +0100 Subject: [PATCH 101/316] TST: add normalize option to assert methods + fix tests for GEOS 3.9 (#1826) --- geopandas/_compat.py | 4 +++ geopandas/_vectorized.py | 28 ++++++++++++++++ geopandas/testing.py | 16 +++++++++ geopandas/tests/test_overlay.py | 56 ++++++++++++++++++++++---------- geopandas/tests/test_plotting.py | 5 ++- geopandas/tests/test_sindex.py | 13 ++++++-- 6 files changed, 101 insertions(+), 21 deletions(-) diff --git a/geopandas/_compat.py b/geopandas/_compat.py index 138cf8a..ac42f76 100644 --- a/geopandas/_compat.py +++ b/geopandas/_compat.py @@ -6,6 +6,8 @@ import warnings import pandas as pd import shapely +import shapely.geos + # ----------------------------------------------------------------------------- # pandas compat @@ -26,6 +28,8 @@ SHAPELY_GE_17 = str(shapely.__version__) >= LooseVersion("1.7.0") SHAPELY_GE_18 = str(shapely.__version__) >= LooseVersion("1.8") SHAPELY_GE_20 = str(shapely.__version__) >= LooseVersion("2.0") +GEOS_GE_390 = shapely.geos.geos_version >= (3, 9, 0) + HAS_PYGEOS = None USE_PYGEOS = None diff --git a/geopandas/_vectorized.py b/geopandas/_vectorized.py index da3bde1..9868d25 100644 --- a/geopandas/_vectorized.py +++ b/geopandas/_vectorized.py @@ -828,6 +828,34 @@ def simplify(data, tolerance, preserve_topology=True): return out +def _shapely_normalize(geom): + """ + Small helper function for now because it is not yet available in Shapely. + """ + from shapely.geos import lgeos + from shapely.geometry.base import geom_factory + from ctypes import c_void_p, c_int + + lgeos._lgeos.GEOSNormalize_r.restype = c_int + lgeos._lgeos.GEOSNormalize_r.argtypes = [c_void_p, c_void_p] + + geom_cloned = lgeos.GEOSGeom_clone(geom._geom) + lgeos._lgeos.GEOSNormalize_r(lgeos.geos_handle, geom_cloned) + return geom_factory(geom_cloned) + + +def normalize(data): + if compat.USE_PYGEOS: + return pygeos.normalize(data) + else: + out = np.empty(len(data), dtype=object) + with compat.ignore_shapely2_warnings(): + out[:] = [ + _shapely_normalize(geom) if geom is not None else None for geom in data + ] + return out + + def project(data, other, normalized=False): if compat.USE_PYGEOS: return pygeos.line_locate_point(data, other, normalize=normalized) diff --git a/geopandas/testing.py b/geopandas/testing.py index cc27a14..437af0d 100644 --- a/geopandas/testing.py +++ b/geopandas/testing.py @@ -7,6 +7,7 @@ import pandas as pd from geopandas import GeoDataFrame, GeoSeries from geopandas.array import GeometryDtype +from geopandas import _vectorized def _isna(this): @@ -67,6 +68,7 @@ def assert_geoseries_equal( check_less_precise=False, check_geom_type=False, check_crs=True, + normalize=False, ): """ Test util for checking that two GeoSeries are equal. @@ -89,6 +91,10 @@ def assert_geoseries_equal( check_crs: bool, default True If `check_series_type` is True, then also check that the crs matches. + normalize: bool, default False + If True, normalize the geometries before comparing equality. + Typically useful with ``check_less_precise=True``, which uses + ``geom_almost_equals`` and requires exact coordinate order. """ assert len(left) == len(right), "%d != %d" % (len(left), len(right)) @@ -120,6 +126,10 @@ def assert_geoseries_equal( right.type, ) + if normalize: + left = GeoSeries(_vectorized.normalize(left.array.data)) + right = GeoSeries(_vectorized.normalize(right.array.data)) + if not check_crs: with warnings.catch_warnings(): warnings.filterwarnings("ignore", "CRS mismatch", UserWarning) @@ -145,6 +155,7 @@ def assert_geodataframe_equal( check_less_precise=False, check_geom_type=False, check_crs=True, + normalize=False, ): """ Check that two GeoDataFrames are equal/ @@ -168,6 +179,10 @@ def assert_geodataframe_equal( check_crs: bool, default True If `check_frame_type` is True, then also check that the crs matches. + normalize: bool, default False + If True, normalize the geometries before comparing equality. + Typically useful with ``check_less_precise=True``, which uses + ``geom_almost_equals`` and requires exact coordinate order. """ try: # added from pandas 0.20 @@ -217,6 +232,7 @@ def assert_geodataframe_equal( assert_geoseries_equal( left[col], right[col], + normalize=normalize, check_dtype=check_dtype, check_less_precise=check_less_precise, check_geom_type=check_geom_type, diff --git a/geopandas/tests/test_overlay.py b/geopandas/tests/test_overlay.py index 149e095..6ba0c39 100644 --- a/geopandas/tests/test_overlay.py +++ b/geopandas/tests/test_overlay.py @@ -107,19 +107,23 @@ def test_overlay(dfs_index, how): def test_overlay_nybb(how): polydf = read_file(geopandas.datasets.get_path("nybb")) - # construct circles dataframe - N = 10 - b = [int(x) for x in polydf.total_bounds] - polydf2 = GeoDataFrame( - [ - {"geometry": Point(x, y).buffer(10000), "value1": x + y, "value2": x - y} - for x, y in zip( - range(b[0], b[2], int((b[2] - b[0]) / N)), - range(b[1], b[3], int((b[3] - b[1]) / N)), - ) - ], - crs=polydf.crs, - ) + # The circles have been constructed and saved at the time the expected + # results were created (exact output of buffer algorithm can slightly + # change over time -> use saved ones) + # # construct circles dataframe + # N = 10 + # b = [int(x) for x in polydf.total_bounds] + # polydf2 = GeoDataFrame( + # [ + # {"geometry": Point(x, y).buffer(10000), "value1": x + y, "value2": x - y} + # for x, y in zip( + # range(b[0], b[2], int((b[2] - b[0]) / N)), + # range(b[1], b[3], int((b[3] - b[1]) / N)), + # ) + # ], + # crs=polydf.crs, + # ) + polydf2 = read_file(os.path.join(DATA, "nybb_qgis", "polydf2.shp")) result = overlay(polydf, polydf2, how=how) @@ -186,12 +190,23 @@ def test_overlay_nybb(how): result.geometry.bounds, expected.geometry.bounds, check_less_precise=True ) - # now drop multipolygons - result.geometry[result.geometry.geom_type == "MultiPolygon"] = None - expected.geometry[expected.geometry.geom_type == "MultiPolygon"] = None + # There are two cases where the multipolygon have a different number + # of sub-geometries -> not solved by normalize (and thus drop for now) + if how == "symmetric_difference": + expected.loc[9, "geometry"] = None + result.loc[9, "geometry"] = None + + if how == "union": + expected.loc[24, "geometry"] = None + result.loc[24, "geometry"] = None assert_geodataframe_equal( - result, expected, check_crs=False, check_column_type=False + result, + expected, + normalize=True, + check_crs=False, + check_column_type=False, + check_less_precise=True, ) @@ -244,7 +259,11 @@ def test_overlay_overlap(how): result = result.sort_values(["col1", "col2"]).reset_index(drop=True) assert_geodataframe_equal( - result, expected, check_column_type=False, check_less_precise=True + result, + expected, + normalize=True, + check_column_type=False, + check_less_precise=True, ) @@ -469,6 +488,7 @@ def test_overlay_strict(how, keep_geom_type, geom_types): assert_geodataframe_equal( result, expected, + normalize=True, check_column_type=False, check_less_precise=True, check_crs=False, diff --git a/geopandas/tests/test_plotting.py b/geopandas/tests/test_plotting.py index e64474f..cb51855 100644 --- a/geopandas/tests/test_plotting.py +++ b/geopandas/tests/test_plotting.py @@ -1490,7 +1490,10 @@ def test_polygon_patch(): patch = _PolygonPatch(polygon) assert isinstance(patch, PathPatch) path = patch.get_path() - assert len(path.vertices) == len(path.codes) == 198 + if compat.GEOS_GE_390: + assert len(path.vertices) == len(path.codes) == 195 + else: + assert len(path.vertices) == len(path.codes) == 198 def _check_colors(N, actual_colors, expected_colors, alpha=None): diff --git a/geopandas/tests/test_sindex.py b/geopandas/tests/test_sindex.py index a739196..9ef5696 100644 --- a/geopandas/tests/test_sindex.py +++ b/geopandas/tests/test_sindex.py @@ -412,10 +412,14 @@ class TestPygeosInterface: test_geo = test_df.geometry.values.data[0] res = tree_df.sindex.query(test_geo, sort=sort) + + # asserting the same elements + assert sorted(res) == sorted(expected) + # asserting the exact array can fail if sort=False try: assert_array_equal(res, expected) except AssertionError as e: - if not compat.USE_PYGEOS and sort is False: + if sort is False: pytest.xfail( "rtree results are known to be unordered, see " "https://github.com/geopandas/geopandas/issues/1337\n" @@ -649,10 +653,15 @@ class TestPygeosInterface: test_df = geopandas.GeoDataFrame(geometry=test_polys) res = tree_df.sindex.query_bulk(test_df.geometry, sort=sort) + + # asserting the same elements + assert sorted(res[0]) == sorted(expected[0]) + assert sorted(res[1]) == sorted(expected[1]) + # asserting the exact array can fail if sort=False try: assert_array_equal(res, expected) except AssertionError as e: - if not compat.USE_PYGEOS and sort is False: + if sort is False: pytest.xfail( "rtree results are known to be unordered, see " "https://github.com/geopandas/geopandas/issues/1337\n" From d6e1a342631e54bdb5a79532849aa0d73f6c18f1 Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Wed, 17 Feb 2021 20:46:09 +0000 Subject: [PATCH 102/316] DOC: documentation pages, ecosystem (#1759) --- doc/source/_static/code/buffer.py | 2 +- doc/source/about.md | 54 ++++++ doc/source/about.rst | 21 -- doc/source/about/about_geopandas.rst | 23 --- doc/source/about/team.md | 23 ++- doc/source/community.rst | 19 +- doc/source/community/ecosystem.md | 276 +++++++++++++++++++++++++++ doc/source/docs.rst | 10 +- doc/source/docs/advanced_guide.rst | 19 ++ doc/source/docs/reference.rst | 10 +- doc/source/docs/user_guide.rst | 8 +- doc/source/index.rst | 26 +-- 12 files changed, 418 insertions(+), 73 deletions(-) create mode 100644 doc/source/about.md delete mode 100644 doc/source/about.rst delete mode 100644 doc/source/about/about_geopandas.rst create mode 100644 doc/source/community/ecosystem.md create mode 100644 doc/source/docs/advanced_guide.rst diff --git a/doc/source/_static/code/buffer.py b/doc/source/_static/code/buffer.py index cda8556..427ff52 100644 --- a/doc/source/_static/code/buffer.py +++ b/doc/source/_static/code/buffer.py @@ -18,7 +18,7 @@ s = geopandas.GeoSeries( ) fix, axs = plt.subplots( - 3, 2, figsize=(12, 12), sharex=True, sharey=True, bbox_inches="tight" + 3, 2, figsize=(12, 12), sharex=True, sharey=True ) for ax in axs.flatten(): s.plot(ax=ax) diff --git a/doc/source/about.md b/doc/source/about.md new file mode 100644 index 0000000..43b4016 --- /dev/null +++ b/doc/source/about.md @@ -0,0 +1,54 @@ +# About GeoPandas + +```{toctree} +:maxdepth: 2 +:caption: About +:hidden: + +Roadmap +Team +Citing +Logo +``` + + +GeoPandas is an open source project to add support for geographic data to pandas objects. It +currently implements `GeoSeries` and `GeoDataFrame` types which are subclasses of +`pandas.Series` and `pandas.DataFrame` respectively. GeoPandas objects can act on +`shapely` geometry objects and perform geometric operations. + +GeoPandas is a community-led project written, used and supported by a wide range of +people from all around of world of a large variety of backgrounds. Want to get involved +in the community? See our [community guidelines](community). + +GeoPandas will always be 100% open source software, free for all to use and released +under the liberal terms of the BSD-3-Clause license. + +```{container} button + +{doc}`Project Roadmap ` {doc}`Team ` +{doc}`Citing ` {doc}`Logo ` +``` + +## Project history + +Kelsey Jordahl founded GeoPandas project in 2013 during the Scipy Conference and +released a version 0.1.0 in July 2014. In 2016, Joris Van den Bossche took the lead and +became the maintainer of the project. Since the beginning, GeoPandas is a BSD-licensed +open-source project supported by a [community of +contributors](https://github.com/geopandas/geopandas/graphs/contributors) from around +the world and is now maintained by a [team](about/team) of core developers. + +In 2020 GeoPandas became [NumFOCUS Affiliated +Project](https://numfocus.org/sponsored-projects/affiliated-projects) and received two +[Small Development Grants](https://numfocus.org/programs/sustainability) to support its +development. + +## Timeline + +- **2013**: Beginning of the development +- **2014**: GeoPandas 0.1.0 released +- **2020**: GeoPandas became [NumFOCUS Affiliated + Project](https://numfocus.org/sponsored-projects/affiliated-projects) + + diff --git a/doc/source/about.rst b/doc/source/about.rst deleted file mode 100644 index ee913b7..0000000 --- a/doc/source/about.rst +++ /dev/null @@ -1,21 +0,0 @@ -About GeoPandas ---------------- - -Links to About, Roadmap, Team and Citing. - -.. container:: button - - :doc:`About GeoPandas ` :doc:`Project Roadmap ` - :doc:`Team ` :doc:`Citing ` - :doc:`Logo ` - -.. toctree:: - :maxdepth: 2 - :caption: About - :hidden: - - About GeoPandas - Roadmap - Team - Citing - Logo diff --git a/doc/source/about/about_geopandas.rst b/doc/source/about/about_geopandas.rst deleted file mode 100644 index 966c88a..0000000 --- a/doc/source/about/about_geopandas.rst +++ /dev/null @@ -1,23 +0,0 @@ -About GeoPandas ---------------- - -GeoPandas is an open source project to make working with geospatial -data in python easier. GeoPandas extends the datatypes used by -`pandas`_ to allow spatial operations on geometric types. Geometric -operations are performed by `shapely`_. Geopandas further depends on -`fiona`_ for file access and `matplotlib`_ for plotting. - -.. _pandas: http://pandas.pydata.org -.. _shapely: https://shapely.readthedocs.io -.. _fiona: https://fiona.readthedocs.io -.. _matplotlib: http://matplotlib.org - -Description -=========== - -The goal of GeoPandas is to make working with geospatial data in -python easier. It combines the capabilities of pandas and shapely, -providing geospatial operations in pandas and a high-level interface -to multiple geometries to shapely. GeoPandas enables you to easily do -operations in python that would otherwise require a spatial database -such as PostGIS. diff --git a/doc/source/about/team.md b/doc/source/about/team.md index 51074cb..fb277cd 100644 --- a/doc/source/about/team.md +++ b/doc/source/about/team.md @@ -1,9 +1,20 @@ # Team -## Core developers +## Contributors -- Joris Van den Bossche -- Martin Fleischmann -- James McBride -- Brendan Ward -- Levi Wolf +GeoPandas is developed by more than [100 volunteer contributors](https://github.com/geopandas/geopandas/graphs/contributors). + +## Core developers +- Joris Van den Bossche - **lead maintainer** | [@jorisvandenbossche](https://github.com/jorisvandenbossche) +- Martin Fleischmann | [@martinfleis](https://github.com/martinfleis) +- James McBride | [@jdmcbr](https://github.com/jdmcbr) +- Brendan Ward | [@brendan-ward](https://github.com/brendan-ward) +- Levi Wolf | [@ljwolf](https://github.com/ljwolf) + +## Founder + +- Kelsey Jordahl | [@kjordahl](https://github.com/kjordahl) + +## Alumni developers + +- Jacob Wasserman | [@jwass](https://github.com/jwass) diff --git a/doc/source/community.rst b/doc/source/community.rst index 53ad44a..409b85d 100644 --- a/doc/source/community.rst +++ b/doc/source/community.rst @@ -1,10 +1,26 @@ Community --------- +GeoPandas is a community-led project written, used and supported by a wide range of +people from all around of world of a large variety of backgrounds. Everyone is welcome, +each small contribution, no matter if it is a fix of a typo in the documentation, bug +report, an idea, or a question, is valuable. As a member of our community, you should +adhere to the principles presented in the :doc:`Code of Conduct +`. + +If you'd like to contribute, please read the :doc:`Contributing guide +`. It will help you to understand the way GeoPandas development +works and us to review your contribution. + +GeoPandas is a part of the broader Python :doc:`ecosystem `. It +depends on a range of great tools, and various packages are built on top of GeoPandas +addressing specific needs in geospatial data processing, analysis and visualization. + .. container:: button :doc:`Contributing ` :doc:`Code of Conduct ` - + :doc:`Ecosystem ` + .. toctree:: :maxdepth: 2 :caption: Community @@ -12,3 +28,4 @@ Community Contributing Code of Conduct + Ecosystem diff --git a/doc/source/community/ecosystem.md b/doc/source/community/ecosystem.md new file mode 100644 index 0000000..20faa26 --- /dev/null +++ b/doc/source/community/ecosystem.md @@ -0,0 +1,276 @@ +# Ecosystem + +## GeoPandas dependencies + +GeoPandas brings together the full capability of `pandas` and open-source geospatial +tools `Shapely`, which brings manipulation and analysis of geometric objects backed by +[`GEOS`](https://trac.osgeo.org/geos) library, `Fiona`, allowing us to read and write +geographic data files using [`GDAL`](https://gdal.org), and `pyproj`, a library for +cartographic projections and coordinate transformations, which is a Python interface of +[`PROJ`](https://proj.org). + +Furthermore, GeoPandas has several optional dependencies as `rtree`, `pygeos`, +`mapclassify`, or `geopy`. + +### Required dependencies + +#### [pandas](https://github.com/pandas-dev/pandas) +`pandas` is a Python package that provides fast, flexible, and expressive data +structures designed to make working with structured (tabular, multidimensional, +potentially heterogeneous) and time series data both easy and intuitive. It aims to be +the fundamental high-level building block for doing practical, real world data analysis +in Python. Additionally, it has the broader goal of becoming the most powerful and +flexible open source data analysis / manipulation tool available in any language. It is +already well on its way toward this goal. + +#### [Shapely](https://github.com/Toblerity/Shapely) +`Shapely` is a BSD-licensed Python package for manipulation and analysis of planar +geometric objects. It is based on the widely deployed `GEOS` (the engine of PostGIS) and +`JTS` (from which `GEOS` is ported) libraries. `Shapely` is not concerned with data +formats or coordinate systems, but can be readily integrated with packages that are. + +#### [Fiona](https://github.com/Toblerity/Fiona) +`Fiona` is `GDAL’s` neat and nimble vector API for Python programmers. Fiona is designed +to be simple and dependable. It focuses on reading and writing data in standard Python +IO style and relies upon familiar Python types and protocols such as files, +dictionaries, mappings, and iterators instead of classes specific to `OGR`. Fiona can +read and write real-world data using multi-layered GIS formats and zipped virtual file +systems and integrates readily with other Python GIS packages such as `pyproj`, `Rtree`, +and `Shapely`. + +#### [pyproj](https://github.com/pyproj4/pyproj) +`pyproj` is a Python interface to `PROJ` (cartographic projections and coordinate +transformations library). GeoPandas uses `pyproj.crs.CRS` object to keep track of a +projection of each `GeoSeries` and its `Transformer` object to manage re-projections. + +### Optional dependencies + +#### [rtree](https://github.com/Toblerity/rtree) +`Rtree` is a ctypes Python wrapper of `libspatialindex` that provides a number of +advanced spatial indexing features for the spatially curious Python user. + +#### [PyGEOS](https://github.com/pygeos/pygeos) +`PyGEOS` is a C/Python library with vectorized geometry functions. The geometry +operations are done in the open-source geometry library `GEOS`. PyGEOS wraps these +operations in `NumPy` ufuncs providing a performance improvement when operating on +arrays of geometries. + +#### [mapclassify](https://github.com/pysal/mapclassify) +`mapclassify` provides functionality for Choropleth map classification. Currently, +fifteen different classification schemes are available, including a highly-optimized +implementation of Fisher-Jenks optimal classification. Each scheme inherits a common +structure that ensures computations are scalable and supports applications in streaming +contexts. + +#### [geopy](https://github.com/geopy/geopy) +`geopy` is a Python client for several popular geocoding web services. `geopy` makes it +easy for Python developers to locate the coordinates of addresses, cities, countries, +and landmarks across the globe using third-party geocoders and other data sources. + +#### [matplotlib](https://github.com/matplotlib/matplotlib) +`Matplotlib` is a comprehensive library for creating static, animated, and interactive +visualizations in Python. Matplotlib produces publication-quality figures in a variety +of hardcopy formats and interactive environments across platforms. Matplotlib can be +used in Python scripts, the Python and IPython shell, web application servers, and +various graphical user interface toolkits. + +## GeoPandas ecosystem + +Various packages are built on top of GeoPandas addressing specific geospatial data +processing needs, analysis, and visualization. Below is an incomplete list (in no +particular order) of tools which form GeoPandas related Python ecosystem. + +### Spatial analysis and Machine Learning + +#### [PySAL](https://github.com/pysal/pysal) +`PySAL`, the Python spatial analysis library, is an open source cross-platform library +for geospatial data science with an emphasis on geospatial vector data written in +Python. `PySAL` is a family of packages, some of which are listed below. + +##### [libpysal](https://github.com/pysal/libpysal) +`libpysal` provides foundational algorithms and data structures that support the rest of +the library. This currently includes the following modules: input/output (`io`), which +provides readers and writers for common geospatial file formats; weights (`weights`), +which provides the main class to store spatial weights matrices, as well as several +utilities to manipulate and operate on them; computational geometry (`cg`), with several +algorithms, such as Voronoi tessellations or alpha shapes that efficiently process +geometric shapes; and an additional module with example data sets (`examples`). + +##### [esda](https://github.com/pysal/esda) +`esda` implements methods for the analysis of both global (map-wide) and local (focal) +spatial autocorrelation, for both continuous and binary data. In addition, the package +increasingly offers cutting-edge statistics about boundary strength and measures of +aggregation error in statistical analyses. + +##### [segregation](https://github.com/pysal/segregation) +`segregation` package calculates over 40 different segregation indices and provides a +suite of additional features for measurement, visualization, and hypothesis testing that +together represent the state-of-the-art in quantitative segregation analysis. + +##### [mgwr](https://github.com/pysal/mgwr) +`mgwr` provides scalable algorithms for estimation, inference, and prediction using +single- and multi-scale geographically-weighted regression models in a variety of +generalized linear model frameworks, as well model diagnostics tools. + +##### [tobler](https://github.com/pysal/tobler) +`tobler` provides functionality for for areal interpolation and dasymetric mapping. +`tobler` includes functionality for interpolating data using area-weighted approaches, +regression model-based approaches that leverage remotely-sensed raster data as auxiliary +information, and hybrid approaches. + + +#### [movingpandas](https://github.com/anitagraser/movingpandas) +`MovingPandas` is a package for dealing with movement data. `MovingPandas` implements a +`Trajectory` class and corresponding methods based on GeoPandas. A trajectory has a +time-ordered series of point geometries. These points and associated attributes are +stored in a `GeoDataFrame`. `MovingPandas` implements spatial and temporal data access +and analysis functions as well as plotting functions. + +#### [momepy](https://github.com/martinfleis/momepy) +`momepy` is a library for quantitative analysis of urban form - urban morphometrics. It +is built on top of `GeoPandas`, `PySAL` and `networkX`. `momepy` aims to provide a wide +range of tools for a systematic and exhaustive analysis of urban form. It can work with +a wide range of elements, while focused on building footprints and street networks. + +#### [geosnap](https://github.com/spatialucr/geosnap) +`geosnap` makes it easier to explore, model, analyze, and visualize the social and +spatial dynamics of neighborhoods. `geosnap` provides a suite of tools for creating +socio-spatial datasets, harmonizing those datasets into consistent set of time-static +boundaries, modeling bespoke neighborhoods and prototypical neighborhood types, and +modeling neighborhood change using classic and spatial statistical methods. It also +provides a set of static and interactive visualization tools to help you display and +understand the critical information at each step of the process. + +#### [mesa-geo](https://github.com/Corvince/mesa-geo) +`mesa-geo` implements a GeoSpace that can host GIS-based GeoAgents, which are like +normal Agents, except they have a shape attribute that is a `Shapely` object. You can +use `Shapely` directly to create arbitrary shapes, but in most cases you will want to +import your shapes from a file. Mesa-geo allows you to create GeoAgents from any vector +data file (e.g. shapefiles), valid GeoJSON objects or a GeoPandas `GeoDataFrame`. + +#### [Pyspatialml](https://github.com/stevenpawley/Pyspatialml) +`Pyspatialml` is a Python module for applying `scikit-learn` machine learning models to +'stacks' of raster datasets. Pyspatialml includes functions and classes for working with +multiple raster datasets and performing a typical machine learning workflow consisting +of extracting training data and applying the predict or `predict_proba` methods of +`scikit-learn` estimators to a stack of raster datasets. Pyspatialml is built upon the +`rasterio` Python module for all of the heavy lifting, and is also designed for working +with vector data using the `geopandas` module. + +#### [PyGMI](https://github.com/Patrick-Cole/pygmi) +`PyGMI` stands for Python Geoscience Modelling and Interpretation. It is a modelling and +interpretation suite aimed at magnetic, gravity and other datasets. + +### Visualization + +#### [contextily](https://github.com/geopandas/contextily) +`contextily` is a small Python 3 (3.6 and above) package to retrieve tile maps from the +internet. It can add those tiles as basemap to `matplotlib` figures or write tile maps +to disk into geospatial raster files. Bounding boxes can be passed in both WGS84 +(EPSG:4326) and Spheric Mercator (EPSG:3857). + +#### [cartopy](https://github.com/SciTools/cartopy) +`Cartopy` is a Python package designed to make drawing maps for data analysis and +visualisation easy. It features: object oriented projection definitions; point, line, +polygon and image transformations between projections; integration to expose advanced +mapping in `Matplotlib` with a simple and intuitive interface; powerful vector data +handling by integrating shapefile reading with `Shapely` capabilities. + +#### [bokeh](https://github.com/bokeh/bokeh) +`Bokeh` is an interactive visualization library for modern web browsers. It provides +elegant, concise construction of versatile graphics, and affords high-performance +interactivity over large or streaming datasets. `Bokeh` can help anyone who would like +to quickly and easily make interactive plots, dashboards, and data applications. + +#### [folium](https://github.com/python-visualization/folium) +`folium` builds on the data wrangling strengths of the Python ecosystem and the mapping +strengths of the `Leaflet.js` library. Manipulate your data in Python, then visualize it +in a `Leaflet` map via `folium`. + +#### [kepler.gl](https://github.com/keplergl/kepler.gl) +`Kepler.gl` is a data-agnostic, high-performance web-based application for visual +exploration of large-scale geolocation data sets. Built on top of Mapbox GL and +`deck.gl`, `kepler.gl` can render millions of points representing thousands of trips and +perform spatial aggregations on the fly. + +#### [geoplot](https://github.com/ResidentMario/geoplot) +`geoplot` is a high-level Python geospatial plotting library. It's an extension to +`cartopy` and `matplotlib` which makes mapping easy: like `seaborn` for geospatial. It +comes with the high-level plotting API, native projection support and compatibility with +`matplotlib`. + +#### [GeoViews](https://github.com/holoviz/geoviews) +`GeoViews` is a Python library that makes it easy to explore and visualize any data that +includes geographic locations. It has particularly powerful support for multidimensional +meteorological and oceanographic datasets, such as those used in weather, climate, and +remote sensing research, but is useful for almost anything that you would want to plot +on a map! + +#### [EarthPy](https://github.com/earthlab/earthpy) +`EarthPy` is a python package that makes it easier to plot and work with spatial raster +and vector data using open source tools. `Earthpy` depends upon `geopandas` which has a +focus on vector data and `rasterio` with facilitates input and output of raster data +files. It also requires `matplotlib` for plotting operations. `EarthPy’s` goal is to +make working with spatial data easier for scientists. + +#### [splot](https://github.com/pysal/splot) +`splot` provides statistical visualizations for spatial analysis. It methods for +visualizing global and local spatial autocorrelation (through Moran scatterplots and +cluster maps), temporal analysis of cluster dynamics (through heatmaps and rose +diagrams), and multivariate choropleth mapping (through value-by-alpha maps). A high +level API supports the creation of publication-ready visualizations + +#### [legendgram](https://github.com/pysal/legendgram) +`legendgram` is a small package that provides "legendgrams" legends that visualize the +distribution of observations by color in a given map. These distributional +visualizations for map classification schemes assist in analytical cartography and +spatial data visualization. + +### Geometry manipulation + +#### [TopoJSON](https://github.com/mattijn/topojson) +`Topojson` is a library that is capable of creating a topojson encoded format of merely +any geographical object in Python. With topojson it is possible to reduce the size of +your geographical data. Mostly by orders of magnitude. It is able to do so through: +eliminating redundancy through computation of a topology; fixed-precision integer +encoding of coordinates and simplification and quantization of arcs. + +#### [geocube](https://github.com/corteva/geocube) +Tool to convert geopandas vector data into rasterized `xarray` data. + +### Data retrieval + +#### [OSMnx](https://github.com/gboeing/osmnx) +`OSMnx` is a Python package that lets you download spatial data from OpenStreetMap and +model, project, visualize, and analyze real-world street networks. You can download and +model walkable, drivable, or bikeable urban networks with a single line of Python code +then easily analyze and visualize them. You can just as easily download and work with +other infrastructure types, amenities/points of interest, building footprints, elevation +data, street bearings/orientations, and speed/travel time. + +#### [pyrosm](https://github.com/HTenkanen/pyrosm) +`Pyrosm` is a Python library for reading OpenStreetMap data from Protocolbuffer Binary +Format -files (`*.osm.pbf`) into Geopandas `GeoDataFrames`. Pyrosm makes it easy to +extract various datasets from OpenStreetMap pbf-dumps including e.g. road networks, +buildings, Points of Interest (POI), landuse and natural elements. Also fully customized +queries are supported which makes it possible to parse the data from OSM with more +specific filters. + +#### [geobr](https://github.com/ipeaGIT/geobr) +`geobr` is a computational package to download official spatial data sets of Brazil. The +package includes a wide range of geospatial data in geopackage format (like shapefiles +but better), available at various geographic scales and for various years with +harmonized attributes, projection and topology. + +#### [cenpy](https://github.com/cenpy-devs/cenpy) +An interface to explore and query the US Census API and return Pandas `Dataframes`. This +package is intended for exploratory data analysis and draws inspiration from +sqlalchemy-like interfaces and `acs.R`. With separate APIs for application developers +and folks who only want to get their data quickly & painlessly, `cenpy` should meet the +needs of most who aim to get US Census Data from Python. + +```{admonition} Expand this page +Do know a package which should be here? [Let us +know](https://github.com/geopandas/geopandas/issues) or [add it by +yourself](contributing.rst)! +``` diff --git a/doc/source/docs.rst b/doc/source/docs.rst index 99d0cb3..8cd1b98 100644 --- a/doc/source/docs.rst +++ b/doc/source/docs.rst @@ -1,17 +1,19 @@ Documentation ------------- -Links to different parts of documentation. +The documentation of GeoPandas consists of four parts - :doc:`User Guide ` with explanation of the basic functionality, :doc:`Advanced Guide ` covering topics which assume knowledge of basics, :doc:`Examples `, and :doc:`API reference ` detailing every class, method, function and attribute used implemented by GeoPandas. .. container:: button - :doc:`User Guide ` :doc:`API reference ` + :doc:`User Guide ` :doc:`Advanced Guide ` + :doc:`Examples ` :doc:`API reference ` + .. toctree:: :maxdepth: 2 :caption: Documentation User Guide + Advanced Guide API reference - Changelog -.. Advanced Guide + Changelog \ No newline at end of file diff --git a/doc/source/docs/advanced_guide.rst b/doc/source/docs/advanced_guide.rst new file mode 100644 index 0000000..926b4dd --- /dev/null +++ b/doc/source/docs/advanced_guide.rst @@ -0,0 +1,19 @@ +Advanced Guide +============== + +The Advanced Guide covers advanced usage of GeoPandas. Each page focuses on a single +topic and outlines how it is implemented in GeoPandas, with reproducible examples. + +If you don't know anything about GeoPandas, start with the :doc:`Introduction to +GeoPandas <../getting_started/introduction>`. + +Basic topics can be found in the :doc:`User Guide ` and further +specification in the :doc:`API Reference `. + +.. note:: + This section is currently work in progress. See the available pages below. + +.. toctree:: + :maxdepth: 2 + + user_guide/missing_empty diff --git a/doc/source/docs/reference.rst b/doc/source/docs/reference.rst index d4f9bdf..473df63 100644 --- a/doc/source/docs/reference.rst +++ b/doc/source/docs/reference.rst @@ -1,11 +1,15 @@ .. _reference: -Reference -========= +API Reference +============= + +The API Reference provides an overview of all public objects, functions and methods implemented in GeoPandas. All classes and function exposed in ``geopandas.*`` namespace plus those listed in the reference are public. + +.. warning:: + The ``geopandas.array`` and ``geopandas.base`` modules are private. Stable functionality in such modules is not guaranteed. .. toctree:: :maxdepth: 2 - :caption: API Reference GeoSeries GeoDataFrame diff --git a/doc/source/docs/user_guide.rst b/doc/source/docs/user_guide.rst index 6c15e7f..02b0210 100644 --- a/doc/source/docs/user_guide.rst +++ b/doc/source/docs/user_guide.rst @@ -1,9 +1,14 @@ User Guide ========== +The User Guide covers different parts of basic usage of GeoPandas. Each page focuses on a single topic and outlines how it is implemented in GeoPandas, with reproducible examples. + +If you don't know anything about GeoPandas, start with the :doc:`Introduction to GeoPandas <../getting_started/introduction>`. + +Advanced topics can be found in the :doc:`Advanced Guide ` and further specification in the :doc:`API Reference `. + .. toctree:: :maxdepth: 2 - :caption: User Guide Data Structures Reading and Writing Files @@ -15,4 +20,3 @@ User Guide Aggregation with dissolve Merging Data Geocoding - user_guide/missing_empty diff --git a/doc/source/index.rst b/doc/source/index.rst index 95498db..27fbb60 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -31,22 +31,24 @@ such as PostGIS. Documentation Community -Get in touch +.. container:: button + + :doc:`Getting started ` :doc:`Documentation ` + :doc:`About GeoPandas ` :doc:`Community ` + +Useful links ------------ -- Ask usage questions ("How do I?") on `StackOverflow`_ or `GIS StackExchange`_. -- Report bugs, suggest features or view the source code `on GitHub`_. -- For a quick question about a bug report or feature request, or Pull Request, - head over to the `gitter channel`_. -- For less well defined questions or ideas, or to announce other projects of - interest to GeoPandas users, ... use the `mailing list`_. +`Binary Installers (PyPI) `_ | `Source Repository (GitHub) `_ | `Issues & Ideas `_ | `Q&A Support `_ -.. _StackOverflow: https://stackoverflow.com/questions/tagged/geopandas -.. _GIS StackExchange: https://gis.stackexchange.com/questions/tagged/geopandas -.. _on GitHub: https://github.com/geopandas/geopandas -.. _gitter channel: https://gitter.im/geopandas/geopandas -.. _mailing list: https://groups.google.com/forum/#!forum/geopandas +Supported by +------------ + +.. image:: https://numfocus.org/wp-content/uploads/2017/07/NumFocus_LRG.png + :alt: numfocus + :width: 400 + :target: https://numfocus.org Indices and tables ------------------ From 8940d185a8198a16d4762ecdb1dfdfa965f550a0 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Wed, 17 Feb 2021 22:14:55 +0100 Subject: [PATCH 103/316] Compatibility with Shapely 1.8 deprecation warnings (__len__) (#1819) --- geopandas/_compat.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/geopandas/_compat.py b/geopandas/_compat.py index ac42f76..8690d90 100644 --- a/geopandas/_compat.py +++ b/geopandas/_compat.py @@ -141,7 +141,7 @@ if shapely_warning is not None and not SHAPELY_GE_20: def ignore_shapely2_warnings(): with warnings.catch_warnings(): warnings.filterwarnings( - "ignore", "Iteration|The array interface", shapely_warning + "ignore", "Iteration|The array interface|__len__", shapely_warning ) yield From 49c7d2884e4e514714b93a5569cdd62e1dd823b3 Mon Sep 17 00:00:00 2001 From: vangorade <71941335+vangorade@users.noreply.github.com> Date: Fri, 19 Feb 2021 00:46:50 +0530 Subject: [PATCH 104/316] ENH: add GeoSeries.z attribute (#1773) Co-authored-by: Martin Fleischmann --- doc/source/docs/reference/geoseries.rst | 1 + geopandas/_vectorized.py | 8 +++++++ geopandas/array.py | 9 ++++++++ geopandas/geoseries.py | 30 +++++++++++++++++++++++++ geopandas/tests/test_array.py | 2 ++ geopandas/tests/test_geom_methods.py | 26 +++++++++++++++++---- 6 files changed, 72 insertions(+), 4 deletions(-) diff --git a/doc/source/docs/reference/geoseries.rst b/doc/source/docs/reference/geoseries.rst index 44a23fe..2b4168e 100644 --- a/doc/source/docs/reference/geoseries.rst +++ b/doc/source/docs/reference/geoseries.rst @@ -27,6 +27,7 @@ General methods and attributes GeoSeries.interiors GeoSeries.x GeoSeries.y + GeoSeries.z Unary predicates ---------------- diff --git a/geopandas/_vectorized.py b/geopandas/_vectorized.py index 9868d25..b96ddac 100644 --- a/geopandas/_vectorized.py +++ b/geopandas/_vectorized.py @@ -896,6 +896,14 @@ def get_y(data): return _unary_op("y", data, null_value=np.nan) +def get_z(data): + if compat.USE_PYGEOS: + return pygeos.get_z(data) + else: + data = [geom.z if geom.has_z else np.nan for geom in data] + return np.array(data, dtype=np.dtype(float)) + + def bounds(data): if compat.USE_PYGEOS: return pygeos.bounds(data) diff --git a/geopandas/array.py b/geopandas/array.py index ea0eb72..bc1e302 100644 --- a/geopandas/array.py +++ b/geopandas/array.py @@ -730,6 +730,15 @@ class GeometryArray(ExtensionArray): message = "y attribute access only provided for Point geometries" raise ValueError(message) + @property + def z(self): + """Return the z location of point geometries in a GeoSeries""" + if (self.geom_type[~self.isna()] == "Point").all(): + return vectorized.get_z(self.data) + else: + message = "z attribute access only provided for Point geometries" + raise ValueError(message) + @property def bounds(self): return vectorized.bounds(self.data) diff --git a/geopandas/geoseries.py b/geopandas/geoseries.py index 793cf7c..82c6bd9 100644 --- a/geopandas/geoseries.py +++ b/geopandas/geoseries.py @@ -257,6 +257,7 @@ class GeoSeries(GeoPandasBase, Series): -------- GeoSeries.y + GeoSeries.z """ return _delegate_property("x", self) @@ -284,10 +285,39 @@ class GeoSeries(GeoPandasBase, Series): -------- GeoSeries.x + GeoSeries.z """ return _delegate_property("y", self) + @property + def z(self): + """Return the z location of point geometries in a GeoSeries + + Returns + ------- + pandas.Series + + Examples + -------- + + >>> from shapely.geometry import Point + >>> s = geopandas.GeoSeries([Point(1, 1, 1), Point(2, 2, 2), Point(3, 3, 3)]) + >>> s.z + 0 1.0 + 1 2.0 + 2 3.0 + dtype: float64 + + See Also + -------- + + GeoSeries.x + GeoSeries.y + + """ + return _delegate_property("z", self) + @classmethod def from_file(cls, filename, **kwargs): """Alternate constructor to create a ``GeoSeries`` from a file. diff --git a/geopandas/tests/test_array.py b/geopandas/tests/test_array.py index 9b0f0e0..4cc6e68 100644 --- a/geopandas/tests/test_array.py +++ b/geopandas/tests/test_array.py @@ -117,9 +117,11 @@ def test_from_shapely_geo_interface(): return {"type": "Point", "coordinates": (self.x, self.y)} result = from_shapely([Point(1.0, 2.0), Point(3.0, 4.0)]) + expected = from_shapely( [shapely.geometry.Point(1.0, 2.0), shapely.geometry.Point(3.0, 4.0)] ) + assert all(v.equals(t) for v, t in zip(result, expected)) diff --git a/geopandas/tests/test_geom_methods.py b/geopandas/tests/test_geom_methods.py index e494042..1764a2f 100644 --- a/geopandas/tests/test_geom_methods.py +++ b/geopandas/tests/test_geom_methods.py @@ -30,7 +30,10 @@ class TestGeomMethods: self.t1 = Polygon([(0, 0), (1, 0), (1, 1)]) self.t2 = Polygon([(0, 0), (1, 1), (0, 1)]) self.t3 = Polygon([(2, 0), (3, 0), (3, 1)]) + self.tz = Polygon([(1, 1, 1), (2, 2, 2), (3, 3, 3)]) + self.tz1 = Polygon([(2, 2, 2), (1, 1, 1), (3, 3, 3)]) self.sq = Polygon([(0, 0), (1, 0), (1, 1), (0, 1)]) + self.sqz = Polygon([(1, 1, 1), (2, 2, 2), (3, 3, 3), (4, 4, 4)]) self.t4 = Polygon([(0, 0), (3, 0), (3, 3), (0, 2)]) self.t5 = Polygon([(2, 0), (3, 0), (3, 3), (2, 3)]) self.inner_sq = Polygon( @@ -53,6 +56,7 @@ class TestGeomMethods: self.g1 = GeoSeries([self.t1, self.sq]) self.g2 = GeoSeries([self.sq, self.t1]) self.g3 = GeoSeries([self.t1, self.t2]) + self.gz = GeoSeries([self.tz, self.sqz, self.tz1]) self.g3.crs = "epsg:4326" self.g4 = GeoSeries([self.t2, self.t1]) self.g4.crs = "epsg:4326" @@ -63,9 +67,11 @@ class TestGeomMethods: self.a1.index = ["A", "B"] self.a2 = self.g2.copy() self.a2.index = ["B", "C"] - self.esb = Point(-73.9847, 40.7484) - self.sol = Point(-74.0446, 40.6893) + self.esb = Point(-73.9847, 40.7484, 30.3244) + self.sol = Point(-74.0446, 40.6893, 31.2344) self.landmarks = GeoSeries([self.esb, self.sol], crs="epsg:4326") + self.pt2d = Point(-73.9847, 40.7484) + self.landmarks_mixed = GeoSeries([self.esb, self.sol, self.pt2d], crs=4326) self.l1 = LineString([(0, 0), (0, 1), (1, 1)]) self.l2 = LineString([(0, 0), (1, 0), (1, 1), (0, 1)]) self.g5 = GeoSeries([self.l1, self.l2]) @@ -92,6 +98,9 @@ class TestGeomMethods: self.gdf3 = GeoDataFrame( {"geometry": self.g3, "col3": [4, 5], "col4": ["rand", "string"]} ) + self.gdfz = GeoDataFrame( + {"geometry": self.gz, "col3": [4, 5, 6], "col4": ["rand", "string", "geo"]} + ) def _test_unary_real(self, op, expected, a): """ Tests for 'area', 'length', 'is_valid', etc. """ @@ -464,20 +473,29 @@ class TestGeomMethods: expected = Series([False, True], self.g_3d.index) self._test_unary_real("has_z", expected, self.g_3d) - def test_xy_points(self): + def test_xyz_points(self): expected_x = [-73.9847, -74.0446] expected_y = [40.7484, 40.6893] + expected_z = [30.3244, 31.2344] assert_array_dtype_equal(expected_x, self.landmarks.geometry.x) assert_array_dtype_equal(expected_y, self.landmarks.geometry.y) + assert_array_dtype_equal(expected_z, self.landmarks.geometry.z) - def test_xy_polygons(self): + # mixed dimensions + expected_z = [30.3244, 31.2344, np.nan] + assert_array_dtype_equal(expected_z, self.landmarks_mixed.geometry.z) + + def test_xyz_polygons(self): # accessing x attribute in polygon geoseries should raise an error with pytest.raises(ValueError): _ = self.gdf1.geometry.x # and same for accessing y attribute in polygon geoseries with pytest.raises(ValueError): _ = self.gdf1.geometry.y + # and same for accessing z attribute in polygon geoseries + with pytest.raises(ValueError): + _ = self.gdfz.geometry.z def test_centroid(self): polygon = Polygon([(-1, -1), (1, -1), (1, 1), (-1, 1)]) From 3ba3c7599e1491d3dd2443f066330808c10251db Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Thu, 18 Feb 2021 19:44:05 +0000 Subject: [PATCH 105/316] REGR: ignore empty geometries in plot (#1828) --- geopandas/plotting.py | 6 +++--- geopandas/tests/test_plotting.py | 12 ++++++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/geopandas/plotting.py b/geopandas/plotting.py index 275175e..a21e948 100644 --- a/geopandas/plotting.py +++ b/geopandas/plotting.py @@ -45,7 +45,7 @@ def _flatten_multi_geoms(geoms, prefix="Multi"): return geoms, np.arange(len(geoms)) for ix, geom in enumerate(geoms): - if geom.type.startswith(prefix) and not geom.is_empty: + if geom is not None and geom.type.startswith(prefix) and not geom.is_empty: for poly in geom.geoms: components.append(poly) component_index.append(ix) @@ -283,8 +283,8 @@ def _plot_point_collection( geoms, multiindex = _flatten_multi_geoms(geoms) # values are expanded below as kwargs["c"] - x = [p.x for p in geoms] - y = [p.y for p in geoms] + x = [p.x if not p.is_empty else None for p in geoms] + y = [p.y if not p.is_empty else None for p in geoms] # matplotlib 1.4 does not support c=None, and < 2.0 does not support s=None if values is not None: diff --git a/geopandas/tests/test_plotting.py b/geopandas/tests/test_plotting.py index cb51855..ccee108 100644 --- a/geopandas/tests/test_plotting.py +++ b/geopandas/tests/test_plotting.py @@ -308,6 +308,18 @@ class TestPointPlotting: ax = s.plot() assert len(ax.collections) == 1 + # more complex case with GEOMETRYCOLLECTION EMPTY, POINT EMPTY and NONE + poly = Polygon([(-1, -1), (-1, 2), (2, 2), (2, -1), (-1, -1)]) + point = Point(0, 1) + point_ = Point(10, 10) + empty_point = Point() + + gdf = GeoDataFrame(geometry=[point, empty_point, point_]) + gdf["geometry"] = gdf.intersection(poly) + gdf.loc[3] = [None] + ax = gdf.plot() + assert len(ax.collections) == 1 + def test_multipoints(self): # MultiPoints From 01943827b005c89e28921ae8245da7127ecb8a09 Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Thu, 18 Feb 2021 20:33:20 +0000 Subject: [PATCH 106/316] DOC: first pass on the Introduction to GeoPandas (#1757) --- .gitignore | 1 + doc/source/_static/dataframe.svg | 202 +++++++ doc/source/conf.py | 3 +- doc/source/docs/reference/geoseries.rst | 1 + doc/source/getting_started.md | 2 +- doc/source/getting_started/introduction.ipynb | 528 ++++++++++++++++++ doc/source/getting_started/introduction.rst | 4 - 7 files changed, 735 insertions(+), 6 deletions(-) create mode 100644 doc/source/_static/dataframe.svg create mode 100644 doc/source/getting_started/introduction.ipynb delete mode 100644 doc/source/getting_started/introduction.rst diff --git a/.gitignore b/.gitignore index 22f1b80..a99f42e 100644 --- a/.gitignore +++ b/.gitignore @@ -68,3 +68,4 @@ geopandas.egg-info geopandas/version.py .asv +doc/source/getting_started/my_file.geojson diff --git a/doc/source/_static/dataframe.svg b/doc/source/_static/dataframe.svg new file mode 100644 index 0000000..20f8676 --- /dev/null +++ b/doc/source/_static/dataframe.svg @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/source/conf.py b/doc/source/conf.py index c9d566c..80f1bea 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -33,7 +33,8 @@ extensions = [ "sphinx.ext.autosummary", "sphinx.ext.intersphinx", "sphinx.ext.autodoc", - "myst_nb", + "myst_parser", + "nbsphinx", "numpydoc", 'sphinx_toggleprompt', "matplotlib.sphinxext.plot_directive" diff --git a/doc/source/docs/reference/geoseries.rst b/doc/source/docs/reference/geoseries.rst index 2b4168e..4f6bfd2 100644 --- a/doc/source/docs/reference/geoseries.rst +++ b/doc/source/docs/reference/geoseries.rst @@ -17,6 +17,7 @@ General methods and attributes :toctree: api/ GeoSeries.area + GeoSeries.boundary GeoSeries.bounds GeoSeries.total_bounds GeoSeries.length diff --git a/doc/source/getting_started.md b/doc/source/getting_started.md index a1c8269..c332033 100644 --- a/doc/source/getting_started.md +++ b/doc/source/getting_started.md @@ -47,7 +47,7 @@ Do you prefer ``pip install`` or installation from source? Or specific version? ```{container} button -{doc}`Installation ` {doc}`Tutorial ` +{doc}`Installation ` {doc}`Introduction ` {doc}`User Guide ` {doc}`API Reference ` ``` diff --git a/doc/source/getting_started/introduction.ipynb b/doc/source/getting_started/introduction.ipynb new file mode 100644 index 0000000..bb7dceb --- /dev/null +++ b/doc/source/getting_started/introduction.ipynb @@ -0,0 +1,528 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Introduction to GeoPandas\n", + "\n", + "This quick tutorial provides an introduction to the key concepts of GeoPandas. In a few minutes, we'll describe the basics which allow you to start your projects.\n", + "\n", + "## Concepts\n", + "\n", + "GeoPandas, as the name suggests, extends popular data science library [pandas](https://pandas.pydata.org) by adding support for geospatial data. If you are not familiar with `pandas`, we recommend taking a quick look at its [Getting started documentation](https://pandas.pydata.org/docs/getting_started/index.html#getting-started) before proceeding.\n", + "\n", + "The core data structure in GeoPandas is `geopandas.GeoDataFrame`, a subclass of `pandas.DataFrame` able to store geometry columns and perform spatial operations. Geometries are handled by `geopandas.GeoSeries`, a subclass of `pandas.Series`. Therefore, your `GeoDataFrame` is a combination of `Series` with your data (numerical, boolean, text etc.) and `GeoSeries` with geometries (points, polygons etc.). You can have as many columns with geometries as you wish, there's no limit typical for desktop GIS software.\n", + "\n", + "![geodataframe schema](../_static/dataframe.svg)\n", + "\n", + "Each `GeoSeries` can contain any geometry type (we can even mix them within a single array) and has a `GeoSeries.crs` attribute, which stores information on the projection (CRS stands for Coordinate Reference System). Therefore, each `GeoSeries` in a `GeoDataFrame` can be in a different projection, allowing you to have, for example, multiple versions of the same geometry, just in a different CRS.\n", + "\n", + "One `GeoSeries` within a `GeoDataFrame` is seen as the _active_ geometry, which means that all geometric operations applied to a `GeoDataFrame` use the specified column.\n", + "\n", + "\n", + "
\n", + "User Guide\n", + " \n", + "See more on [data structures in the User Guide](../docs/user_guide/data_structures.rst).\n", + "
\n", + "\n", + "\n", + "Let's see how this works in practice.\n", + "\n", + "## Reading and writing files\n", + "\n", + "First, we need to read some data.\n", + "\n", + "### Read files\n", + "\n", + "Assuming we have a file containing both data and geometry (e.g. GeoPackage, GeoJSON, Shapefile), we can easily read it using `geopandas.read_file` function, which automatically detects filetype and creates a `GeoDataFrame`. In this example, we'll use the `\"nybb\"` dataset, a map of New York boroughs which is part of GeoPandas installation. Therefore we need to get the path to the actual file. With your file, you specify a path as a string (`\"my_data/my_file.geojson\"`)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import geopandas\n", + "\n", + "path_to_data = geopandas.datasets.get_path(\"nybb\")\n", + "gdf = geopandas.read_file(path_to_data)\n", + "\n", + "gdf" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Write files\n", + "\n", + "Writing a `GeoDataFrame` back to file is similarly simple, using `GeoDataFrame.to_file`. The default file format is Shapefile, but you can specify your own using `driver` keyword." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "gdf.to_file(\"my_file.geojson\", driver=\"GeoJSON\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "User Guide\n", + " \n", + "See more on [reading and writing data in the User Guide](../docs/user_guide/io.rst).\n", + "
\n", + "\n", + "\n", + "\n", + "## Simple methods\n", + "\n", + "Now we have our `GeoDataFrame` and can start working with its geometry. \n", + "\n", + "Since we have only one geometry column read from the file, it is automatically seen as the active geometry and methods used on `GeoDataFrame` will be applied to the `\"geometry\"` column.\n", + "\n", + "### Measuring area\n", + "\n", + "To measure the area of each polygon (or MultiPolygon in this specific case), we can use `GeoDataFrame.area` attribute, which returns a `pandas.Series`. Note that `GeoDataFrame.area` is just `GeoSeries.area` applied to an active geometry column.\n", + "\n", + "But first, we set the names of boroughs as an index, to make the results easier to read." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "gdf = gdf.set_index(\"BoroName\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "gdf[\"area\"] = gdf.area\n", + "gdf[\"area\"]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Getting polygon boundary and centroid\n", + "\n", + "To get just the boundary of each polygon (LineString), we can call `GeoDataFrame.boundary`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "gdf['boundary'] = gdf.boundary\n", + "gdf['boundary']" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Since we have saved boundary as a new column, we now have two geometry columns in the same `GeoDataFrame`.\n", + "\n", + "We can also create new geometries, which could be, for example, a buffered version of the original one (i.e., `GeoDataFrame.buffer(10)`) or its centroid:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "gdf['centroid'] = gdf.centroid\n", + "gdf['centroid']" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Measuring distance\n", + "\n", + "We can also measure how far is each centroid from the first one." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "first_point = gdf['centroid'].iloc[0]\n", + "gdf['distance'] = gdf['centroid'].distance(first_point)\n", + "gdf['distance']" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It's still a DataFrame, so we have all the pandas functionality available to use on the geospatial dataset, and to do data manipulations with the attributes and geometry information together.\n", + "\n", + "For example, we can calculate average of the distance measured above (by accessing the `'distance'` column, and calling the `mean()` method on it):" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "gdf['distance'].mean()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Making maps\n", + "\n", + "GeoPandas can also plot maps, so we can check how our geometries look like in space. The key method here is `GeoDataFrame.plot()`. In the example below, we plot the `\"area\"` we measured earlier using the active geometry column. We also want to show a legend (`legend=True`)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "gdf.plot(\"area\", legend=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Switching the active geometry (`GeoDataFrame.set_geometry`) to centroids, we can plot the same data using point geometry." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "gdf = gdf.set_geometry(\"centroid\")\n", + "gdf.plot(\"area\", legend=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And we can also layer both `GeoSeries` on top of each other. We just need to use one plot as an axis for the other." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ax = gdf[\"geometry\"].plot()\n", + "gdf[\"centroid\"].plot(ax=ax, color=\"black\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we set the active geometry back to the original `GeoSeries`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "gdf = gdf.set_geometry(\"geometry\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "User Guide\n", + " \n", + "See more on [mapping in the User Guide](../docs/user_guide/mapping.rst).\n", + "
\n", + "\n", + "## Geometry creation\n", + "\n", + "We can further work with the geometry and create new shapes based on those we already have. \n", + "\n", + "### Convex hull\n", + "\n", + "If we are interested in the convex hull of our polygons, we can call `GeoDataFrame.convex_hull`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "gdf[\"convex_hull\"] = gdf.convex_hull" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ax = gdf[\"convex_hull\"].plot(alpha=.5) # saving the first plot as an axis and setting alpha (transparency) to 0.5\n", + "gdf[\"boundary\"].plot(ax=ax, color=\"white\", linewidth=.5) # passing the first plot and setting linewitdth to 0.5" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Buffer\n", + "\n", + "In other cases, we may need to buffer the geometry using `GeoDataFrame.buffer()`. Geometry methods are automatically applied to the active geometry, but we can apply them directly to any `GeoSeries` as well. Let's buffer the boroughs and their centroids and plot both on top of each other." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# buffering the active geometry by 10 000 feet (geometry is already in feet)\n", + "gdf[\"buffered\"] = gdf.buffer(10000)\n", + "\n", + "# buffering the centroid geometry by 10 000 feet (geometry is already in feet)\n", + "gdf[\"buffered_centroid\"] = gdf[\"centroid\"].buffer(10000)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ax = gdf[\"buffered\"].plot(alpha=.5) # saving the first plot as an axis and setting alpha (transparency) to 0.5\n", + "gdf[\"buffered_centroid\"].plot(ax=ax, color=\"red\", alpha=.5) # passing the first plot as an axis to the second\n", + "gdf[\"boundary\"].plot(ax=ax, color=\"white\", linewidth=.5) # passing the first plot and setting linewitdth to 0.5" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "User Guide\n", + " \n", + "See more on [geometry creation and manipulation in the User Guide](../docs/user_guide/geometric_manipulations.rst).\n", + "
\n", + "\n", + "## Geometry relations\n", + "\n", + "We can also ask about the spatial relations of different geometries. Using the geometries above, we can check which of the buffered boroughs intersect the original geometry of Brooklyn, i.e., is within 10 000 feet from Brooklyn.\n", + "\n", + "First, we get a polygon of Brooklyn." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "brooklyn = gdf.loc[\"Brooklyn\", \"geometry\"]\n", + "brooklyn" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The polygon is a [shapely geometry object](https://shapely.readthedocs.io/en/stable/manual.html#geometric-objects), as any other geometry used in GeoPandas." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "type(brooklyn)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Then we can check which of the geometries in `gdf[\"buffered\"]` intersects it." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "gdf[\"buffered\"].intersects(brooklyn)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Only Bronx (on the north) is more than 10 000 feet away from Brooklyn. All the others are closer and intersect our polygon.\n", + "\n", + "Alternatively, we can check which buffered centroids are entirely within the original boroughs polygons. In this case, both `GeoSeries` are aligned, and the check is performed for each row." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "gdf[\"within\"] = gdf[\"buffered_centroid\"].within(gdf)\n", + "gdf[\"within\"]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can plot the results on the map to confirm the finding." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "gdf = gdf.set_geometry(\"buffered_centroid\")\n", + "ax = gdf.plot(\"within\", legend=True, categorical=True, legend_kwds={'loc': \"upper left\"}) # using categorical plot and setting the position of the legend\n", + "gdf[\"boundary\"].plot(ax=ax, color=\"black\", linewidth=.5) # passing the first plot and setting linewitdth to 0.5" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Projections\n", + "\n", + "Each `GeoSeries` has the Coordinate Reference System (CRS) accessible as `GeoSeries.crs`. CRS tells GeoPandas where the coordinates of geometries are located on the Earth. In some cases, CRS is geographic, which means that coordinates are in latitude and longitude. In those cases, its CRS is WGS84, with the authority code `EPSG:4326`. Let's see the projection of our NY boroughs `GeoDataFrame`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "gdf.crs" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Geometries are in `EPSG:2263` with coordinates in feet. We can easily re-project a `GeoSeries` to another CRS, like `EPSG:4326` using `GeoSeries.to_crs()`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "gdf = gdf.set_geometry(\"geometry\")\n", + "boroughs_4326 = gdf.to_crs(\"EPSG:4326\")\n", + "boroughs_4326.plot()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "boroughs_4326.crs" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Notice the difference in coordinates along the axes of the plot. Where we had 120 000 - 280 000 (feet) before, we have 40.5 - 40.9 (degrees) now. In this case, `boroughs_4326` has a `\"geometry\"` column in WGS84 but all the other (with centroids etc.) remains in the original CRS.\n", + "\n", + "
\n", + "Warning\n", + " \n", + "For operations that rely on distance or area, you always need to use projected CRS (in meters, feet, kilometers etc.) not a geographic one. GeoPandas operations are planar, and degrees reflect the position on a sphere. Therefore the results may not be correct. For example, the result of `gdf.area.sum()` (projected CRS) is 8 429 911 572 ft2 but the result of `boroughs_4326.area.sum()` (geographic CRS) is 0.083.\n", + "
\n", + "\n", + "
\n", + "User Guide\n", + " \n", + "See more on [projections in the User Guide](../docs/user_guide/projections.rst).\n", + "
\n", + "\n", + "## What next?\n", + "\n", + "With GeoPandas we can do much more that this, from [aggregations](../docs/user_guide/aggregation_with_dissolve.rst), to [spatial joins](../docs/user_guide/mergingdata.rst), [geocoding](../docs/user_guide/geocoding.rst) and [much more](../gallery/index.rst).\n", + "\n", + "Head to the [User Guide](../docs/user_guide.rst) for to learn more about different functionality of GeoPandas, to the [Examples](../gallery/index.rst) to see how it can be used or the the [API reference](../docs/reference.rst) for the details." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "geo_dev", + "language": "python", + "name": "geo_dev" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/doc/source/getting_started/introduction.rst b/doc/source/getting_started/introduction.rst deleted file mode 100644 index 66f336f..0000000 --- a/doc/source/getting_started/introduction.rst +++ /dev/null @@ -1,4 +0,0 @@ -Intro ------ - -This will be Jupyter with an introductory guide. From 4a650af20223ffd376c7f0f4307d31a243cbb98e Mon Sep 17 00:00:00 2001 From: James McBride Date: Thu, 18 Feb 2021 12:36:56 -0800 Subject: [PATCH 107/316] ENH: Add warning if keep_geom_type drops geometries during overlay (#1554) * Add warning if keep_geom_type drops geometries during overlay * Expand keep_geom_type warning message * Add test for keep_geom_type dropping geoms * Set keep_geom_type=None by default With True, no warning raised. With None, will drop geoms of other types, but warn the user. * Update geopandas/tests/test_overlay.py Co-authored-by: Martin Fleischmann Co-authored-by: Joris Van den Bossche Co-authored-by: Martin Fleischmann --- geopandas/tests/test_overlay.py | 18 ++++++++++++++++- geopandas/tools/overlay.py | 34 ++++++++++++++++++++++++++------- 2 files changed, 44 insertions(+), 8 deletions(-) diff --git a/geopandas/tests/test_overlay.py b/geopandas/tests/test_overlay.py index 6ba0c39..b828112 100644 --- a/geopandas/tests/test_overlay.py +++ b/geopandas/tests/test_overlay.py @@ -382,10 +382,26 @@ def test_correct_index(dfs): expected = GeoDataFrame( [[1, 1, i1], [3, 2, i2]], columns=["col3", "col2", "geometry"] ) - result = overlay(df3, df2) + result = overlay(df3, df2, keep_geom_type=True) assert_geodataframe_equal(result, expected) +def test_warn_on_keep_geom_type(dfs): + + df1, df2 = dfs + polys3 = GeoSeries( + [ + Polygon([(1, 1), (3, 1), (3, 3), (1, 3)]), + Polygon([(-1, 1), (1, 1), (1, 3), (-1, 3)]), + Polygon([(3, 3), (5, 3), (5, 5), (3, 5)]), + ] + ) + df3 = GeoDataFrame({"geometry": polys3}) + + with pytest.warns(UserWarning, match="`keep_geom_type=True` in overlay"): + overlay(df2, df3, keep_geom_type=None) + + @pytest.mark.parametrize( "geom_types", ["polys", "poly_line", "poly_point", "line_poly", "point_poly"] ) diff --git a/geopandas/tools/overlay.py b/geopandas/tools/overlay.py index d3c0bf8..9aebbb3 100644 --- a/geopandas/tools/overlay.py +++ b/geopandas/tools/overlay.py @@ -137,7 +137,7 @@ def _overlay_union(df1, df2): return dfunion.reindex(columns=columns) -def overlay(df1, df2, how="intersection", keep_geom_type=True): +def overlay(df1, df2, how="intersection", keep_geom_type=None): """Perform spatial overlay between two GeoDataFrames. Currently only supports data GeoDataFrames with uniform geometry types, @@ -156,7 +156,9 @@ def overlay(df1, df2, how="intersection", keep_geom_type=True): 'identity', 'symmetric_difference' or 'difference'. keep_geom_type : bool If True, return only geometries of the same geometry type as df1 has, - if False, return all resulting gemetries. + if False, return all resulting geometries. Default is None, + which will set keep_geom_type to True but warn upon dropping + geometries. Returns ------- @@ -241,6 +243,12 @@ def overlay(df1, df2, how="intersection", keep_geom_type=True): if not _check_crs(df1, df2): _crs_mismatch_warn(df1, df2, stacklevel=3) + if keep_geom_type is None: + keep_geom_type = True + keep_geom_type_warning = True + else: + keep_geom_type_warning = False + polys = ["Polygon", "MultiPolygon"] lines = ["LineString", "MultiLineString", "LinearRing"] points = ["Point", "MultiPoint"] @@ -280,20 +288,32 @@ def overlay(df1, df2, how="intersection", keep_geom_type=True): exploded = result.reset_index(drop=True).explode() exploded = exploded.reset_index(level=0) - type = df1.geom_type.iloc[0] - if type in polys: + orig_num_geoms = result.shape[0] + geom_type = df1.geom_type.iloc[0] + if geom_type in polys: exploded = exploded.loc[exploded.geom_type.isin(polys)] - elif type in lines: + elif geom_type in lines: exploded = exploded.loc[exploded.geom_type.isin(lines)] - elif type in points: + elif geom_type in points: exploded = exploded.loc[exploded.geom_type.isin(points)] else: - raise TypeError("`keep_geom_type` does not support {}.".format(type)) + raise TypeError("`keep_geom_type` does not support {}.".format(geom_type)) # level_0 created with above reset_index operation # and represents the original geometry collections result = exploded.dissolve(by="level_0")[key_order] + if (result.shape[0] != orig_num_geoms) and keep_geom_type_warning: + num_dropped = orig_num_geoms - result.shape[0] + warnings.warn( + "`keep_geom_type=True` in overlay resulted in {} dropped " + "geometries of different geometry types than df1 has. " + "Set `keep_geom_type=False` to retain all " + "geometries".format(num_dropped), + UserWarning, + stacklevel=2, + ) + result.reset_index(drop=True, inplace=True) result.drop(["__idx1", "__idx2"], axis=1, inplace=True) return result From cb49d088f9b095026a608de1e04604805fae07ab Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Thu, 18 Feb 2021 20:51:28 +0000 Subject: [PATCH 108/316] DOC: use Jupyter examples via nbsphinx gallery (#1731) --- .gitignore | 1 - doc/Makefile | 1 - doc/environment.yml | 70 +- doc/source/community/contributing.rst | 25 +- doc/source/conf.py | 36 +- doc/source/gallery/cartopy_convert.ipynb | 263 ++++ doc/source/gallery/choro_legends.ipynb | 267 ++++ doc/source/gallery/choropleths.ipynb | 283 +++++ .../create_geopandas_from_pandas.ipynb | 263 ++++ doc/source/gallery/index.rst | 12 + {examples => doc/source/gallery}/nyc.png | Bin {examples => doc/source/gallery}/nyc_hull.png | Bin doc/source/gallery/overlays.ipynb | 277 ++++ doc/source/gallery/plot_clip.ipynb | 242 ++++ .../gallery/plotting_basemap_background.ipynb | 192 +++ doc/source/gallery/plotting_with_folium.ipynb | 249 ++++ .../gallery/plotting_with_geoplot.ipynb | 250 ++++ .../polygon_plotting_with_folium.ipynb | 206 +++ doc/source/gallery/spatial_joins.ipynb | 286 +++++ {examples => doc/source/gallery}/test.png | Bin .../source/gallery}/test_buffer.png | Bin .../source/gallery}/volcano_data_2010.csv | 0 examples/README.md | 3 + examples/README.txt | 8 - examples/cartopy_convert.py | 106 -- examples/choro_legends.ipynb | 542 -------- examples/choropleths.ipynb | 861 ------------- examples/create_geopandas_from_pandas.py | 91 -- examples/overlays.ipynb | 721 ----------- examples/plot_clip.py | 116 -- examples/plotting_basemap_background.py | 61 - examples/plotting_with_folium.ipynb | 478 ------- examples/plotting_with_geoplot.py | 105 -- examples/polygon_plotting_with_folium.ipynb | 574 --------- examples/spatial_joins.ipynb | 1126 ----------------- geopandas/io/tests/test_file.py | 6 +- .../tests/data}/null_geom.geojson | 0 geopandas/tests/test_geodataframe.py | 4 +- 38 files changed, 2875 insertions(+), 4850 deletions(-) create mode 100644 doc/source/gallery/cartopy_convert.ipynb create mode 100644 doc/source/gallery/choro_legends.ipynb create mode 100644 doc/source/gallery/choropleths.ipynb create mode 100644 doc/source/gallery/create_geopandas_from_pandas.ipynb create mode 100644 doc/source/gallery/index.rst rename {examples => doc/source/gallery}/nyc.png (100%) rename {examples => doc/source/gallery}/nyc_hull.png (100%) create mode 100644 doc/source/gallery/overlays.ipynb create mode 100644 doc/source/gallery/plot_clip.ipynb create mode 100644 doc/source/gallery/plotting_basemap_background.ipynb create mode 100644 doc/source/gallery/plotting_with_folium.ipynb create mode 100644 doc/source/gallery/plotting_with_geoplot.ipynb create mode 100644 doc/source/gallery/polygon_plotting_with_folium.ipynb create mode 100644 doc/source/gallery/spatial_joins.ipynb rename {examples => doc/source/gallery}/test.png (100%) rename {examples => doc/source/gallery}/test_buffer.png (100%) rename {examples => doc/source/gallery}/volcano_data_2010.csv (100%) create mode 100644 examples/README.md delete mode 100644 examples/README.txt delete mode 100644 examples/cartopy_convert.py delete mode 100644 examples/choro_legends.ipynb delete mode 100644 examples/choropleths.ipynb delete mode 100644 examples/create_geopandas_from_pandas.py delete mode 100644 examples/overlays.ipynb delete mode 100644 examples/plot_clip.py delete mode 100644 examples/plotting_basemap_background.py delete mode 100644 examples/plotting_with_folium.ipynb delete mode 100644 examples/plotting_with_geoplot.py delete mode 100644 examples/polygon_plotting_with_folium.ipynb delete mode 100644 examples/spatial_joins.ipynb rename {examples => geopandas/tests/data}/null_geom.geojson (100%) diff --git a/.gitignore b/.gitignore index a99f42e..1cfe9fe 100644 --- a/.gitignore +++ b/.gitignore @@ -59,7 +59,6 @@ doc/_build/ examples/nybb_*.zip -doc/source/gallery doc/source/savefig doc/source/reference doc/source/docs/reference/api diff --git a/doc/Makefile b/doc/Makefile index 4ce53c3..2844e8d 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -41,7 +41,6 @@ help: clean: -rm -rf $(BUILDDIR)/* -rm -rf source/reference/* - -rm -rf source/gallery/* html: $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html diff --git a/doc/environment.yml b/doc/environment.yml index 0238ef8..a372f14 100644 --- a/doc/environment.yml +++ b/doc/environment.yml @@ -1,35 +1,41 @@ name: geopandas_docs channels: -- conda-forge + - conda-forge dependencies: -- python=3.7 -- pandas=1.0.1 -- shapely=1.7.0 -- fiona=1.8.13 -- pyproj=2.4.2.post1 -- rtree=0.9.4 -- geopy=1.21.0 -- matplotlib=3.1.3 -- mapclassify=2.2.0 -- sphinx=2.4.1 -- pydata-sphinx-theme=0.3.1 -- numpydoc=0.9.2 -- ipython=7.12.0 -- pillow=7.0.0 -- mock=3.0.5 -- cartopy=0.17.0 -- contextily=1.0rc2 -- rasterio=1.1.1 -- geoplot=0.4.0 -# 0.5.0 has a bug (https://github.com/sphinx-gallery/sphinx-gallery/issues/568) -- sphinx-gallery=0.4.0 -- jinja2=2.11.1 -- doc2dash -# specify additional dependencies to reduce solving for conda -- gdal=3.0.4 -- libgdal=3.0.4 -- proj=6.3.0 -- geos=3.8.0 -- pip: - - myst-nb - - sphinx-toggleprompt + - python + - pandas + - shapely + - fiona + - pyproj + - rtree + - geopy + - matplotlib + - descartes + - mapclassify + - sphinx + - pydata-sphinx-theme + - numpydoc + - ipython + - pillow + - mock + - cartopy + - contextily + - rasterio + - geoplot + - sphinx-gallery + - jinja2 + - doc2dash + # specify additional dependencies to reduce solving for conda + # - gdal=3.0.4 + # - libgdal=3.0.4 + # - proj=6.3.0 + # - geos=3.8.0 + - nbsphinx + - jupyter_client + - ipykernel + - myst-parser + - folium + - libpysal + - pip + - pip: + - sphinx-toggleprompt \ No newline at end of file diff --git a/doc/source/community/contributing.rst b/doc/source/community/contributing.rst index 8553b6c..2f6cf7b 100644 --- a/doc/source/community/contributing.rst +++ b/doc/source/community/contributing.rst @@ -247,10 +247,15 @@ install *GeoPandas*) by typing:: 6) Updating the Documentation ----------------------------- -*GeoPandas* documentation resides in the `doc` folder. Changes to the docs are -make by modifying the appropriate file in the `source` folder within `doc`. -*GeoPandas* docs use reStructuredText syntax, `which is explained here `_ -and the docstrings follow the `Numpy Docstring standard `_. +*GeoPandas* documentation resides in the ``doc`` folder. Changes to the docs are make by +modifying the appropriate file in the `source` folder within ``doc``. *GeoPandas* docs use +mixture of reStructuredText syntax for ``rst`` files, `which is explained here +`_ and MyST syntax for ``md`` +files `explained here `_. +The docstrings follow the `Numpy Docstring standard +`_. Some pages +and examples are Jupyter notebooks converted to docs using `nbsphinx +`_. Jupyter notebooks should be stored without the output. Once you have made your changes, you may try if they render correctly by building the docs using sphinx. To do so, you can navigate to the `doc` folder @@ -258,16 +263,18 @@ and type:: make html -The resulting html pages will be located in `doc/build/html`. In case of any -errors, you can try to use `make html` within a new environment based on -environment.yml specification in the `doc` folder. Using conda:: +The resulting html pages will be located in ``doc/build/html``. In case of any errors, you +can try to use ``make html`` within a new environment based on environment.yml +specification in the ``doc`` folder. You may need to register Jupyter kernel as +``geopandas_docs``. Using conda:: conda env create -f environment.yml conda activate geopandas_docs + python -m ipykernel install --user --name geopandas_docs make html -For minor updates, you can skip whole `make html` part as reStructuredText syntax -is usually quite straightforward. +For minor updates, you can skip whole ``make html`` part as reStructuredText and MyST +syntax are usually quite straightforward. 7) Submitting a Pull Request diff --git a/doc/source/conf.py b/doc/source/conf.py index 80f1bea..536f0ec 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -29,7 +29,7 @@ import warnings extensions = [ "IPython.sphinxext.ipython_console_highlighting", "IPython.sphinxext.ipython_directive", - "sphinx_gallery.gen_gallery", + "sphinx_gallery.load_style", "sphinx.ext.autosummary", "sphinx.ext.intersphinx", "sphinx.ext.autodoc", @@ -63,20 +63,10 @@ templates_path = ["_templates"] autosummary_generate = True -# Sphinx gallery configuration -sphinx_gallery_conf = { - "examples_dirs": ["../../examples"], - "filename_pattern": "^((?!sgskip).)*$", - "gallery_dirs": ["gallery"], - "doc_module": ("geopandas",), - "reference_url": { - "matplotlib": "http://matplotlib.org", - "numpy": "http://docs.scipy.org/doc/numpy", - "scipy": "http://docs.scipy.org/doc/scipy/reference", - "geopandas": None, - }, - "backreferences_dir": "reference", -} +nbsphinx_execute = "always" +nbsphinx_kernel_name = "geopandas_docs" +nbsphinx_allow_errors = True + # connect docs in other projects intersphinx_mapping = {"pyproj": ("http://pyproj4.github.io/pyproj/stable/", None)} # suppress matplotlib warning in examples @@ -326,3 +316,19 @@ texinfo_documents = [ # How to display URL addresses: 'footnote', 'no', or 'inline'. # texinfo_show_urls = 'footnote' + +nbsphinx_prolog = r""" +{% set docname = env.doc2path(env.docname, base=None) %} + +.. only:: html + + .. role:: raw-html(raw) + :format: html + + .. note:: + + | This page was generated from `{{ docname }}`__. + | Interactive online version: :raw-html:`
Binder badge` + + __ https://github.com/geopandas/geopandas/blob/master/doc/source/{{ docname }} +""" diff --git a/doc/source/gallery/cartopy_convert.ipynb b/doc/source/gallery/cartopy_convert.ipynb new file mode 100644 index 0000000..7f95a6e --- /dev/null +++ b/doc/source/gallery/cartopy_convert.ipynb @@ -0,0 +1,263 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "# Plotting with CartoPy and GeoPandas\n", + "\n", + "Converting between GeoPandas and CartoPy for visualizing data.\n", + "\n", + "[CartoPy](http://scitools.org.uk/cartopy/) is a Python library\n", + "that specializes in creating geospatial\n", + "visualizations. It has a slightly different way of representing\n", + "Coordinate Reference Systems (CRS) as well as constructing plots.\n", + "This example steps through a round-trip transfer of data\n", + "between GeoPandas and CartoPy.\n", + "\n", + "First we'll load in the data using GeoPandas.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "import geopandas\n", + "from cartopy import crs as ccrs\n", + "\n", + "path = geopandas.datasets.get_path('naturalearth_lowres')\n", + "df = geopandas.read_file(path)\n", + "# Add a column we'll use later\n", + "df['gdp_pp'] = df['gdp_md_est'] / df['pop_est']" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First we'll visualize the map using GeoPandas\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [], + "source": [ + "df.plot()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Plotting with CartoPy\n", + "=====================\n", + "\n", + "Cartopy also handles Shapely objects well, but it uses a different system for\n", + "CRS. To plot this data with CartoPy, we'll first need to project it into a\n", + "new CRS. We'll use a CRS defined within CartoPy and use the GeoPandas\n", + "``to_crs`` method to make the transformation.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [], + "source": [ + "# Define the CartoPy CRS object.\n", + "crs = ccrs.AzimuthalEquidistant()\n", + "\n", + "# This can be converted into a `proj4` string/dict compatible with GeoPandas\n", + "crs_proj4 = crs.proj4_init\n", + "df_ae = df.to_crs(crs_proj4)\n", + "\n", + "# Here's what the plot looks like in GeoPandas\n", + "df_ae.plot()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now that our data is in a CRS based off of CartoPy, we can easily\n", + "plot it.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [], + "source": [ + "fig, ax = plt.subplots(subplot_kw={'projection': crs})\n", + "ax.add_geometries(df_ae['geometry'], crs=crs)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that we could have easily done this with an EPSG code like so:\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [], + "source": [ + "crs_epsg = ccrs.epsg('3857')\n", + "df_epsg = df.to_crs(epsg='3857')\n", + "\n", + "# Generate a figure with two axes, one for CartoPy, one for GeoPandas\n", + "fig, axs = plt.subplots(1, 2, subplot_kw={'projection': crs_epsg},\n", + " figsize=(10, 5))\n", + "# Make the CartoPy plot\n", + "axs[0].add_geometries(df_epsg['geometry'], crs=crs_epsg,\n", + " facecolor='white', edgecolor='black')\n", + "# Make the GeoPandas plot\n", + "df_epsg.plot(ax=axs[1], color='white', edgecolor='black')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "CartoPy to GeoPandas\n", + "====================\n", + "\n", + "Next we'll perform a CRS projection in CartoPy, and then convert it\n", + "back into a GeoPandas object.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [], + "source": [ + "crs_new = ccrs.AlbersEqualArea()\n", + "new_geometries = [crs_new.project_geometry(ii, src_crs=crs)\n", + " for ii in df_ae['geometry'].values]\n", + "\n", + "fig, ax = plt.subplots(subplot_kw={'projection': crs_new})\n", + "ax.add_geometries(new_geometries, crs=crs_new)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now that we've created new Shapely objects with the CartoPy CRS,\n", + "we can use this to create a GeoDataFrame.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [], + "source": [ + "df_aea = geopandas.GeoDataFrame(df['gdp_pp'], geometry=new_geometries,\n", + " crs=crs_new.proj4_init)\n", + "df_aea.plot()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can even combine these into the same figure. Here we'll plot the\n", + "shapes of the countries with CartoPy. We'll then calculate the centroid\n", + "of each with GeoPandas and plot it on top.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "jupyter": { + "outputs_hidden": false + }, + "tags": [ + "nbsphinx-thumbnail" + ] + }, + "outputs": [], + "source": [ + "# Generate a CartoPy figure and add the countries to it\n", + "fig, ax = plt.subplots(subplot_kw={'projection': crs_new})\n", + "ax.add_geometries(new_geometries, crs=crs_new)\n", + "\n", + "# Calculate centroids and plot\n", + "df_aea_centroids = df_aea.geometry.centroid\n", + "# Need to provide \"zorder\" to ensure the points are plotted above the polygons\n", + "df_aea_centroids.plot(ax=ax, markersize=5, color='r', zorder=10)\n", + "\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/doc/source/gallery/choro_legends.ipynb b/doc/source/gallery/choro_legends.ipynb new file mode 100644 index 0000000..b92c291 --- /dev/null +++ b/doc/source/gallery/choro_legends.ipynb @@ -0,0 +1,267 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Choro legends" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import geopandas\n", + "from geopandas import read_file" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import mapclassify\n", + "mapclassify.__version__" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import libpysal\n", + "libpysal.__version__" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "libpysal.examples.available()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "_ = libpysal.examples.load_example('South')\n", + "pth = libpysal.examples.get_path('south.shp')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df = read_file(pth)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## New default legend formatting" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "nbsphinx-thumbnail" + ] + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "ax = df.plot(column='HR60', scheme='QUANTILES', k=4, \\\n", + " cmap='BuPu', legend=True,\n", + " legend_kwds={'loc': 'center left', 'bbox_to_anchor':(1,0.5)})" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "labels = [t.get_text() for t in ax.get_legend().get_texts()]\n", + "labels" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "q4 = mapclassify.Quantiles(df.HR60, k=4)\n", + "q4" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "labels == q4.get_legend_classes()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that in this case, the first interval is closed on the minimum value in the dataset. The other intervals have an open lower bound. This is now displayed in the legend." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Overriding numerical format" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ax = df.plot(column='HR60', scheme='QUANTILES', k=4, \\\n", + " cmap='BuPu', legend=True,\n", + " legend_kwds={'loc': 'center left', 'bbox_to_anchor':(1,0.5)},\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ax = df.plot(column='HR60', scheme='QUANTILES', k=4, \\\n", + " cmap='BuPu', legend=True,\n", + " legend_kwds={'loc': 'center left', 'bbox_to_anchor':(1,0.5), 'fmt':\"{:.4f}\"})" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ax = df.plot(column='HR60', scheme='QUANTILES', k=4, \\\n", + " cmap='BuPu', legend=True,\n", + " legend_kwds={'loc': 'center left', 'bbox_to_anchor':(1,0.5), 'fmt':\"{:.0f}\"})" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The new legends_kwds arg `fmt` takes a string to set the numerical formatting." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## When first class lower bound < y.min()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ax = df.plot(column='HR60', scheme='BoxPlot', \\\n", + " cmap='BuPu', legend=True,\n", + " legend_kwds={'loc': 'center left', 'bbox_to_anchor':(1,0.5),\n", + " 'fmt': \"{:.0f}\"})" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "bp = mapclassify.BoxPlot(df.HR60)\n", + "bp\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "bp.get_legend_classes(fmt=\"{:.0f}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In some classifiers the user should be aware that the lower (upper) bound of the first (last) interval is not equal to the minimum (maximum) of the attribute values. This is useful to detect extreme values and highly skewed distributions." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Categorical Data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ax = df.plot(column='STATE_NAME', categorical=True, legend=True, \\\n", + " legend_kwds={'loc': 'center left', 'bbox_to_anchor':(1,0.5),\n", + " 'fmt': \"{:.0f}\"}) # fmt is ignored for categorical data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/doc/source/gallery/choropleths.ipynb b/doc/source/gallery/choropleths.ipynb new file mode 100644 index 0000000..55e4ace --- /dev/null +++ b/doc/source/gallery/choropleths.ipynb @@ -0,0 +1,283 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Choropleth classification schemes from PySAL for use with GeoPandas\n", + "\"PySAL\n", + "PySAL is a [Spatial Analysis Library](), which packages fast spatial algorithms used in various fields. These include Exploratory spatial data analysis, spatial inequality analysis, spatial analysis on networks, spatial dynamics, and many more.\n", + "\n", + "It is used under the hood in geopandas when plotting measures with a set of colors. There are many ways to classify data into different bins, depending on a number of classification schemes.\n", + "\n", + "\n", + "\n", + "For example, if we have 20 countries whose average annual temperature varies between 5C and 25C, we can classify them in 4 bins by:\n", + "* Quantiles\n", + " - Separates the rows into equal parts, 5 countries per bin.\n", + "* Equal Intervals\n", + " - Separates the measure's interval into equal parts, 5C per bin.\n", + "* Natural Breaks (Fischer Jenks)\n", + " - This algorithm tries to split the rows into naturaly occurring clusters. The numbers per bin will depend on how the observations are located on the interval." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "ExecuteTime": { + "end_time": "2017-12-15T21:29:37.736444Z", + "start_time": "2017-12-15T21:29:37.716444Z" + } + }, + "outputs": [], + "source": [ + "import geopandas as gpd\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "ExecuteTime": { + "end_time": "2017-12-15T21:29:39.866422Z", + "start_time": "2017-12-15T21:29:39.846422Z" + } + }, + "outputs": [], + "source": [ + "# We use a PySAL example shapefile\n", + "import libpysal as ps\n", + "\n", + "pth = ps.examples.get_path(\"columbus.shp\")\n", + "tracts = gpd.GeoDataFrame.from_file(pth)\n", + "print('Observations, Attributes:',tracts.shape)\n", + "tracts.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Plotting the CRIME variable\n", + "In this example, we are taking a look at neighbourhood-level statistics for the city of Columbus, OH. We'd like to have an idea of how the crime rate variable is distributed around the city.\n", + "\n", + "From the [shapefile's metadata](https://github.com/pysal/pysal/blob/master/pysal/examples/columbus/columbus.html):\n", + ">**CRIME**: residential burglaries and vehicle thefts per 1000 households" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Let's take a look at how the CRIME variable is distributed with a histogram\n", + "tracts['CRIME'].hist(bins=20)\n", + "plt.xlabel('CRIME\\nResidential burglaries and vehicle thefts per 1000 households')\n", + "plt.ylabel('Number of neighbourhoods')\n", + "plt.title('Distribution of neighbourhoods by crime rate in Columbus, OH')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let's see what it looks like without a classification scheme:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "ExecuteTime": { + "end_time": "2017-12-15T21:29:54.097280Z", + "start_time": "2017-12-15T21:29:53.766283Z" + }, + "tags": [ + "nbsphinx-thumbnail" + ] + }, + "outputs": [], + "source": [ + "tracts.plot(column='CRIME', cmap='OrRd', edgecolor='k', legend=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "All the 49 neighbourhoods are colored along a white-to-dark-red gradient, but the human eye can have a hard time comparing the color of shapes that are distant one to the other. In this case, it is especially hard to rank the peripheral districts colored in beige.\n", + "\n", + "Instead, we'll classify them in color bins." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Classification by quantiles\n", + ">QUANTILES will create attractive maps that place an equal number of observations in each class: If you have 30 counties and 6 data classes, you’ll have 5 counties in each class. The problem with quantiles is that you can end up with classes that have very different numerical ranges (e.g., 1-4, 4-9, 9-250)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "ExecuteTime": { + "end_time": "2017-12-15T21:30:30.408917Z", + "start_time": "2017-12-15T21:30:30.088920Z" + } + }, + "outputs": [], + "source": [ + "# Splitting the data in three shows some spatial clustering around the center\n", + "tracts.plot(column='CRIME', scheme='quantiles', k=3, cmap='OrRd', edgecolor='k', legend=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "ExecuteTime": { + "end_time": "2017-12-15T21:28:00.376417Z", + "start_time": "2017-12-15T21:27:57.039Z" + } + }, + "outputs": [], + "source": [ + "# We can also see where the top and bottom halves are located\n", + "tracts.plot(column='CRIME', scheme='quantiles', k=2, cmap='OrRd', edgecolor='k', legend=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Classification by equal intervals\n", + ">EQUAL INTERVAL divides the data into equal size classes (e.g., 0-10, 10-20, 20-30, etc.) and works best on data that is generally spread across the entire range. CAUTION: Avoid equal interval if your data are skewed to one end or if you have one or two really large outlier values." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "ExecuteTime": { + "end_time": "2017-12-15T21:28:00.376417Z", + "start_time": "2017-12-15T21:27:57.045Z" + } + }, + "outputs": [], + "source": [ + "tracts.plot(column='CRIME', scheme='equal_interval', k=4, cmap='OrRd', edgecolor='k', legend=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "ExecuteTime": { + "end_time": "2017-12-15T21:28:00.386417Z", + "start_time": "2017-12-15T21:27:57.048Z" + } + }, + "outputs": [], + "source": [ + "# No legend here as we'd be out of space\n", + "tracts.plot(column='CRIME', scheme='equal_interval', k=12, cmap='OrRd', edgecolor='k')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Classificaton by natural breaks\n", + ">NATURAL BREAKS is a kind of “optimal” classification scheme that finds class breaks that will minimize within-class variance and maximize between-class differences. One drawback of this approach is each dataset generates a unique classification solution, and if you need to make comparison across maps, such as in an atlas or a series (e.g., one map each for 1980, 1990, 2000) you might want to use a single scheme that can be applied across all of the maps." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "ExecuteTime": { + "end_time": "2017-12-15T21:28:00.376417Z", + "start_time": "2017-12-15T21:27:57.042Z" + } + }, + "outputs": [], + "source": [ + "# Compare this to the previous 3-bin figure with quantiles\n", + "tracts.plot(column='CRIME', scheme='fisher_jenks', k=3, cmap='OrRd', edgecolor='k', legend=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Other classification schemes in PySAL\n", + "\n", + "Geopandas includes only the most used classifiers found in PySAL. In order to use the others, you will need to add them as additional columns to your GeoDataFrame.\n", + "\n", + ">The max-p algorithm determines the number of regions (p) endogenously based on a set of areas, a matrix of attributes on each area and a floor constraint. The floor constraint defines the minimum bound that a variable must reach for each region; for example, a constraint might be the minimum population each region must have. max-p further enforces a contiguity constraint on the areas within regions." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def max_p(values, k):\n", + " \"\"\"\n", + " Given a list of values and `k` bins,\n", + " returns a list of their Maximum P bin number.\n", + " \"\"\"\n", + " from mapclassify import MaxP\n", + " binning = MaxP(values, k=k)\n", + " return binning.yb\n", + "\n", + "tracts['Max_P'] = max_p(tracts['CRIME'].values, k=5)\n", + "tracts.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "tracts.plot(column='Max_P', cmap='OrRd', edgecolor='k', categorical=True, legend=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "stable", + "language": "python", + "name": "stable" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.5" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/doc/source/gallery/create_geopandas_from_pandas.ipynb b/doc/source/gallery/create_geopandas_from_pandas.ipynb new file mode 100644 index 0000000..47a7b62 --- /dev/null +++ b/doc/source/gallery/create_geopandas_from_pandas.ipynb @@ -0,0 +1,263 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "# Creating a GeoDataFrame from a DataFrame with coordinates\n", + "\n", + "This example shows how to create a ``GeoDataFrame`` when starting from\n", + "a *regular* ``DataFrame`` that has coordinates either WKT\n", + "([well-known text](https://en.wikipedia.org/wiki/Well-known_text>))\n", + "format, or in\n", + "two columns.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import geopandas\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "From longitudes and latitudes\n", + "=============================\n", + "\n", + "First, let's consider a ``DataFrame`` containing cities and their respective\n", + "longitudes and latitudes.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [], + "source": [ + "df = pd.DataFrame(\n", + " {'City': ['Buenos Aires', 'Brasilia', 'Santiago', 'Bogota', 'Caracas'],\n", + " 'Country': ['Argentina', 'Brazil', 'Chile', 'Colombia', 'Venezuela'],\n", + " 'Latitude': [-34.58, -15.78, -33.45, 4.60, 10.48],\n", + " 'Longitude': [-58.66, -47.91, -70.66, -74.08, -66.86]})" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A ``GeoDataFrame`` needs a ``shapely`` object. We use geopandas\n", + "``points_from_xy()`` to transform **Longitude** and **Latitude** into a list\n", + "of ``shapely.Point`` objects and set it as a ``geometry`` while creating the\n", + "``GeoDataFrame``. (note that ``points_from_xy()`` is an enhanced wrapper for\n", + "``[Point(x, y) for x, y in zip(df.Longitude, df.Latitude)]``)\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [], + "source": [ + "gdf = geopandas.GeoDataFrame(\n", + " df, geometry=geopandas.points_from_xy(df.Longitude, df.Latitude))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "``gdf`` looks like this :\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [], + "source": [ + "print(gdf.head())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, we plot the coordinates over a country-level map.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "jupyter": { + "outputs_hidden": false + }, + "tags": [ + "nbsphinx-thumbnail" + ] + }, + "outputs": [], + "source": [ + "world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres'))\n", + "\n", + "# We restrict to South America.\n", + "ax = world[world.continent == 'South America'].plot(\n", + " color='white', edgecolor='black')\n", + "\n", + "# We can now plot our ``GeoDataFrame``.\n", + "gdf.plot(ax=ax, color='red')\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "From WKT format\n", + "===============\n", + "Here, we consider a ``DataFrame`` having coordinates in WKT format.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [], + "source": [ + "df = pd.DataFrame(\n", + " {'City': ['Buenos Aires', 'Brasilia', 'Santiago', 'Bogota', 'Caracas'],\n", + " 'Country': ['Argentina', 'Brazil', 'Chile', 'Colombia', 'Venezuela'],\n", + " 'Coordinates': ['POINT(-58.66 -34.58)', 'POINT(-47.91 -15.78)',\n", + " 'POINT(-70.66 -33.45)', 'POINT(-74.08 4.60)',\n", + " 'POINT(-66.86 10.48)']})" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We use ``shapely.wkt`` sub-module to parse wkt format:\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [], + "source": [ + "from shapely import wkt\n", + "\n", + "df['Coordinates'] = df['Coordinates'].apply(wkt.loads)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The ``GeoDataFrame`` is constructed as follows :\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [], + "source": [ + "gdf = geopandas.GeoDataFrame(df, geometry='Coordinates')\n", + "\n", + "print(gdf.head())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Again, we can plot our ``GeoDataFrame``.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [], + "source": [ + "ax = world[world.continent == 'South America'].plot(\n", + " color='white', edgecolor='black')\n", + "\n", + "gdf.plot(ax=ax, color='red')\n", + "\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/doc/source/gallery/index.rst b/doc/source/gallery/index.rst new file mode 100644 index 0000000..9660e31 --- /dev/null +++ b/doc/source/gallery/index.rst @@ -0,0 +1,12 @@ +Examples Gallery +================ + +The following examples show off the functionality in GeoPandas. They highlight many of the things you can do with this package, and show off some best-practices. + + +.. nbgallery:: + :name: nbshpinx-gallery + :glob: + :reversed: + + ./* diff --git a/examples/nyc.png b/doc/source/gallery/nyc.png similarity index 100% rename from examples/nyc.png rename to doc/source/gallery/nyc.png diff --git a/examples/nyc_hull.png b/doc/source/gallery/nyc_hull.png similarity index 100% rename from examples/nyc_hull.png rename to doc/source/gallery/nyc_hull.png diff --git a/doc/source/gallery/overlays.ipynb b/doc/source/gallery/overlays.ipynb new file mode 100644 index 0000000..a90403f --- /dev/null +++ b/doc/source/gallery/overlays.ipynb @@ -0,0 +1,277 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Overlays\n", + "\n", + "Spatial overlays allow you to compare two GeoDataFrames containing polygon or multipolygon geometries \n", + "and create a new GeoDataFrame with the new geometries representing the spatial combination *and*\n", + "merged properties. This allows you to answer questions like\n", + "\n", + "> What are the demographics of the census tracts within 1000 ft of the highway?\n", + "\n", + "The basic idea is demonstrated by the graphic below but keep in mind that overlays operate at the dataframe level, \n", + "not on individual geometries, and the properties from both are retained\n", + "\n", + "![illustration](http://docs.qgis.org/testing/en/_images/overlay_operations.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can load up two GeoDataFrames containing (multi)polygon geometries..." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "ExecuteTime": { + "end_time": "2017-12-15T21:09:36.236298Z", + "start_time": "2017-12-15T21:09:34.256318Z" + } + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "from shapely.geometry import Point\n", + "from geopandas import datasets, GeoDataFrame, read_file\n", + "from geopandas.tools import overlay\n", + "\n", + "# NYC Boros\n", + "zippath = datasets.get_path('nybb')\n", + "polydf = read_file(zippath)\n", + "\n", + "# Generate some circles\n", + "b = [int(x) for x in polydf.total_bounds]\n", + "N = 10\n", + "polydf2 = GeoDataFrame([\n", + " {'geometry': Point(x, y).buffer(10000), 'value1': x + y, 'value2': x - y}\n", + " for x, y in zip(range(b[0], b[2], int((b[2] - b[0]) / N)),\n", + " range(b[1], b[3], int((b[3] - b[1]) / N)))])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The first dataframe contains multipolygons of the NYC boros" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "ExecuteTime": { + "end_time": "2017-12-15T21:09:36.526295Z", + "start_time": "2017-12-15T21:09:36.236298Z" + } + }, + "outputs": [], + "source": [ + "polydf.plot()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And the second GeoDataFrame is a sequentially generated set of circles in the same geographic space. We'll plot these with a [different color palette](https://matplotlib.org/examples/color/colormaps_reference.html)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "ExecuteTime": { + "end_time": "2017-12-15T21:09:36.756293Z", + "start_time": "2017-12-15T21:09:36.526295Z" + } + }, + "outputs": [], + "source": [ + "polydf2.plot(cmap='tab20b')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `geopandas.tools.overlay` function takes three arguments:\n", + "\n", + "* df1\n", + "* df2\n", + "* how\n", + "\n", + "Where `how` can be one of:\n", + "\n", + " ['intersection',\n", + " 'union',\n", + " 'identity',\n", + " 'symmetric_difference',\n", + " 'difference']\n", + "\n", + "So let's identify the areas (and attributes) where both dataframes intersect using the `overlay` tool. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "ExecuteTime": { + "end_time": "2017-12-15T21:09:39.796263Z", + "start_time": "2017-12-15T21:09:36.756293Z" + } + }, + "outputs": [], + "source": [ + "from geopandas.tools import overlay\n", + "newdf = overlay(polydf, polydf2, how=\"intersection\")\n", + "newdf.plot(cmap='tab20b')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And take a look at the attributes; we see that the attributes from both of the original GeoDataFrames are retained. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "ExecuteTime": { + "end_time": "2017-12-15T21:09:40.416257Z", + "start_time": "2017-12-15T21:09:39.796263Z" + } + }, + "outputs": [], + "source": [ + "polydf.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "ExecuteTime": { + "end_time": "2017-12-15T21:09:40.446256Z", + "start_time": "2017-12-15T21:09:40.416257Z" + } + }, + "outputs": [], + "source": [ + "polydf2.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "ExecuteTime": { + "end_time": "2017-12-15T21:09:40.586255Z", + "start_time": "2017-12-15T21:09:40.446256Z" + } + }, + "outputs": [], + "source": [ + "newdf.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let's look at the other `how` operations:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "ExecuteTime": { + "end_time": "2017-12-15T21:09:44.026220Z", + "start_time": "2017-12-15T21:09:40.586255Z" + } + }, + "outputs": [], + "source": [ + "newdf = overlay(polydf, polydf2, how=\"union\")\n", + "newdf.plot(cmap='tab20b')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "ExecuteTime": { + "end_time": "2017-12-15T21:09:47.366187Z", + "start_time": "2017-12-15T21:09:44.026220Z" + } + }, + "outputs": [], + "source": [ + "newdf = overlay(polydf, polydf2, how=\"identity\")\n", + "newdf.plot(cmap='tab20b')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "ExecuteTime": { + "end_time": "2017-12-15T21:09:50.556155Z", + "start_time": "2017-12-15T21:09:47.366187Z" + }, + "tags": [ + "nbsphinx-thumbnail" + ] + }, + "outputs": [], + "source": [ + "newdf = overlay(polydf, polydf2, how=\"symmetric_difference\")\n", + "newdf.plot(cmap='tab20b')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "ExecuteTime": { + "end_time": "2017-12-15T21:09:53.566125Z", + "start_time": "2017-12-15T21:09:50.556155Z" + } + }, + "outputs": [], + "source": [ + "newdf = overlay(polydf, polydf2, how=\"difference\")\n", + "newdf.plot(cmap='tab20b')" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/doc/source/gallery/plot_clip.ipynb b/doc/source/gallery/plot_clip.ipynb new file mode 100644 index 0000000..981385f --- /dev/null +++ b/doc/source/gallery/plot_clip.ipynb @@ -0,0 +1,242 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Clip Vector Data with GeoPandas\n", + "\n", + "\n", + "Learn how to clip geometries to the boundary of a polygon geometry\n", + "using GeoPandas." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The example below shows you how to clip a set of vector geometries\n", + "to the spatial extent / shape of another vector object. Both sets of geometries\n", + "must be opened with GeoPandas as GeoDataFrames and be in the same Coordinate\n", + "Reference System (CRS) for the `clip` function in GeoPandas to work.\n", + "\n", + "This example uses GeoPandas example data ``'naturalearth_cities'`` and\n", + "``'naturalearth_lowres'``, alongside a custom rectangle geometry made with\n", + "shapely and then turned into a GeoDataFrame.\n", + "\n", + "
\n", + " \n", + "Note\n", + "\n", + "The object to be clipped will be clipped to the full extent of the clip\n", + "object. If there are multiple polygons in clip object, the input data will\n", + "be clipped to the total boundary of all polygons in clip object.\n", + "
\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Import Packages\n", + "---------------\n", + "\n", + "To begin, import the needed packages.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "import geopandas\n", + "from shapely.geometry import Polygon" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Get or Create Example Data\n", + "--------------------------\n", + "\n", + "Below, the example GeoPandas data is imported and opened as a GeoDataFrame.\n", + "Additionally, a polygon is created with shapely and then converted into a\n", + "GeoDataFrame with the same CRS as the GeoPandas world dataset.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [], + "source": [ + "capitals = geopandas.read_file(geopandas.datasets.get_path(\"naturalearth_cities\"))\n", + "world = geopandas.read_file(geopandas.datasets.get_path(\"naturalearth_lowres\"))\n", + "\n", + "# Create a subset of the world data that is just the South American continent\n", + "south_america = world[world[\"continent\"] == \"South America\"]\n", + "\n", + "# Create a custom polygon\n", + "polygon = Polygon([(0, 0), (0, 90), (180, 90), (180, 0), (0, 0)])\n", + "poly_gdf = geopandas.GeoDataFrame([1], geometry=[polygon], crs=world.crs)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Plot the Unclipped Data\n", + "-----------------------\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [], + "source": [ + "fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(12, 8))\n", + "world.plot(ax=ax1)\n", + "poly_gdf.boundary.plot(ax=ax1, color=\"red\")\n", + "south_america.boundary.plot(ax=ax2, color=\"green\")\n", + "capitals.plot(ax=ax2, color=\"purple\")\n", + "ax1.set_title(\"All Unclipped World Data\", fontsize=20)\n", + "ax2.set_title(\"All Unclipped Capital Data\", fontsize=20)\n", + "ax1.set_axis_off()\n", + "ax2.set_axis_off()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Clip the Data\n", + "--------------\n", + "\n", + "When you call `clip`, the first object called is the object that will\n", + "be clipped. The second object called is the clip extent. The returned output\n", + "will be a new clipped GeoDataframe. All of the attributes for each returned\n", + "geometry will be retained when you clip.\n", + "\n", + "
\n", + "\n", + "Note\n", + "\n", + "Recall that the data must be in the same CRS in order to use the\n", + "`clip` function. If the data are not in the same CRS, be sure to use\n", + "the GeoPandas `GeoDataFrame.to_crs` method to ensure both datasets\n", + "are in the same CRS.\n", + "
\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Clip the World Data\n", + "--------------------\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "jupyter": { + "outputs_hidden": false + }, + "tags": [ + "nbsphinx-thumbnail" + ] + }, + "outputs": [], + "source": [ + "world_clipped = geopandas.clip(world, polygon)\n", + "\n", + "# Plot the clipped data\n", + "# The plot below shows the results of the clip function applied to the world\n", + "# sphinx_gallery_thumbnail_number = 2\n", + "fig, ax = plt.subplots(figsize=(12, 8))\n", + "world_clipped.plot(ax=ax, color=\"purple\")\n", + "world.boundary.plot(ax=ax)\n", + "poly_gdf.boundary.plot(ax=ax, color=\"red\")\n", + "ax.set_title(\"World Clipped\", fontsize=20)\n", + "ax.set_axis_off()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Clip the Capitals Data\n", + "----------------------\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [], + "source": [ + "capitals_clipped = geopandas.clip(capitals, south_america)\n", + "\n", + "# Plot the clipped data\n", + "# The plot below shows the results of the clip function applied to the capital cities\n", + "fig, ax = plt.subplots(figsize=(12, 8))\n", + "capitals_clipped.plot(ax=ax, color=\"purple\")\n", + "south_america.boundary.plot(ax=ax, color=\"green\")\n", + "ax.set_title(\"Capitals Clipped\", fontsize=20)\n", + "ax.set_axis_off()\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/doc/source/gallery/plotting_basemap_background.ipynb b/doc/source/gallery/plotting_basemap_background.ipynb new file mode 100644 index 0000000..75e88d0 --- /dev/null +++ b/doc/source/gallery/plotting_basemap_background.ipynb @@ -0,0 +1,192 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "# Adding a background map to plots\n", + "\n", + "This example shows how you can add a background basemap to plots created\n", + "with the geopandas ``.plot()`` method. This makes use of the\n", + "[contextily](https://github.com/geopandas/contextily) package to retrieve\n", + "web map tiles from several sources (OpenStreetMap, Stamen).\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [], + "source": [ + "import geopandas" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's use the NYC borough boundary data that is available in geopandas\n", + "datasets. Plotting this gives the following result:\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [], + "source": [ + "df = geopandas.read_file(geopandas.datasets.get_path('nybb'))\n", + "ax = df.plot(figsize=(10, 10), alpha=0.5, edgecolor='k')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Convert the data to Web Mercator\n", + "================================\n", + "\n", + "Web map tiles are typically provided in\n", + "[Web Mercator](https://en.wikipedia.org/wiki/Web_Mercator>)\n", + "([EPSG 3857](https://epsg.io/3857)), so we need to make sure to convert\n", + "our data first to the same CRS to combine our polygons and background tiles\n", + "in the same map:\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [], + "source": [ + "df = df.to_crs(epsg=3857)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [], + "source": [ + "import contextily as ctx" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Add background tiles to plot\n", + "============================\n", + "\n", + "We can use `add_basemap` function of contextily to easily add a background\n", + "map to our plot. :\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "jupyter": { + "outputs_hidden": false + }, + "tags": [ + "nbsphinx-thumbnail" + ] + }, + "outputs": [], + "source": [ + "ax = df.plot(figsize=(10, 10), alpha=0.5, edgecolor='k')\n", + "ctx.add_basemap(ax)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can control the detail of the map tiles using the optional `zoom` keyword\n", + "(be careful to not specify a too high `zoom` level,\n", + "as this can result in a large download).:\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [], + "source": [ + "ax = df.plot(figsize=(10, 10), alpha=0.5, edgecolor='k')\n", + "ctx.add_basemap(ax, zoom=12)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "By default, contextily uses the Stamen Terrain style. We can specify a\n", + "different style using ``ctx.providers``:\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [], + "source": [ + "ax = df.plot(figsize=(10, 10), alpha=0.5, edgecolor='k')\n", + "ctx.add_basemap(ax, url=ctx.providers.Stamen.TonerLite)\n", + "ax.set_axis_off()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/doc/source/gallery/plotting_with_folium.ipynb b/doc/source/gallery/plotting_with_folium.ipynb new file mode 100644 index 0000000..99644f8 --- /dev/null +++ b/doc/source/gallery/plotting_with_folium.ipynb @@ -0,0 +1,249 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Plotting with folium\n", + "\n", + "__What is Folium?__\n", + "\n", + "It builds on the data wrangling and a Python wrapper for leaflet.js. It makes it easy to visualize data in Python with minimal instructions.\n", + "\n", + "Folium expands on the data wrangling properties utilized in Python language and the mapping characteristics of the Leaflet.js library. Folium enables us to make an intuitive map and are is visualized in a Leaflet map after manipulating data in Python. Folium results are intuitive which makes this library helpful for dashboard building and easier to work with.\n", + "\n", + "Let's see the implementation of both GeoPandas and Folium:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Importing Libraries\n", + "import pandas as pd\n", + "import geopandas\n", + "import folium\n", + "import matplotlib.pyplot as plt\n", + "\n", + "from shapely.geometry import Point" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df1 = pd.read_csv('volcano_data_2010.csv')\n", + "df = df1.loc[:, (\"Year\", \"Name\", \"Country\", \"Latitude\", \"Longitude\", \"Type\")]\n", + "df.info()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "geometry = geopandas.points_from_xy(df.Longitude, df.Latitude)\n", + "geo_df = geopandas.GeoDataFrame(df[['Year','Name','Country', 'Latitude', 'Longitude', 'Type']], geometry=geometry)\n", + "\n", + "geo_df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres'))\n", + "df.Type.unique()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "nbsphinx-thumbnail" + ] + }, + "outputs": [], + "source": [ + "fig, ax = plt.subplots(figsize=(24,18))\n", + "world.plot(ax=ax, alpha=0.4, color='grey')\n", + "geo_df.plot(column='Type', ax=ax, legend=True)\n", + "plt.title('Volcanoes')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will be using different icons to differentiate the types of Volcanoes using Folium.\n", + "But before we start, we can see a few different tiles to choose from folium." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Stamen Terrain\n", + "map = folium.Map(location = [13.406,80.110], tiles = \"Stamen Terrain\", zoom_start = 9)\n", + "map" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# OpenStreetMap\n", + "map = folium.Map(location = [13.406,80.110], tiles='OpenStreetMap' , zoom_start = 9)\n", + "map" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Stamen Toner\n", + "map = folium.Map(location = [13.406,80.110], tiles='Stamen Toner', zoom_start = 9)\n", + "map" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can use other tiles for the visualization, these are just a few examples.\n", + "\n", + "### Markers\n", + "Now, let's look at different volcanoes on the map using different Markers to represent the volcanoes." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#use terrain map layer to actually see volcano terrain\n", + "map = folium.Map(location = [4,10], tiles = \"Stamen Terrain\", zoom_start = 3)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# insert multiple markers, iterate through list\n", + "# add a different color marker associated with type of volcano\n", + "\n", + "geo_df_list = [[point.xy[1][0], point.xy[0][0]] for point in geo_df.geometry ]\n", + "\n", + "i = 0\n", + "for coordinates in geo_df_list:\n", + " #assign a color marker for the type of volcano, Strato being the most common\n", + " if geo_df.Type[i] == \"Stratovolcano\":\n", + " type_color = \"green\"\n", + " elif geo_df.Type[i] == \"Complex volcano\":\n", + " type_color = \"blue\"\n", + " elif geo_df.Type[i] == \"Shield volcano\":\n", + " type_color = \"orange\"\n", + " elif geo_df.Type[i] == \"Lava dome\":\n", + " type_color = \"pink\"\n", + " else:\n", + " type_color = \"purple\"\n", + "\n", + "\n", + " #now place the markers with the popup labels and data\n", + " map.add_child(folium.Marker(location = coordinates,\n", + " popup =\n", + " \"Year: \" + str(geo_df.Year[i]) + '
' +\n", + " \"Name: \" + str(geo_df.Name[i]) + '
' +\n", + " \"Country: \" + str(geo_df.Country[i]) + '
'\n", + " \"Type: \" + str(geo_df.Type[i]) + '
'\n", + " \"Coordinates: \" + str(geo_df_list[i]),\n", + " icon = folium.Icon(color = \"%s\" % type_color)))\n", + " i = i + 1" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "map" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Heatmaps\n", + "\n", + "Folium is well known for it's heatmap which create a heatmap layer. To plot a heat map in folium, one needs a list of Latitude, Longitude." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# In this example, with the hep of heat maps, we are able to perceive the density of volcanoes\n", + "# which is more in some part of the world compared to others.\n", + "\n", + "from folium import plugins\n", + "\n", + "map = folium.Map(location = [15,30], tiles='Cartodb dark_matter', zoom_start = 2)\n", + "\n", + "heat_data = [[point.xy[1][0], point.xy[0][0]] for point in geo_df.geometry ]\n", + "\n", + "heat_data\n", + "plugins.HeatMap(heat_data).add_to(map)\n", + "\n", + "map" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/doc/source/gallery/plotting_with_geoplot.ipynb b/doc/source/gallery/plotting_with_geoplot.ipynb new file mode 100644 index 0000000..80a8277 --- /dev/null +++ b/doc/source/gallery/plotting_with_geoplot.ipynb @@ -0,0 +1,250 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "# Plotting with Geoplot and GeoPandas\n", + "\n", + "[Geoplot](https://residentmario.github.io/geoplot/index.html) is a Python\n", + "library providing a selection of easy-to-use geospatial visualizations. It is\n", + "built on top of the lower-level [CartoPy](http://scitools.org.uk/cartopy/),\n", + "covered in a separate section of this tutorial, and is designed to work with\n", + "GeoPandas input.\n", + "\n", + "This example is a brief tour of the `geoplot` API. For more details on the\n", + "library refer to [its documentation](https://residentmario.github.io/geoplot/index.html).\n", + "\n", + "First we'll load in the data using GeoPandas.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [], + "source": [ + "import geopandas\n", + "import geoplot\n", + "\n", + "world = geopandas.read_file(\n", + " geopandas.datasets.get_path('naturalearth_lowres')\n", + ")\n", + "boroughs = geopandas.read_file(\n", + " geoplot.datasets.get_path('nyc_boroughs')\n", + ")\n", + "collisions = geopandas.read_file(\n", + " geoplot.datasets.get_path('nyc_injurious_collisions')\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Plotting with Geoplot\n", + "=====================\n", + "\n", + "We start out by replicating the basic GeoPandas world plot using Geoplot.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [], + "source": [ + "geoplot.polyplot(world, figsize=(8, 4))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Geoplot can re-project data into any of the map projections provided by\n", + "CartoPy (see the list\n", + "[here](http://scitools.org.uk/cartopy/docs/latest/crs/projections.html)).\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [], + "source": [ + "# use the Orthographic map projection (e.g. a world globe)\n", + "ax = geoplot.polyplot(\n", + " world, projection=geoplot.crs.Orthographic(), figsize=(8, 4)\n", + ")\n", + "ax.outline_patch.set_visible(True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "``polyplot`` is trivial and can only plot the geometries you pass to it. If\n", + "you want to use color as a visual variable, specify a ``choropleth``. Here\n", + "we sort GDP per person by country into five buckets by color, using\n", + "\"quantiles\" binning from the [Mapclassify](https://pysal.org/mapclassify/)\n", + "library.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [], + "source": [ + "import mapclassify\n", + "gpd_per_person = world['gdp_md_est'] / world['pop_est']\n", + "scheme = mapclassify.Quantiles(gpd_per_person, k=5)\n", + "\n", + "# Note: this code sample requires geoplot>=0.4.0.\n", + "geoplot.choropleth(\n", + " world, hue=gpd_per_person, scheme=scheme,\n", + " cmap='Greens', figsize=(8, 4)\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you want to use size as a visual variable, use a ``cartogram``. Here are\n", + "population estimates for countries in Africa.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [], + "source": [ + "africa = world.query('continent == \"Africa\"')\n", + "ax = geoplot.cartogram(\n", + " africa, scale='pop_est', limits=(0.2, 1),\n", + " edgecolor='None', figsize=(7, 8)\n", + ")\n", + "geoplot.polyplot(africa, edgecolor='gray', ax=ax)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we have data in the shape of points in space, we may generate a\n", + "three-dimensional heatmap on it using ``kdeplot``.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "jupyter": { + "outputs_hidden": false + }, + "tags": [ + "nbsphinx-thumbnail" + ] + }, + "outputs": [], + "source": [ + "ax = geoplot.kdeplot(\n", + " collisions.head(1000), clip=boroughs.geometry,\n", + " shade=True, cmap='Reds',\n", + " projection=geoplot.crs.AlbersEqualArea())\n", + "geoplot.polyplot(boroughs, ax=ax, zorder=1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Alternatively, we may partition the space into neighborhoods automatically,\n", + "using Voronoi tessellation. This is a good way of visually verifying whether\n", + "or not a certain data column is spatially correlated.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [], + "source": [ + "ax = geoplot.voronoi(\n", + " collisions.head(1000), projection=geoplot.crs.AlbersEqualArea(),\n", + " clip=boroughs.simplify(0.001),\n", + " hue='NUMBER OF PERSONS INJURED', cmap='Reds',\n", + " legend=True,\n", + " edgecolor='white'\n", + ")\n", + "geoplot.polyplot(boroughs, edgecolor='black', zorder=1, ax=ax)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "These are just some of the plots you can make with Geoplot. There are\n", + "many other possibilities not covered in this brief introduction. For more\n", + "examples, refer to the\n", + "[Gallery](https://residentmario.github.io/geoplot/gallery/index.html) in\n", + "the Geoplot documentation.\n", + "\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/doc/source/gallery/polygon_plotting_with_folium.ipynb b/doc/source/gallery/polygon_plotting_with_folium.ipynb new file mode 100644 index 0000000..17c541f --- /dev/null +++ b/doc/source/gallery/polygon_plotting_with_folium.ipynb @@ -0,0 +1,206 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# An example of polygon plotting with folium \n", + "We are going to demonstrate polygon plotting in this example with the help of folium" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import geopandas as gpd\n", + "import folium\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We make use of nybb dataset" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "path = gpd.datasets.get_path('nybb')\n", + "df = gpd.read_file(path)\n", + "df.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Plot from the original dataset" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "nbsphinx-thumbnail" + ] + }, + "outputs": [], + "source": [ + "df.plot(figsize=(6, 6))\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "One thing to notice is that the values of the geometry do not directly represent the values of latitude of longitude in geographic coordinate system\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(df.crs)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As folium(i.e. leaflet.js) by default takes input of values of latitude and longitude, we need to project the geometry first" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df = df.to_crs(epsg=4326)\n", + "print(df.crs)\n", + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df.plot(figsize=(6, 6))\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Initialize folium map object" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m = folium.Map(location=[40.70, -73.94], zoom_start=10, tiles='CartoDB positron')\n", + "m" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Overlay the boundaries of boroughs on map with borough name as popup" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for _, r in df.iterrows():\n", + " #without simplifying the representation of each borough, the map might not be displayed \n", + " #sim_geo = gpd.GeoSeries(r['geometry'])\n", + " sim_geo = gpd.GeoSeries(r['geometry']).simplify(tolerance=0.001)\n", + " geo_j = sim_geo.to_json()\n", + " geo_j = folium.GeoJson(data=geo_j,\n", + " style_function=lambda x: {'fillColor': 'orange'})\n", + " folium.Popup(r['BoroName']).add_to(geo_j)\n", + " geo_j.add_to(m)\n", + "m" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Add marker showing the area and length of each borough" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df['lat'] = df.centroid.y\n", + "df['lon'] = df.centroid.x\n", + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for _, r in df.iterrows():\n", + " folium.Marker(location=[r['lat'], r['lon']], popup='length: {}
area: {}'.format(r['Shape_Leng'], r['Shape_Area'])).add_to(m)\n", + " \n", + "m" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "stable", + "language": "python", + "name": "stable" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.5" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/doc/source/gallery/spatial_joins.ipynb b/doc/source/gallery/spatial_joins.ipynb new file mode 100644 index 0000000..407441f --- /dev/null +++ b/doc/source/gallery/spatial_joins.ipynb @@ -0,0 +1,286 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Spatial Joins\n", + "\n", + "A *spatial join* uses [binary predicates](http://shapely.readthedocs.io/en/latest/manual.html#binary-predicates) \n", + "such as `intersects` and `crosses` to combine two `GeoDataFrames` based on the spatial relationship \n", + "between their geometries.\n", + "\n", + "A common use case might be a spatial join between a point layer and a polygon layer where you want to retain the point geometries and grab the attributes of the intersecting polygons.\n", + "\n", + "![illustration](https://web.natur.cuni.cz/~langhamr/lectures/vtfg1/mapinfo_1/about_gis/Image23.gif)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## Types of spatial joins\n", + "\n", + "We currently support the following methods of spatial joins. We refer to the *left_df* and *right_df* which are the correspond to the two dataframes passed in as args.\n", + "\n", + "### Left outer join\n", + "\n", + "In a LEFT OUTER JOIN (`how='left'`), we keep *all* rows from the left and duplicate them if necessary to represent multiple hits between the two dataframes. We retain attributes of the right if they intersect and lose right rows that don't intersect. A left outer join implies that we are interested in retaining the geometries of the left. \n", + "\n", + "This is equivalent to the PostGIS query:\n", + "```\n", + "SELECT pts.geom, pts.id as ptid, polys.id as polyid \n", + "FROM pts\n", + "LEFT OUTER JOIN polys\n", + "ON ST_Intersects(pts.geom, polys.geom);\n", + "\n", + " geom | ptid | polyid \n", + "--------------------------------------------+------+--------\n", + " 010100000040A9FBF2D88AD03F349CD47D796CE9BF | 4 | 10\n", + " 010100000048EABE3CB622D8BFA8FBF2D88AA0E9BF | 3 | 10\n", + " 010100000048EABE3CB622D8BFA8FBF2D88AA0E9BF | 3 | 20\n", + " 0101000000F0D88AA0E1A4EEBF7052F7E5B115E9BF | 2 | 20\n", + " 0101000000818693BA2F8FF7BF4ADD97C75604E9BF | 1 | \n", + "(5 rows)\n", + "```\n", + "\n", + "### Right outer join\n", + "\n", + "In a RIGHT OUTER JOIN (`how='right'`), we keep *all* rows from the right and duplicate them if necessary to represent multiple hits between the two dataframes. We retain attributes of the left if they intersect and lose left rows that don't intersect. A right outer join implies that we are interested in retaining the geometries of the right. \n", + "\n", + "This is equivalent to the PostGIS query:\n", + "```\n", + "SELECT polys.geom, pts.id as ptid, polys.id as polyid \n", + "FROM pts\n", + "RIGHT OUTER JOIN polys\n", + "ON ST_Intersects(pts.geom, polys.geom);\n", + "\n", + " geom | ptid | polyid \n", + "----------+------+--------\n", + " 01...9BF | 4 | 10\n", + " 01...9BF | 3 | 10\n", + " 02...7BF | 3 | 20\n", + " 02...7BF | 2 | 20\n", + " 00...5BF | | 30\n", + "(5 rows)\n", + "```\n", + "\n", + "### Inner join\n", + "\n", + "In an INNER JOIN (`how='inner'`), we keep rows from the right and left only where their binary predicate is `True`. We duplicate them if necessary to represent multiple hits between the two dataframes. We retain attributes of the right and left only if they intersect and lose all rows that do not. An inner join implies that we are interested in retaining the geometries of the left. \n", + "\n", + "This is equivalent to the PostGIS query:\n", + "```\n", + "SELECT pts.geom, pts.id as ptid, polys.id as polyid \n", + "FROM pts\n", + "INNER JOIN polys\n", + "ON ST_Intersects(pts.geom, polys.geom);\n", + "\n", + " geom | ptid | polyid \n", + "--------------------------------------------+------+--------\n", + " 010100000040A9FBF2D88AD03F349CD47D796CE9BF | 4 | 10\n", + " 010100000048EABE3CB622D8BFA8FBF2D88AA0E9BF | 3 | 10\n", + " 010100000048EABE3CB622D8BFA8FBF2D88AA0E9BF | 3 | 20\n", + " 0101000000F0D88AA0E1A4EEBF7052F7E5B115E9BF | 2 | 20\n", + "(4 rows) \n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Spatial Joins between two GeoDataFrames\n", + "\n", + "Let's take a look at how we'd implement these using `GeoPandas`. First, load up the NYC test data into `GeoDataFrames`:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "ExecuteTime": { + "end_time": "2017-12-15T21:26:07.191542Z", + "start_time": "2017-12-15T21:26:04.391570Z" + } + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "from shapely.geometry import Point\n", + "from geopandas import datasets, GeoDataFrame, read_file\n", + "from geopandas.tools import overlay\n", + "\n", + "# NYC Boros\n", + "zippath = datasets.get_path('nybb')\n", + "polydf = read_file(zippath)\n", + "\n", + "# Generate some points\n", + "b = [int(x) for x in polydf.total_bounds]\n", + "N = 8\n", + "pointdf = GeoDataFrame([\n", + " {'geometry': Point(x, y), 'value1': x + y, 'value2': x - y}\n", + " for x, y in zip(range(b[0], b[2], int((b[2] - b[0]) / N)),\n", + " range(b[1], b[3], int((b[3] - b[1]) / N)))])\n", + "\n", + "# Make sure they're using the same projection reference\n", + "pointdf.crs = polydf.crs" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "ExecuteTime": { + "end_time": "2017-12-15T21:26:07.211542Z", + "start_time": "2017-12-15T21:26:07.191542Z" + } + }, + "outputs": [], + "source": [ + "pointdf" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "ExecuteTime": { + "end_time": "2017-12-15T21:26:07.921534Z", + "start_time": "2017-12-15T21:26:07.211542Z" + } + }, + "outputs": [], + "source": [ + "polydf" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "ExecuteTime": { + "end_time": "2017-12-15T21:26:08.271531Z", + "start_time": "2017-12-15T21:26:07.921534Z" + } + }, + "outputs": [], + "source": [ + "pointdf.plot()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "ExecuteTime": { + "end_time": "2017-12-15T21:26:10.561508Z", + "start_time": "2017-12-15T21:26:08.271531Z" + } + }, + "outputs": [], + "source": [ + "polydf.plot()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Joins" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "ExecuteTime": { + "end_time": "2017-12-15T21:26:12.951484Z", + "start_time": "2017-12-15T21:26:10.561508Z" + } + }, + "outputs": [], + "source": [ + "from geopandas.tools import sjoin\n", + "join_left_df = sjoin(pointdf, polydf, how=\"left\")\n", + "join_left_df\n", + "# Note the NaNs where the point did not intersect a boro" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "ExecuteTime": { + "end_time": "2017-12-15T21:26:13.871475Z", + "start_time": "2017-12-15T21:26:12.951484Z" + } + }, + "outputs": [], + "source": [ + "join_right_df = sjoin(pointdf, polydf, how=\"right\")\n", + "join_right_df\n", + "# Note Staten Island is repeated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "ExecuteTime": { + "end_time": "2017-12-15T21:26:13.961474Z", + "start_time": "2017-12-15T21:26:13.881475Z" + } + }, + "outputs": [], + "source": [ + "join_inner_df = sjoin(pointdf, polydf, how=\"inner\")\n", + "join_inner_df\n", + "# Note the lack of NaNs; dropped anything that didn't intersect" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We're not limited to using the `intersection` binary predicate. Any of the `Shapely` geometry methods that return a Boolean can be used by specifying the `op` kwarg." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "ExecuteTime": { + "end_time": "2017-12-15T21:26:14.191472Z", + "start_time": "2017-12-15T21:26:13.961474Z" + } + }, + "outputs": [], + "source": [ + "sjoin(pointdf, polydf, how=\"left\", op=\"within\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/examples/test.png b/doc/source/gallery/test.png similarity index 100% rename from examples/test.png rename to doc/source/gallery/test.png diff --git a/examples/test_buffer.png b/doc/source/gallery/test_buffer.png similarity index 100% rename from examples/test_buffer.png rename to doc/source/gallery/test_buffer.png diff --git a/examples/volcano_data_2010.csv b/doc/source/gallery/volcano_data_2010.csv similarity index 100% rename from examples/volcano_data_2010.csv rename to doc/source/gallery/volcano_data_2010.csv diff --git a/examples/README.md b/examples/README.md new file mode 100644 index 0000000..8a5c42c --- /dev/null +++ b/examples/README.md @@ -0,0 +1,3 @@ +# Examples Gallery + +Examples are available in the [documentation](https://geopandas.readthedocs.io/en/latest/gallery/index.html). Source Jupyter notebooks are in [`doc/source/gallery`](https://github.com/geopandas/geopandas/tree/master/doc/source/gallery). diff --git a/examples/README.txt b/examples/README.txt deleted file mode 100644 index 1ee851a..0000000 --- a/examples/README.txt +++ /dev/null @@ -1,8 +0,0 @@ -.. _gallery: - -Examples Gallery ----------------- - -The following examples show off the functionality in GeoPandas. They highlight -many of the things you can do with this package, and show off some -best-practices. diff --git a/examples/cartopy_convert.py b/examples/cartopy_convert.py deleted file mode 100644 index 9d5e189..0000000 --- a/examples/cartopy_convert.py +++ /dev/null @@ -1,106 +0,0 @@ -""" -Plotting with CartoPy and GeoPandas ------------------------------------ - -Converting between GeoPandas and CartoPy for visualizing data. - -`CartoPy `_ is a Python library -that specializes in creating geospatial -visualizations. It has a slightly different way of representing -Coordinate Reference Systems (CRS) as well as constructing plots. -This example steps through a round-trip transfer of data -between GeoPandas and CartoPy. - -First we'll load in the data using GeoPandas. -""" -# sphinx_gallery_thumbnail_number = 7 -import matplotlib.pyplot as plt -import geopandas -from cartopy import crs as ccrs - -path = geopandas.datasets.get_path('naturalearth_lowres') -df = geopandas.read_file(path) -# Add a column we'll use later -df['gdp_pp'] = df['gdp_md_est'] / df['pop_est'] - -#################################################################### -# First we'll visualize the map using GeoPandas -df.plot() - -############################################################################### -# Plotting with CartoPy -# ===================== -# -# Cartopy also handles Shapely objects well, but it uses a different system for -# CRS. To plot this data with CartoPy, we'll first need to project it into a -# new CRS. We'll use a CRS defined within CartoPy and use the GeoPandas -# ``to_crs`` method to make the transformation. - -# Define the CartoPy CRS object. -crs = ccrs.AzimuthalEquidistant() - -# This can be converted into a `proj4` string/dict compatible with GeoPandas -crs_proj4 = crs.proj4_init -df_ae = df.to_crs(crs_proj4) - -# Here's what the plot looks like in GeoPandas -df_ae.plot() - -############################################################################### -# Now that our data is in a CRS based off of CartoPy, we can easily -# plot it. - -fig, ax = plt.subplots(subplot_kw={'projection': crs}) -ax.add_geometries(df_ae['geometry'], crs=crs) - -############################################################################### -# Note that we could have easily done this with an EPSG code like so: -crs_epsg = ccrs.epsg('3857') -df_epsg = df.to_crs(epsg='3857') - -# Generate a figure with two axes, one for CartoPy, one for GeoPandas -fig, axs = plt.subplots(1, 2, subplot_kw={'projection': crs_epsg}, - figsize=(10, 5)) -# Make the CartoPy plot -axs[0].add_geometries(df_epsg['geometry'], crs=crs_epsg, - facecolor='white', edgecolor='black') -# Make the GeoPandas plot -df_epsg.plot(ax=axs[1], color='white', edgecolor='black') - -############################################################################### -# CartoPy to GeoPandas -# ==================== -# -# Next we'll perform a CRS projection in CartoPy, and then convert it -# back into a GeoPandas object. - -crs_new = ccrs.AlbersEqualArea() -new_geometries = [crs_new.project_geometry(ii, src_crs=crs) - for ii in df_ae['geometry'].values] - -fig, ax = plt.subplots(subplot_kw={'projection': crs_new}) -ax.add_geometries(new_geometries, crs=crs_new) - -############################################################################### -# Now that we've created new Shapely objects with the CartoPy CRS, -# we can use this to create a GeoDataFrame. - -df_aea = geopandas.GeoDataFrame(df['gdp_pp'], geometry=new_geometries, - crs=crs_new.proj4_init) -df_aea.plot() - -############################################################################### -# We can even combine these into the same figure. Here we'll plot the -# shapes of the countries with CartoPy. We'll then calculate the centroid -# of each with GeoPandas and plot it on top. - -# Generate a CartoPy figure and add the countries to it -fig, ax = plt.subplots(subplot_kw={'projection': crs_new}) -ax.add_geometries(new_geometries, crs=crs_new) - -# Calculate centroids and plot -df_aea_centroids = df_aea.geometry.centroid -# Need to provide "zorder" to ensure the points are plotted above the polygons -df_aea_centroids.plot(ax=ax, markersize=5, color='r', zorder=10) - -plt.show() diff --git a/examples/choro_legends.ipynb b/examples/choro_legends.ipynb deleted file mode 100644 index 03c96bf..0000000 --- a/examples/choro_legends.ipynb +++ /dev/null @@ -1,542 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import geopandas\n", - "from geopandas import read_file" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'2.2.0'" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import mapclassify\n", - "mapclassify.__version__" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'4.2.0'" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import libpysal\n", - "libpysal.__version__" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " Name Description Installed\n", - "0 10740 Albuquerque, New Mexico, Census 2000 Tract Data True\n", - "1 AirBnB Airbnb rentals, socioeconomics, and crime in C... False\n", - "2 Atlanta Atlanta, GA region homicide counts and rates False\n", - "3 Baltimore Baltimore house sales prices and hedonics False\n", - "4 Bostonhsg Boston housing and neighborhood data False\n", - "5 Buenosaires Electoral Data for 1999 Argentinean Elections False\n", - "6 Charleston1 2000 Census Tract Data for Charleston, SC MSA... False\n", - "7 Charleston2 1998 and 2001 Zip Code Business Patterns (Cen... False\n", - "8 Chicago Health Chicago Health + Socio-Economics False\n", - "9 Chile Labor Labor Markets in Chile (1982-2002) False\n", - "10 Chile Migration Internal Migration in Chile (1977-2002) False\n", - "11 Cincinnati 2008 Cincinnati Crime + Socio-Demographics False\n", - "12 Cleveland 2015 sales prices of homes in Cleveland, OH. False\n", - "13 Columbus Columbus neighborhood crime False\n", - "14 Denver Demographics and housing in Denver neighborho... False\n", - "15 Elections 2012 and 2016 Presidential Elections False\n", - "16 Grid100 Grid with simulated variables False\n", - "17 Groceries 2015 Chicago supermarkets False\n", - "18 Guerry Moral statistics of France (Guerry, 1833) False\n", - "19 Health Indicators Chicago Health Indicators (2005-11) False\n", - "20 Health+ 2000 Health, Income + Diversity False\n", - "21 Hickory1 2000 Census Tract Data for Hickory, NC MSA an... False\n", - "22 Hickory2 1998 and 2001 Zip Code Business Patterns (Cen... False\n", - "23 Home Sales 2014-15 Home Sales in King County, WA False\n", - "24 Houston Houston, TX region homicide counts and rates False\n", - "25 Juvenile Cardiff juvenile delinquent residences False\n", - "26 Lansing1 2000 Census Tract Data for Lansing, MI MSA an... False\n", - "27 Lansing2 1998 and 2001 Zip Code Business Patterns (Cen... False\n", - "28 Laozone Ozone measures at monitoring stations in Los ... False\n", - "29 LasRosas Corn yield, fertilizer and field data for pre... False\n", - "30 Line Line Shapefile True\n", - "31 Liquor Stores 2015 Chicago Liquor Stores False\n", - "32 Malaria Malaria incidence and population (1973, 95, 9... False\n", - "33 Milwaukee1 2000 Census Tract Data for Milwaukee, WI MSA False\n", - "34 Milwaukee2 1998 and 2001 Zip Code Business Patterns (Cen... False\n", - "35 NCOVR US county homicides 1960-1990 False\n", - "36 NDVI Normalized Difference Vegetation Index grid False\n", - "37 NYC Demographic and housing data for New York Cit... False\n", - "38 NYC Earnings Block-level Earnings in NYC (2002-14) False\n", - "39 NYC Education NYC Education (2000) False\n", - "40 NYC Neighborhoods Demographics for New York City neighborhoods False\n", - "41 NYC Socio-Demographics NYC Education + Socio-Demographics False\n", - "42 Natregimes NCOVR with regimes (book/PySAL) False\n", - "43 Nepal Health, poverty and education indicators for ... False\n", - "44 Ohiolung Ohio lung cancer data, 1968, 1978, 1988 False\n", - "45 Orlando1 2000 Census Tract Data for Orlando, FL MSA an... False\n", - "46 Orlando2 1998 and 2001 Zip Code Business Patterns (Cen... False\n", - "47 Oz9799 Monthly ozone data, 1997-99 False\n", - "48 Phoenix ACS Phoenix American Community Survey Data (2010,... False\n", - "49 Pittsburgh Pittsburgh homicide locations False\n", - "50 Point Point Shapefile True\n", - "51 Police Police expenditures Mississippi counties False\n", - "52 Polygon Polygon Shapefile True\n", - "53 Polygon_Holes Example to test treatment of holes True\n", - "54 Rio Grande do Sul Cities of the Brazilian State of Rio Grande do... False\n", - "55 SIDS North Carolina county SIDS death counts False\n", - "56 SIDS2 North Carolina county SIDS death counts and r... False\n", - "57 Sacramento1 2000 Census Tract Data for Sacramento MSA False\n", - "58 Sacramento2 1998 and 2001 Zip Code Business Patterns (Cen... False\n", - "59 SanFran Crime July-Dec 2012 crime incidents in San Francisc... False\n", - "60 Savannah1 2000 Census Tract Data for Savannah, GA MSA a... False\n", - "61 Savannah2 1998 and 2001 Zip Code Business Patterns (Cen... False\n", - "62 Scotlip Male lip cancer in Scotland, 1975-80 False\n", - "63 Seattle1 2000 Census Tract Data for Seattle, WA MSA an... False\n", - "64 Seattle2 1998 and 2001 Zip Code Business Patterns (Cen... False\n", - "65 South US Southern county homicides 1960-1990 False\n", - "66 StLouis St Louis region county homicide counts and rates False\n", - "67 Tampa1 2000 Census Tract Data for Tampa, FL MSA and ... False\n", - "68 arcgis arcgis testing files True\n", - "69 baltim Baltimore house sales prices and hedonics 1978 True\n", - "70 berlin Prenzlauer Berg neighborhood AirBnB data from ... True\n", - "71 book Synthetic data to illustrate spatial weights True\n", - "72 burkitt Burkitt's lymphoma in the Western Nile distric... True\n", - "73 calemp Employment density for California counties True\n", - "74 chicago Chicago neighborhoods True\n", - "75 clearwater mgwr testing dataset False\n", - "76 columbus Columbus neighborhood crime data 1980 True\n", - "77 desmith Small dataset to illustrate Moran's I statistic True\n", - "78 geodanet Datasets from geodanet for network analysis True\n", - "79 georgia Various socio-economic variables for counties ... True\n", - "80 juvenile Residences of juvenile offenders in Cardiff, UK True\n", - "81 mexico Decennial per capita incomes of Mexican states... True\n", - "82 networks Datasets used for network testing True\n", - "83 newHaven Network testing dataset False\n", - "84 nyc_bikes New York City Bike Trips False\n", - "85 sids2 North Carolina county SIDS death counts and rates True\n", - "86 snow_maps Public water pumps and Cholera deaths in Londo... True\n", - "87 stl Homicides and selected socio-economic characte... True\n", - "88 street_net_pts Street network points True\n", - "89 taz Traffic Analysis Zones in So. California False\n", - "90 tokyo Tokyo Mortality data True\n", - "91 us_income Per-capita income for the lower 48 US states 1... True\n", - "92 virginia Virginia counties shapefile True\n", - "93 wmat Datasets used for spatial weights testing True\n" - ] - } - ], - "source": [ - "libpysal.examples.available()" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Downloading South to /home/jovyan/.local/pysal_data/South\n" - ] - } - ], - "source": [ - "_ = libpysal.examples.load_example('South')\n", - "pth = libpysal.examples.get_path('south.shp')" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "df = read_file(pth)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## New default legend formatting" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "%matplotlib inline\n", - "ax = df.plot(column='HR60', scheme='QUANTILES', k=4, \\\n", - " cmap='BuPu', legend=True,\n", - " legend_kwds={'loc': 'center left', 'bbox_to_anchor':(1,0.5)})" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "['[ 0.00, 3.21]', '( 3.21, 6.25]', '( 6.25, 9.96]', '( 9.96, 92.94]']" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "labels = [t.get_text() for t in ax.get_legend().get_texts()]\n", - "labels" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Quantiles \n", - "\n", - " Interval Count\n", - "----------------------\n", - "[ 0.00, 3.21] | 353\n", - "( 3.21, 6.25] | 353\n", - "( 6.25, 9.96] | 353\n", - "( 9.96, 92.94] | 353" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "q4 = mapclassify.Quantiles(df.HR60, k=4)\n", - "q4" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "True" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "labels == q4.get_legend_classes()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Note that in this case, the first interval is closed on the minimum value in the dataset. The other intervals have an open lower bound. This is now displayed in the legend." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Overriding numerical format" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "ax = df.plot(column='HR60', scheme='QUANTILES', k=4, \\\n", - " cmap='BuPu', legend=True,\n", - " legend_kwds={'loc': 'center left', 'bbox_to_anchor':(1,0.5)},\n", - " )" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "ax = df.plot(column='HR60', scheme='QUANTILES', k=4, \\\n", - " cmap='BuPu', legend=True,\n", - " legend_kwds={'loc': 'center left', 'bbox_to_anchor':(1,0.5), 'fmt':\"{:.4f}\"})" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "ax = df.plot(column='HR60', scheme='QUANTILES', k=4, \\\n", - " cmap='BuPu', legend=True,\n", - " legend_kwds={'loc': 'center left', 'bbox_to_anchor':(1,0.5), 'fmt':\"{:.0f}\"})" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The new legends_kwds arg `fmt` takes a string to set the numerical formatting." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## When first class lower bound < y.min()" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "ax = df.plot(column='HR60', scheme='BoxPlot', \\\n", - " cmap='BuPu', legend=True,\n", - " legend_kwds={'loc': 'center left', 'bbox_to_anchor':(1,0.5),\n", - " 'fmt': \"{:.0f}\"})" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "BoxPlot \n", - "\n", - " Interval Count\n", - "----------------------\n", - "( -inf, -6.90] | 0\n", - "(-6.90, 3.21] | 353\n", - "( 3.21, 6.25] | 353\n", - "( 6.25, 9.96] | 353\n", - "( 9.96, 20.07] | 311\n", - "(20.07, 92.94] | 42" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "bp = mapclassify.BoxPlot(df.HR60)\n", - "bp\n" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "['(-inf, -7]',\n", - " '( -7, 3]',\n", - " '( 3, 6]',\n", - " '( 6, 10]',\n", - " '( 10, 20]',\n", - " '( 20, 93]']" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "bp.get_legend_classes(fmt=\"{:.0f}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In some classifiers the user should be aware that the lower (upper) bound of the first (last) interval is not equal to the minimum (maximum) of the attribute values. This is useful to detect extreme values and highly skewed distributions." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Categorical Data" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "ax = df.plot(column='STATE_NAME', categorical=True, legend=True, \\\n", - " legend_kwds={'loc': 'center left', 'bbox_to_anchor':(1,0.5),\n", - " 'fmt': \"{:.0f}\"}) # fmt is ignored for categorical data" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.3" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/examples/choropleths.ipynb b/examples/choropleths.ipynb deleted file mode 100644 index 723b584..0000000 --- a/examples/choropleths.ipynb +++ /dev/null @@ -1,861 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Choropleth classification schemes from PySAL for use with GeoPandas\n", - "\"PySAL\n", - "PySAL is a [Spatial Analysis Library](), which packages fast spatial algorithms used in various fields. These include Exploratory spatial data analysis, spatial inequality analysis, spatial analysis on networks, spatial dynamics, and many more.\n", - "\n", - "It is used under the hood in geopandas when plotting measures with a set of colors. There are many ways to classify data into different bins, depending on a number of classification schemes.\n", - "\n", - "\n", - "\n", - "For example, if we have 20 countries whose average annual temperature varies between 5C and 25C, we can classify them in 4 bins by:\n", - "* Quantiles\n", - " - Separates the rows into equal parts, 5 countries per bin.\n", - "* Equal Intervals\n", - " - Separates the measure's interval into equal parts, 5C per bin.\n", - "* Natural Breaks (Fischer Jenks)\n", - " - This algorithm tries to split the rows into naturaly occurring clusters. The numbers per bin will depend on how the observations are located on the interval." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:29:37.736444Z", - "start_time": "2017-12-15T21:29:37.716444Z" - }, - "collapsed": true - }, - "outputs": [], - "source": [ - "%matplotlib inline\n", - "import geopandas as gpd\n", - "import matplotlib.pyplot as plt" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:29:39.866422Z", - "start_time": "2017-12-15T21:29:39.846422Z" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Observations, Attributes: (49, 21)\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
AREAPERIMETERCOLUMBUS_COLUMBUS_IPOLYIDNEIGHOVALINCCRIMEOPEN...DISCBDXYNSANSBEWCPTHOUSNEIGNOgeometry
00.3094412.440629251580.46700319.53115.7259802.850747...5.0338.79999944.0700001.01.01.00.01000.01005.0POLYGON ((8.624129295349121 14.23698043823242,...
10.2593292.236939312144.56700121.23218.8017545.296720...4.2735.61999942.3800011.01.00.00.01000.01001.0POLYGON ((8.252790451049805 14.23694038391113,...
20.1924682.187547463626.35000015.95630.6267814.534649...3.8939.82000041.1800001.01.01.00.01000.01006.0POLYGON ((8.653305053710938 14.00809001922607,...
30.0838411.427635524233.2000014.47732.3877600.394427...3.7036.50000040.5200001.01.00.00.01000.01002.0POLYGON ((8.459499359130859 13.82034969329834,...
40.4888882.997133675723.22500011.25250.7315100.405664...2.8340.00999838.0000001.01.01.00.01000.01007.0POLYGON ((8.685274124145508 13.63951969146729,...
\n", - "

5 rows × 21 columns

\n", - "
" - ], - "text/plain": [ - " AREA PERIMETER COLUMBUS_ COLUMBUS_I POLYID NEIG HOVAL \\\n", - "0 0.309441 2.440629 2 5 1 5 80.467003 \n", - "1 0.259329 2.236939 3 1 2 1 44.567001 \n", - "2 0.192468 2.187547 4 6 3 6 26.350000 \n", - "3 0.083841 1.427635 5 2 4 2 33.200001 \n", - "4 0.488888 2.997133 6 7 5 7 23.225000 \n", - "\n", - " INC CRIME OPEN \\\n", - "0 19.531 15.725980 2.850747 \n", - "1 21.232 18.801754 5.296720 \n", - "2 15.956 30.626781 4.534649 \n", - "3 4.477 32.387760 0.394427 \n", - "4 11.252 50.731510 0.405664 \n", - "\n", - " ... DISCBD X \\\n", - "0 ... 5.03 38.799999 \n", - "1 ... 4.27 35.619999 \n", - "2 ... 3.89 39.820000 \n", - "3 ... 3.70 36.500000 \n", - "4 ... 2.83 40.009998 \n", - "\n", - " Y NSA NSB EW CP THOUS NEIGNO \\\n", - "0 44.070000 1.0 1.0 1.0 0.0 1000.0 1005.0 \n", - "1 42.380001 1.0 1.0 0.0 0.0 1000.0 1001.0 \n", - "2 41.180000 1.0 1.0 1.0 0.0 1000.0 1006.0 \n", - "3 40.520000 1.0 1.0 0.0 0.0 1000.0 1002.0 \n", - "4 38.000000 1.0 1.0 1.0 0.0 1000.0 1007.0 \n", - "\n", - " geometry \n", - "0 POLYGON ((8.624129295349121 14.23698043823242,... \n", - "1 POLYGON ((8.252790451049805 14.23694038391113,... \n", - "2 POLYGON ((8.653305053710938 14.00809001922607,... \n", - "3 POLYGON ((8.459499359130859 13.82034969329834,... \n", - "4 POLYGON ((8.685274124145508 13.63951969146729,... \n", - "\n", - "[5 rows x 21 columns]" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# We use a PySAL example shapefile\n", - "import pysal as ps\n", - "\n", - "pth = ps.examples.get_path(\"columbus.shp\")\n", - "tracts = gpd.GeoDataFrame.from_file(pth)\n", - "print('Observations, Attributes:',tracts.shape)\n", - "tracts.head()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Plotting the CRIME variable\n", - "In this example, we are taking a look at neighbourhood-level statistics for the city of Columbus, OH. We'd like to have an idea of how the crime rate variable is distributed around the city.\n", - "\n", - "From the [shapefile's metadata](https://github.com/pysal/pysal/blob/master/pysal/examples/columbus/columbus.html):\n", - ">**CRIME**: residential burglaries and vehicle thefts per 1000 households" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\nl6J2iYOPAwAAAABJRU5ErkJggg==\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Let's take a look at how the CRIME variable is distributed with a histogram\n", - "tracts['CRIME'].hist(bins=20)\n", - "plt.xlabel('CRIME\\nResidential burglaries and vehicle thefts per 1000 households')\n", - "plt.ylabel('Number of neighbourhoods')\n", - "plt.title('Distribution of neighbourhoods by crime rate in Columbus, OH')\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now let's see what it looks like without a classification scheme:" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:29:54.097280Z", - "start_time": "2017-12-15T21:29:53.766283Z" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\nSUVORK5CYII=\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "tracts.plot(column='CRIME', cmap='OrRd', edgecolor='k', legend=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "All the 49 neighbourhoods are colored along a white-to-dark-red gradient, but the human eye can have a hard time comparing the color of shapes that are distant one to the other. In this case, it is especially hard to rank the peripheral districts colored in beige.\n", - "\n", - "Instead, we'll classify them in color bins." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Classification by quantiles\n", - ">QUANTILES will create attractive maps that place an equal number of observations in each class: If you have 30 counties and 6 data classes, you’ll have 5 counties in each class. The problem with quantiles is that you can end up with classes that have very different numerical ranges (e.g., 1-4, 4-9, 9-250)." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:30:30.408917Z", - "start_time": "2017-12-15T21:30:30.088920Z" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAVgAAAD8CAYAAAAylrwMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4xLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvAOZPmwAAIABJREFUeJzsnXd4VFXexz9nWiYdkpBGIAkJgZAA\noUivovSighVXRbGsurZ1sevrWteyltXdVRS7gKiIi1hQqiBVigiEGkgBUkmbZNo97x8TQkImZGYy\nkwS8n+cZZubec885Q5LvnPs7vyKklKioqKioeB9Na09ARUVF5XxFFVgVFRUVH6EKrIqKioqPUAVW\nRUVFxUeoAquioqLiI1SBVVFRUfERqsCqqKio+AhVYFVUVFR8hCqwKioqKj5C19oTcEZERIRMSEho\n7WmoqKioOGXr1q2FUsoOTbVrkwKbkJDAli1bWnsaKioqKk4RQhxxpZ1qIlBRUVHxEarAqqioqPgI\nVWBVVFRUfESbtMGqqPzRsFqt5OTkUF1d3dpTUamD0WgkLi4OvV7v0fWqwKqotAFycnIIDg4mISEB\nIURrT0cFkFJSVFRETk4OiYmJHvWhmghUVNoA1dXVhIeHq+LahhBCEB4e3qy7ClVgVVTaCKq4tj2a\n+zNRTQQq5y2KorBhwwaEEBiNRoxGI/7+/rWvjUYjfn5+55ywHSmq5IP1WXy9PZdik5WwAD1TMzpy\n/ZAE4sMDW3t6KnVQV7Aq5y3Z2dmMHDmSe++5i1k3XM+ll0xj1KiR9O7di/j4eEJDQ9Fqtfj7+9O+\nfXtiYmJISurCpk2bWnvqjbIyM59L31yHUVj44qY09j06kC9uSsMoLFz65jpWZuZ73Pd3331Ht27d\nSE5O5vnnn3faZs2aNfTt2xedTsfnn39e79ycOXNIS0sjNTWVu+66C3fq/WVnZzN69GhSU1NJS0vj\ntddeq3f+X//6F926dSMtLY05c+a4Nf/hw4eTkZFBRkYGsbGxXHLJJS7Pq9lIKdvco1+/flJFpblU\nV1dLg8EgreXHpawqdPqwV+ZLU3G2LMrdL3MP/ibHjB4pFy9e3OJz3b17d5NtsgorZJ8nv5db9h12\n+lm27Dss+zz5vcwqrHB7fJvNJrt06SIPHjwozWaz7NWrl/z9998btDt8+LDcsWOH/NOf/iQXLVpU\n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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Splitting the data in three shows some spatial clustering around the center\n", - "tracts.plot(column='CRIME', scheme='quantiles', k=3, cmap='OrRd', edgecolor='k', legend=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:28:00.376417Z", - "start_time": "2017-12-15T21:27:57.039Z" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# We can also see where the top and bottom halves are located\n", - "tracts.plot(column='CRIME', scheme='quantiles', k=2, cmap='OrRd', edgecolor='k', legend=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Classification by equal intervals\n", - ">EQUAL INTERVAL divides the data into equal size classes (e.g., 0-10, 10-20, 20-30, etc.) and works best on data that is generally spread across the entire range. CAUTION: Avoid equal interval if your data are skewed to one end or if you have one or two really large outlier values." - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:28:00.376417Z", - "start_time": "2017-12-15T21:27:57.045Z" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\nSUVORK5CYII=\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "tracts.plot(column='CRIME', scheme='equal_interval', k=4, cmap='OrRd', edgecolor='k', legend=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:28:00.386417Z", - "start_time": "2017-12-15T21:27:57.048Z" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# No legend here as we'd be out of space\n", - "tracts.plot(column='CRIME', scheme='equal_interval', k=12, cmap='OrRd', edgecolor='k')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Classificaton by natural breaks\n", - ">NATURAL BREAKS is a kind of “optimal” classification scheme that finds class breaks that will minimize within-class variance and maximize between-class differences. One drawback of this approach is each dataset generates a unique classification solution, and if you need to make comparison across maps, such as in an atlas or a series (e.g., one map each for 1980, 1990, 2000) you might want to use a single scheme that can be applied across all of the maps." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:28:00.376417Z", - "start_time": "2017-12-15T21:27:57.042Z" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAVgAAAD8CAYAAAAylrwMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4xLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvAOZPmwAAIABJREFUeJzsnXd8VFX6/99nWmbSSW+kkEJCAglF\nkA6igICgiL0giGVta1tWV9HvurK2dV396e7asKAioiJYVkWKNOmE3k0CIUAqaZNMPb8/JoxAJmSS\nzCQB7/v1mtfM3HvaJDOfe+5znvM8QkqJgoKCgoLnUXX0ABQUFBQuVBSBVVBQUPASisAqKCgoeAlF\nYBUUFBS8hCKwCgoKCl5CEVgFBQUFL6EIrIKCgoKXUARWQUFBwUsoAqugoKDgJTQdPQBXhIWFycTE\nxI4ehoKCgoJLNm/eXCqlDG+uXKcU2MTERDZt2tTRw1BQUFBwiRCiwJ1yiolAQUFBwUsoAqugoKDg\nJRSBVVBQUPASndIGq6Dwe8NisVBYWEh9fX1HD0XhNPR6PXFxcWi12lbVVwRWQaETUFhYSEBAAImJ\niQghOno4CoCUkrKyMgoLC0lKSmpVG4qJQEGhE1BfX09oaKgirp0IIQShoaFtuqtQBFZBoZOgiGvn\no63/E8VEoHDBYrfbWbduHUII9Ho9er0eg8HgfK3X6/Hx8TnvhK2grJYP1uazOPco5UYLIb5aJubE\nMnVQIgmhfh09PIXTUGawChcsR44cYfjw4Tz04ANMu20qV105iREjhpOd3YuEhASCgoJQq9UYDAa6\ndOlCdHQ0ycnd2LBhQ0cPvUmW7yvmqjfWoBdmvrg9k/1PDuCL2zPRCzNXvbGG5fuKW932999/T/fu\n3UlJSeH55593WWblypX06dMHjUbD559/fsa5mTNnkpmZSUZGBg888AAtyfd35MgRRo4cSUZGBpmZ\nmbz66qvOc7NmzaJXr17k5OQwevRoioqKXLbx5z//maysLLKyspg/f77z+NChQ8nJySEnJ4eYmBiu\nvPJKt8fVZqSUne7Rt29fqaDQVurr66VOp5OW6uNS1pW6fNhqi6Wx/IgsO3pAHj20Q44aOVwuXLiw\n3ce6e/fuZsvkl9bI3n/9QW7an+fys2zanyd7//UHmV9a0+L+rVar7Natmzx06JA0mUyyV69ecteu\nXY3K5eXlyW3btslbbrlFLliwwHl8zZo1ctCgQdJqtUqr1SovvvhiuXz5crf7Lyoqkps3b5ZSSllV\nVSVTU1Od/VdWVjrLvfrqq/Kuu+5qVP+bb76Rl156qbRYLLKmpkb27dv3jHqnmDx5svzggw/cHpeU\nrv83wCbphpYpM1iFCxYfHx8iIsIpPOp6xgOgUqkwGAyEhHQhJiYaHx8darW6HUfpPh+szef6PuH0\n7Rrg8nzfrgFc1yecD9fmt7jtDRs2kJKSQrdu3dDpdFx//fUsWrSoUbnExER69eqFSnWmdAghqK+v\nx2w2YzKZsFgsREZGut1/dHQ0ffr0ASAgIICMjAyOHj0KQGBgoLNcbW2tS5PO7t27GT58OBqNBj8/\nP7Kzs/n+++/PKFNdXc2yZcvadQarCKzCBU1iQiL5BYfdLm+32zutwC7OPcp1fSLOWeb6PhEs2tb0\nBaUpjh49SteuXZ3v4+LinALnDgMHDmTkyJFER0cTHR3NmDFjyMjIaPE4APLz89m6dSsDBgxwHnvi\niSfo2rUrH3/8Mc8880yjOtnZ2fzvf//DaDRSWlrK8uXLOXLkyBllFi5cyKhRo84QbG+jCKzCBU1S\nUhJ5+e4LrM32m8DabDZMJhM1NTVUV1djt9u9NUy3KDdaiA3yOWeZmCAdFUZLi9uWLuylLVn8O3jw\nIHv27KGwsJCjR4+ybNkyVq5c2eJx1NTUcPXVV/Ovf/3rDCGcPXs2R44c4aabbuL1119vVG/06NGM\nGzeOQYMGccMNNzBw4EA0mjPX8OfNm8cNN9zQ4jG1BUVgFS5okpKSWjSD9ffzY/z48ahUKnQ6HYGB\ngURFRREdHe28/YyMjCQ5uRvZ2b0YPGgQY8eM4bprr6WkpMSLnwRCfLUcrTSds0xRpZkuvi3fdRQX\nF3fGjK+wsJCYmBi36y9cuJCLL74Yf39//P39ufzyy1m3bt0ZZdavX+9cbFq8eHGjNiwWC1dffTU3\n3XQTkydPdtnPjTfeyBdffOHy3BNPPEFubi5LlixBSklqaqrzXFlZGRs2bGD8+PFufyZPoLhpKVzQ\nJCYlsfynH9wuv+CTd7HZbGg0mkZ2RrvdjtFopKamlpraWmpqaqmurqGmtpaHZs7iwIEDhIc3GyK0\n1UzMiWX+lmJmXhrfZJlPtxQzKdt9YTzFRRddxIEDB8jLyyM2NpZPP/2UTz75xO368fHxvP322zz+\n+ONIKfn555958MEHzygzYMAAcnNzXdaXUnL77beTkZHBww8/fMa5AwcOOMVy8eLFpKenN6pvs9k4\nefIkoaGhbN++ne3btzN69Gjn+QULFjBhwgT0er3bn8kTKDNYhQuapKQk8lowg1Wr1eh0ukbiCo4F\nMX9/f6KiIklJ7kZOdk+GDhnI5WMuJToq0utxBKYOSuTTLSVsPlLt8vzmI9XM31LCrYMSW9y2RqPh\n9ddfd9pOr732WjIzMwF46qmnnDPOjRs3EhcXx4IFC7jrrrucZaZMmUJycjI9e/YkOzub7Oxsrrji\nCrf7X7NmDXPnzmXZsmXOWe53330HwGOPPUZWVha9evXixx9/dLpwbdq0iRkzZgCO2e/QoUPp0aMH\nd955Jx999NEZJoJPP/203c0DAMKV7aWj6devn1QCbit4goKCAoYMGcyRA9u82s+4K6/n3vsfbPUt\n6J49e9xaFFq+r5hH5udyXZ9wru8TQUyQjqJKM59uKWb+lhJevi6Hkd3PvRCm0DJc/W+EEJullP2a\nq9vsDFYIMUcIUSyE2Oni3KNCCCmECGuirk0IkdvwaGx0UVDwMrGxsRQXl2Ayndt22Vb0en27RMIa\n2T2ChfcOxix1XD1nN+mzN3L1nN2YpY6F9w5WxLWT4Y4N9n3gdeDD0w8KIboClwHnuv+qk1LmtHp0\nCgptRKPREBsbw+EjhaSmJHutH4NeT11dndfaP52EUD9mXZHJrCsy26U/hdbT7AxWSrkSKHdx6hVg\nJtD5bAwKCqfh8CQ40nzBNqDX+yixXBUa0apFLiHEROColLI5w5ZeCLFJCLFOCHHO7RNCiDsbym7y\ntruLwu+LxIRE8vLdylHXatpzBqtw/tBiNy0hhC/wBDC6ubJAvJSySAjRDVgmhNghpTzkqqCU8i3g\nLXAscrV0XAoKTdHSzQatQZnBKriiNX6wyUASsK1hp0ccsEUI0V9Kefz0glLKoobnX4UQK4DegEuB\nVVDwFolJSXy72LX/pacwGAzUGY1e7eMUBWW1fLDqIItyC6mol3TRCyblxDF1aIoSrrCT0WITgZRy\nh5QyQkqZKKVMBAqBPmeLqxCiixDCp+F1GDAY2O2BMSsotIiW+sK2hvaawS7fV8xVry7HZ+dPLPBd\nxJ6weSzwXYTPzp+46tXlrQ5XeD6EC/z8888RQnDKhXPDhg3OdrOzs1m4cKHLesuWLaNPnz5kZWUx\ndepUrFar89yKFSvIyckhMzOT4cOHt2pc58IdN615wC9AdyFEoRDi9nOU7SeEeKfhbQawSQixDVgO\nPC+lVARWod1xmAjOfxtsQVktj3y8gTd9f+RRw2YS1DVohCRBXcOjhs286fsjj3y8gYKy2ha3rdFo\nePnll9mzZw/r1q3jjTfeYPdux8/1T3/6E9u3byc3N5cJEya4DLby7bffsmXLFnJzc1m/fj0vvfQS\nVVVVAKxatYrc3Fxyc3MZOHBgk9tgz0V1dTWvvfbaGQFgsrKy2LRpE7m5uXz//ffcddddZ4gnOHbf\nTZ06lU8//ZSdO3eSkJDABx98AMDJkye55557WLx4Mbt27WLBggUtHldzuONFcIOUMlpKqZVSxkkp\n3z3rfKKUsrTh9SYp5YyG12ullD2llNkNz++6al9BwdtERUVRWVmF0Yu38O3hB/vBqoNcp9tHH22p\ny/N9tKVcq9vHh6sPtrjtzh4ucNasWcycOfOMra6+vr7O3Vr19fUux1VWVoaPjw9paWkAXHbZZc5Y\nBp988gmTJ08mPt6x9TgiwvM+xMpWWYULHpVKRUJCvFddtQwGPXX13p3BLsot5BrdvnOWuVa3j0Vb\n3Q8z6IrOFi5w69atHDlyhAkTJjQ6t379ejIzM+nZsyf//e9/G0XQCgsLw2KxOM0Kn3/+uXNc+/fv\np6KighEjRtC3b18+/PDDRu23FUVgFX4XJCW2LKpWS9H7+FBf590ZbEW9JFZ17tv/GFUtFabWh1Xs\nbOEC7XY7Dz30EC+//LLL8wMGDGDXrl1s3LiR5557rtFdhBCCTz/9lIceeoj+/fsTEBDgHJfVamXz\n5s18++23/PDDD/ztb39j//79LRpfcygCq/C7IDEx0auuWgaDwes22C56wVH7ub0Eiux+dPFp3c+6\nI8MFTps2jZycHMaNG3fG8erqanbu3MmIESNITExk3bp1TJw4kbNjlWRkZODn58fOnY129DNw4EBW\nrVrFhg0bGDZsmHNccXFxjB07Fj8/P8LCwhg2bBjbtnk2ZoUisAq/C7y90NUeXgSTcuJYYO5+zjKf\nmbszqXdsi9tuLlzgKc4VLrCsrAygVeEC33vvPXJzc50RtE4RFBREaWkp+fn55Ofnc/HFF7N48WL6\n9etHXl6ec1GroKCAffv2kZiY2Kjt4mKHZ4XJZOKFF17g7rvvBmDSpEmsWrUKq9WK0Whk/fr1rc7C\n0BSKwCr8Lkjq1o38w4Vea99g8L4XwdShKcw3d2eLxWVsJbZYwvjM3J1bh6S0uO3zMVzg6tWryc7O\nJicnh6uuuop///vfhIU5/jbjxo1zupO99NJLZGRk0KtXL6644gouueQSwDHrHTt2LL169aJ///7M\nmDGDrKwsj45RCVeo0GEYjUYKCgooKCggOzub6Ohor/W1YcMG/nD3nWxeu9Q77W/cwn0P/4UNGze2\nqn6LwhV+vIFrdfu4VrePGFUtRXY/PjN35zNzd16+qb8SUcvDtCVcoZLRQMHrHDx4kO+//578vDwK\nCgrIL8inoOAwVVVVJMR3JToqkoO/5rNo0SL69u3rlTF4erus0Whk05ZcjMY66urq2bf/oNe9CKAh\nXOEfR/Lh6q5cuzWDCpOdLj4qJvWOZeEQZSdXZ0MRWAWv87/vvuOBP/6Rv8x8iKsnjiExIZ6E+Dgi\nIyOcmQMWLvqWsWPHMmb0aLKysrDZbOzcuZM1a9egUqm4qN9FGAwGwOF2pdVq0Wq1Tt9Hu91OdXU1\nlZWVnDx5ksqqSqqqqqivN2EyOR51dXUUHi0iLrblKVXO5qN5C/jr318mKzMTg8GAwWBg6q1T29yu\nOySE+jFrUjazJmW3S38KrUcRWAWvc9/997N7927WrtvIrMcfcbnQcdWk8eRkZ7H859Xs3rMPrVbL\nmFFD+OsTDyGlZMvW7VgaFjRsNhsWiwWL5bddO0IIAgL8CQ4KJCgokKDAQAIDAzDo9fj4+KDTacnI\nGcTaXzZw7ZTWbdU8HaOxjilXX82rr73W5rYULlwUgVXwOkIIXn/jDW6++SZuuu1uvvj0fZflkhIT\nSEpMcHmue1qqy+MtITk5idztOzwisGazGZ1O1+Z2FC5sFIFVaBfUajXvvfc+fn4dZyNMT01hz94D\nzRd0A7PFgo+Pj0faUrhwUQRWod2w2+0dKkqpKd3YuHmrR9oymczo9AEeaaulFJTVMmfFfr7acoQq\nm4pAtZ0r+3Rl+og0ZZGrk6H4wSq0Gx19W52YEE/FyZMeactsNqPrgIvF8n3FTPjHT2z7zxuM+vdd\n3PLiJEb9+y62/ecNJvzjp1aHKzyFzWajd+/eZ+z7v/3228nOzqZXr15MmTKFmpqaRvXMZjPTpk1z\npu1esWLFGefuvPNO0tLSSE9Pb3In2Ln4f//v/9G9e3cyMzOZOXMm4PC9nTp1Kj179iQjI4PnnnvO\nZd2lS5fSp08fcnJyGDJkCAcPOoLhFBQUMGrUKHr16sWIESMoLPS8n7QisArthkNgtR3Wf1JiPJVV\n1R5py2xufxNBQVktD7z/C0M/fIycpe8SePI4Kmkn8ORxcpa+y9APH+OB939pVbjCU7z66quNfD5f\neeUVtm3bxvbt24mPj3cZi+Dtt98GYMeOHSxZsoRHHnkEu90RE2H27NlERESwf/9+Z9StlrB8+XIW\nLVrE9u3b2bVrF48++ijg2B1mMpnYsWMHmzdv5s033yQ/P79R/T/84Q98/PHH5ObmcuONN/Lss88C\n8Oijj3Lrrbeyfft2nnrqKR5//PEWjcsdFIFVaDc6egablJhAdVW184ffFkxmU7t/ljkr9pO88Wsi\niva6PB9RtJdum75hzs+tszMXFhby7bffOndnneJU0BcpJXV1dU2GKxw1apRjHBERBAcHO+MFzJkz\nxyleKpXKudvKXf7zn//w2GOPOS9op8IKCiGora3FarVSV1eHTqdzGalLCOGMTVtZWUlMTEyjMY8c\nOZJFixa1aFzuoAisQrthMpnQaTtOYIODg1Br1Bz6Na/NbZnNlnYX2K+2HKHb5m/PWSZ50zcs2ty6\nDRUPPvggL774otM3+XSmTZtGVFQUe/fu5f777290Pjs7m0WLFmG1WsnLy2Pz5s0cOXKEkw0mmVmz\nZtGnTx+uueYaTpw40aJx7d+/n1WrVjFgwACGDx/OxobdclOmTMHPz4/o6Gji4+N59NFHCQkJaVT/\nnXfeYdy4ccTFxTF37lwee+wx55hPmSsWLlxIdXW1M56Cp3BLYIUQc4QQxUKIRqFqhBCPCiFkQ1oY\nV3WnCiEONDzaxxNboVPS0SYCgNiYGH5Z37rtrKfTESaCKpsK/8pz21j9q0qosrV83vTNN98QERHR\n5E669957j6KiIjIyMs5IB3OK6dOnExcXR79+/XjwwQcZNGgQGo0Gq9VKYWEhgwcPZsuWLQwcONB5\ni+8uVquViooK1q1bx0svvcS1116LlJINGzagVqspKioiLy+Pl19+mV9//bVR/VdeeYXvvvuOwsJC\npk2b5gxm849//IOff/6Z3r178/PPPxMbG9soxGJbcfc/8T4w9uyDQoiuwGWAy0umECIEeBoYAPQH\nnhZCdGnVSBXOe8xmM1ptxwpscrdEtm1ve+aijjARBKrt1ASdO85ATWA4geqWm0DWrFnD4sWLSUxM\n5Prrr2fZsmXcfPPNZ5RRq9Vcd911LhepNBoNr7zyCrm5uSxatIiTJ0+SmppKaGgovr6+XHXVVQBc\nc801bNmypVH9MWPGkJOT08g8AY6wgpMnT0YIQf/+/VGpVJSWlvLJJ58wduxYtFotERERDB48uFEY\nw5KSErZt2+YMHn7dddexdu1aAGJiYvjyyy/ZunUrs2fPBhzRuzyJW3ItpVwphEh0ceoVYCbQlPFi\nDLBESlkOIIRYgkOo57V4pArnPbGxsRw/Ucy27TvJ7uXZqEXukprcjffnfsLWbdvw9fXF19cXfz8/\n/P188ff3IzAwkEB/f4KCAwkKDCI4KJDg4CBCQoIJ6dLFuQutI0wEV/bpyra+48lZ2nT2pUP9JjCp\nb3yL237uueecq/ArVqzgH//4Bx999BFSSg4dOkRKSgpSSr7++muX4QqNRiNSSvz8/FiyZAkajYYe\nPXoAcMUVV7BixQouueQSli5d6jx+Oj/88EOTY7vyyitZtmwZI0aMYP/+/ZjNZsLCwoiPj3deCIxG\nI+vWrePBBx88o26XLl2orKxk//79pKWlsWTJEuciXmlpKSEhIahUKp577jmmT5/e4r9bc7R6PiyE\nmAgclVJuc2X0biAWOD1vRGHDMVft3QncCThz5ChcWISFhfHiCy8w9Y772LDqxw5Z8Dp85AjlFScZ\nqDlJdU0ZtRU2jGYrJWYrtWYbRrMFo9lGncVKncWGyWLFZLVjstqw2OwIIdCoBSoEl40Z13yHHmT6\niDQmbLqCmD1rXC50Fcek82u/Cbw2vO273k4hpWTq1KlUVVUhpSQ7O5v//Oc/gCM27KZNm3jmmWco\nLi5mzJgxqFQqYmNjmTt3rrONF154gVtuuYUHH3yQ8PBw3nvvvRaNYfr06UyfPp2srCx0Oh0ffPAB\nQgjuvfdepk2bRlZWFlJKpk2bRq9evQBHuMJ33nmHmJgY3n77ba6++mpUKhVdunRhzpw5gONC8vjj\njyOEYNiwYbzxxhse+qv9htvhChtmsN9IKbOEEL44MsWOllJWCiHygX6nkh+eVudPgI+U8tmG97MA\no5TSdf6HBpRwhRcuUkomXnEFfXN68H9P/rnd+7/ngT9RuG4pC6cObnFdKSUWmx2jxcY1n2zi4Rdf\nd5knqjW0JFzhA+//QrdN35C86Rv8q0qoCQznUL8JDnG9baASrtDDdES4wmQgCTg1e40Dtggh+ksp\nj59WrhAYcdr7OGBFK/tUuAAQQvDPV15h6NAhPPWXP7lcsfYmiQld2fhD68IKCiHQadToNGr0uo7Z\nBDmyewTfPHopc35OYNHmK5w7uSb1jee14anKTq5ORqu+JVLKHYDzMtnUDBb4Afj7aQtbowHPe/Mq\nnFekpqYSExPDN9/9wMQJl7dr38nJSZyobnv67mg/LVdeOYngAH9Cg4MICw0lNDSU0PBwQsIjCQ2P\nIDw83HHsrEdbTSMJoX78dXIOf52c0+bPoeBd3BJYIcQ8HDPRMCFEIfC0lNKlpV0I0Q+4W0o5Q0pZ\nLoT4G3DKL+aZUwteCr9vnnziSf7v2WcYNmQQwcGeXbk9Fxnd0yivNbW5nbcm9+aNSdlUGM2UGU2U\n1pooN5opq/2VsgN7KNtu5ZDJTlmdlTKjmfLaespq6iivrkXvoyM0OIjExCR++nkVarUacJggzrGe\nodABtDXji7teBOdMpiOlTDzt9SZgxmnv5wBzWjk+hQuUK6+6iu+//57kzIvo1ycHq9VKcrdEBlzU\nh2smTyIw0DuBVFJTulFnsWKx2dGq22ae0KpVRAToiQhwncjPFVJKquotlBnN5LzyI0ajkYCAAPR6\nPWVlZYSGhioi20mQUlJWVtZkokZ3UHJyKXQohw8fZufOnWi1Wvbt3cuSJUs4ePAA3y2cR0JCV4/3\nZ7fb8Q+OZs+fxxMX3LH2yqi/fc3uA78SHh6OxWKhsLDQ65lpFVqGXq8nLi6ukf+2kpNL4bwgPj7e\n6ZZ32WWXcd/99/PSiy9y9Y3T2LTmp1a1uXPnblau/oXaujpUQhATHUVQUCD/fvNdflm9hjqLjTV5\npVzXu2MFVq/VOjPRarVakpKSOnQ8Cp5HEViFTsdDDz/M7L//neLiEiIiwt2qY7fbuXLKjfy8fCVW\nm43k8CD0WjVSSsqNJmpNVsZmxPDl1MHM/GYb+RWNQ+61NwadRpmxXuAoAqvQ6dBoNAwfNoxlK1Zx\n/bWTmy1vt9vpP+gSqo8d5ud7R5EZGYRK1bQdMzJAz9FK72eAbQ69VuOcwSpcmCgCq9ApGTVqFEtP\nE9gXX36NbTt2UVNTQ01tLcYaI6b6Ourr6igvKyfKT8Pa+y8j2NC8C1R0oJ5jnURglRnshY0isAqd\nkiFDh/LWW2863z/77PMM7RZBYogfgT4aAiI0+Ol8CfAJJDIggeHJERi07n2do/x92HPcM5kN2oJe\nq1ZmsBc4isAqdEp69uxJfsFhKiurCAjwJyjAnzsGdOOKTJehLFpEmJ8PVaa2B91uKwatWpnBXuAo\nAqvQKdFqtSR07UrP7P6UV5xEq1bhq1N7pO1gg5bj1UbmrD+En06Dv15DgE5LgF5DoI+WAB8tQXoN\nPm7OiFuLXqNSZrAXOIrAKnRaUrsl0qXExJO3DyShi5/HHPBLakyUVtXx5BebsAI2KZ3PNsAGnJrf\nqk49BKgQqIRALQQqlUCtEmhUKsezWqBVqR3PahWJoX4suv3cuacMGpXbM1i73Y7FYsFms2EwGJTN\nCOcJisAqdFpsNisDEsJIDPH3aLvdQvzxF4I/nCM3l8QhsjbAClgl2JBYT4mxreH46WUaXtcD3xdX\nNjsOvfrMGeyCBQt47JEHMZstmC0WzBar89lqs6HTalAJgU6rJalrLCazmcITJWzN3UZKSkqr/x4K\n3kMRWIVOyfr168ndvIlPHxnt8bZ7RAVR28wORgGoGx4tDc1iA5bgmHWeK1rYyTrzGXvdF86fx93Z\nEVybk4BOrUKrVqFTq9BpVGhUAiEEUkoq6szkldfio1Zx/fzNGI1tD16j4B0UgVXwGt999x1ms5mA\ngABHpoDAQOLi4vDza34H1VOPzeSJEWnote7ZXY1mK3/5dhtmm815TKdWkxDih79OQ4BeQ1SAAYNW\njb1hFmrFOz8ANQ6BrjFbCdS7lufVeSVsOlbFh9dc4zy29pdfePLmvsQF+zbZthCCEF8fQnwd+cCk\nhI8++gh/f39qa6qpra6itqYaY3UNtbU1zkwDarUKlUqNWq1GpVI5nx2vNag1am678w+MHdsoM5RC\nG1AEVsErWK1WJkyYwBXjx1JdXUNVdTUnikvof1F/vvjyy3PW3bdvH9u35bLoscahDA+UVPHWLwdZ\ndqiEnUUVHH36SsL89fxr5T4+zS1gWEqUs6zJamJtQRn1Vhsmq42qegu2BrOASsBx6QhQ7A3UQFmt\n2aXAWmx27l20nVf+3xvONNNHjx6ltraGtPCWBbm5u38CeRu+Ra0RBOrUROs0+Ok0+Plr8A3R4Kvz\nRQB26bAx2+0Sm7QjpQ2bXTqO2yVVJgu33Xgds198mdtd5MVSaB2KwCq0GavVSo8eGY6UHMFdCAkJ\nITAwEIPBwKIFv6UO2bhpC6PGXc31111Heno6ffr2ZeLEiY3a8/f3B8EZ0a5+3FfEvV9u4VilkYuT\nwrmiRwzbjpaT888fiArQc6Ckij8MTuX58e7FSM166TuKT1R6TWA1QLnRRFJoY/vxv1YdID49iylT\npjiPrVmzhoHdolq8eHX/YM/ZXod2C2fCk3/mcEE+s57+P49nWP09ovwFFdqMWq2muLiE+XPfJsDf\nn/KKCsorTjL5ijPtp/369maVxfDaAAAgAElEQVTNsm/ZtmMn+/Yf4o47ZqDTfUhaWhphYWHO2RxA\ndY2R3v/8Hr1acKzGREWticdHZfLA0DR8G7IJPDA0jW1FJ9lWVMHO41Xc2DvB7TFHB/pScaL5hajW\nohWCv3y3jb+Py6Zv11B6v/QddRY7PloVhyvryd21+wwxXf3zCgbFeHYxr6WkhQey6u5h3PzZXHrO\n+5hnnnuRKVOmKB4LbUAJV6jgER595BGsplr+9Y/Zbtd55725/ONf/8ZstlBcUuJcFJJS0jVAxx+H\npFJtspASFsClqVH4+XhuPjBt/ga2bjzE1R5r8Uy+U6s5YLMxpEcMX942FJ+Z8xkPmIHVPj5U1tSc\nMUPs1zOTfw6PYXCSe8FtvImUkh/3H2fWT/sQ/iG8+d4H9O3bt6OH1alwN1xhswIrhJgDTACKpZRZ\nDcf+BkzC4clSDNwmpSxyUdcG7Gh4e1hK2fh+0AWKwJ5/FBUVkZWVxcGdGwgJ6dJ8hbOw2WzU19dj\ns9kZOXoC4yMET4/p6YWROpj1v+3MW7qLqV7rAdYDKzVqNAKw2Hio4fh7AQFce9ddGAwGKkpLKS0u\n5qvFiyh9ZrLbi3rtgd0ueWbJTg4FpvLJ5+e2m//e8GQ82PeB14EPTzv2kpRyVkNHDwBPAXe7qFsn\npVQSB/0OiImJ4bJLL+WzL77i7jumtbi+Wq3Gz8+P9Rs2s3fPPj4cM8YLo/yN6EA9Nh8tmCxe6yMF\nqLTZSZWS0xPRD6yp4ZdXX0VjseAD5AFpsV06lbgCqFSCfl1D2FJQ0dFDOW9pNmeGlHIlUH7WsarT\n3vrh8MtW+J1zy6238tG8L1pdv6qqigkTr+aJS7NIjwhsvkIbiAowYNN4V9BCgdFSkoTDq+AU6VJy\nqcXCCGAgYFUJxnaP9upYWkuQXktlpfds1Rc6rU5KJISYLYQ4AtyEYwbrCr0QYpMQYp0Q4spm2ruz\noeymkpKS1g5LoQO5+OKL2bNvX6vrDxk+hgFxwcwcme7BUbkmMkCPpZOsP9TodQxPjmi+YAcQpNdS\nWVXVfEEFl7RaYKWUT0gpuwIfA/c1USy+wU5xI/AvIUTyOdp7S0rZT0rZLzy84w39Ci0nICCA6urW\nZQoYOmIMxtLjfHTDxe2yah0VoKfe1vERtYzASZOFQQlhHT2URtjtkhdXHSIlJbWjh3Le0ra0mg4+\nAdeLsacWvqSUvwIrgN4e6E+hk+Lj49hdZDK1LC32vPlfsHvHTtY9MJoAvbb5Ch4gMkBPncVKR0vs\ndiAlLLDdPre7WG127luUS6EqmE+//Kqjh3Pe0iqBFUKcfkmbCOx1UaaLEMKn4XUYMBjY3Zr+FM4f\ngoKCqKhoWTDrJ2b91Rnn1W5vn9t2fx8tKiHo6Mxc+4VgbHpU8wXbkep6C4P+8zNH/eL45oclzgun\nQstp1otACDEPGAGECSEKgaeBcUKI7jjctApo8CAQQvQD7pZSzgAygDeFEHYcQv68lFIR2AuczMwe\nbN+5m6ioSLfrWK1WPtmcz6db8zHb7Og1agL0OoINOrr46gjx8yHM14cQg5ZAn4atoDoNPWOCGdIG\nv9EQXx9Kquvw7nLauak1dD776+GTRqqkhk3f/6hsMmgjzQqslPIGF4ffbaLsJmBGw+u1gPccGRU6\nJSNHjOTzhV8z+tKRbtc5/Otv112z2cyRI0cpOFJI4dGjFB07wYkTxRSXlHKgspLa2lrqy+uoM1ax\n/+utVMyecsaW2pYQEaCnrLqOJhcGvIwZh/21LRcJb6BTq0CiiKsHULbKKniU++6/n7S0NJ7+y5+I\njW2565FOpyM5OYnk5KRmy0ZEJrDxSBmDElsnUDFBvlQUdZyP53YgIcTfrUSN7YlOrcJs8Z5/8O8J\nTyxyKSg4CQ0NJb17d/LyC7zeV1JyMssPFre6flyQLx3p4blPCEZ3Mv/XWpOV1XnFisB6CEVgFTxO\nYGBgu/hOjhl7Gf/be7zV9eOC9Bg78Da4xteHS1I6h/314W93EPnM1yS/+D/ePmRh2vTpHT2kCwLF\nRKDgcXx9famr83621BnTbuHFl17BZLXh04pdWVEBeux6HdS1zK3ME1iB8npzhwV3kVJistioNllZ\n8WsxX+0rZdO2HVitVpKTkxX7q4dQBFbB4/j6+mJsh2yp8V3jCPLzZX1BGcNasRIfGWDAquoYIdmJ\nwwYc5td6F6jZS3by7E870apUaNVqtBqVc8HPEUxbOp4bgmyffszW4A6nUQssNsmcOXNITEz0wCdT\nOB1FYBU8jsFgoKqqul36Sk5NZfnBE60S2KgAPeYO2i67HSiuqSPumUUNR6QjoIc8M7DH2dHupPM4\nGM0Wnh7dk2n9u1FjslJjtlJtsiKlRKdW4aNRNzw78nqdfUytUlFhNJP0/HfcdNNNHv+MP/30E489\n/CAB/n5otVpnipqE5BTSM3sSERHBuHHjCAoK8njfnQVFYBU8Tvfu3Zn5xFPo9T7MmHaLV/sae/lo\nFn/wbqtCG0YG6Km32pov6AXqfH2Y3ieBKdnxCEAIEIiGZ4eL1Km5tRC/vT+7XHpEIDqNmsiWZZpx\nsjqvhAF9eqPTuefJUFNTw03XXI1/gD99Lx5MZmYmfn5+bNu2jerqakwmE+WlxeQf2M+SFSuZ2i+R\nyVl+WBtmzVa7JL94K/v3/cL8opP8vOwn/vu2S6/PCwJFYBU8ziOPPsr4CRMYPHgwU66aSHCw92Yo\nM6bdzOy/v0SdxYpB27Kvs2O7rI1TO2HaCytQYbbw2CU9iAo0tGPPjVmZX8awS69pviCODSHXTb6S\nsKojDPQPYs/id/nyrRrMNjvZkf4E+6jRqSBOr2VwhB//fWw8EQH6JtvbeLiMe35a46mP0ilRBFbB\nK6SnpzN+/DjeePNdnvjzw17rJyY6mi6BfvySX8olqS3bcuqjUaPXqCi32GjPUCv7gDA/fYeLK8Cq\nw5W8PLL5TSFSSu656w6sRQd589aLW72543SiAw0cLjpGfX09en3TQnw+o7hpKXiNxx//C6/9+23K\nysqbL9wGUtK6s6yV/rChfnpKPTye5tgJjErreP/X6noLe4pK6d+/f7Nln5s9m41Lv2f+DRd5RFwB\n4oJ9SQzxZ/369R5przOiCKyC18jIyOCmG2/ijnsebrRY40kmTLic/+091qq6kYEGyjw8nuao9PVh\nVErHb49dk19C315Zzc4eP5o7lzdf+yeLbx3g8ahfNSYrYWGdL1Sjp1AEVsGrPPf88+QdPsJb737g\ntT5m3HYze46fpNZkbXHdmCBfWhb7q23YgQqztVVeD55mVX4Zwy4dfe4yq1bx8AP3svjWi4kJ8vX4\nGNQqgd3e0UEjvYcisApexcfHh3nzPmXWMy/w0bzPAEdAl9kv/JOjR1s36zybsLBQQoMCWFvQ8kwY\nXYMM7bpd9gAQqNfSNdivHXt1zcrDVYwYeUmT53/99VeuuWoSH1zTl6zoYI/3n19eQ3F13QXtf6ss\ncil4nfT0dJYuXcqVV07i4T8/RU1NLXV1dWRmpLcqIIwrImJieeybXD6LO4zJasNss2O2Oh5HK40U\nlRuxnXKyl46HXUrsQJCg3bLK7QAu6QT2V6PZyvYjJxg4cKDL81VVVVwxdjR/GZbitXgJR04aSU9N\nISCglT5m5wGKwCq0Cz179mTv3n1UVFTg6+vLXXfeSU1t28NdG41GYrumU2M0ogJkcTUq6UgyqJES\nlZTskpJLgTgcX3htw7MG2ANsUqnB1j7+sBW+PlzaCeIPrCsopVdGOr6+jW/7LRYL1199FcOjdNw7\nOMVrYzhZZ8bf399r7XcGFIFVaDe0Wi0REQ5xaWn+rnnzv2DZz6uoqamluqaG2lojxtpajhYWEVhf\nz3TgNWCS1XaG3UsC63DkKnK1lNMF2m03lx04abF1CvvryrxSho1qnBpdSsldM6Yjj//KP28Z4NUx\nbCysoO/AK7zaR0fjlsAKIeYAE4BiKWVWw7G/AZNwfG+KgdtO5eA6q+5U4MmGt89KKb232qFw3tBS\ngb3jjvuItdvxB3RSorXbCcAR0T0d8MexoHACOP2Gtr7heFPr5P60n8DmAXqtiqSQTmB/PVLF4w+N\nanT8Hy+9wI7VS1l6+xCPuWM1xZqjNTz28DCv9tHRuDuDfR94HfjwtGMvSSlnAQghHsCRuvvu0ysJ\nIUJwpJjph2MysVkIsVhK2XFRjhU6BRqNBlszq8dVVVUs+PJrcrdtp95i4Voct/5NEaFSccBuP0Ng\njThMAk3hD+2Wvns7MDwlqsMjVZmsNjbnH2fQoEFnHF+yZAmznnySbY9cjp+P929ujWYbXbp08Xo/\nHYlbf0Up5UohROJZx04P+OmH62WCMcASKWU5gBBiCTAWmNeawSr8vhgybAyH9x8kSq1mrEqFuhlB\njgEKzzpWC2hVKmiiri+OratmwNt5BcoMOv6Q5n6uMm+x4XAZGanJBAY6spFZrVaeevIvvPfWm1ht\ndmKD2meHWXyQnkOHDjFggHdNER1Jmy5TQojZwK1AJeBqv10scOS094UNx1y1dSdwJ0B8fHxbhqVw\nnmK32yk6dhxTvYl6k4l9+w9yp5SEWt3zb42y28k/S0xrAe05ZowqHMJaxpmmBW9QabMzrFsnsL/+\nWkJCchp5eXnY7XZuveE6/IylbH7gEro//w0lNSbiu3h/BpsSrOPQoUNe76cjaZORRUr5hJSyK/Ax\ncJ+LIq6+2S7vx6SUb0kp+0kp+4WHd/wuF4X2Z/J1txKf0ouMrIvo03cI0UIQ2oL6EUDtWbf7Rpqf\nmfoJ4fXtsodxONWnhXe8S1JKWADFe7cyfEBfemb2YGKknW+nDiQywIBBq6Gktn0CkAshsLWT90ZH\n4anL1CfAtzjsradTiCPl9ynigBUe6lPhPCYhIYE5775DeXkFBoMeg97Ajz8uoyeQhkMUfex2TgAG\nHItUGs49I4gA6qQ843bfCFTYbMzBYW+9FAg5q16ASkW5l3/oucDQ5MgOt78CXJcTz3U5jrtEKeUZ\nYzLoNJTUeD8bBUB+lYVxyR2V07d9aLXACiFSpZQHGt5OBPa6KPYD8HchxClL9mjg8db2qXDhcNu0\nafzhnnvI35qLv0qFDQiy2TgmBIU47KJWKbHicFOx4bj1UZ3+EOKMZ7UQqG029gDZDf30wiHQtThE\nbh0w7qyxBILXt8uW6HVM6wT217M5W/B9tRpK22kGG6pXc3D//nbpq6Nw101rHo6ZaJgQohDHTHWc\nEKI7ju9/AQ0eBEKIfsDdUsoZUsryBneujQ1NPXNqwUvh941er+eBe+8l9803GemmjdWOQ3gt/CbA\nFn4TYgvwsxAcldIpsEE4XFgAStVqrC5mqgF2O61PnegeVVJ2Cvtrc/jp1BRXt88MdkpWNI989QV/\n/dvf2qW/jsBdL4IbXBx2GYZcSrkJmHHa+znAnFaNTuGC5o6772b4e+8x3Gp1azHg1ILUuWyqR6Uk\nr4lzahwz4bPxl5L6c3gatJUiwC4lPSI7f2qULgYtxe00g5US9D6tz0l2PqDs5FLoMLKysojr2pVf\n9+3DUxsyo4DtatdbX9XA6dJhxWEaqAWq7HZycZghJI7Z8umvOeuYq3JNlTkE9OkaiqqDEiy2BIvN\njtHSPgtP6RGB7Nq37oIOuK0IrEKHctcDD/DWzJmk1NZ6pL1IwNjEgpVGSk71cgx4G8cmhFMz2zUq\nlSPv1VkP+G1x7Yxzp/JkNVOu3mYj0KflacXbm8KTRjYcLuO1q/o1X9gDRAToiQn25+DBg2RmZmIy\nmS44oVUEVqFDufHGG5n5yCMYcTj9t5VgfpuZnh1gTy2l00RwAIhVqbjdbqcYeF8I7vWSieA/KpXX\nIlJ5kmnz1zMhM47MKO+ZMux2O1uPVrBk/3E2HC4j/0QpN025isNFx7HYbFRWVaNWd/6LkbsoAqvQ\noQQHBzNu7Fh2fPUVntjPI4AA4AMh8FE55pOnbtXrbI4Eh6+r1Rjtdno01PHDe9tlrUCp3c612Z17\n88z+4irW5ZeQ+8jlHmnPbreTW9QgpAVlHCo3UlpbT4XRhI9GTffIIHrHduEfV/QmIzKIjMie5Ly6\nlOLiYqKjO//FyF0UgVXocO667z6u/vZbdlssQOOdKJLfbsGd54RwHrchkSoVOuEQVLO0E2mz09Nm\nc3kLr7I5Im7FNoiqAYeJwIrnfxCFgL9WTZh/5771nTZ/PTf0TSI5rGUbIex2O9uPVfL1rkK2FZ3k\nUHktpbUmymvr0anVpEUE0jsuhEvToukRFURmVBBhfq4XtuJCAigsLFQEVkHBk4wYMYJKi4V4cO7c\nEmc9n/0aKZ3vdwhQ+eq4b3g6AJsKy1m75xi9TRa3+j99u6ynPVX3C0FmTOcOaLLlSBnbiyr47NbB\nTZax2+3sPF7Jj/uOsb6gjINVFkrrrVRU1mCz29FqNdyYHcclqZH0iHQIabibF5WVh4pZtOc4ecUn\nKS+/sLw4FYFV6HDUajV3Tp/OoffeY0grbtWPq9Rc3COWh0dkALA6r4Rl+0+0qA1fISiV0qMCawe2\nSsn8UT2aLduR3PH5Ju4cmEZskC92u53dJyr5Yd9xh5BWmimps1JRXYNGraF7WjI5/UZwZ68sMnt0\nJzMjnRUr1/Dk40/w36tbtzh262ebuWHaDL57fopbGW7PJxSBPc+QUvLhhx9SV1eHRqNBrVYTEhLC\npEmTOnpobWLi5Mk8+vnnUFXVfOGzsArQa35bGOkZFUSlyYId94Nt+AtBhYftsAcBvU7D+B4u4xt1\nOMer6vjXqr1sO1qOSapY8OKPVFTVIlSCtNRk+vQeyozsnk4hjYgId7nVt60Zg0MCDNx4003k5OS0\nqZ3OiCKw5xkmk4nbbruNaYPSAYFNSr7aXsD2XXtISEjo6OG1msDAQOyt3Kdvk6DT/CalQQYdQXot\n+bUmurnZRoAQHk9+uEGlYkLPOA+32jpKa+pZuKOQJfuPs6ekmhNVdVTXm7HYJXGx0fzhofvJ7JFO\nZkZ3IiMjWhQzoa0CG+5voLi4uE1tdFYUgT3P0Ov1dI2K4PHhqXQLdeQzqjbbWLVq1XktsP7+/tS1\n8odqA3w0Z85Ve8aEcOjAMbcF1l9KjwrsDhw7uF6c0NuDrbrHSaOZr3YW8sO+Y+wqruZElZGqOjPd\nwgIZmBTOH4dE0bdrCJuOlPPE97vYt329y9xc7iJPs4e3Bj+dmloP+UF3NhSBPQ9JTe7GgdJqp8AO\njQtg5fKl3HzzzR08staTnp7OCaMRG+fOWuAKG2eaCAD6x4cw/+Axt7PF+tvtNMp31EqKgG+At67r\nT0RA+3kPlNbUk/PP7ymrqSchJICBSeHcNyiFPnFd6BkdjM9pf6OiSiMzv87l7bf/3SZx9QR1FhsG\nQ/sE+W5vFIE9D0lJz+BgyXbGNDivD0kK551vfu7gUbUNg8FAeEgI84uLm4w1kMpvUbJOx9UMNic6\nmLkGPRjdC1ziB1ia2GLbEkqBucDDl2Rwc9+kNrXVUmYs2EB2TBe+mDoEvbbpy5SUkhkLNtKnbx+u\nu+aqNvfbVhNBaa2JN998kwWffUZdXR11dXUYjUYAQkJCCAkJITQ0lJDQUCIiIpgyZQo6nbfzT3gG\nRWDPQ1LTe3Dwm/XO972igyk8dpyysjJCQ1sSorpzoVKBPjqYfvFhjc4dqahlXWE52cbGgUhsSAxn\nCUrPmGBqWiCWfjjSxrhDDXAUR4LFMhy7xkxqNfVSYtMINAje3ZDHe5vyUatUjjCKKoFGJVCrVGga\nXp96RPn78MW0tiX/O15Vx7IDJ1h7/2XnFFeA+bkFbDhSQcHPq9vU5ynaaiLYd6yMHv01DLyoF74G\nAwaDAYNBj5SSioqTlJVXUF5RQd6BPcye/SzJycnnTZoZRWDPQ9LS0lha8ZvQaNQqBnSLZs2aNUyc\nOLEDR9Y2EuO7Mqt3IJekRjU6t66glEnvrnRZzybB5yxRSQn1p85qowZHoO3mOHs3Vz6wEjALgU2l\nwgSY7XZMUmLH4XUQJAQhQpBosxFssxEEzDXD8ntG4afTYLLaMVltmGx2zFbbb++tdsfD5nj99Pfb\nOV5VR1Rg62+Tp89fz5j0GLKiz94gfCbF1fXc88UmXnvtn86cXG1FImlLHHF/X18evO8u+vVt3l69\nYfNW7F7a0uwNFIE9D0lLS+NAyZlLMpfEBzLvw/fPa4HNyunN9mObXQpsVIAek9X1jNROYxusRq0i\nKdSf/cVV9HGjb1/A2vDDPYwjK2c2ECQlepsNPxyxZYNw7PwSUjri7Z2FQasmLTyAyAD3xLKo0sgz\nP+wg8W9foWrY2isECIRTtETDwXNpmM0u2fzw2Gb7+3hLPjGxsUy9xVUE0tYRFxtDXnEFGa/8xKUJ\nQTw6IoOEEHcuaw6klG7HHxBCtNkk0Z4oAnse0q1bN46UnsRisztz198zKJWe//qJ5cuXM3Kkq/yT\nnZ+cvhfxyweub1sjA/TUWWwufVutUuKrbfxV7ts1lJ0tEFgLjihbnwjBSODiVvyQBQ6xc4c6i5XL\n3lzOsJRIFtw6GLt0iI1NSqRsCIdol9ilbHatzqBVE2xo3i4Z4KNBo25TKr5GjBg2hPy9W/nmfz8y\n95PP6Pf6CkqemuB2fSEEVjeDrqtUqgtrBiuEmANMAIqllFkNx14CrsBhtjoETJNSNsq6IYTIB6pp\n2OotpWyfOGgXODqdjtjIcPLKa0gLd9zm+floeGV8FvfccTtrN24+L/PNx8XFUVTt2hJq0Grw0ap4\nTwrUFiuX89u2Vju4tDv2iw1m9Q4tmJvfMuuD40v6oRAMEoKLW/kjVgmHb7I7bC86SUmNiR2PXu6c\nvXqbyAA9NdXVHm83KiqSGdNuYexlo8jIGdiiumqVwOzG/wgcYnw+Caw7/9X3gbPvPZYAWVLKXsB+\nzp1na6SUMkcRV8+SmpzMgZIzfygTM2MZE+9HWrckXnj+OedK7PlCdHQ0x6vrmjy/ePpwHrq8J/Zg\n3zMSwNkAg6bxV7lndDD1Lo67woQjHkFvIRjahh+wEAKrzT2BtUvQalTtJq4AEf566uqa/hu3FZVK\n0Px8u3Edk9m9LAoq1fllImj2PyulXAmUn3XsRynlqTn9OhzZYhXakZT0HhwoPVNghRC8PL4ny+8Y\nzIYF75LWLZFn/vpX9u51lY+y81FVVYWfj7bJ8yNSIvnjsHSig/zO8JW1S4mvrvHNWM/oYOeW2eb4\nQKUiUaXiMru9TSviKgFWN00ENilRtXOW2QAfLXUmd/0lWo4Qwm3f41OoRQtmsFx4M9jmmA78r4lz\nEvhRCLFZCHHnuRoRQtwphNgkhNhUUlLigWFd2HTvkcnBCtc+nhmRQXx2Y3++vKEPJcs/Y9SQi+mV\nnsr/Pf00K1as6LS7Znbt2kVmmF+z5exnzWDs0MhNCyDcX4+vTsPRZtr7FjBKyeQ2iis4BMDqpgDY\n7W1zb2oNb64/RGqKpxL0NKali1C7j1dislgwm90TfZVKdV7NYNu0yCWEeAJHGM2PmygyWEpZJISI\nAJYIIfY2zIgbIaV8C3gLoF+/fufPX7CD6N69O1+Vn9uJvm9cCH3jQvjn+F6sLShl8eovePzT99h+\nuJiMlGQGDRtOemYWAwYMoG/fvu008qbZuW0rGaHN73zKjglm9eFS5/umBBYgMzqYg78W07WJtvYC\n24DbpcQT6fdEC2ewNimxWu1o3DRltIWiSiNz1h1k7aqfvNaHw9zR+PMXVRr5bm8Ra34tYXdZHSfq\nbJRXOS70GelppKYku9W+xWpFq236Lqez0WqBFUJMxbH4NUo2cUmRUhY1PBcLIRYC/XG4Fyq0kbS0\nNA6caLSu6BKVSjAkKZwhSeEA1FtsbC4s55f8X8jdvoInHvszJ0rLOnx3zOb167h6YPOprYckhvHV\n1gJWmiyYcVzhDS68CAD6dw1h8a+uA4mYgUVCcLkHwxQKcHsGmxYegEGjJmH2Yo4+faWHRtA0s5fu\nISszk5zsnl7rw2GDtnP/lxvJPV7NsTo75TV11NebSEpKoE9OH26Ykk1WZgY9MzOIjo5qUWCZ+vp6\nfM6jTLStElghxFjgz8BwKaXLlRQhhB+gklJWN7weDTzT6pEqnEF8fDyl1bXUmqz4+bTs36jXqhmc\nFM7gBsHNPV7N6tWrueSSS5qs8+xf/49jx4pISkkjKSnJ+QgODm7RD6QpTp48ye79B7n4+uZjp47u\nHkW9lBwIMpAeGcQtgQZiAl3PfHNigvnMt/GWWTuOvPMxQpDjwVvOlixyxQb5svHBMcQ9s9Bj/TdF\n4UkjH248xIa1y73aT3V1DVarhcLgZMaOyqFnZg96ZmWQlJjgkVxbJpP5whJYIcQ8YAQQJoQoBJ7G\n4TXgg+O2H2CdlPJuIUQM8I6UchwOL5qFDec1wCdSyu+98il+h6jVapLj49hXUkWfuJA2tTUuOYTP\nPp3Hzp07WbP8J/bt30+3bil8+fU3gMM386WXXuLxEakc2buGVVVm8itqySuuQAgVSV1jSUrqRkJK\nCknJqcTHxxMXF0fXrl2JiIhwa5X8l19+oV9SVLPbPAEiAwzMvXEgN3/yC1f0iOHeId2bLNsrpgu1\nZ80ojwFf6nVU15sZ4QG76+kIcNtNCxx+qWabHbvd7lVvgmeX7ia7V0+ysrwb/FtKid5Hz+IvmrIa\ntg2TyXRhCayU0tWWj3ebKFsEjGt4/SuuY3MoeIhxEyfxn7Xf8XYbBXZ8RjT9//UO43slcm1mFBen\n+vGvjZud54uKijCZzQxPjuSiriHOGauUkoo6M3nlteSX1ZCft4b925aztNpM4UkjheXVVBrriIkI\nIy4mhriuXYlLTKZrQgJdu3YlLi6OuLg4IiMj2bdvH5lh7kd1mpgVx4KpQ7hx7hq+3HmUb6cPQ+/C\nk6B7eAA1ZgtGHKaE/wnBYY2Kh4d25+01+1G7iG3QFlpigwXHjjO1EJQbzV7L23W4opaPN/3K5g2r\nvNL+6ahUqha7abWE+i2ZsMMAACAASURBVPMstbeyk+s85olZT5Oe8gFbCsvbNIvtHduFZX8YxdBu\njoj1mwvLmXvgN0+DiIgInnr6aW5+87/4q2xM7x3LXQNT0KpVhPj6EOLrQ98m+q+32DhaaaSwso6j\nlcUc2ZvPvk0Wfqo2c7SyjsLyKk7W1uGv92HmsNQWjXtM92h2zhzPjR//QtdnF5EWHsjY7lHcNTDV\nGSZQoxKE++t532iiGsGYjBg+ujSTnNguvLV6v0fcaE5H4LBBtgRfnYbj1XVeE9i//bSb3r2zyUhP\n80r7p6PWqJEtuMC0lAtuBqvQeQkKCuLvL7zELbP+zPI7hrY69qgQgmHJvy0uaVWCisoq522rVqvl\nL088yWOP/4UVK1bw0H33EOJ7mBv7JDbbtl6rJjks4JzZSk1WG9d9uJpdxS3fYRQdaGDpXSNZnVfC\nikPFfLOniNk/7UKjUqESjtt1fx8tNwxM5Y9D0kgK/W2PfFujQLnCscjVMoHx1Wk4VlVPlheSqeaX\n1/Dpljy2bvptC7LRaOTn1WsZc+klHjdLeHsGe8HZYBU6N9OmT+fXQwe5/P05/HT7ELr4tt0ToGd0\nMBF6wV8e+zOzn3setVqN2Wxm7ty5hIWFcfO021m9aI5bAusOPho11+Yk8OT/treqvkrluEAMS47g\nqdFZWG12KurM2KVErVIR6qtzuRBnl7LFwb2boyVeBKcI1GvPuYOtLfz1x10kJCbwxn/fZfWqteQf\nyqOqrg478N5b/8+jQV8ANGq1qxg4HsNms6HRnD+ydf6MVKFJnnl2NjXV1Yz/4Et+mDaIAH3b/ASF\nEHx5U39u+mw+l2/cwM3TbudvTz1Jor8Ko8XO5vzjpEa2ze57NpOz4pgxfz3lRhMhvm2boWjUKrdS\nRtul5CRgpCFCVpt6ddCSYC+nCPH14WilZwS2qNLIvK0F/PD/2zvv8Ciqtg/fZ1uy6b0DoYReBEIv\n0puKIqKAAgIWVF7bZ0NFsYAFuyCCvSuIUhSlg1IVkB4gdEJIoaRuts75/tiAlIRssrNJwL2va6+Z\nncyc88zu5jdnzjxlzwlSTuSSXWhGDyw+dJQadjvNgDjgd62WRYuXqy6wV1oggKfxCuxVgBCCt959\nj3sLC+j58e98MrglzcrIC1oWMUFGFo/uyPNLd/PRlIlM61uPXvWdaQT3ZuWRkqluiUBfg46YYD9+\n3pHG2HauOZ27S7P4MJYfPcWvxYm57wPcvWxURGDD/X3IyHet8sL5KIrCkr0ZzN1xjI2HTnL0dCFF\nDgdRGg21gM6KQgIQBHBRtqp4h4N/znuQqRZegb0Qr8BeJQghmPnxp3z80Uf0fvJxHmhfmye7NcCg\nq/hNsE6rYXK/ppdsbxAVRIModZI1n8+E7o14etE2hreqVWrggJqseKDnuXXjY9+VWqqmvNjK+ZAr\nMsCX7IKyBXbniTPM2XaM1fuzSM3K45TJgo8Q1NRoqOVw0BGIAbQuTFHEAatPnCiXna6g02m9Anse\nXoG9ihBCcPc999B/wADuHXMn7T9YzUc3X1PqE/7qxt0d6vHayhSe/W0Hb9xwjSoBDK5w7EwhCs6q\nBu5SXj9YgCh/A5tPX/iALz3XxJxtx1i27wQ703PJyi9CkZI4rZYaikJ3KYkDAqWsUB2xaMBks5OV\nlU1UVGS5jy+N0kJl/6t4BfYqJCEhgV8WL+Wrr77k+ocfYkzrmkzs2cglJ/6qZvbIjvT/aDXpeUV8\nMbSdWyNwV9l49BQ+OKO73O1NSNe9CNJzTfy+5wQrUzPYm5lHg8kLyS2yUmCxYZaSGI2GmkCyohCP\nc/pCuFmU8SxaIEKjYe68X7jvntGqtAmg0+k8+pDrSsMrsFcpQghGjhxFnz59uf/usSRPW8k71zU9\nN49aXWmVEM6uxwfQ7r2l9Jq5ki+Gtr/AtcoT9GsQQ6C/D98V2bjd3cguKS/xg83KN/PbnnTWHMpm\ne3oOaacLySmyYpeSUI2GGAGtHArB1gKCgL80GnRScouH0/LVAJYsX6mqwHrnYC9EVMcPIzk5WW7a\ntKmqzbhqkFIyb948/u/B8TSP8GVq/ybU8bBouYvVbuf6T/5k/eFsRretx+T+zdz2jrgcJqud8Kfn\nMJ7ih0IVaQP4RK+jQWwwdgnHThWSU2TBek5IBdEOB1FAJBBCyflC/wRSceYBVYufNBq0UlJTSqKA\nKGAnsDM+jgP7K+YeVxJ2ux1DYAxK0cmyd64AgZGJHD9+XLWCjRVFCLHZlSIC3hHsfwAhBIMGDaJ/\n//68+cZU2k99nfva12VS70aVNs9ZXgw6HUvu7c7erDxu+XItSa8cZtaQtgxs6pnc7n4GHQathiKH\nUqbAFuCsk3QUyAIKtVqKHA7MADY7x46dJklKrsUppKGAphyj0VCgSKut0NxqaWRLSYaU5CfEszIz\ni0KbDQOgyVI397Iz0MAzSCkxmUz4+bkeUl3VeAX2P4Svry/PPDuRO0ePoWH9JMZ3rOOSv2hV0iAq\niB2P9eed1XsY/cNGjD9tonOdKLrViaR9rQiaxgRjVyS7M3PZlZFLTJAv3etGV6iwn49OS9F5t/cF\nwH6cQpotBIUaDSaHAxsQIgQxGg1JDgdRDgeRwG4h2CoEY928tQ8CLCrfWQ6TkunAc5MmMPL2oZhM\nJhYvXUleXp6q/ZyNDJNSqn7xNplM+Pj4eAMNvFRv4uPj0eu0aDXVc/RaEg9f25DxnerzS8px5u9M\nY8b6/Uz8fQeFFhuKlAQbDYT7+3LaZCE6wJdl47q7fPE4crqAJXszKLI7mA8IrfackIYWC2l9h4PI\nYiENBTQlPL3fDG7V8zqLnkurNrhLEM7kzfeNe5gBfXsTERHOoBuvU7WP8/GEwObnFxAYWHrIdXXE\nK7D/URwOBW01nR4oDZ1Ow03NanBTs3/rExw7U0ioUU+Ar9OLVVEUeny4iq7Tl7P5kb7nanWZrXY2\npZ1m45GT/J12mr0ZeZzILSLPbMUBhGk0aBQFPdCzWEhDKFlIS0IBcqWkpQrnqS9uT22aAXukpFef\ngWzdstYDPTg5W/lV7TwH+QUFBAZW72cHF+MV2CsUh8OByWTC4XAQElL+qC2HonDKZCXQR4/mChrJ\nXkyN0Au9VzUaDSvGdaPBa4uo9/ICHA5JodWGRUqMAkI1GqIQxDkcNMc5RxoECEVhrxD8LCW7hODm\nco4grThdn9SQFB3qj2DPcr3DwbQ9+5jy+ts8/cQjHumjvHW5XCUvL987gvWiHg6Hg4MHD7Jjxw52\n7tjB/v37OXjwIAcOHiQrKwuj0YjVaiUlJYW6dcsXXtq5Q3s6ffgnuQUFxIQGER8aQEKQL3H+OhIC\nfUgI9iMu2EhCsB/xwcYKzWlWFRqNhp9GdaL1W79zMxALBANaCVwmyqpB8YOpXUJQXmdOC+r9M+lx\nliL3BEZgsJS8MGkKtw2+ibp1a3ukH09Ufs0vKCAosGq9B8qLKxUNPsU5fZMlpWxavG0qcAPOC/cB\nYLSU8pICUcWlZd7FeXH/WEr5qoq2X7Xs2LGD6dOm8d333xMaGkLzpo1p2rgh3bu0ZezIIdStXZu4\nuBg0Gg2j7nqApUuWUPe++8rVx+/LnaVDLBYL6enppKWlnXsdO3qYDUcOc3xXGoeOHuPa2hF8O7RM\nj5RqRbO4UGqG+FOYU1iu/AJmQFcBcbDgLD+thpe9py9ldYCWQtCj1/UcOrBD9Vt5T45gAwKuvimC\nz4FpwJfnbVsKTJBS2oUQr+EsIfPk+QcJIbTAdKA3kAb8LYRYIKXcrYbhVxs2m42ff/6Z6dOnkZqa\nyr1jR5Lyz1ri4i6fJLRXj2uZ/+syxpVTYM/i4+Nzrr5WSezYsYPbBvSuUNtVzT0d6/HW79tpW47k\nKxYhOCUlfwGtcH1UqqbAOlAns9fl6KkozMjM4oGHHmfG+2+q2rbzYyjf55CTk8PW7TvZvXsve1MP\ncOToMU5kZJKbl0d+QSGmQhMFhYU0btxIVVs9jSslY/4QQiRetG3JeW83ALeUcGhbYH9x6RiEEN8D\nNwJegT2PEydOMGvmTGbOmklS3To8cO8YBt14nculiXt268LDjz+Lw+FQpajcxdSrV4+DWadxKApa\nD9aM8gTXxIeQX87MVu2kxCAEfwFLpeRWwJU6C1bUG3k6cEbzryxeKsXLy62ffa8UH392eXZdCkCj\nAY0AoUEKgQ7Jl59/zag7htK+XRuVrAcQ56YIrFYre/buY/uO3ezZl8rBQ0dIS0vnTE4OefkFFJpM\nFBaasNlshIWGEBMTTc2EeBJr1aRj+zbEx8USFxdDfFwsBw8d4eXX3lXRTs+jxrTRGOCHErbHA8fO\ne58GtCutESHEPcA94KyYerWzfv163nn7bZYsXcrQITexeMFsmlWgIF1cXCzRUZFs3bqV1q1bq26n\n0WgkOjyMI2dM1T7662JeWrKLlhoNlNPJv4eU9ADmarXsdjhcFlidSl4ZZpz1w0S9GLRCoBECjYZz\n61pN8TYh0Go4b12g0wgMWg0GrQa9RmDQFa9rBXqNBr1Wg04j0Gud6z9sPcqLk6eyaMFsVWwHMPr6\nUqdRa0xFZkwmE/7+fkRFRpIQH0dirRp079aFhPhY4mKdwhkfF0t4eFiZUxV6vZ6042mq2VkZuCWw\nQohncP4WSiohWdKvrdThhJRyFjALnKGy7thVnUlJSeHxxx5j165dPPK/e5n1/msEB7s3cd+zWxeW\nL1vmEYEFqF+vLvuy864ogbXa7Ww+eoqxbtyyRzgcHHC1P9xPFHMWf0CvFSwf112lFkunXkQgt369\nXtU28wsKmPPtpzSsn0RMTJRqJV7iYmNITz/h8Qq8alJhK4UQo3A+/LpdljzhkoYzn8RZEoD0ivZ3\npZOdnc0D999P165d6HltB/ZuX8+DD9zjtrgC9OrRlWXLlqlgZckkNWpManb562VVJW+s2kuIEESV\nvWuphFEcsuoCVkCr0oMdP5wZucqbV7YidKkdiVAc/PjTAtXa9DEYaN82mVq1aqhaP8vHx4eQkGA+\n//xzdu3axdGjR9m7dy9Wq7XaJpipkMAWewc8CQyUUppK2e1vIEkIUVsIYQCGAup9i1cIiqIwfdo0\nGjdujF6jsGfreh558D4MBrXSO8O1XTqxfsMGzObyZ8V3hfqNmpB6xjNte4qP1u0n2U1XoTCgyMU2\nrBQHJaiABvDRask121Rp77J9aQR3tq3LW++8r16jwjNuWgCTJz3NrwvnMeimG+nUqSPXDeiP0Wjk\ntltv9Uh/7uKKm9Z3QDcgQgiRBjyP02vAB1haHA63QUo5TggRh9Mda0Cxh8F4YDHOu6dPpZS7PHQe\n1ZK0tDTGjB5NXl4Ofy5bSMMG5StL7SohIcE0adyQ9evX0727ureVGRkZLF/8G2FWT3lmqs/4uX9z\nOs9EMzfbCQPMUqJQ9kjEDBhUHEUZdBpyiqxE+Hu+guqI1onMnKbeHZCn3LQA7h4zkrvHjLxgm9ls\npllyVxYtWsSAAQM80m9FKXMEK6UcJqWMlVLqpZQJUspPpJT1pJQ1pJTXFL/GFe+bLqUccN6xi6SU\n9aWUdaWUkz15ItUJKSXffP01rVq14trObVmz/BePietZenbrwrKlS1VrT0rJ9Gnv06xRAxrbT/D+\nDc1Va9uTvLp8J5+u388IwN00NkacIwNXEu8VaTQY3ezvfPQap8BWBo2jgzDb7KSrVkLGcwJbEr6+\nvrz35hQeeuhBLBZLpfXrCt5ILpU5efIk9903jpTdu1m84AdaXlM5wtSrR1cmPPcKpV3FpJTk5OSQ\nnZ1NdnY2WVlZzmVm5rltOTk5zJw1ixo1amA2m5n03HM83CGRp3o2qZRzcJevNx/ixd92MBxnSRQ1\nCNFoOKIoZc7lFgmhqsBqgcV7TnDodAFFVgdFdgdFVgdmhwOLzYHZ5sDikJhtdix2BYvdgdUhi5cK\nPjot1zeJ446WifgaLv9vLoQgJsjIxr+2qJIARuC5KYLS6N+3F40//oI333iDp595plL7vhxegVWR\nXxYu5N5x9zL81sF89dG7+Pp6NhVgVlY2G/7axJZ/trNtxy62/PMPI0eMoLCwkNy8XHJzc8nJySE3\nN4+cnByMRiNRkRFERkYQGRHuXI8IJzEhiqOHD3D02FEiI531mYxGI8tWrqJPj240jg72WB5WtZiz\n7Qh3f7eBm4FaKrYbKQSujOtMQISK/SLh+cU7qBMe6HSx0mqd7lc6DQadc91Hp8FHp8Wg0+Bj0BOk\n0+Cj1eKjE+RZ7Ly+cg8P/bSZuBB/xratzWPXNkKnK/mmNT7En9179qojsB6cIrgc70x9meROvRly\n660kJXn2jtFVvAKrAvn5+Tz6yCMsW7aU776YSdfOHd1us6CggB07U9idspd9+w+wY+duTmRmYjIV\nkZuXT35+PlarjZjoKBJr1aRB/XpMevYJoiIjCA4KIiQkuHgZdO59aU90Dxw8xJSp77Bs2fILLgot\nWrTg18VLGdCnF3qthv6N4tw+r/KQnmtiyd4MwvwMlxX4D9el8shPm7gRaKiyDREOB4dc2K9IStR0\nYtML+Gp4B4a1SnSrnewCM/N2pvHGqj28sWoP3etGM7FPE5rHhV6wn0GrUe/22oMPuS5H7cRavPDs\nEwwdehvr1q1X1YOhongF1k3++OMP7rxzFD2u7cy2v1YTFFR6th+73U5GZhaHDh8hZU8qqfsPcPjI\nMdIzMsjNyaOgsJCCwkJMJhNWq5XgoCCio6KIj4/l5KnTnDmTy+RJT1M7sRaJtWoQExOtij/gqLvG\n8+wzz9KiRYtL/pacnMyCRb8zcEA/vr5VQ88kz9X0stgdrD2UzZLUbJYcOMWxM/l06tCB7Ss3cUOT\n+BLzi076fTuvL9vFLTgTumwDsnU6FK0Wrd2OxuFAjzOBisD5tN8qBHaDAYtWyzGHDV9AOBSE3YEB\nLnidBs4IwT9S4gcEFL/8ufCfxywlauZ5EoDF7r5IRQb4cnf7etzVri5rDmXz/tr9dHp/KYG+Bq6t\nE8mbA1sSF+yHTqPBbre7bzggKnkO9nweGDeWFavW8MTjj/Pue+9ViQ3n4xXYCpKbm8uY0aP56eef\naZvcipycXG66dQQFBYWYioowmy1YLBYsVitWixWL1YLFYsXHYCAwMIDIyAgS4uOoWSOeFs2bEBsT\nTVxsDLEx0cTGRBMZGXGBeE6b8TGffvENtw8bovq57D94iFuGlN5u+/btmTt/IYMHXs8Pw9rQta47\n3qWX8vXmQ/yYks0fqek0SqpH3xtu4sOXB9CmTRu0Wi1JiTXYmn6GlvEXpm3p8cFy/jiYBcBPej2x\nERFc07Il13XuTEBAACaTCZPJRGFBAYV5edhsNkLCwwkOCSE4OJgtW7aw5YsveG9QawqtdgosdvKK\nX4VWO4VWB75WO0EWG3stdgosNgqtdopsdqx25YKIKKvFxhIh2CMljXCG17pz6ROKcz5VLYQQdKkT\nRZc6UVjtDlYfzOLdP1NJemUhdcKDMOg0ONTyuxWglDNEWS2EEHzy4Tu07NCDHj16cONNN1WJHWfx\nCmwFUBSFPn16k5KSQreunQkPCyU8PIyGDZIIDQkmJCSYkOCzyyBCQ0MICQ4mKCiwwuUuAgMDMHvo\nCWnNGgkcO3aM+Pj4Uvfp0qUL386Zy21DBvPTHe3okKjejOOExSlMmPQSnw8fTnh4+CV/HzjoZhbs\nWkXL+DBOmyws3HWcH3ZlsTfXztixY7nzzjtp0aJFuXOFrlu3jl1rlnN/p/rltllRJCabnXyLnXyL\njcav/UoyktNaLb8U1+cK1GoJcTioizPZdXlCSoSiYPFQoIFBp6V3/Vh6148lK9/Mi0t38uXfB2mX\no075mKqagz1LaGgI3372IYOG3knLVq2qNPTeK7AV4MknniDt2DH8/f1ZuXhepfQZFBiIxeIZt50G\nSfX4ZeFC2rdvf9n9evXqxRfffs/Nw29j4agOJNe4VAwrQr3oEJo0aVKiuALcdPMtjBryNRtPFLDh\nYCa9unfjzqcfYuDAgfj7+5d4jCs0atSIPeknK1TeRKMRBPjoCfDRE4sRg4A2EgKLqx8UAGkOB0eF\nYJcQrFQUfIQgSAjiFIUmQCLOOPN0IBPIBs4ANh89pxTlkvLfapBnthWPxB3Fo3Q7A5vEs/pAFkuW\nLufhx55Go9EghAaNRqDRaM57CbQaLUIjEEKg1WrRCA0a7fl/1+BwOPjwo8/wNfpitVqxWKzYbDbu\nGDaEVi0vnYbyBB07tOXR/41j2LChrFq12uXkSWrjFdhyMn3aNBYuXMDsrz/hhsHDK63foKBArFbP\nCOzrk5+jbde+dOrUif5lOGr379+fex54kFkrf1RNYOuH+bFv3z569OhR4t87derEzbePol37Dswd\nMEC1nKChoaEEBvhzLMdEzdCKC/VZzh+zBeB84NZQSpASB5AhJcek5KhWy1yHAyvOTFehfj7Eh/iR\nGB5A1zB/aoX6UzPET/WpmJX7Mxnw8WoiQkPwNxrx9zPi7++Pv78/QXG1SflnKwcOHkaREkVRkFIi\ni9edr4u2S+Xf94pEkRKpKDRIqseSFasw6A3o9Xr0eqfMdOl1PX179SCxVg10Oh1arRadTotWo0Wn\n1xHg74efnz+BAf4EBgYSFBSA0deXnNxc0tMzyMjKJivrJCdPneLU6dPk5ubx0AP3csvNA0s838cf\nHc+qP9cy8dlnefW111T9LF3FK7Dl4PPPPmPylMmsXfEr/n5+HrtlL4nAgACsNs+ETsbGxnDPmBGs\nWbOmTIEFWLl4EY83U8vTFOqFGNi3J6XUv2u1Wt58623V+jufxg3qszsz122BFQjkZQpWa3Gml4sH\n2hePcl8Ezrx8CwG+lTO6KrDY6dOtK78sXXHJ306dOkWdOnWY/+PXHkuksuWfbbwy9V327NuPoig4\nHA7sdse5dbPZjNlswWxxPr8wWywUFhai1WqJj4slJCSYsJAQwsPDqFenDuknMnhm0uRSBVaj0fDl\nx9Np1bEnXbt2ZcB1nivyWBpegXWBgoICxo9/gI0bNrBk4RxqJ9bCbrdjNluw2+0eLSP8zfc/8tO8\nX9i6fSc2DwksOAMRNJqyE5vs27eP/fv302+IeiGJ9SODWLt7p2rtlYdGzVqw5/hG+jV03wWtvLOO\nEvDVqZ/DtzQulwg7PDyc0NAQ9h84SP2keh7pv1XLFsz59tNyHWMIiiHzSEqJ8+uZmVnUatCS06dP\nExZWct2KyMgIvv3sQ4bcMZZNmzaRkFC5/txXRs6vKmTbtm0kJ7dGKDY2rV1K0ybOjOo6nQ4fHx/S\n0jybIOyt92aQfiKDCY89xPa///BYP4qilJmwOy8vjxdfmMSQZgnoVarRVWCxsS87j/0HDqrSXnlp\n3Kw5KafcT2RT3kywZ2WuNMd/TyC4fKWB5NbJrN+4qdLsKYvTp0+jKLLUKaHo6Ciuad6UseMeZvaP\n81i6fCWbNm/lyJFjF7icdencgQfvv4thw4aq5ormKl6BLQUpJR9Mn06vXj159smH+WzW+5c8UAkK\nCuTg4SMetSMuJpo2ra/hrjEjSIj3nKO/oihozhNYKSX79u3jiy++4N577qF582bExcWxaNEiTheU\nlkDNNRyKwvLUDEb/uIVaryxirS2SN9+f7u4pVIjGjRuz+2ShKm2VZwRb+W74zsTclxPYO0aM4P0Z\nH1eb1H9BQUFIKS8ripOefYL9Bw8x4bmXGXXXePpcP5hGLTsQHpfEkOGjycjIBOCpxx7C16Dj+eee\nqyzzAe8UQYmcOXOGu8aO5dChA6xbuYikeiVXbA0NCebIkWMl/k0tEuLjSDuuVhKO0nE4FA7u28cr\nU6awbt06NmzciJ+fkQ7tkunYrg13jRxCi+ZNWfDL7zz66OMV6mNPVh5fbTnKN1uPERkdw4ix9/LG\n/NuJilL3YU55aNy4MSnHK+ZJcD4aIbCXQ5gknq+7dTFl1coaOHAgzzzzNMtWrKZ3z26VZ1gpOO8S\nDZw5k0NUVGSJ+/Tr05N+fXpesn3Dxk28/Npb1G7YiqDgIPLzC7DZbBw6ksZLL79caQm7vQJ7EevX\nr2fYsKHceF0/vv1s2mXD7SLCwzmuWgaikomPj2X7Ls+XMatbJ5EVq9cQHR7EqOGD+fDdV4mPv7Tg\nYv++PRmRU8C+7DzqR5bt2Xmq0MIPW4/w5fYMjueZGX7HCBa9NYZmzdxNJqgOkZGR6HR6MvLNxAZV\nPF2Lv4+O3CIrJcvApVSNwF5+BKvRaHjqyaeY8vo71UJgAXx9fDh1+kypAlsa7dsl88tP39IsuQtv\nvf0uHTt2xM/Pz62LaEXwCmwxiqLw+muv8fY7b/PR9LcYeH3/Mo+JiAgjPT3Do3bFREeRm1txB/CM\njEze+2AWCXFx3D9ubKn7jRl1O2NG3V5me/7+/vTqcS2vLt/Np0NL9pu12h0sSknnq+0nWJV6guv6\n9+Pl6ZPp2bOnRx8IVpTGDZLYnZnrlsCG+fuWK71gVUwRlDUHCzB02DAmPjeRFav+oEe3rpVj2GUw\n+Phw5kxOhY/39fVFp9O55S/tDt45WCAzM5P+/frx6y8L2LRmmUviChAdFUVWdrZHbYuOiqSw0PU5\nT0VRWLx0BYNuHUnNpBbUatCSpStW88QzL3Dy5ClVbLpj2BBWHruwhIyUkr+OnuLBBduo+coi3t9n\n5YYHJnD0+Am+mT2Xvn37VktxBWjUrDkpme5FMcWHGDmBM6uWK+JZdVMEl7dOr9cz88OZDL9zHHv3\npVaSZaWj1WiwWCvuDnn7bYOZNXOmihaVD1cqGnyKs/ZWlpSyafG2IcAkoBHQVkpZ4qNHIcRhIB9n\n9WC7lDJZHbPVY/Xq1QwfPpwxI4fx/DOPl0sEoiIjPP4jjImOwmS6vMDm5OQwfean/Dz/V/YfOIRW\nq+WG6/vx3puv0LN7FwIDAxk4+HbuvHs8v/z8nds2Xde/N3fePZ4DJ/Mx6DR8s+UoX29Lx64zMGL0\nWP76fBS1a9d2Jm3WjAAAH1xJREFUu5/KonGzFqT86F7hv0BfHSuA7RqBQ8riqq7OPAVaIdAJgRZn\nCKzGoaBY7SjALZ//ia9Og69ei69Oi1GvxajX4avX4qfX4m/QYTRoCTDo8C9+BfjoCPTRE2DQEeij\nKzPf61lcTcLSt18/Jr88mQE3DWPdykVER1fNHLnZbObUqdM0a1L+astn6dShLd/M/llFq8qHK9/M\n58A04Mvztu0EbgZcuTR0l1K6khS+UpFS8tabbzL1jal8+fF0+vQqf6mViPAw8vMLPGDdv0RHRWEq\nKrpk+9p1G5k+8xPWb/yb9BOZNG7YgCE3D+S6/r1p3qzJJXNNr01+nuSOPTl6LI2aNdzzBQwICKD7\ntZ25dsZKrGi45ZZb+OSZ6XTo0KHS57jUoEmTJsz98NLPuDycKrTybO+mTOrbDJtDId9iI99sJ89i\nI99iI8/sfJ9vsZFnsXHwZAEfrEslOsgPs92B2a5wxmzFbHdgtSuY7cWJte0ObA7lXCJt23kvu6Jg\ndzgFU6txlu3WCme46tnS3me3azQapJSEhLsmlmPvuoujR49y/eDbWbV4XpXcYi9euoLw8DAiIioe\nMWgwGDxWq84VyhRYKeUfQojEi7alAFfkPxM487eOHTuGQwcPsHH1YmrVqlH2QSUQHh5aovipSVRU\nBCZTEQUFBXz82Vf88ON89qUewGaz0b9vL6a88Cx9e/cgLCz0su00alifG28YwKi7HmDl4vlu2aQo\nCseOp3Pnff/j+eef93hicU/TqFEjUtLdmz45abJRO8wpQnqthjA/H8L8Sn9AuvX4Gb7ecpjpN7tf\nat3uULA6lHOVDSz2s+8dWBwK1uLtabkmJq50tRA5THrhBY4cPcKwUffy8w9flOknrTY2m93tnK6+\nvj7k5uaqZFH58fSkmASWCCEkMFNKOau0HYUQ9wD3AB7NfrNnzx5uvnkQndq34c9lC90Sh7BQdQVW\nURRS9x9g05at7Ny1h72p+0lLSyfA35+IhPrUqZ3I4Juu552pk0lufU25f/CTX3iaJq06sXdfKg3q\nVzzj+9yfF+Jr9GPKlClX7EX2fGJjY7E6FLILzEQGVOz3kGu2khjmeo4Em0NBq1Hns9NpNei0GvzK\nKFTsUBTu//kf8vPzXco8JoRg1qyP6N+/H48+MZF335yiir2u4h/g51YScEVRGHjLCG4ZfIuKVpUP\nTwtsJylluhAiCmcF2j1SyhLDkYrFdxZAcnKyRzyd5/74I+Puu49XXnyGu0aPcLu98LAwzOby/QAU\nReHQ4SN89e0c1q7fSFb2SXJyc8nPL6CgoACdTkdsTAy1E2tSt05tOrRNJrFWTbp27uD2XFjtxFrc\nMexW7r7/Uf5YtrBCbWz5ZxvjH32KH36YfVWIKziFpHH9eqRk5pUqsHa7wooDGQQY9IQYDQT76vE3\n6PAzaDDodOSbrSSWI5+Bxe5AW8mfn1ajoVFcBLt27Sozc9pZDAYDc+f+RKdOHXl32kweGn+vh638\nl6AA9xIc2e12Dh0+wltveyaPhSt4VGCllOnFyywhxM9AW8Bz8Z6lYLfbeXrCBGbPmc1v874juXVL\nVdr19fWhyFTE/IWLyM3LoyC/kNy8fE6fOUNObi65efkUFhRSaDJhNBrJyy9gx87d+Pn5kZmZyWMP\nP0Cd2rWoVbMGNWskULNGwmUrIqjBrYNv5M67x1fo2GUrVnP76HHM+GAG3bp1U9ewKiQrKwurQ2HM\n7I3UCDaSEOxH3fAAGkUH0zwuhAaRgQz4ZDV/Hz2JQad1zofaFRxS4lAkAue0QGRAGUPI87A5FDQq\njWDLQ9PoQHbs2OGywAKEhISwaNFvdOzYkYjwMI8kfS+J4KBArFbP5d+oDDwmsEIIf0AjpcwvXu+D\nM4FQpZKZmcnQobdh0GnYtGZpuSfMzWYzn335Hdu272Tf/gNkZmWTk5tLXl4+RUVmQkOCefD/nsbX\n1wejry9Go5GgoECCg4MICgwkIS6Wb3+YS6vWrZk85VWaN2/O7t27efKJx5j6ygseOuvSadywPqfL\n6Ve46o81THp5KsdPZPD5Z5+7lHHrSuDgwYNMfXUK33//PYObJZDcvRFpOUUczjGx6tBJvvnnCFn5\nZsx2BzqNYNtjA6gXceEFUBaLbNwL89h87AxdXEwxaLEr6KrgDqBJuC/b/9lS7uNq1arFkiVL6N27\nF0CliGxgYKDHMshVFq64aX0HdAMihBBpwPM4SxW9D0QCvwohtkop+woh4oCPpZQDcFZO/rn4NlIH\nfCul/N0zp1EyGzZsYMiQW7jzjqFMevaJCk3SvzhlKtM//JSe3bvSvm0ydeskUqd2LeokJhIfH1um\nW9fK1X8yd/6vzJnz47knsYqiVNntdWxsDFJKUvcfKDUE+Cybt2xlwnOTOXj4CM8/9zzDhg+vtr6s\n5eH48eP834PjWbZsGXe1rc3OR3oTc5kggyKbHbNNIbSESU4hBDqtoG5EIOuPZLsssM4RbOW7oTeN\nDWHR1vILLDi9LZYuXUbv3r2QSO4YdqvK1l2IqIIRvtq44kUwrJQ/XeJcVjwlMKB4/SBQOenLL7WD\nGR98wKQXJvHJjHe44bp+FW4rP7+Abtd25qcfvqjQ8dM+/ITnJj53gZuLXq/n6LE0l0RObYQQ1K2T\nyNJlq0rsW0rJxr8289Z7M1i74S+em/gcY8aOrbKM8J5g3bp1HPhnA/uf6EegC7lYjXodxjJ2axQd\nzLZ01+8MbIpEVwUC0iw2hB1ztlQ498JZke3Xry+HjxzjmScfvWrm4j3BVRfJZTKZGDVqJB9++AHr\nVi5yS1wBaiTE88+27RX2pcvLK6DGRV4R7dq1Y/Sdoxl5V8XmQt2lRbOmrNv49wXbTCYTH3/2Fa07\n9uSOsffTvmMXUlP3c++4cVeVuAI0bNiQApvikri6SqOoAA6edj3izupwqOZFUB5iAn2RDgeZmZkV\nbqNJkyZs3PgXCxYt5d7x/6eidVcfV5XAHjhwgA4d2qPYzGxY/Tv16tZxu83HHhmPXqvjpVffrNDx\nRWYzRuOFt58ajYbx//sfKXv2VUlquGuaN2Hvvv0UFhby629LuP+hx6lZ/xoW/raCV159nX37Unn0\n//4PPz+/SretMkhKSuJQ1hlsKta8SooI5KTJdY8SNd20yoMQgqYJEezYscOtduLi4lixYiXffP8j\nRR72Bb+SuWoE9peFC+nQoQP3jL6Drz6dodpcoUaj4fZht7Bu/d+X3S8vL5+cnFyKiopwFJcEURSF\n/QcOUqPGpYEMERERSClVyw9QHho1rM+BQ4eJSWzCG+/NpGZiEps3b2H+ggX07du3SuYGKxNfX18S\noqM4cEq9KLy6EYHkmlx3KbI6FLRV9Dk3i/R3W2DBGdHXuHEjNm/ZpoJV6lMd8tpe+U8scD7MumHg\nQPR6PROee5mHHnsah8PB919+xG1DBrndfnBQEIWm0pMyWywWomo2xNfXF0txPSGNRoNer6dOndok\nJiZecszrr71GbEw0AQGVH4LYuFEDfHx8OHLkaLlLXV8tNGrYgL1ZeTSMKk8x7dKpGx5AgcVG67cX\no0hQpMQhJYry77qzgKCzOKDF7sCnEqsZnE+TSH/++mezKm117tSZP9dtoHMn192+KoPU/QcYe8/4\nSi3JUxJXhcC2bduW1NRU/Pz88Pf3x8/Pj7vvuku1KKvgoCBMhaW3lZ9fgL+/P6dO/TsatdvtWCyW\nEkfSv/76K+++9y5//7n0kumDyiCxVk1Onz5zVXgEVJQGzZqTkrKCG5uqU6PJrzjhyrBrahJi1KPT\naNBrRfFSg644J4CueP2vo6f4eOOFZXLyzVaOnCnkaE4R6XkmTuQWkV1oodBi5/2bk8/14S5NY4P5\ndPVWVdrq1r07M6a/z4THH1alPXc4eiyNV6e+y++LfuNEVjb9G8VjMFTt84Or4j9Mo9FQr96Fhdps\nNtu5csHusn3nLpTLpHkrLDTh73/hfKVOpytVwFq2bInNZmfOT/OJiAgjMCCAnt27qlaOuiwyMjIJ\nDAy84nMIuEONmolsXq9uGXSDTsNtLWtSI6Tsu5LsAjMnck1ETJyLyaZgtdvRajX4Gf0ICgogOCiI\nsLBQwkITWLZyNQObZrh0Mcg32/h682EsDgd2h3QmhFGk8yWd3gt5Zhu79h1xu4oDQJcuXRgxYoTb\n4dflxW63s/DXxcyeO4/dO3eRlZHBmfwCOteNYWLnWtzQpBMFVhudZ62rNJtK4qoQ2IvZvn07S5ct\n48lHxrnd1oSJL/HZV9/x+/zZpe6TkZlVrrIncXFxfPXll8ybN4+cTdv5YfZslv/2U6UlON60ZSvJ\nrVv/Z91rprz8Em+/MZVZg9SJ6DuLQaslz+xaUb2bmtag7gOBBPrqGfnNOnoMGc7rUyaV+J0kNW1D\nodW1djccPcnUjWkMGjwYnV6PTqdHpzeg0+nw1eudodg6HR/cHa7K9x8WFsa777xD557Xc+cdQxl7\n5x00bKCu0Nrtdlb/uZa5P//Cxg0bOXE8jTP5hYQYDfRIimFMgzCaXptAq4Qwgs7zDDlTZFVtkFVR\nrkqB/fijj2jSqAFNGjcsc99Bt41k67adxfNjinMpFWTxXJm5yMyqxfNp3eqaUtsoKCwkJyeH3Nxc\ngoODXbKxX//+9Ovfn6++/JIVK1dg9DUWj7o9f0uzactW2rRp4/F+qiPffvsNX854j03/60FCiLpe\nEnqthnyLa5FHvnotbWo6owpD/ZwCWJrg+fr4UGhxTWCLrA6uadaUd96b5prRKjB6zBg6d+nCJx9/\nTPd+g0iIj6V9m9Zc06IpDesn4ePjPD+tVkt4WCixsTEIIbDb7Zw6dZrsk6f4e/M/rF2/kdT9B8g5\ndRqzyURRkQkDDvxD4gj01dO2ViS31o6gdadkGkQGEhd8+e/P5lDQV/E02FUpsK++9ho3DhzI7XeO\n45ZBN6DX62japBF161yaBDo19QA9unXhlkE3FP8INM6lRotOpyOxVo0yk6z06NaF/r17cMMN17N6\n9R/lGhm0aduW4cOGc9/DT3Lo0GFGjxjGO29MLvc5l4e/N29l3P3/82gf1ZGjR4/y8PgH+GVUe9XF\nFcCg05JnLn9op06juWxIaHBIME8u2cVzK/cjxL9pQoUQiLNL4Uyo7VAUaiVWfrLzpKQkXn3tNV56\n+WXWrFnDP1u2sHrtJj767FtsdhsOhwO73U5WVjZ2ux2j0ZfMzCzCwpz5Xk9lpNMsMoDONUOJaxRE\nsG84Qb56wvx8aBgVVGIUXVnYFVnlPtxXpcD6+fkxf8ECnnrySb77cSE2m431GzYwa9qbDLrxugv2\nbdumNafPnKF/314V7k8IwbtvTqFGUgsOHTpEnTqu+982bNiQd959F4Dhw4d53KtASumcIkiudsUl\nPM7MD2cwrFkcrRPCPNK+QaehwMWR5vnotZrLZo36+fsvSD+RgcPhQFEUpyeCovz7Xirntq/6Yy3/\n7Ehx5zTcQq/X0717d7p3Lz2BfVZWFkVFRSQkJJwLX+/esR1PNvenR1KMarZ43bQ8iJ+fH++9//65\n95s2beKmm25iX+oBnnzswXPbbxjQlwcefsL9ss0aDW2TW7F58+ZyCexZtm7dyooVK/hw+8YK2+AK\nf/29hdDQUOLi4jzaT7VECMKMnvvJ+1RwBGvQai6bNSoyMoLIyAiX2iosLGTrjj3ltqEyKel5RUBA\nAIUqZ84K9NGTX1C6e2VlcHV7lJ9HcnIyGzduZPLrb5Oe/m+p7b69u2M2m/n8K/drVUVHRZKVlVWh\nY5984gkmPvV/Hk9X+OmX3zL6ztH/yQdcvr5GLCpGb12MBmcAQbmP04BDcahig9ForNISKRUlMCiI\n/AqM/i9HkK+ePK/AVh7x8fE0atiQAwcPn9vm5+fHrOlv879HJ3Do8BG32o+KDOdkBarMLlmyhEOH\nDnLP2JFu9V8WhYWFzPlpASNHjfJoP9UVHx8frB7SV0VROJFXVKHABbtDYtCpM1fo6+NzxQms1Wpl\n565dF3gAqEGgj458UxGKUhVF0p38pwQWIDw8nPyCC0Mkb7l5IG2TWzJp8tQKtyulxGy2kF0Bgf3m\nm68xWyxMmPgSvy9ZTmGhZ666U9+eRu9evYiPj/dI+9Uds9mMwUO/+I82HuBUoZlaof7lnvuzORR0\nKrkT6fV6t6oAVAUvvTCJBL2N6xqpO22l02qoGxPOtm1VF8r7nxPYGjVqMP6RCTw+4XnWrN1wLm/A\n44+O5/fFyyrc7nc/zGXOzwsZMaL8pWg++eRTZs+eQ0h4DK+8OY3oWo3p1udGXn71TTZs3ITd7v6t\n04GDh5j24ae88WbFktZcDWSdSCfS370ieqUhpdPdqvkbi/B/ajaNX/+V1Qdcmy5ySIlepRGs2WK+\nogJINm3axMwPpjHzphYembYaUD+KhQsWqN6uq/znBPbDmTP5ce5cjAGhPPDoBOLqNGXsuIfYtm0n\nDjduJXLz8ujXtx/tylGK4yw6nY727dvz7MSJrF79BxkZGTw54RnO5Jm598HHiUhowE23jmTajI/Z\nsze13CMkKSUPPPwkTzz+eImJZ/4rrFm9klCjgb1ZeaRk5rIrI5cdJ3LYln4Gi929OdBxHZPIfnEw\nuVOGsPep69ECaw65KLCKRKdSzHxRkfmKyYJmNpsZOew23r6uaZk+rRXlugZRLJr3k0fadgVXKhp8\nClwPZEkpmxZvGwJMAhoBbaWUm0o5th/wLqDFWengVZXsrjBCCFq1akWrVq148aWXOHToEPPnzWPO\nj3PIzc2jZ/+b6da1I926dKJtm1Yulw02GAyq3ZoFBATQv39/+vfvDzjL3qxYsYJlS5fy+tvTUBSF\nXt270qtHV3p260ps7OVdW2bM+oxTZ3J55NFHVbHvSkRKiVZvYPK6NDQbjqPRaM69MrJPMql7EuM6\nqhOBVCPUn/hgI2/9eYB5KVnFPqr/YpMCqyKxKc7pgVO5BXRQadRpMhVVSX6LivDs00/ROEhw2zW1\nPNZH59qRHPz+b7777luGDRvusX5Kw5WJn8+BacCX523bCdwMzCztICGEFpgO9AbSgL+FEAuklLsr\nbK0HqF27Ng8/8ggPP/IIubm5rFmzhlUrV/J/E14gZc8e2rRu6RTcrp1o16Z1qYKrpsBeTHR0NMOG\nDWPYsGFIKdm/fz/Lli7l54VLefD/niEuNuac4F7bpeMFGbJS9uzj+ZdfZ+3atVXudF2VCCHYvK3k\nFH0TJ04kfcMlBTrcokaIP8e1wYy+e/QFUYJSSvz8jM6kREYj/v5++Pv50bxZE1X6LTJfGQK7du1a\nvvn8M/55qKdHPVoMOi2Lx3Zm0EPj2ZuSwvMvvFipHjSulIz5QwiReNG2FKAsQ9sC+4tLxyCE+B64\nEahWAns+wcHBXHfddVx3nTMYITc3l7Vr17Jq5Uoem/Aiu1NSaJvc6pzgtk1udW6+y6DXu1XD3VWE\nECQlJZGUlMR999+Pw+Fgy5YtLF2yhLemfcTQkfdwTfNm9OrRhR7duvDIExN5+aWXqF+/vsdtu1LZ\nsekvbotxLcTZVRLD/EnV+/G/++9Wtd2yKCq6NMF7daOwsJBRw4cy/cYWpZZJV5PmcaGsu/9a+nwy\ni9CwMB56+BGP93kWTwYaxAPHznufBrQrbWchxD3APQA1LyqxUlUEBwczYMAABhRXUc3Lyzs3wn38\n6ZfYtXv3uRGu3e6okqe3Wq2WNm3a0KZNG55+5hlMJhNr1qxh2dKlPPT4RJo2aco991ZeLfsrEV+j\nL3YlX7X2UjJz+XhLGu27dFGtTVdxOBwVKu5Zmbz2yhTaxRhVSxXpCtGBRuaPbEeXl16gbr0krr/+\n+krp15MCW9LwttSnM1LKWcAsgOTk5KqPcSuBoKCgSwT37Ah31ao/aN26dRVb6PTr7dOnD3369Klq\nU64YmrZKZvPyHxjeSp32un+0huG3D2XqlEnqNFgOtFrtOc+Y6squbVvpVSOk0vtNDAtgzu1tuWnE\n7WzdubtS3BU96UWQBpz/yDoBSPdgf5VOUFAQ/fv357XXX2fjX3/xwYwZVW2SlwowcOCNzN99QpXY\n9ZMFZnIKTEydMgmDofwJStxFq9WqFhXmKcY/+hhvrj2oak00V2lfK4J729bm4Qfuq5T+PCmwfwNJ\nQojaQggDMBSoOoc0L15KoVmzZhiDQliU4v71/5fd6STWqlEl4grFAuumy5mn6d69O3UaNuajDQeq\npP8J3RuwdeM6Fi5c6PG+yhRYIcR3wHqggRAiTQgxVggxSAiRBnQAfhVCLC7eN04IsQhASmkHxgOL\ngRRgtpRyl6dOxIuXiiKE4K33p/PwrzsxuZjYuiTe+3MvTy5JoU+v0jNJeZrAgADy89WbT/YUb73/\nAS+tSmXZvoxK79tXr+X9gc14+IH7PP5gukyBlVIOk1LGSin1UsoEKeUnUsqfi9d9pJTRUsq+xfum\nSykHnHfsIillfSllXSmlZ5OcevHiBv369aN9l2488sv2Ck0VrD+czYTfd/HOW6/y/ltV5+4dERHG\nyZMnq6x/V2natClz5y9kxOzN/H208isr964fS8NQAzM+mO7Rfv5zkVxevJTGzE8/Z8NJBzMrcOua\nkplHncSa3DHs1iotex4ZEUH2yfLnw6gKunTpwsxPP+e27/4mK7/yE9Q81CGR2V9/WfaObnDV5oP1\n4qW8BAYGMu/X3+jYNpnW8aHnSrq4wom8IsLDXU/k7XA4KCoqoqjIjMlURJHZ/O/7oqIS14vMxfsW\nFRWvm88dd7aNvLx88vMLyjagmjBo0CD+3rie4T98z++jO6LTVt7FqWNiBNu/XEdeXh5BQeqUb78Y\nr8B68XIe9erVY8ZHnzDs/ruZfmMLbA4Fq13BYndgtjuwnFt3Li0OicUBy/ed4KSiZ/ioe4tFz4yp\nyOQUxqJiETwrlEVF2Gw2jEYjRqMRPz/jv+tGP4x+Roy+Z//md95+fhgDwwiLunD7xftFR0dX9cdY\nLl6a/AoD/vqL8fO3MrlvE8L8DJUSbWXU66gbFUZqaqrHXCy9AuvFy0UMHjyY1D27eev3Rfj4+OLj\nY8TH1xdfoxFDgC8+vkZ8fI34+vkR6OtLhI8Pw/rYMJvN1K9fv0TRu1gQfXx8/pNJz0tCq9UyZ94C\n7rj1FupPXUyRxUJMaBBRQX4E+egJ9NERYNAQqNcSqBdEBxiICzISG2QkIdiPxDD/Cn+WipToPFgY\nUVSHujUXk5ycLDdtKjF/jBcvXq5yioqKyMjIIDMzk/z8fAoKCs4tc3JyyDiexom0o5xIT+fw0WOY\niopoWzuaWkE+SECRZ18SBWcqSUWCgkRRzm6XSClYuvsof23eQqNGjcploxBis5SyzMJ23hGsFy9e\nqhVGo5HatWtTu7Zr1XFPnDjBhg0bSE9PR6vVXpApraSXEOLc+hgfH4/m6fAKrBcvXq5oYmNjGTRo\nUFWbUSJeNy0vXrx48RBegfXixYsXD+EVWC9evHjxEF6B9eLFixcP4RVYL168ePEQXoH14sWLFw/h\nFVgvXrx48RBegfXixYsXD1EtQ2WFENnAEZWaiwCqf4LMsvGeR/XCex7Vi8o+j1pSysiydqqWAqsm\nQohNrsQMV3e851G98J5H9aK6nod3isCLFy9ePIRXYL148eLFQ/wXBHZWVRugEt7zqF54z6N6US3P\n46qfg/XixYuXquK/MIL14sWLlyrhqhZYIUSIEOJHIcQeIUSKEKJDVdtUXoQQDYQQW8975QkhHq5q\nuyqCEOIRIcQuIcROIcR3QgjfqrapIgghHio+h11X0nchhPhUCJElhNh53rYwIcRSIURq8TK0Km10\nhVLOY0jx96EIIaqNN8FVLbDAu8DvUsqGQAsgpYrtKTdSyr1SymuklNcArQET8HMVm1VuhBDxwINA\nspSyKaAFhlatVeVHCNEUuBtoi/M3db0QIqlqrXKZz4F+F217ClgupUwClhe/r+58zqXnsRO4Gfij\n0q25DFetwAohgoCuwCcAUkqrlDKnaq1ym57AASmlWkEYlY0OMAohdIAfkF7F9lSERsAGKaVJSmkH\nVgPVM53+RUgp/wBOX7T5RuCL4vUvgJsq1agKUNJ5SClTpJR7q8ikUrlqBRaoA2QDnwkh/hFCfCyE\n8K9qo9xkKPBdVRtREaSUx4E3gKPACSBXSrmkaq2qEDuBrkKIcCGEHzAAqFHFNrlDtJTyBEDxMqqK\n7bmquJoFVge0AmZIKVsChVwZtz8lIoQwAAOBOVVtS0Uontu7EagNxAH+Qog7qtaq8iOlTAFeA5YC\nvwPbAHuVGuWl2nI1C2wakCal3Fj8/kecgnul0h/YIqXMrGpDKkgv4JCUMltKaQN+AjpWsU0VQkr5\niZSylZSyK85b1dSqtskNMoUQsQDFy6wqtueq4qoVWCllBnBMCNGgeFNPYHcVmuQuw7hCpweKOQq0\nF0L4CSEEzu/jinvoCCCEiCpe1sT5YOVK/l4WAKOK10cB86vQlquOqzrQQAhxDfAxYAAOAqOllGeq\n1qryUzzXdwyoI6XMrWp7KooQ4gXgNpy31P8Ad0kpLVVrVfkRQvwJhAM24FEp5fIqNsklhBDfAd1w\nZp7KBJ4H5gGzgZo4L4JDpJQXPwirVpRyHqeB94FIIAfYKqXsW1U2nuWqFlgvXrx4qUqu2ikCL168\neKlqvALrxYsXLx7CK7BevHjx4iG8AuvFixcvHsIrsF68ePHiIbwC68WLFy8ewiuwXrx48eIhvALr\nxYsXLx7i/wECuIO28SjMHwAAAABJRU5ErkJggg==\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Compare this to the previous 3-bin figure with quantiles\n", - "tracts.plot(column='CRIME', scheme='fisher_jenks', k=3, cmap='OrRd', edgecolor='k', legend=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Other classification schemes in PySAL\n", - "\n", - "Geopandas includes only the most used classifiers found in PySAL. In order to use the others, you will need to add them as additional columns to your GeoDataFrame.\n", - "\n", - ">The max-p algorithm determines the number of regions (p) endogenously based on a set of areas, a matrix of attributes on each area and a floor constraint. The floor constraint defines the minimum bound that a variable must reach for each region; for example, a constraint might be the minimum population each region must have. max-p further enforces a contiguity constraint on the areas within regions." - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
AREAPERIMETERCOLUMBUS_COLUMBUS_IPOLYIDNEIGHOVALINCCRIMEOPEN...XYNSANSBEWCPTHOUSNEIGNOgeometryMax_P
00.3094412.440629251580.46700319.53115.7259802.850747...38.79999944.0700001.01.01.00.01000.01005.0POLYGON ((8.624129295349121 14.23698043823242,...0
10.2593292.236939312144.56700121.23218.8017545.296720...35.61999942.3800011.01.00.00.01000.01001.0POLYGON ((8.252790451049805 14.23694038391113,...0
20.1924682.187547463626.35000015.95630.6267814.534649...39.82000041.1800001.01.01.00.01000.01006.0POLYGON ((8.653305053710938 14.00809001922607,...2
30.0838411.427635524233.2000014.47732.3877600.394427...36.50000040.5200001.01.00.00.01000.01002.0POLYGON ((8.459499359130859 13.82034969329834,...2
40.4888882.997133675723.22500011.25250.7315100.405664...40.00999838.0000001.01.01.00.01000.01007.0POLYGON ((8.685274124145508 13.63951969146729,...3
\n", - "

5 rows × 22 columns

\n", - "
" - ], - "text/plain": [ - " AREA PERIMETER COLUMBUS_ COLUMBUS_I POLYID NEIG HOVAL \\\n", - "0 0.309441 2.440629 2 5 1 5 80.467003 \n", - "1 0.259329 2.236939 3 1 2 1 44.567001 \n", - "2 0.192468 2.187547 4 6 3 6 26.350000 \n", - "3 0.083841 1.427635 5 2 4 2 33.200001 \n", - "4 0.488888 2.997133 6 7 5 7 23.225000 \n", - "\n", - " INC CRIME OPEN ... X Y NSA NSB EW \\\n", - "0 19.531 15.725980 2.850747 ... 38.799999 44.070000 1.0 1.0 1.0 \n", - "1 21.232 18.801754 5.296720 ... 35.619999 42.380001 1.0 1.0 0.0 \n", - "2 15.956 30.626781 4.534649 ... 39.820000 41.180000 1.0 1.0 1.0 \n", - "3 4.477 32.387760 0.394427 ... 36.500000 40.520000 1.0 1.0 0.0 \n", - "4 11.252 50.731510 0.405664 ... 40.009998 38.000000 1.0 1.0 1.0 \n", - "\n", - " CP THOUS NEIGNO geometry \\\n", - "0 0.0 1000.0 1005.0 POLYGON ((8.624129295349121 14.23698043823242,... \n", - "1 0.0 1000.0 1001.0 POLYGON ((8.252790451049805 14.23694038391113,... \n", - "2 0.0 1000.0 1006.0 POLYGON ((8.653305053710938 14.00809001922607,... \n", - "3 0.0 1000.0 1002.0 POLYGON ((8.459499359130859 13.82034969329834,... \n", - "4 0.0 1000.0 1007.0 POLYGON ((8.685274124145508 13.63951969146729,... \n", - "\n", - " Max_P \n", - "0 0 \n", - "1 0 \n", - "2 2 \n", - "3 2 \n", - "4 3 \n", - "\n", - "[5 rows x 22 columns]" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "def max_p(values, k):\n", - " \"\"\"\n", - " Given a list of values and `k` bins,\n", - " returns a list of their Maximum P bin number.\n", - " \"\"\"\n", - " from pysal.esda.mapclassify import Max_P_Classifier\n", - " binning = Max_P_Classifier(values, k=k)\n", - " return binning.yb\n", - "\n", - "tracts['Max_P'] = max_p(tracts['CRIME'].values, k=5)\n", - "tracts.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "tracts.plot(column='Max_P', cmap='OrRd', edgecolor='k', categorical=True, legend=True)" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.6.1" - } - }, - "nbformat": 4, - "nbformat_minor": 1 -} diff --git a/examples/create_geopandas_from_pandas.py b/examples/create_geopandas_from_pandas.py deleted file mode 100644 index ca32e66..0000000 --- a/examples/create_geopandas_from_pandas.py +++ /dev/null @@ -1,91 +0,0 @@ -""" -Creating a GeoDataFrame from a DataFrame with coordinates ---------------------------------------------------------- - -This example shows how to create a ``GeoDataFrame`` when starting from -a *regular* ``DataFrame`` that has coordinates either WKT -(`well-known text `_) -format, or in -two columns. - -""" -import pandas as pd -import geopandas -import matplotlib.pyplot as plt - -############################################################################### -# From longitudes and latitudes -# ============================= -# -# First, let's consider a ``DataFrame`` containing cities and their respective -# longitudes and latitudes. - -df = pd.DataFrame( - {'City': ['Buenos Aires', 'Brasilia', 'Santiago', 'Bogota', 'Caracas'], - 'Country': ['Argentina', 'Brazil', 'Chile', 'Colombia', 'Venezuela'], - 'Latitude': [-34.58, -15.78, -33.45, 4.60, 10.48], - 'Longitude': [-58.66, -47.91, -70.66, -74.08, -66.86]}) - -############################################################################### -# A ``GeoDataFrame`` needs a ``shapely`` object. We use geopandas -# ``points_from_xy()`` to transform **Longitude** and **Latitude** into a list -# of ``shapely.Point`` objects and set it as a ``geometry`` while creating the -# ``GeoDataFrame``. (note that ``points_from_xy()`` is an enhanced wrapper for -# ``[Point(x, y) for x, y in zip(df.Longitude, df.Latitude)]``) - -gdf = geopandas.GeoDataFrame( - df, geometry=geopandas.points_from_xy(df.Longitude, df.Latitude)) - - -############################################################################### -# ``gdf`` looks like this : - -print(gdf.head()) - -############################################################################### -# Finally, we plot the coordinates over a country-level map. - -world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres')) - -# We restrict to South America. -ax = world[world.continent == 'South America'].plot( - color='white', edgecolor='black') - -# We can now plot our ``GeoDataFrame``. -gdf.plot(ax=ax, color='red') - -plt.show() - -############################################################################### -# From WKT format -# =============== -# Here, we consider a ``DataFrame`` having coordinates in WKT format. - -df = pd.DataFrame( - {'City': ['Buenos Aires', 'Brasilia', 'Santiago', 'Bogota', 'Caracas'], - 'Country': ['Argentina', 'Brazil', 'Chile', 'Colombia', 'Venezuela'], - 'Coordinates': ['POINT(-58.66 -34.58)', 'POINT(-47.91 -15.78)', - 'POINT(-70.66 -33.45)', 'POINT(-74.08 4.60)', - 'POINT(-66.86 10.48)']}) - -############################################################################### -# We use ``shapely.wkt`` sub-module to parse wkt format: -from shapely import wkt - -df['Coordinates'] = df['Coordinates'].apply(wkt.loads) - -############################################################################### -# The ``GeoDataFrame`` is constructed as follows : - -gdf = geopandas.GeoDataFrame(df, geometry='Coordinates') - -print(gdf.head()) - -################################################################################# -# Again, we can plot our ``GeoDataFrame``. -ax = world[world.continent == 'South America'].plot( - color='white', edgecolor='black') - -gdf.plot(ax=ax, color='red') - -plt.show() diff --git a/examples/overlays.ipynb b/examples/overlays.ipynb deleted file mode 100644 index 5b6b935..0000000 --- a/examples/overlays.ipynb +++ /dev/null @@ -1,721 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Spatial overlays allow you to compare two GeoDataFrames containing polygon or multipolygon geometries \n", - "and create a new GeoDataFrame with the new geometries representing the spatial combination *and*\n", - "merged properties. This allows you to answer questions like\n", - "\n", - "> What are the demographics of the census tracts within 1000 ft of the highway?\n", - "\n", - "The basic idea is demonstrated by the graphic below but keep in mind that overlays operate at the dataframe level, \n", - "not on individual geometries, and the properties from both are retained" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:09:34.256318Z", - "start_time": "2017-12-15T21:09:34.226318Z" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from IPython.core.display import Image\n", - "Image(url=\"http://docs.qgis.org/testing/en/_images/overlay_operations.png\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we can load up two GeoDataFrames containing (multi)polygon geometries..." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:09:36.236298Z", - "start_time": "2017-12-15T21:09:34.256318Z" - } - }, - "outputs": [], - "source": [ - "%matplotlib inline\n", - "from shapely.geometry import Point\n", - "from geopandas import datasets, GeoDataFrame, read_file\n", - "from geopandas.tools import overlay\n", - "\n", - "# NYC Boros\n", - "zippath = datasets.get_path('nybb')\n", - "polydf = read_file(zippath)\n", - "\n", - "# Generate some circles\n", - "b = [int(x) for x in polydf.total_bounds]\n", - "N = 10\n", - "polydf2 = GeoDataFrame([\n", - " {'geometry': Point(x, y).buffer(10000), 'value1': x + y, 'value2': x - y}\n", - " for x, y in zip(range(b[0], b[2], int((b[2] - b[0]) / N)),\n", - " range(b[1], b[3], int((b[3] - b[1]) / N)))])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The first dataframe contains multipolygons of the NYC boros" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:09:36.526295Z", - "start_time": "2017-12-15T21:09:36.236298Z" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\nyQAAAABJRU5ErkJggg==\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "polydf.plot()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "And the second GeoDataFrame is a sequentially generated set of circles in the same geographic space. We'll plot these with a [different color palette](https://matplotlib.org/examples/color/colormaps_reference.html)." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:09:36.756293Z", - "start_time": "2017-12-15T21:09:36.526295Z" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "polydf2.plot(cmap='tab20b')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The `geopandas.tools.overlay` function takes three arguments:\n", - "\n", - "* df1\n", - "* df2\n", - "* how\n", - "\n", - "Where `how` can be one of:\n", - "\n", - " ['intersection',\n", - " 'union',\n", - " 'identity',\n", - " 'symmetric_difference',\n", - " 'difference']\n", - "\n", - "So let's identify the areas (and attributes) where both dataframes intersect using the `overlay` tool. " - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:09:39.796263Z", - "start_time": "2017-12-15T21:09:36.756293Z" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\nAAAASUVORK5CYII=\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "from geopandas.tools import overlay\n", - "newdf = overlay(polydf, polydf2, how=\"intersection\")\n", - "newdf.plot(cmap='tab20b')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "And take a look at the attributes; we see that the attributes from both of the original GeoDataFrames are retained. " - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:09:40.416257Z", - "start_time": "2017-12-15T21:09:39.796263Z" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
BoroCodeBoroNameShape_LengShape_Areageometry
05Staten Island330470.0103321.623820e+09(POLYGON ((970217.0223999023 145643.3322143555...
14Queens896344.0477633.045213e+09(POLYGON ((1029606.076599121 156073.8142089844...
23Brooklyn741080.5231661.937479e+09(POLYGON ((1021176.479003906 151374.7969970703...
31Manhattan359299.0964716.364715e+08(POLYGON ((981219.0557861328 188655.3157958984...
42Bronx464392.9918241.186925e+09(POLYGON ((1012821.805786133 229228.2645874023...
\n", - "
" - ], - "text/plain": [ - " BoroCode BoroName Shape_Leng Shape_Area \\\n", - "0 5 Staten Island 330470.010332 1.623820e+09 \n", - "1 4 Queens 896344.047763 3.045213e+09 \n", - "2 3 Brooklyn 741080.523166 1.937479e+09 \n", - "3 1 Manhattan 359299.096471 6.364715e+08 \n", - "4 2 Bronx 464392.991824 1.186925e+09 \n", - "\n", - " geometry \n", - "0 (POLYGON ((970217.0223999023 145643.3322143555... \n", - "1 (POLYGON ((1029606.076599121 156073.8142089844... \n", - "2 (POLYGON ((1021176.479003906 151374.7969970703... \n", - "3 (POLYGON ((981219.0557861328 188655.3157958984... \n", - "4 (POLYGON ((1012821.805786133 229228.2645874023... " - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "polydf.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:09:40.446256Z", - "start_time": "2017-12-15T21:09:40.416257Z" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
geometryvalue1value2
0POLYGON ((923175 120121, 923126.847266722 1191...1033296793054
1POLYGON ((938595 135393, 938546.847266722 1344...1063988793202
2POLYGON ((954015 150665, 953966.847266722 1496...1094680793350
3POLYGON ((969435 165937, 969386.847266722 1649...1125372793498
4POLYGON ((984855 181209, 984806.847266722 1802...1156064793646
\n", - "
" - ], - "text/plain": [ - " geometry value1 value2\n", - "0 POLYGON ((923175 120121, 923126.847266722 1191... 1033296 793054\n", - "1 POLYGON ((938595 135393, 938546.847266722 1344... 1063988 793202\n", - "2 POLYGON ((954015 150665, 953966.847266722 1496... 1094680 793350\n", - "3 POLYGON ((969435 165937, 969386.847266722 1649... 1125372 793498\n", - "4 POLYGON ((984855 181209, 984806.847266722 1802... 1156064 793646" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "polydf2.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:09:40.586255Z", - "start_time": "2017-12-15T21:09:40.446256Z" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
BoroCodeBoroNameShape_LengShape_Areavalue1value2geometry
05Staten Island330470.0103321.623820e+091033296793054POLYGON ((916755.4256330276 129447.9617643995,...
15Staten Island330470.0103321.623820e+091063988793202POLYGON ((938595 135393, 938546.847266722 1344...
25Staten Island330470.0103321.623820e+091125372793498POLYGON ((961436.3049926758 175473.0296020508,...
35Staten Island330470.0103321.623820e+091094680793350POLYGON ((954015 150665, 953966.847266722 1496...
42Bronx464392.9918241.186925e+091309524794386POLYGON ((1043287.193237305 260300.0289916992,...
\n", - "
" - ], - "text/plain": [ - " BoroCode BoroName Shape_Leng Shape_Area value1 value2 \\\n", - "0 5 Staten Island 330470.010332 1.623820e+09 1033296 793054 \n", - "1 5 Staten Island 330470.010332 1.623820e+09 1063988 793202 \n", - "2 5 Staten Island 330470.010332 1.623820e+09 1125372 793498 \n", - "3 5 Staten Island 330470.010332 1.623820e+09 1094680 793350 \n", - "4 2 Bronx 464392.991824 1.186925e+09 1309524 794386 \n", - "\n", - " geometry \n", - "0 POLYGON ((916755.4256330276 129447.9617643995,... \n", - "1 POLYGON ((938595 135393, 938546.847266722 1344... \n", - "2 POLYGON ((961436.3049926758 175473.0296020508,... \n", - "3 POLYGON ((954015 150665, 953966.847266722 1496... \n", - "4 POLYGON ((1043287.193237305 260300.0289916992,... " - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "newdf.head()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now let's look at the other `how` operations:" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:09:44.026220Z", - "start_time": "2017-12-15T21:09:40.586255Z" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "newdf = overlay(polydf, polydf2, how=\"union\")\n", - "newdf.plot(cmap='tab20b')" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:09:47.366187Z", - "start_time": "2017-12-15T21:09:44.026220Z" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\nhTJaCoViWPH/2UAwmuqzL+4AAAAASUVORK5CYII=\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "newdf = overlay(polydf, polydf2, how=\"identity\")\n", - "newdf.plot(cmap='tab20b')" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:09:50.556155Z", - "start_time": "2017-12-15T21:09:47.366187Z" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "newdf = overlay(polydf, polydf2, how=\"symmetric_difference\")\n", - "newdf.plot(cmap='tab20b')" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:09:53.566125Z", - "start_time": "2017-12-15T21:09:50.556155Z" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "newdf = overlay(polydf, polydf2, how=\"difference\")\n", - "newdf.plot(cmap='tab20b')" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.6.1" - } - }, - "nbformat": 4, - "nbformat_minor": 1 -} diff --git a/examples/plot_clip.py b/examples/plot_clip.py deleted file mode 100644 index 9a4b89d..0000000 --- a/examples/plot_clip.py +++ /dev/null @@ -1,116 +0,0 @@ -""" -Clip Vector Data with GeoPandas -================================================================== - -Learn how to clip geometries to the boundary of a polygon geometry -using GeoPandas. - -.. currentmodule:: geopandas - -""" - -############################################################################### -# -# The example below shows you how to clip a set of vector geometries -# to the spatial extent / shape of another vector object. Both sets of geometries -# must be opened with GeoPandas as GeoDataFrames and be in the same Coordinate -# Reference System (CRS) for the :func:`clip` function in GeoPandas to work. -# -# This example uses GeoPandas example data ``'naturalearth_cities'`` and -# ``'naturalearth_lowres'``, alongside a custom rectangle geometry made with -# shapely and then turned into a GeoDataFrame. -# -# .. note:: -# The object to be clipped will be clipped to the full extent of the clip -# object. If there are multiple polygons in clip object, the input data will -# be clipped to the total boundary of all polygons in clip object. - -############################################################################### -# Import Packages -# --------------- -# -# To begin, import the needed packages. - -import matplotlib.pyplot as plt -import geopandas -from shapely.geometry import Polygon - -############################################################################### -# Get or Create Example Data -# -------------------------- -# -# Below, the example GeoPandas data is imported and opened as a GeoDataFrame. -# Additionally, a polygon is created with shapely and then converted into a -# GeoDataFrame with the same CRS as the GeoPandas world dataset. - -capitals = geopandas.read_file(geopandas.datasets.get_path("naturalearth_cities")) -world = geopandas.read_file(geopandas.datasets.get_path("naturalearth_lowres")) - -# Create a subset of the world data that is just the South American continent -south_america = world[world["continent"] == "South America"] - -# Create a custom polygon -polygon = Polygon([(0, 0), (0, 90), (180, 90), (180, 0), (0, 0)]) -poly_gdf = geopandas.GeoDataFrame([1], geometry=[polygon], crs=world.crs) - -############################################################################### -# Plot the Unclipped Data -# ----------------------- - -fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(12, 8)) -world.plot(ax=ax1) -poly_gdf.boundary.plot(ax=ax1, color="red") -south_america.boundary.plot(ax=ax2, color="green") -capitals.plot(ax=ax2, color="purple") -ax1.set_title("All Unclipped World Data", fontsize=20) -ax2.set_title("All Unclipped Capital Data", fontsize=20) -ax1.set_axis_off() -ax2.set_axis_off() -plt.show() - -############################################################################### -# Clip the Data -# -------------- -# -# When you call :func:`clip`, the first object called is the object that will -# be clipped. The second object called is the clip extent. The returned output -# will be a new clipped GeoDataframe. All of the attributes for each returned -# geometry will be retained when you clip. -# -# .. note:: -# Recall that the data must be in the same CRS in order to use the -# :func:`clip` function. If the data are not in the same CRS, be sure to use -# the GeoPandas :meth:`~GeoDataFrame.to_crs` method to ensure both datasets -# are in the same CRS. - -############################################################################### -# Clip the World Data -# -------------------- - -world_clipped = geopandas.clip(world, polygon) - -# Plot the clipped data -# The plot below shows the results of the clip function applied to the world -# sphinx_gallery_thumbnail_number = 2 -fig, ax = plt.subplots(figsize=(12, 8)) -world_clipped.plot(ax=ax, color="purple") -world.boundary.plot(ax=ax) -poly_gdf.boundary.plot(ax=ax, color="red") -ax.set_title("World Clipped", fontsize=20) -ax.set_axis_off() -plt.show() - -############################################################################### -# Clip the Capitals Data -# ---------------------- - -capitals_clipped = geopandas.clip(capitals, south_america) - -# Plot the clipped data -# The plot below shows the results of the clip function applied to the capital cities -fig, ax = plt.subplots(figsize=(12, 8)) -capitals_clipped.plot(ax=ax, color="purple") -south_america.boundary.plot(ax=ax, color="green") -ax.set_title("Capitals Clipped", fontsize=20) -ax.set_axis_off() -plt.show() diff --git a/examples/plotting_basemap_background.py b/examples/plotting_basemap_background.py deleted file mode 100644 index 5be6891..0000000 --- a/examples/plotting_basemap_background.py +++ /dev/null @@ -1,61 +0,0 @@ -""" -Adding a background map to plots --------------------------------- - -This example shows how you can add a background basemap to plots created -with the geopandas ``.plot()`` method. This makes use of the -`contextily `__ package to retrieve -web map tiles from several sources (OpenStreetMap, Stamen). - -""" -# sphinx_gallery_thumbnail_number = 3 -import geopandas - -############################################################################### -# Let's use the NYC borough boundary data that is available in geopandas -# datasets. Plotting this gives the following result: - -df = geopandas.read_file(geopandas.datasets.get_path('nybb')) -ax = df.plot(figsize=(10, 10), alpha=0.5, edgecolor='k') - -############################################################################### -# Convert the data to Web Mercator -# ================================ -# -# Web map tiles are typically provided in -# `Web Mercator `__ -# (`EPSG 3857 `__), so we need to make sure to convert -# our data first to the same CRS to combine our polygons and background tiles -# in the same map: - -df = df.to_crs(epsg=3857) - -############################################################################### - -import contextily as ctx - -############################################################################### -# Add background tiles to plot -# ============================ -# -# We can use `add_basemap` function of contextily to easily add a background -# map to our plot. : - -ax = df.plot(figsize=(10, 10), alpha=0.5, edgecolor='k') -ctx.add_basemap(ax) - -############################################################################### -# We can control the detail of the map tiles using the optional `zoom` keyword -# (be careful to not specify a too high `zoom` level, -# as this can result in a large download).: - -ax = df.plot(figsize=(10, 10), alpha=0.5, edgecolor='k') -ctx.add_basemap(ax, zoom=12) - -############################################################################### -# By default, contextily uses the Stamen Terrain style. We can specify a -# different style using ``ctx.providers``: - -ax = df.plot(figsize=(10, 10), alpha=0.5, edgecolor='k') -ctx.add_basemap(ax, url=ctx.providers.Stamen.TonerLite) -ax.set_axis_off() diff --git a/examples/plotting_with_folium.ipynb b/examples/plotting_with_folium.ipynb deleted file mode 100644 index 5b3877e..0000000 --- a/examples/plotting_with_folium.ipynb +++ /dev/null @@ -1,478 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Plotting with folium\n", - "\n", - "__What is Folium?__\n", - "\n", - "It builds on the data wrangling and a Python wrapper for leaflet.js. It makes it easy to visualize data in Python with minimal instructions.\n", - "\n", - "Folium expands on the data wrangling properties utilized in Python language and the mapping characteristics of the Leaflet.js library. Folium enables us to make an intuitive map and are is visualized in a Leaflet map after manipulating data in Python. Folium results are intuitive which makes this library helpful for dashboard building and easier to work with.\n", - "\n", - "Let's see the implementation of both GeoPandas and Folium:" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "# Importing Libraries\n", - "import pandas as pd\n", - "import geopandas\n", - "import folium\n", - "import matplotlib.pyplot as plt\n", - "\n", - "from shapely.geometry import Point" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "RangeIndex: 63 entries, 0 to 62\n", - "Data columns (total 6 columns):\n", - "Year 63 non-null int64\n", - "Name 63 non-null object\n", - "Country 63 non-null object\n", - "Latitude 63 non-null float64\n", - "Longitude 63 non-null float64\n", - "Type 63 non-null object\n", - "dtypes: float64(2), int64(1), object(3)\n", - "memory usage: 3.0+ KB\n" - ] - } - ], - "source": [ - "df1 = pd.read_csv('volcano_data_2010.csv')\n", - "df = df1.loc[:, (\"Year\", \"Name\", \"Country\", \"Latitude\", \"Longitude\", \"Type\")]\n", - "df.info()" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "scrolled": false - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
YearNameCountryLatitudeLongitudeTypegeometry
02010TungurahuaEcuador-1.467-78.442StratovolcanoPOINT (-78.44199999999999 -1.467)
12010EyjafjallajokullIceland63.630-19.620StratovolcanoPOINT (-19.62 63.63)
22010PacayaGuatemala14.381-90.601Complex volcanoPOINT (-90.601 14.381)
32010SariganUnited States16.708145.780StratovolcanoPOINT (145.78 16.708)
42010Karangetang [Api Siau]Indonesia2.780125.480StratovolcanoPOINT (125.48 2.78)
\n", - "
" - ], - "text/plain": [ - " Year Name Country Latitude Longitude \\\n", - "0 2010 Tungurahua Ecuador -1.467 -78.442 \n", - "1 2010 Eyjafjallajokull Iceland 63.630 -19.620 \n", - "2 2010 Pacaya Guatemala 14.381 -90.601 \n", - "3 2010 Sarigan United States 16.708 145.780 \n", - "4 2010 Karangetang [Api Siau] Indonesia 2.780 125.480 \n", - "\n", - " Type geometry \n", - "0 Stratovolcano POINT (-78.44199999999999 -1.467) \n", - "1 Stratovolcano POINT (-19.62 63.63) \n", - "2 Complex volcano POINT (-90.601 14.381) \n", - "3 Stratovolcano POINT (145.78 16.708) \n", - "4 Stratovolcano POINT (125.48 2.78) " - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "geometry = geopandas.points_from_xy(df.Longitude, df.Latitude)\n", - "geo_df = geopandas.GeoDataFrame(df[['Year','Name','Country', 'Latitude', 'Longitude', 'Type']], geometry=geometry)\n", - "\n", - "geo_df.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array(['Stratovolcano', 'Complex volcano', 'Shield volcano',\n", - " 'Subglacial volcano', 'Lava dome', 'Caldera'], dtype=object)" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres'))\n", - "df.Type.unique()" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Text(0.5, 1.0, 'Volcanoes')" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABWkAAAK1CAYAAAC6tmwFAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3Xl8XHW9P/7XZ/Y922Rt0qQt3SgpS4twWdpQpCBipfeLFFHWB3ALFqh8L+JFvfb6VUQEL5tCEbTorwqIoparF+HSykWqNkVosYW2aZM0S5PMJJl9n8/vj/QcZ5JJMlkny+v5eJzHTE7ONpNkcs77vD/vt5BSgoiIiIiIiIiIiIhyQ5PrAyAiIiIiIiIiIiKazRikJSIiIiIiIiIiIsohBmmJiIiIiIiIiIiIcohBWiIiIiIiIiIiIqIcYpCWiIiIiIiIiIiIKIcYpCUiIiIiIiIiIiLKIQZpiYiIiGjaEULcKIR4O9fHQUREREQ0HhikJSIiIqKcEEK8JoT4Rob5nxZCnBBC6HJxXEREREREk41BWiIiIiLKlW0ArhNCiH7zrwOwXUoZn/xDIiIiIiKafAzSEhEREVGu/BpAIYALlRlCiAIAVwD4iRAiTwjxEyFElxCiSQjxVSFExvNXIcQyIcTrQohuIUSHEOL+k/M/JoTYLYToFUK0CyGeFEIYUtaTQoiNQojDQogeIcT3laCxEEJzcp9NQojOk8eSl7LuuUKId05u+30hRF3K924UQhwVQviEEMeEEJ8b5/eOiIiIiGYQBmmJiIiIKCeklCEALwG4PmX21QA+lFK+D+AJAHkA5gNYfXK5m/pvRwhhB/AGgP8GUAHgFAD/c/LbCQBfBOAE8E8ALgZwR79NXAHgbACnn9z/pSfn33hyuujkMdgAPHlyn3MA/BeAb6Iv0PyvAH4phCgWQlgBPA7gE1JKO4DzALw3greGiIiIiGYZBmmJiIiIKJeeB/AZIYT55NfXA3heCKEFsAHAv0kpfVLKRgCPoK8UQn9XADghpXxEShk+ufxfAEBKuVdK+WcpZfzkNraiL+Cb6kEpZa+UshnATgBnnJz/OQDfk1IelVL6AfwbgGtO1sr9PIDfSSl/J6VMSilfB1AP4PKT6yYBnCaEMEsp26WUfx/b20REREREMxmDtERERESUM1LKtwF0Afi0EGI++jJaf4a+zFcDgKaUxZsAzMmwmSoADZm2L4RYJIR49WQjMi+AB05uO9WJlOdB9GXMAn1Zuf33rwNQCqAafcHlXmUCcAGAcillAH0B5o0A2oUQ/yWEWDLU+0BEREREsxuDtERERESUaz9BXwbtdQD+IKXsAOACEENfMFQxF0BrhvWPA1gwyLafAvAhgIVSSgeA+wH0b1Q2mLYM+48D6Di5z59KKfNTJquU8kEAkFK+JqW8BED5yf3/MMt9EhEREdEsxCAtEREREeXaTwB8HMCt6Ct/ACllAn31ar8lhLALIaoB3APg/8uw/qsAyoQQm4UQxpPLn3Pye3YAXgD+k9mst4/guH4O4ItCiHlCCBv6snBflFLGTx7Hp4QQlwohtEIIkxCiTghRKYQoFUKsO1mbNgLAj77auEREREREGTFIS0REREQ5dbJW7DsArAB+m/KtOwEEABwF8Db6yiD8KMP6PgCXAPgU+koXHEZfsy+gr6HXtQB86MtmfXEEh/YjAD8F8BaAYwDCJ48JUsrjAD6NvszcLvRl1t6LvvNrDYD/i75M3G701cDt36yMiIiIiEglpJS5PgYiIiIiIiIiIiKiWYuZtEREREREREREREQ5xCAtERERERERERERUQ4xSEtERERERERERESUQwzSEhEREREREREREeUQg7REREREREREREREOaTL9QGkcjqdsqamJteHQURERERERERERDRme/fudUkpi4dbbkoFaWtqalBfX5/rwyAiIiIiIiIiIiIaMyFEUzbLsdwBERERERERERERUQ4xSEtERERERERERESUQwzSEhEREREREREREeXQlKpJS0RERERERERENN3EYjG0tLQgHA7n+lAoR0wmEyorK6HX60e1PoO0REREREREREREY9DS0gK73Y6amhoIIXJ9ODTJpJRwu91oaWnBvHnzRrUNljsgIiIiIiIiIiIag3A4jKKiIgZoZykhBIqKisaUSc1MWiIiIiIiIiIiojEaSYDWG47h9/vb0emNoMRhxCdqy+EwjW6YPE0NYw3QM0hLREREREREREQ0SZ588zB+sKsBwWhCnfcfOw7gjroF2LRm4Zi2feLECWzevBl79uyB0WhETU0NHn30USxatCjj8jabDX6/f8D8G2+8EVdccQWuuuqqMR0PZY/lDoiIiIiIiIiIiCbBk28exsN/OJQWoAWAYDSBh/9wCE++eXjU25ZSYv369airq0NDQwMOHDiABx54AB0dHWM97GHF4/EJ38dMxyAtERERERERERHRBPOGY/jBroYhl/nBrgb4wrFRbX/nzp3Q6/XYuHGjOu+MM87AmWeeiYsvvhhnnXUWamtr8Zvf/GbAulJKbNq0Caeeeio++clPorOzU/3e3r17sXr1aqxYsQKXXnop2tvbAQB1dXW4//77sXr1ajz22GPYsWMHzjnnHJx55pn4+Mc/PinB4ZmE5Q6IiIiIiIiIiIgm2O/3tw/IoO0vGE3g9/tP4Oqzq0a8/Q8++AArVqwYMN9kMuGVV16Bw+GAy+XCueeei3Xr1qXVUH3llVfw0UcfYf/+/ejo6MCpp56Km2++GbFYDHfeeSd+85vfoLi4GC+++CK+8pWv4Ec/+hEAoLe3F3/84x8BAD09Pfjzn/8MIQSeffZZPPTQQ3jkkUdG/DpmKwZpiYiIiIiIiIiIJlinN5Ldcr7wuO5XSon7778fb731FjQaDVpbW9HR0YGysjJ1mbfeeguf/exnodVqUVFRgTVr1gAAPvroI3zwwQe45JJLAACJRALl5eXqehs2bFCft7S0YMOGDWhvb0c0GsW8efPG9XXMdAzSEhERERERERERTbAShzG75eymUW1/2bJlePnllwfM3759O7q6urB3717o9XrU1NQgHB4YCE7NrFVIKbFs2TLs3r074z6tVqv6/M4778Q999yDdevWYdeuXdiyZcuoXsdsxZq0REREREREREREE+wTteWwGLRDLmMxaPGJ2rIhlxnMmjVrEIlE8MMf/lCdt2fPHjQ1NaGkpAR6vR47d+5EU1PTgHVXrVqFF154AYlEAu3t7di5cycAYPHixejq6lKDtLFYDH//+98z7t/j8WDOnDkAgOeff35Ur2E2Y5CWiIiIiIiIiIhogjlMetxRt2DIZe6oWwC7ST+q7Qsh8Morr+D111/HggULsGzZMmzZsgWXX3456uvrsXLlSmzfvh1LliwZsO769euxcOFC1NbW4vbbb8fq1asBAAaDAS+//DLuu+8+nH766TjjjDPwzjvvZNz/li1b8JnPfAYXXnghnE7nqF7DbCaklLk+BtXKlStlfX19rg+DiIiIiIiIiIgoawcPHsTSpUuzWvbJNw/jB7sa0pqIWQxa3FG3AJvWLJyoQ6RJkOn3QAixV0q5crh1WZOWiIiIiIiIiIhokmxasxA3nFeD3+8/gU5fGCV2Ez5RWzbqDFqaGRikJSIiIiIiIiIimkR2kx5Xn12V68OgKYQ1aYmIiIiIiIiIiIhyiEFaIiIiIiIiIiIiohxikJaIiIiIiIiIiIgoh1iTloiIiIiIiIiIaBL5oj683vQ6uoJdKLYU45LqS2A32HN9WJRDzKQlIiIiIiIiIiKaJM/sewYX/+JifP2dr+PJ957E19/5Oi7+xcV4Zt8zY9ruiRMncM0112DBggU49dRTcfnll+PQoUPjdNQD7dq1C1dcccWEbX8w27Ztw6ZNmyZ9vxONmbREREREREREREST4Jl9z+CJvz0xYH4oHlLn37b8thFvV0qJ9evX44YbbsALL7wAAHjvvffQ0dGBRYsWje2gaVIwk5aIiIiIiIiIiGiC+aI+PLv/2SGXeXb/s/BH/SPe9s6dO6HX67Fx40Z13hlnnIELL7wQUkrce++9OO2001BbW4sXX3wRQF8m7OrVq3H11Vdj0aJF+PKXv4zt27fjYx/7GGpra9HQ0AAAuPHGG7Fx40ZceOGFWLRoEV599dUB+w8EArj55ptx9tln48wzz8RvfvMbAMD3vvc93HzzzQCA/fv347TTTkMwGExb95xzzsHf//539eu6ujrs3bsX3d3duPLKK7F8+XKce+652Ldv34D9dnR0YP369Tj99NNx+umn45133gEAXHnllVixYgWWLVuGZ575R4ayzWbDV77yFZx++uk499xz0dHRAQBoamrCxRdfjOXLl+Piiy9Gc3PziH8GY8UgLRERERERERER0QR7vel1hOKhIZcJxUN4ven1EW/7gw8+wIoVKzJ+71e/+hXee+89vP/++3jjjTdw7733or29HQDw/vvv47HHHsP+/fvx05/+FIcOHcJf//pX3HLLLXjiiX9k/DY2NuKPf/wj/uu//gsbN25EOBxO28e3vvUtrFmzBnv27MHOnTtx7733IhAIYPPmzThy5AheeeUV3HTTTdi6dSssFkvautdccw1eeuklAEB7ezva2tqwYsUKfP3rX8eZZ56Jffv24YEHHsD1118/4LXdddddWL16Nd5//328++67WLZsGQDgRz/6Efbu3Yv6+no8/vjjcLvdAPqCyeeeey7ef/99rFq1Cj/84Q8BAJs2bcL111+Pffv24XOf+xzuuuuu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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "fig, ax = plt.subplots(figsize=(24,18))\n", - "world.plot(ax=ax, alpha=0.4, color='grey')\n", - "geo_df.plot(column='Type', ax=ax, legend=True)\n", - "plt.title('Volcanoes')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We will be using different icons to differentiate the types of Volcanoes using Folium.\n", - "But before we start, we can see a few different tiles to choose from folium." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Stamen Terrain\n", - "map = folium.Map(location = [13.406,80.110], tiles = \"Stamen Terrain\", zoom_start = 9)\n", - "map" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# OpenStreetMap\n", - "map = folium.Map(location = [13.406,80.110], tiles='OpenStreetMap' , zoom_start = 9)\n", - "map" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Stamen Toner\n", - "map = folium.Map(location = [13.406,80.110], tiles='Stamen Toner', zoom_start = 9)\n", - "map" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can use other tiles for the visualization, these are just a few examples.\n", - "\n", - "### Markers\n", - "Now, let's look at different volcanoes on the map using different Markers to represent the volcanoes." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "#use terrain map layer to actually see volcano terrain\n", - "map = folium.Map(location = [4,10], tiles = \"Stamen Terrain\", zoom_start = 3)" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "# insert multiple markers, iterate through list\n", - "# add a different color marker associated with type of volcano\n", - "\n", - "geo_df_list = [[point.xy[1][0], point.xy[0][0]] for point in geo_df.geometry ]\n", - "\n", - "i = 0\n", - "for coordinates in geo_df_list:\n", - " #assign a color marker for the type of volcano, Strato being the most common\n", - " if geo_df.Type[i] == \"Stratovolcano\":\n", - " type_color = \"green\"\n", - " elif geo_df.Type[i] == \"Complex volcano\":\n", - " type_color = \"blue\"\n", - " elif geo_df.Type[i] == \"Shield volcano\":\n", - " type_color = \"orange\"\n", - " elif geo_df.Type[i] == \"Lava dome\":\n", - " type_color = \"pink\"\n", - " else:\n", - " type_color = \"purple\"\n", - "\n", - "\n", - " #now place the markers with the popup labels and data\n", - " map.add_child(folium.Marker(location = coordinates,\n", - " popup =\n", - " \"Year: \" + str(geo_df.Year[i]) + '
' +\n", - " \"Name: \" + str(geo_df.Name[i]) + '
' +\n", - " \"Country: \" + str(geo_df.Country[i]) + '
'\n", - " \"Type: \" + str(geo_df.Type[i]) + '
'\n", - " \"Coordinates: \" + str(geo_df_list[i]),\n", - " icon = folium.Icon(color = \"%s\" % type_color)))\n", - " i = i + 1" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "map" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Heatmaps\n", - "\n", - "Folium is well known for it's heatmap which create a heatmap layer. To plot a heat map in folium, one needs a list of Latitude, Longitude." - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# In this example, with the hep of heat maps, we are able to perceive the density of volcanoes\n", - "# which is more in some part of the world compared to others.\n", - "\n", - "from folium import plugins\n", - "\n", - "map = folium.Map(location = [15,30], tiles='Cartodb dark_matter', zoom_start = 2)\n", - "\n", - "heat_data = [[point.xy[1][0], point.xy[0][0]] for point in geo_df.geometry ]\n", - "\n", - "heat_data\n", - "plugins.HeatMap(heat_data).add_to(map)\n", - "\n", - "map" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.3" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/examples/plotting_with_geoplot.py b/examples/plotting_with_geoplot.py deleted file mode 100644 index f9ac7da..0000000 --- a/examples/plotting_with_geoplot.py +++ /dev/null @@ -1,105 +0,0 @@ -""" -Plotting with Geoplot and GeoPandas ------------------------------------ - -`Geoplot `_ is a Python -library providing a selection of easy-to-use geospatial visualizations. It is -built on top of the lower-level `CartoPy `_, -covered in a separate section of this tutorial, and is designed to work with -GeoPandas input. - -This example is a brief tour of the `geoplot` API. For more details on the -library refer to `its documentation -`_. - -First we'll load in the data using GeoPandas. -""" -import geopandas -import geoplot - -world = geopandas.read_file( - geopandas.datasets.get_path('naturalearth_lowres') -) -boroughs = geopandas.read_file( - geoplot.datasets.get_path('nyc_boroughs') -) -collisions = geopandas.read_file( - geoplot.datasets.get_path('nyc_injurious_collisions') -) - -############################################################################### -# Plotting with Geoplot -# ===================== -# -# We start out by replicating the basic GeoPandas world plot using Geoplot. -geoplot.polyplot(world, figsize=(8, 4)) - -############################################################################### -# Geoplot can re-project data into any of the map projections provided by -# CartoPy (see the list -# `here `_). - -# use the Orthographic map projection (e.g. a world globe) -ax = geoplot.polyplot( - world, projection=geoplot.crs.Orthographic(), figsize=(8, 4) -) -ax.outline_patch.set_visible(True) - -############################################################################### -# ``polyplot`` is trivial and can only plot the geometries you pass to it. If -# you want to use color as a visual variable, specify a ``choropleth``. Here -# we sort GDP per person by country into five buckets by color, using -# "quantiles" binning from the `Mapclassify `_ -# library. - -import mapclassify -gpd_per_person = world['gdp_md_est'] / world['pop_est'] -scheme = mapclassify.Quantiles(gpd_per_person, k=5) - -# Note: this code sample requires geoplot>=0.4.0. -geoplot.choropleth( - world, hue=gpd_per_person, scheme=scheme, - cmap='Greens', figsize=(8, 4) -) - -############################################################################### -# If you want to use size as a visual variable, use a ``cartogram``. Here are -# population estimates for countries in Africa. - -africa = world.query('continent == "Africa"') -ax = geoplot.cartogram( - africa, scale='pop_est', limits=(0.2, 1), - edgecolor='None', figsize=(7, 8) -) -geoplot.polyplot(africa, edgecolor='gray', ax=ax) - -############################################################################### -# If we have data in the shape of points in space, we may generate a -# three-dimensional heatmap on it using ``kdeplot``. - -ax = geoplot.kdeplot( - collisions.head(1000), clip=boroughs.geometry, - shade=True, cmap='Reds', - projection=geoplot.crs.AlbersEqualArea()) -geoplot.polyplot(boroughs, ax=ax, zorder=1) - -############################################################################### -# Alternatively, we may partition the space into neighborhoods automatically, -# using Voronoi tessellation. This is a good way of visually verifying whether -# or not a certain data column is spatially correlated. - -ax = geoplot.voronoi( - collisions.head(1000), projection=geoplot.crs.AlbersEqualArea(), - clip=boroughs.simplify(0.001), - hue='NUMBER OF PERSONS INJURED', cmap='Reds', - legend=True, - edgecolor='white' -) -geoplot.polyplot(boroughs, edgecolor='black', zorder=1, ax=ax) - -############################################################################### -# These are just some of the plots you can make with Geoplot. There are -# many other possibilities not covered in this brief introduction. For more -# examples, refer to the -# `Gallery `_ in -# the Geoplot documentation. diff --git a/examples/polygon_plotting_with_folium.ipynb b/examples/polygon_plotting_with_folium.ipynb deleted file mode 100644 index 556b8fd..0000000 --- a/examples/polygon_plotting_with_folium.ipynb +++ /dev/null @@ -1,574 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# An example of polygon plotting with folium \n", - "We are going to demonstrate polygon plotting in this example with the help of folium" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import geopandas as gpd\n", - "import folium\n", - "import matplotlib.pyplot as plt" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We make use of nybb dataset" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
BoroCodeBoroNameShape_LengShape_Areageometry
05Staten Island330470.0103321.623820e+09(POLYGON ((970217.0223999023 145643.3322143555...
14Queens896344.0477633.045213e+09(POLYGON ((1029606.076599121 156073.8142089844...
23Brooklyn741080.5231661.937479e+09(POLYGON ((1021176.479003906 151374.7969970703...
31Manhattan359299.0964716.364715e+08(POLYGON ((981219.0557861328 188655.3157958984...
42Bronx464392.9918241.186925e+09(POLYGON ((1012821.805786133 229228.2645874023...
\n", - "
" - ], - "text/plain": [ - " BoroCode BoroName Shape_Leng Shape_Area \\\n", - "0 5 Staten Island 330470.010332 1.623820e+09 \n", - "1 4 Queens 896344.047763 3.045213e+09 \n", - "2 3 Brooklyn 741080.523166 1.937479e+09 \n", - "3 1 Manhattan 359299.096471 6.364715e+08 \n", - "4 2 Bronx 464392.991824 1.186925e+09 \n", - "\n", - " geometry \n", - "0 (POLYGON ((970217.0223999023 145643.3322143555... \n", - "1 (POLYGON ((1029606.076599121 156073.8142089844... \n", - "2 (POLYGON ((1021176.479003906 151374.7969970703... \n", - "3 (POLYGON ((981219.0557861328 188655.3157958984... \n", - "4 (POLYGON ((1012821.805786133 229228.2645874023... " - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "path = gpd.datasets.get_path('nybb')\n", - "df = gpd.read_file(path)\n", - "df.head()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Plot from the original dataset" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "df.plot(figsize=(6, 6))\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "One thing to notice is that the values of the geometry do not directly represent the values of latitude of longitude in geographic coordinate system\n" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'init': 'epsg:2263'}\n" - ] - } - ], - "source": [ - "print(df.crs)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "As folium(i.e. leaflet.js) by default takes input of values of latitude and longitude, we need to project the geometry first" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'init': 'epsg:4326', 'no_defs': True}\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
BoroCodeBoroNameShape_LengShape_Areageometry
05Staten Island330470.0103321.623820e+09(POLYGON ((-74.05050806403247 40.5664220341607...
14Queens896344.0477633.045213e+09(POLYGON ((-73.83668274106707 40.5949466970158...
23Brooklyn741080.5231661.937479e+09(POLYGON ((-73.86706149472118 40.5820879767934...
31Manhattan359299.0964716.364715e+08(POLYGON ((-74.01092841268031 40.6844914725429...
42Bronx464392.9918241.186925e+09(POLYGON ((-73.89680883223774 40.7958084451597...
\n", - "
" - ], - "text/plain": [ - " BoroCode BoroName Shape_Leng Shape_Area \\\n", - "0 5 Staten Island 330470.010332 1.623820e+09 \n", - "1 4 Queens 896344.047763 3.045213e+09 \n", - "2 3 Brooklyn 741080.523166 1.937479e+09 \n", - "3 1 Manhattan 359299.096471 6.364715e+08 \n", - "4 2 Bronx 464392.991824 1.186925e+09 \n", - "\n", - " geometry \n", - "0 (POLYGON ((-74.05050806403247 40.5664220341607... \n", - "1 (POLYGON ((-73.83668274106707 40.5949466970158... \n", - "2 (POLYGON ((-73.86706149472118 40.5820879767934... \n", - "3 (POLYGON ((-74.01092841268031 40.6844914725429... \n", - "4 (POLYGON ((-73.89680883223774 40.7958084451597... " - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df = df.to_crs(epsg=4326)\n", - "print(df.crs)\n", - "df.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "df.plot(figsize=(6, 6))\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Initialize folium map object" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "m = folium.Map(location=[40.70, -73.94], zoom_start=10, tiles='CartoDB positron')\n", - "m" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Overlay the boundaries of boroughs on map with borough name as popup" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "for _, r in df.iterrows():\n", - " #without simplifying the representation of each borough, the map might not be displayed \n", - " #sim_geo = gpd.GeoSeries(r['geometry'])\n", - " sim_geo = gpd.GeoSeries(r['geometry']).simplify(tolerance=0.001)\n", - " geo_j = sim_geo.to_json()\n", - " geo_j = folium.GeoJson(data=geo_j,\n", - " style_function=lambda x: {'fillColor': 'orange'})\n", - " folium.Popup(r['BoroName']).add_to(geo_j)\n", - " geo_j.add_to(m)\n", - "m" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Add marker showing the area and length of each borough" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
BoroCodeBoroNameShape_LengShape_Areageometrylatlon
05Staten Island330470.0103321.623820e+09(POLYGON ((-74.05050806403247 40.5664220341607...40.580858-74.153369
14Queens896344.0477633.045213e+09(POLYGON ((-73.83668274106707 40.5949466970158...40.707604-73.818485
23Brooklyn741080.5231661.937479e+09(POLYGON ((-73.86706149472118 40.5820879767934...40.644734-73.947677
31Manhattan359299.0964716.364715e+08(POLYGON ((-74.01092841268031 40.6844914725429...40.777276-73.967159
42Bronx464392.9918241.186925e+09(POLYGON ((-73.89680883223774 40.7958084451597...40.852627-73.866524
\n", - "
" - ], - "text/plain": [ - " BoroCode BoroName Shape_Leng Shape_Area \\\n", - "0 5 Staten Island 330470.010332 1.623820e+09 \n", - "1 4 Queens 896344.047763 3.045213e+09 \n", - "2 3 Brooklyn 741080.523166 1.937479e+09 \n", - "3 1 Manhattan 359299.096471 6.364715e+08 \n", - "4 2 Bronx 464392.991824 1.186925e+09 \n", - "\n", - " geometry lat lon \n", - "0 (POLYGON ((-74.05050806403247 40.5664220341607... 40.580858 -74.153369 \n", - "1 (POLYGON ((-73.83668274106707 40.5949466970158... 40.707604 -73.818485 \n", - "2 (POLYGON ((-73.86706149472118 40.5820879767934... 40.644734 -73.947677 \n", - "3 (POLYGON ((-74.01092841268031 40.6844914725429... 40.777276 -73.967159 \n", - "4 (POLYGON ((-73.89680883223774 40.7958084451597... 40.852627 -73.866524 " - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df['lat'] = df.centroid.y\n", - "df['lon'] = df.centroid.x\n", - "df.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "for _, r in df.iterrows():\n", - " folium.Marker(location=[r['lat'], r['lon']], popup='length: {}
area: {}'.format(r['Shape_Leng'], r['Shape_Area'])).add_to(m)\n", - " \n", - "m" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.6.8" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/examples/spatial_joins.ipynb b/examples/spatial_joins.ipynb deleted file mode 100644 index 61a0f41..0000000 --- a/examples/spatial_joins.ipynb +++ /dev/null @@ -1,1126 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Spatial Joins\n", - "\n", - "A *spatial join* uses [binary predicates](http://shapely.readthedocs.io/en/latest/manual.html#binary-predicates) \n", - "such as `intersects` and `crosses` to combine two `GeoDataFrames` based on the spatial relationship \n", - "between their geometries.\n", - "\n", - "A common use case might be a spatial join between a point layer and a polygon layer where you want to retain the point geometries and grab the attributes of the intersecting polygons.\n" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:26:04.391570Z", - "start_time": "2017-12-15T21:26:04.361570Z" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from IPython.core.display import Image \n", - "Image(url='https://web.natur.cuni.cz/~langhamr/lectures/vtfg1/mapinfo_1/about_gis/Image23.gif') " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## Types of spatial joins\n", - "\n", - "We currently support the following methods of spatial joins. We refer to the *left_df* and *right_df* which are the correspond to the two dataframes passed in as args.\n", - "\n", - "### Left outer join\n", - "\n", - "In a LEFT OUTER JOIN (`how='left'`), we keep *all* rows from the left and duplicate them if necessary to represent multiple hits between the two dataframes. We retain attributes of the right if they intersect and lose right rows that don't intersect. A left outer join implies that we are interested in retaining the geometries of the left. \n", - "\n", - "This is equivalent to the PostGIS query:\n", - "```\n", - "SELECT pts.geom, pts.id as ptid, polys.id as polyid \n", - "FROM pts\n", - "LEFT OUTER JOIN polys\n", - "ON ST_Intersects(pts.geom, polys.geom);\n", - "\n", - " geom | ptid | polyid \n", - "--------------------------------------------+------+--------\n", - " 010100000040A9FBF2D88AD03F349CD47D796CE9BF | 4 | 10\n", - " 010100000048EABE3CB622D8BFA8FBF2D88AA0E9BF | 3 | 10\n", - " 010100000048EABE3CB622D8BFA8FBF2D88AA0E9BF | 3 | 20\n", - " 0101000000F0D88AA0E1A4EEBF7052F7E5B115E9BF | 2 | 20\n", - " 0101000000818693BA2F8FF7BF4ADD97C75604E9BF | 1 | \n", - "(5 rows)\n", - "```\n", - "\n", - "### Right outer join\n", - "\n", - "In a RIGHT OUTER JOIN (`how='right'`), we keep *all* rows from the right and duplicate them if necessary to represent multiple hits between the two dataframes. We retain attributes of the left if they intersect and lose left rows that don't intersect. A right outer join implies that we are interested in retaining the geometries of the right. \n", - "\n", - "This is equivalent to the PostGIS query:\n", - "```\n", - "SELECT polys.geom, pts.id as ptid, polys.id as polyid \n", - "FROM pts\n", - "RIGHT OUTER JOIN polys\n", - "ON ST_Intersects(pts.geom, polys.geom);\n", - "\n", - " geom | ptid | polyid \n", - "----------+------+--------\n", - " 01...9BF | 4 | 10\n", - " 01...9BF | 3 | 10\n", - " 02...7BF | 3 | 20\n", - " 02...7BF | 2 | 20\n", - " 00...5BF | | 30\n", - "(5 rows)\n", - "```\n", - "\n", - "### Inner join\n", - "\n", - "In an INNER JOIN (`how='inner'`), we keep rows from the right and left only where their binary predicate is `True`. We duplicate them if necessary to represent multiple hits between the two dataframes. We retain attributes of the right and left only if they intersect and lose all rows that do not. An inner join implies that we are interested in retaining the geometries of the left. \n", - "\n", - "This is equivalent to the PostGIS query:\n", - "```\n", - "SELECT pts.geom, pts.id as ptid, polys.id as polyid \n", - "FROM pts\n", - "INNER JOIN polys\n", - "ON ST_Intersects(pts.geom, polys.geom);\n", - "\n", - " geom | ptid | polyid \n", - "--------------------------------------------+------+--------\n", - " 010100000040A9FBF2D88AD03F349CD47D796CE9BF | 4 | 10\n", - " 010100000048EABE3CB622D8BFA8FBF2D88AA0E9BF | 3 | 10\n", - " 010100000048EABE3CB622D8BFA8FBF2D88AA0E9BF | 3 | 20\n", - " 0101000000F0D88AA0E1A4EEBF7052F7E5B115E9BF | 2 | 20\n", - "(4 rows) \n", - "```" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Spatial Joins between two GeoDataFrames\n", - "\n", - "Let's take a look at how we'd implement these using `GeoPandas`. First, load up the NYC test data into `GeoDataFrames`:" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:26:07.191542Z", - "start_time": "2017-12-15T21:26:04.391570Z" - } - }, - "outputs": [], - "source": [ - "%matplotlib inline\n", - "from shapely.geometry import Point\n", - "from geopandas import datasets, GeoDataFrame, read_file\n", - "from geopandas.tools import overlay\n", - "\n", - "# NYC Boros\n", - "zippath = datasets.get_path('nybb')\n", - "polydf = read_file(zippath)\n", - "\n", - "# Generate some points\n", - "b = [int(x) for x in polydf.total_bounds]\n", - "N = 8\n", - "pointdf = GeoDataFrame([\n", - " {'geometry': Point(x, y), 'value1': x + y, 'value2': x - y}\n", - " for x, y in zip(range(b[0], b[2], int((b[2] - b[0]) / N)),\n", - " range(b[1], b[3], int((b[3] - b[1]) / N)))])\n", - "\n", - "# Make sure they're using the same projection reference\n", - "pointdf.crs = polydf.crs" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:26:07.211542Z", - "start_time": "2017-12-15T21:26:07.191542Z" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
geometryvalue1value2
0POINT (913175 120121)1033296793054
1POINT (932450 139211)1071661793239
2POINT (951725 158301)1110026793424
3POINT (971000 177391)1148391793609
4POINT (990275 196481)1186756793794
5POINT (1009550 215571)1225121793979
6POINT (1028825 234661)1263486794164
7POINT (1048100 253751)1301851794349
8POINT (1067375 272841)1340216794534
\n", - "
" - ], - "text/plain": [ - " geometry value1 value2\n", - "0 POINT (913175 120121) 1033296 793054\n", - "1 POINT (932450 139211) 1071661 793239\n", - "2 POINT (951725 158301) 1110026 793424\n", - "3 POINT (971000 177391) 1148391 793609\n", - "4 POINT (990275 196481) 1186756 793794\n", - "5 POINT (1009550 215571) 1225121 793979\n", - "6 POINT (1028825 234661) 1263486 794164\n", - "7 POINT (1048100 253751) 1301851 794349\n", - "8 POINT (1067375 272841) 1340216 794534" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pointdf" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:26:07.921534Z", - "start_time": "2017-12-15T21:26:07.211542Z" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
BoroCodeBoroNameShape_LengShape_Areageometry
05Staten Island330470.0103321.623820e+09(POLYGON ((970217.0223999023 145643.3322143555...
14Queens896344.0477633.045213e+09(POLYGON ((1029606.076599121 156073.8142089844...
23Brooklyn741080.5231661.937479e+09(POLYGON ((1021176.479003906 151374.7969970703...
31Manhattan359299.0964716.364715e+08(POLYGON ((981219.0557861328 188655.3157958984...
42Bronx464392.9918241.186925e+09(POLYGON ((1012821.805786133 229228.2645874023...
\n", - "
" - ], - "text/plain": [ - " BoroCode BoroName Shape_Leng Shape_Area \\\n", - "0 5 Staten Island 330470.010332 1.623820e+09 \n", - "1 4 Queens 896344.047763 3.045213e+09 \n", - "2 3 Brooklyn 741080.523166 1.937479e+09 \n", - "3 1 Manhattan 359299.096471 6.364715e+08 \n", - "4 2 Bronx 464392.991824 1.186925e+09 \n", - "\n", - " geometry \n", - "0 (POLYGON ((970217.0223999023 145643.3322143555... \n", - "1 (POLYGON ((1029606.076599121 156073.8142089844... \n", - "2 (POLYGON ((1021176.479003906 151374.7969970703... \n", - "3 (POLYGON ((981219.0557861328 188655.3157958984... \n", - "4 (POLYGON ((1012821.805786133 229228.2645874023... " - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "polydf" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:26:08.271531Z", - "start_time": "2017-12-15T21:26:07.921534Z" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\nSMoAAAAASUVORK5CYII=\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "pointdf.plot()" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:26:10.561508Z", - "start_time": "2017-12-15T21:26:08.271531Z" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAS0AAAD8CAYAAAAi9vLQAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXd4m9XZh+8jybK8955JHGdvZ0BYAUqAMAshtMxSSgst\nhZZCgdJCKaOlLauFr6WQMsqGACEkQAiBJCRx9nScON57b1vWOt8fkhXvKQ/Z574uX5GOzvvqKIl+\nPuN5np+QUqJQKBTugmakB6BQKBT9QYmWQqFwK5RoKRQKt0KJlkKhcCuUaCkUCrdCiZZCoXArehUt\nIUScEGKzECJNCHFUCHGXo32uEGKnEOKAEGKPEGJRm2seEEKcFEIcF0Isb9O+QAhx2PHa80II4Wj3\nFEK862hPFUIktrnmJiFEhuPnJld+eIVC4YZIKXv8AaKA+Y7HfsAJYDrwJXCRo/1i4BvH4+nAQcAT\nmABkAlrHa7uAJYAANrS5/g7gX47H1wLvOh4HA1mOP4Mcj4N6G7P6UT/qZ+z+9DrTklIWSyn3OR7X\nA8eAGEAC/o5uAUCR4/HlwDtSyhYpZTZwElgkhIgC/KWUO6WUEngduKLNNa85Hn8AnOeYhS0HNkop\nq6SU1cBG4MLexqxQKMYuuv50dizb5gGpwN3AF0KIv2FfZp7u6BYD7GxzWYGjzex43LG99Zp8ACml\nRQhRC4S0be/imi4JDQ2ViYmJ/flYCoVigOzdu7dCShk2nO/ZZ9ESQvgCHwJ3SynrhBCPAb+SUn4o\nhLgGeAU4f4jG2dvYbgNuA4iPj2fPnj0jMQyFYtwhhMgd7vfs0+mhEMIDu2C9KaVc42i+CWh9/D7Q\nuhFfCMS1uTzW0VboeNyxvd01Qggd9uVmZQ/3aoeU8iUpZYqUMiUsbFhFX6FQDDN9OT0U2GdRx6SU\nT7d5qQg42/H4XCDD8XgtcK3jRHACMBnYJaUsBuqEEEsc97wR+KTNNa0ng1cDXzv2vb4ALhBCBAkh\ngoALHG0KhWKc0pfl4VLgBuCwEOKAo+1B4CfAc46ZkRHH8kxKeVQI8R6QBliAn0sprY7r7gBeBbyw\nnx5ucLS/ArwhhDgJVGE/QURKWSWE+BOw29HvUSll1QA/q0KhGAMI+4Rm7JCSkiLVnpZCMTwIIfZK\nKVOG8z1VRLxCoXArlGgpFAq3QomWQqFwK5RoKRQKt0KJlmJc8PLWLD7eX4jJYhvpoSgGSb/SeBQK\nd+UfX5+kttnMkxuOcU1KHJfPjSYp3G+kh6UYAGqmpRjz1DaZqW02A1Ba18I/vj7J+U9v4fJ/buOd\nXXk0tFj6fc9mk5XsikZXD1XRB5RoKcY8+/Kru2w/WFDL/WsOs/Cxr/j1ewdIzaqkr3GLb6bmYjRb\ne++ocDlqeagY82w/WdHj681mK2v2FbJmXyFTIvxYmRLLFfNiCPX17LJ/UU0znx0u5sujpXh6aLj7\n/MksSAgeiqErukCJlmJMYzRb+eJoaZ/7Hy+t57HPjvHnDemcOzWcqxfEsmxqOB7aU4uSDUdK2J9X\n43y+J6eae5dPYcXsKCL8DS4dv6IzSrQUY5pDBbXkVTX1+zqLTfJlWilfppUS6qtn1cI4rpofi01K\nXtue065vs9nKo+vSCPT24PvzY7u+ocJlKNFSjGnSS+oGfY+KBhMvbM7khc2ZxAZ5UVDd3GW/13fk\nKtEaBtRGvGJMs+VEuUvv151gAVQ3mVz6XoquUaKlGLOYLDZSs4avklFxrZHGAYRPKPqHEi3FmCU1\nu5L6YRQRk8XGr949wObjZVhtY6vk02hC7WkpxixbM3oOdRgKWjfvowIMrFoYxzUpcQgBAkFkgDpZ\ndAVKtBRjlq/Ty0bsvYtrjTz7VQbPbcogOdyPE2X1nDslnMvmRnPu1HD8DB4jNjZ3Z8AO047X7hRC\npDvan2rTrhymFSNKflUTJ8saRnoYSGmP/ZISNqWXcdc7B1jwp6+45dXdfLy/kNom80gP0e3oy0zL\nAtwjpdwnhPAD9gohNgIR2E1W50gpW4QQ4QBCiOnYa7zPAKKBr4QQyY468f+HvbZ8KrAeu/HqBuDH\nQLWUMkkIcS3wF2CVECIYeBhIwW4Ou1cIsdZh3KpQdMunh4p67zRCmKw2vk4v4+v0MrQawVmTQ1kx\nO5rvTY8gwEvNwHpjMA7TtwN/llK2OF5rnYsrh2nFiCKl5OP9nZzmRiVWm2Tz8XJ+8/5BFj72FZuO\n9T16f7zSr9PDDg7TycCZjuXct0KIhY5u3blCx9BHh2lgwA7TCsWx4npOlI780rC/hPt7smRiCF+l\nlZJZ3qBqf3VDn0Wro8M09qVlMLAEuBd4r3WPargRQtwmhNgjhNhTXu7aYEKF+1HV2MKUiFO1sjy0\ngsUTgtHrRneEz8LEYB79NI1H16Xx8tasET1IGM0MxmG6AFgj7ewCbEAoymFaMUJYrDaeWH+Ml7Zm\n89TVs4kL9iLcz5OYQC9Ss6uYGe0/0kPskeuXxJNf3UReVRNv78onrahWxXt1wWAcpj8Gljn6JAN6\noALlMK0YId7elcdLW7LYcqKckjojf7xsBr88L4mVC+KID/bGbB29y627z5/MvLggZ5pQYog3P1qa\n2K6+V71RnTTC4BymVwOrhRBHABNwk0NolMO0YtixWG383zeZzud/+Tyd4hojzWYrQsBfvj+b13fm\njNwAuyEhxBudRnD53BiufyXVWZFCr9PwxPp0/nTFTHRae1+tRlBaZxz35W96FS0p5Tagu72q67u5\n5nHg8S7a9wAzu2g3Aiu7uddq7AKpUHTLrpwqimqNzudZ5adKIUsJZquN9OL6kRhat5w/LYKqxhb+\n+cP5PLz2KNszKwEweGgI9fWkstHUro6XViOoajQp0RrpASgUrqCoxtjta1qNINDbA8so2x86XlrH\n09fMpaKhhY1pp0IdPvjZ6cyMCaDFYkWrOTVf8NRpmRblT7PJipdeOxJDHhUo0VKMCdYfLu72tSvn\nxbDp2Og7icuvaua21/cwIzrA2ZYc4cvMGPtzT11nYTKarVj7WMd+rDK6z4AVij6wN7e62/CAGdH+\nXDo7ijWjJNjUz6AjNsjL+by6ycy2NjXsA731zsfNps7GGQYPLb6e43uuoURL4dZIKfnjp0e7fM1D\nK7jz3CTufHv/MI+qe3574VS+uPssFiUGE+yjZ1KYT7vXD+TVOE85rVI6HX9MFhs1qsggoERL4eZ8\nfqSEQwW1ndrnxAVy45IENhwpoc44egrzPfTxEfbn1fDU1bN58OJpnDYppN3rb/5kMR5aDcdL6tmc\nXobBw75E1Os0eOt1PPjR4S5nYOMJJVoKt6XFYuWvXxzv8rVJYT6E+nnyyYHRlzidml1JYqgPV86L\nYXIbl2s/Tx3JEb7ctHoX8cHeXDonut11Oo3grVR7LNp4RomWwm35cG8hWd24PF80M5KnN54Y5hH1\njRpHORqtRuDlmElNjfRj62+XYTRZ2ZFVSUF1E5UNLRxpM4tsTZJ7eVsWWeXul1vpKsb3jp7CbWk2\nWXlpS2aXr62YFcnqbTmYraPrlE2rEXzy86XtKpg2O/asFiYGE+itp8lkITbIi08OFPGb5VMIaWMY\n22iy4uWhZfXNC5kY5jvs4x8tqJmWwu04UljLZf/cRk5lZz9DrUZwVnIYO7IqR2BkPWPQaQj382zn\nXP2DRfFMCPUhp9I+Y/TQarh2YRwvfHOSRz9Na3e9TmMv2dw6OxuvKNFSuB2fHS4mo5uqpCsXxLBm\n3+gIb+hIo8nK2oPt99j0Og1XzY/h8StmAXbRKqxuRkr4+EBhu/paBg8tiycEE+7vyXhGiZbC7fAz\ndL2r4anTkBTuR2r26E1P9dRpOp3+/eLcycSHeAP2EI7vHOk8VY0m9ufVYGsTye/v5THqlr3DjRIt\nhduR1M1+zqqFcfz3u5zhHUw/MHho+MfXJ0kr7hyi0YoQgjvOmeR8fsW8GNpK1L3Lpzhjt8YrSrQU\nbsfRoq6t7ieH+1JY070D9EhjNNu4/ZxJzrSdk2UNrD1YhKVDyZyzk8OICbRHzZfVG7HYTr3uodUw\naRxvwoMSLYWbYbbaeDM1t1P7lAg/0ktGVxWHrtifV+MMGA3x0RPo5eE8QWwlxNeTlSn2eplv7szr\nMgdxPKNES+FW7MispKKhczrLqoVxrDvUfdL0cLAgIajXPvPiA52Pg3z0nJUc1qUH4t3nJzM/PtAp\ncIpTqDgthVuxJ6fzJruPXovFaqO2eWQre5osNjy0oseN8uQ2teu7o7Va6TOr5o778IauUKKlcCt2\ndnEyuHhiCHtyR94Ks7bZTKivJ8W13df2qu5D0nN9iwWrVZIQ4tNr3/HIoBymHa/fI4SQQojQNm3K\nYVrhco4U1rKrC9Hy1Gkoq28ZgRGdQqcRTIvy61GwwL6n1Rv+Bg+CfPS99huv9GVPq9Vhejp2u7Cf\nO1ykEULEYTebyGvt3MFh+kLgRSFE6xy31WF6suOn1XjV6TANPIPdYZo2DtOLgUXAww6DC8U45O9f\ndp0cXdlgIniEv+RLJoaw+Xjv9nXv7cmnrL5nYVP0zGAcpsEuMPdBu1AS5TCtcCktFiuv78jpVhSK\napsJ9xvZKPGKhhY8tb3PAeqNFv63I5fKhpGdGbozA3aYFkJcDhRKKQ926KYcphUu5e9fnuAPn3Rd\n6A/sQjDSM630knoWTgjuU98Vs6M5XlrPtyeUsfBA6PNGfFuHaexLxgexLw1HHCHEbcBtAPHx8SM8\nGoUrabFY2XCk51CGhhYLgd6dwwaGG58+lkG+6539pJfUc3ZyGGcnK3Ph/jJQh+lJwATgoBAiB7vz\n8z4hRCTKYVrhQmw2ej32t9oknqPA8t7uSdj7MrU1CHZf3sifeLojA3KYllIellKGSykTpZSJ2Jdt\n86WUJSiHaYUL+c/WLE6U9l7wbjS4g503Nbxf46g3Wth0rLRTGo+iZwbsMC2lXN9VZymlcphWuIQD\n+TU8vymjT31HWrQmhvkwOzaQ8n6EXuh1Gn7y+h5CfD158OKpXDkvtveLFIN2mG7tk9jhuXKYVgwK\nm01y/4eH+myw6urV4YRQH5bPiGR3ThV7uwhcFcK+bG1ylJm5cUkCiaHe/XqPYG89kyN82ZpRQXGt\nESklQvT4VVOgIuIVo5R1h4v7lQDdYnHtVCu7opF/b8nksStmUt1kIqu8fS16Lw8t06P80WoEu3Oq\nuHh2FAfzuy45E+KjZ9nUcM6ZEkaIjyfpJXXsz6th7cEifrQ0kcUTgrn97ElKsPqIEi3FqMNqkzzd\nTSBpV2g1AtsQuC5LCS9uzuSJ78/i718eJ7OsgUbHzKrJZGVPbjUPXzqd86dFEO5nIMT3VFkcjYB7\nLpjC1Eg/TpsUgrf+1FfttEkh/GgpxAR58dymDN7/2WlKsPqBEi3FqGPtwcIu67/3hH831UwHS2FN\nMx5awdpfnIHVJsmuaOTqf213OupMj/Jn8US7d+H8+CAWJASxN7eaFbOj+fmypB7vfd/yKUyJ8OPr\nY2Xc895B7liWxKWzo5SA9cLInxMrFG1oMll46vO+z7LAPjOraDAxOzagz9dohL2UTEpCEAFePcd4\nrT9sjxPTagRhfp7twiv+/Hl6u3LIV8yzxz73pbqoEIIr5sVw53mT+cMl03lpSyZX/d92Ptxb0Ou1\n4xk101KMKv6zJbvXpOOueH5TBs9cM4fffXykV0fpG09L4PK50cyPt6exNputvLg5k39uPtll/yvm\nnkrCCPDy4OUbF/LpoSKsNsmkMF9sUqJxnFXdsCSBM5NCya3q30zx9KRQPr5jKY98epRREL0xqlGi\npRg1VDS0dOtl2BsWm2R7ZiVPXjmLL4+VkppVRUldZ/G7/6Kp/OzsSZworafFYsPgocVbr+OeC5KR\nSEpqW5ge7c+zX52g3mjh0jnRpCS2T8+ZFRvArB5mdYmhPiSG9r+sjE6r4TGHK4+ie5RoKUYN//z6\npHOjeyB8l1nJitnRfHKgiEWJQZ1E6+zkMH561kQAXtqSxeVzozlzsj2DQgjBvcunOvsunxFBeX2L\ns1b7YJBS8r+duQR66ztZ3Sv6jxItxaigoLqpy9rv/cFitbE1w56EvCunmkWJQTS0WEkrriM2yIun\nrp7t3OT+/YrpBDjyFXMrG/nmeDkrZkc5jVRjg7yJDepf3JXRbEWrEXi0qfZQWmfk8yMl9mWfhJ1Z\nlVy9IJZZMQHo+lAVQtEZJVqKUcEzGzMG7ecX5m8gLviU0OzKqSbcT89bty4mKdyXcP9TdvTFdc2c\nLK9nQUIwP35tDyfLGnh7Vx4v35TSL7EqqzeyLaOCpUmh/GVDOosmBHPtInvSfl5lE5e9sM150gjw\nZmoeb6bm4aPXMi8+iOhAAzYJM6L9WZkSh2+HpOu8yiYeX59GbJA3D62Ypk4WUaKlGAUcL6lnzf7B\nnZhF+ht4+NLpvLY9p117Wb0JCe0EC2BqpD8ANU0mTjrcqtNL6jnzqc0kBHvzi3Mnc/WC7tNqqhpN\nzhSjV7fn4K23R8cX1DQ7RSsu2At9N7OpRpOVbScrnM8/2AuPfXaMgw9f0E64NBr44mipY8x+rEyJ\n63Sv8YYSLcWI8+cNxxhMbOiMaH9ev2URGiE6uTcvSAhiycSQblNkOqYJSQk5lU385v2DZJTVc/d5\nyXjpO1eZ0ArBxwcKnbOo1nSegqompJTUNVt45btsyvtR7M9Tp8G7TUWL1riwVv71bSZXzosZ98tK\nJVqKEWVXdlWfyhR3h0bAs6vmcrKsgR++nIp3G4FZNCGYF6+bT1WjiTvf3kdNk5nzp0WwICGIpUmh\n6HUaQh3Jyk+sT+90739/m4XJYuPhS2d0em3DkeJ2y75W/L08SM2uorTO2Odk71aaTFa+TCtl/eFi\nciobqWkyk9cmdCKzvJGdWVWcMTm0h7uMfZRoKUYMKSVPfd5ZLPrDWQ435ltf34PVJql3xGh567X8\n9erZ+Oh1XP7CNmd5m9Z8xnOmhPHidfPx1uv40dIJrDtUzOHC2k4zvsYWCxarrd3spqTWyJ7cavRa\nDaYOZWXSS+q59qWdA7b++tn/9nbZrtdqSI70pcUy8NPVsYISLcWIsf5wyaCsvwK8PHhoxXRe2ZZN\nboe0n99eOJWEEB8e/TSty3pc3xwv58n16fzpipl4aDWs/cUZGM1WDubXsCu7Ck8PDb6eOppMFprM\nVvwdotVisXL5C9soret52dfRNXqwmKw2UhKCOW9ahEvv646M78WxYsSw2WS3Eeh9YWKYDxt/dRZJ\n4b4E+uiJbLPRHuKj57I50by0JZPXd+R0utZDK5gW5U9KYhBGs9WZhmPw0LJ4Ygg/PXsSKxfEMTMm\ngL98fpyaxlPLQE+dlvuWT3WGRgwnr+/I6bHaaYmjvM1YR820FCPCF0dLOFZcN+Drz0wKJdzfQGZ5\nAzcsSeCGJQl8e6KcrSfKufO8JD7cW9jlPhXAnNhAKhtN3P3uAZLCfHnjx4uJDLCLXrPJyjfHy/jd\nx0fwN+j428o5xIe0D4G4akEs8+IDiQ704s6397MxrXTAn6M/2CTc8b99rL/rzE5GHrVNZpY/u4XT\nJobwt2vmdAqdGEuomZZi2DGarbzaITShv2zNqEBK2W6GdXZyGA9ePI01+wp5dF1at9fuya0mu6IR\nKSGjrMG52b32YBHTH/6c29/cR1WjiZzKJv6yIZ0tXbjmTAzzBewnfMNJSZ2Rv35xvNOM6v29+dQ2\nm/n8aAlX/9928vuZ++hODNhhWgjxVyFEuhDikBDiIyFEYJtrlMO0ols+O1RMahdO0f0hq6KRkjoj\nPp46HlhziNOf3MT2zApue2Mvf/y0e8Hqim0Z5UgpCfHRd9qIL6o1cuPqXfzq3QPUNrc/LTR4aFnU\nR9swV/J1emmnA4Dv2sR8pZfUc8k/trHp2PDMAIebwThMbwRmSilnAyeAB0A5TCu6R0qJ0Wzt1im6\nP4T46An00pNWVMfbu/IpqjXyw/+k8tUAvqgvbc3CapNoNd1Hm3+0v5Dzn/6WdYeK2s1yzJbhN6Uo\nrWvhk/1F7do6WpHVNpv58Wt7eO6rjHalc8YCA3aYllJ+6TBWBdjJKXsw5TCt6JLM8gYe/+wYRQMo\nPdORJ78/i9yqRrQaQdAgPQ+tNslZT23m2pd29tivvL6FX7y1n5v+u5t8RxCpKz7LQPjL5+ntloBB\n3ZjVPvPVCX7y+h7qjZ1jytyVATtMd3jpFk456yiHaUUnmkwWGlqsrNk3+AJ3vzo/GZuE+z44xJRI\nP/59Q8qg7me29k98qhtN6HUahBBMj/Ib1HsPlMpGEze8kkp1owmA1duyu+27Kb2My/75HUcKu65h\n7270WbTaOkxLKevatP8O+xLyTdcPr89ju00IsUcIsae8XFmNj0ZOljWw4UjxoErPAMyJDeCalFj+\ntC6NRy6dwZupudz1zn4XjbJvLJ4QTITjAKBtgvZwk1PZxK/fs7v6RQX0XEKntUz0pweLeuznDgzU\nYbq1/WbgEuA6eWqhrxymFe2oM5qx2CQ7MysHdR+dRvD4lbN4bP0xfr4sif/tzOV3Hx0ZUKXTgRAT\n6MVbP1nMAxdPc7YtmRjCillRRAUY+MGieHrYFhsSNh8v5/qXU9Fqe39jo9nGnW/v56nP04f91NOV\nDMhh2tF+IXAfcJmUsu35qnKYVrQjs6yBPTlVHCwY3PLkznMnU1DdTGVDCwFeOtbs7/T7a0gprGnu\nlG9o8NDywnXzefG6+Xx1rHRETGO3naxgy4lywv36FvD64jeZ3LR6l9vuc/VlptXqMH2uEOKA4+di\n4J+AH7DR0fYvsDtMA60O05/T2WH6Zeyb85m0d5gOcThM/xq433GvKqDVYXo3ymHa7TBZbORVNXUb\n6NlX5sYFsnJBDL//5Ah/vGwGT24Y3P0Gyp/WpZFZfiotSErJ7pwqbv7v7n65S7uaeqMFrUYwoY9l\nnredrGDlv3ZQWNPce+dRhhhrYf8pKSlyz549Iz0MBfZTuZNlDfzsf3vblVjpL9EBBj7++VL+uC6N\npZNCKaxp4oXNA6sl7wo8tIKLZ0Vx0cxIDhfW8vLWbFpGIPShK7z1WsxWW58LKob66nnhh/OdNmj9\nRQixV0o5uJOQfjJ2Y/0VI45GwJr9BYMSLA+t4KUbU9h8vAyrVbJoQhAXPXfEhaPsP2ar5JMDRXxy\nYPRtajeZrPjotZitfTvwqGgwcd3LqTzx/Vlc4yYFBlUaj2LIsNgkG48OLir7Z2dPItTXk5e3ZvP7\nS6bx8Nqjgy7LPNbp7wmtxSa574NDPLL2qFuUvlGipRgSpJSsPVBE1iBmWYsSg/nluZO5f80h/n7N\nHHZmVfHdycGdQCq659XtOaz6907KurBeG00o0VIMGRuOFA/4Wm+9lr+unM03J8q5an4sYX6ePLL2\nqAtHp+iKA/k1vL0rv/eOI4ja01IMCSdKG9g+iLis+5ZPISHEB5uEuCAvfv/JUepbenaOVriGin7U\ntR8J1ExLMSQU1Ta3q9feH6ZF+XPDaYlYrDYmhPrwz80n+fZ4GQYP9d91OCgd5ctDNdNSDAkhPnqg\n/+HhWo3gL1fNQqsRSGkPm/jsUPGIJSaPR+pGedCp+tWlGBI0AzQVXTEritmx9tJsQgjeTM0lo6xz\njXewC1xs0OBt6xXtqWwwjfQQekSJlsLlSCnJLG+gtrn///kXdiiqt/5Q95v5UyP9Rv1Sxh0pGeWz\nWrU8VAwJB/JrBhRPNalNGkpFQwsVjSbuOi+J8gYTBp2WioYWNqeXMSHMh4YWi4rZGgISQr27Nbcd\nDSjRUrgce50p/35f52/Q0VaCQn09efL7s7j+5VRnmoyvp447z02irM7I27tH99G8u3L3ecmjVrBA\nLQ8VQ8RAEnFnxQawpE0OnMVq49fvHWiX19fQYuE/W7N5IzWP6xYnuGSsilNMi/LnvGnhIz2MHlGi\npXA5VY0mZ0XN/lBSa2xXp72m2URxTef9lYqGFkwWG/vzqztZaSkGx13nJY3qWRYo0VIMAVtOlHNo\nAKV9syoa27nKhPoa2s28OrInp5qrF8TiM8B4MEV7pkb6ccH0yJEeRq+oPS2Fy7Ha5ICOzaWEd3bn\nszQp1NkW6tvzTOrlrVksmxJObLAXGuDNXfmYRkmZGHdBI2ByuB8PXDwNzXCXXh0ASrQULsVmkySG\neuNnGNh/rY7OOlqNBg+t6PaU0Cbtxg1gL8d821kTePGbrAG993hiWpQ/l82JZmlSCMkRfhg83Ge2\nqkRL4VI0GsGChOAB7WkBTA73dT42ma3syq4kLtibrPLeq0VYbBI/gwf3XTiFL46WcjC/ZkBjGKvo\ntRpWLYzjhtMSSI4YGRchVzAYh+lgIcRGh/PzxrYmqsphenxTVmcccNrNVEeohJSSdYeLya9u7pNg\ntbL+cAnl9S1KsLrgHz+cx5+umOnWggWDc5i+H9gkpZwMbHI8Vw7TCnZkDay6gxD2zWCA4lojj3/W\nP3t7gMOFtXi70VJnONmfNzaEfMAO07R3hX6N9m7RymF6nPL4Z2k8s/HEgK6dFumPn8G+p/X0l8ep\nbOxf4m5UgIHFE4JpMlkdCduKtuzNHRueMINxmI5w2IIBlAARjsfKYXocsz+vhpzKpt47dsG5U+1B\njY0tFj47XNKva330WubFB7Int5rcqiaiAw0DGsNY5khhnVv7HbYyaIdpAMfMacT+NpTD9OjB38uj\n907dcMmcKAC2Z1bSbO5frfJAbz35Vc1YbZKs8gaKughKHe80m62c7KZihjsxGIfpUseSD8efZY52\n5TA9TmlosbAre2BLkPOnRTA10r4JnzqAPbEQX73TaTqnsolJYX3z/xtvpBUPzjB3NNBryEN3DtOc\ncoX+s+PPtm7RbwkhngaiOeUwbRVC1AkhlmBfXt4I/KPDvXbQxmFaCPEF8ESbzfcLgAcG/GkVQ0p6\ncR0NPZREnhcfyJzYQGbGBGC22qhqNBEb5MU5U8IJcMzQKhtaODyAaPpDBbUkhnhT4ZhINJtVgGlX\ntIyBv5e+xGm1OkwfFkIccLQ9iF2s3hNC/BjIBa4Bu8O0EKLVYdpCZ4fpVwEv7O7SbR2m33A4TFdh\nP31ESlmjwAKUAAAgAElEQVQlhGh1mAblMD2q6am2+L9vWMDyGT2niORXNXEgv4bQPtq7d6TtXtrh\nwlpmRPuTX91EXbOqLd+K2ToOREtKuY3u6+ae1801jwOPd9G+B5jZRbsRWNnNvVYDq3sbp2LkabHY\n0Ah7lHorsUFe3LAkwZmak1Faj03Cntwq9uZWU1bfQn2zmUcum0FCiA9v7MxlYh+t3XvjaFEd4X6e\nhId7crJs4FZmYwnjOJlpKRR94rI50by+I5e9udXO5788L4mEEB88tBrWHyrizxuOkVfdeZP8ifXH\n+O+PFnHxzEhe3pbdY+pOfyirb3GLfLrhwtjPA47RiBItRZ85WVZPk8nqrOHeESEEz66ay7NfZbBs\nahhzYgOJC/YG7HtVBwtquxQsgN051dz9zgE8dRo0wjWC1UpJrZGpkX6kl9S77J7uSoPJ/ZfKSrQU\nfaK2yczvPjrCwsTgbkULIC7Ym7+tnN2pJtPaA0WsO1TU43tsPl42ZHFEUkK4nydl9aPb02+oMZrc\nf6al6mkp+oS/l44fLU3knguSe+3bUbCsNolBr6Wwl9ipoQx8PF5aj9FsZXZMwJC9hztgGgM19dVM\nS9EnhBBcODNqQNd+uLeAV7/Lce2ABkCd0YKhHwUDp0f54a3XodGIAcefjTbGQq0xNdNSuASrTbLq\n3zuY/6eNPPdVhjNeq7S2mSNFtRwvHR37SQfya0hJ6DnnXqeBRYlBpBXXsye3ekwsqVoxWtz/syjR\nUvTKB3sLeOrzdGw9LN+e3nic1OwqqhpNPPPVCbSOJeK+vBq8PLR4jxJLe5PFRmUPtb70WkFyhD+7\ncqqdbT3Fn7kb4yW4VDHOuWp+DMdL67sNHVh3qIgXNmcC9sTllSlxeOm1ZJc3sD2zgjd25g3ncHsl\np7IRX08tDS2dZx3JEX4cKWqXWktxnREvD82YiLKvH+WW931BiZaiV4QQzrzAjtQ0mbj3/UNoBFy3\nOIGfnTOJmEAvKhtaeHVHLt+eGH0J7FLCjOgAUrOr0GnAYoPoQAPhfgYOdFE8UEpICPEZEyETNU1K\ntBTjnAAvDx6+dDoTw3yZHx+ITqshp6KRXdlVvLY9Z6SH1y378qqZEe1Hi0Vi0GnIqWyiqKb7Inm+\nnmPjq2K2uf9scWz8SyhGDCEE1y6Kdz7ffrKCr9PLKKjuv1nrcGK2So6XNGDpY5hFWX0LUyL8Rs2B\nwkAZC/W0lGgpXMaGw8Xc/uY+tBrhFl+OvgoWQF5VE4sSg4dwNMODWYU8KBSnaD1lcwfBGgj786vR\nunka4/Ro9w+uVaKlcBnLZ9pLz+jGaIKy2SqduZTuygXTI3rvNMpRoqVwGR4aDT9cHM/EMVw1NMR3\nYLW+RgvJke5tHwZKtBQuJKeykbvPn8z1SxKcTtFhjoJ+8W4+Q2mlqrHFrfe2Ojp4uyNKtBQuwx5Q\n2siqhXHcfs4kFk0IZlZMABH+nlw1P7b3G7gB2RVNVDUNzD17NBA2wKqwo4m+OEyvFkKUCSGOtGmb\nK4TYKYQ44HDBWdTmNeUuPU6JDvSiuNaIp05LoJee1Tcv5O8r5/DQium8tye/9xu4CXlVTd2W8h3t\neOrc38i2LzOtV+lskPoU8Ecp5VzgD47nyl16nONv8MDPoOO93fksmRiClJLjpfXMjQskKdx3pIfn\nMsxWm9v6KuZVDcyTcjTRF4fpLdjNJto1A615HQFAa3U35S49zjlvWgQXzIhACHhkbRpfpZVy0+pd\nHBmAw85oZV5cYJe1wXQawdQeNrpnxvjjbxjZ0EjvfpTmGa0M9G/wbuALIcTfsAvf6Y72GGBnm36t\njtBm+uguLYTot7u0EOI24DaA+Pj4rroohonNx8uoajBxvLSeAC8PXt6WPdJDcikBXh6IHtaGc2ID\nO+Uohvt5cv2SBHZkVnL2lHD0Wg3rDxf325DWFXx2qJhbzpgw7O/rSgYqWrcDv5JSfiiEuAa7Bdj5\nrhtW/5BSvgS8BJCSkjI2IxvdgHqjmaKaZp5cn44A6nvwQHRHpkf5ER3gxVfpZV2+brFJZ5T9hFAf\nyuqMNJqsnDctgtd35I6KEjdr9he4vWgN9PTwJqDVafp97HtOMALu0orRQ3l9C4fya2k2W8ecYAHE\nBHkzNarnOCerIyFZr9UQFehlvy7QMCoEC+y2ahY39z4cqGgVAWc7Hp8LZDgerwWudZwITuCUu3Qx\nUCeEWOLYr7qR9o7UrSeDTndp4AvgAiFEkGMD/gJHm2KUIaVka0Y5H+0v5Iu0ErdP44n0N+Cp6/zV\n2JhWyqGCWqIDut+EF0Kg0wh8DTryHZveNgnaUZIlICVkV7i3B2RfQh7exm5XP0UIUeBwlP4J8Hch\nxEHgCRz7SVLKo0Cru/TndHaXfhn75nwm7d2lQxzu0r8G7nfcqwpodZfejXKXHrWkFddxorSBf3x9\nckzUayqpMzIprOvTzi0ZFdx1/mRCfT3x9dR1OhXNKm8gKdyXmiYT0Y6ZVmZ5A9N6maENB3qthmtS\nYonoQXTdAWGf1IwdUlJS5J49e0Z6GKMSm00iRGe3nMFy59v7+eJICSY3XXaE+npS2dhC269CfLA3\nTSYLFQ2dA0lXLYzjj5fNoKyuhStf/K5d+WZPnYYLZkTy6cEi/nvzQv60Lo3FE4MJ8tbz4jeZw/Fx\n2uHnqeP60xKYGxdISkKQy9OQhBB7pZQpLr1pL6jSNOOAFouVd3bl88xXJ4jwMxDg7cHKBbFcvSB2\nUALW0GLhWHEdCcHebitYAL6eWr4/fyIvbclytuVVNXHaxBAqGio79Z8dG4DBQ8uH+wo61Ztvsdi4\nZHYUF86I5JwpYSxNOgujxYqnTsP2zMouK6O6gmlR/tQ1mymsOVXH7ILpETx19WwCvfVD8p4jhRKt\nIaa22QwSvD215FY2kRjijU7r+uyptKI6vjtZgcUm0QiYExdIcW0zeZXNvJma6zQpbV2+7cquIqey\nkZ+ePQl/w8Dy0ZpNVnz0Ol745qTLPsdIkFPZxFfHSvE36KgznjpAKKkzcvWCWD7YW9Cuf0W9XaiW\nJoXyr28zabHYCPXVE+FvIC7Im5hAL2Y6/BX1OoHesT/26o8W8smBIp7flNGjucZAOFZcxyWzo5gQ\n6sO2kxUA/HBx/JgTLFCiNWRIKXl5azabj5exN7ea1Tcv5LHPjnHF3GhuO2siYF+mvbw1i5omM79Z\nPmVA79FisfGvbzN5YfPJflvJv7A5k/yqZp5ZNbdfG8UF1U08uT6dr9PLMHhoGAs7DFnljSybEsYV\n82K4650DABRWN/P6LYvYm1tNdkUjXh5aFk0IJsoRDb9oQjBb7luGv8EDrz4EbQZ667np9ER+uDie\nl7Zk8dKWLPsvNRex7lAxK2bZhSu7ohGDh/sHknaF2tMaIp7ZeILnNmV0ag/y9iAhxIfEEG+uSYlD\no4EQH08mR3TeqG02WTmQX8OXaSXUNVs4b1o450+z10P6cF8BeVVNfH2sbFAlgB+/ciaXz43pVw30\n3310mDdTR5fDjqu4dmEcQsDbu+xxzZfOiWZqpB+rt2Xz2i2LnDMoV1BaZ+S5TRm8sysPVx64/nBx\nPG+l5vH53Wd2a0jiKtSe1hjhP1uyuhQsgOomM9VNNRzIr2FjWin3XDCFq1MCaLFY0Ws1FNY0sz2z\nkoKqJt7dk09p3an4ng/3FRDk7YHZKp1mqINlXlxQvwSryWQhq9y9j8x74p3d+Ty0YhpTI/1IL6nn\n04NF/OTMpayYFUViaNd1wopqmp0nha0cKaxlepQ/Go1gb24VCxI6l7OJ8DfwxJWzuOm0RB76+DC7\n23gtDgYPjSDUV09xjXHIRWskUKLlYj49WMTj64/1qW+jycqj69J45qsTTAz1IT7Ehy0nyqkzmrtd\nclW7OKSgtN5IstW3z/tsVY0mdmR13pweSzz22THeunUxr+3IIdLfgEaIbgWroLqJFc9v45OfL23X\n54O9BZTVG3nu2nnsza1mTmxgt3/HUyL9eP9np7M7p4oH1xwmo6xhwGOPCjCwIDGYO8+bzPt7Clg2\nNXzA9xqtKNFyIbVNZp76Ir3f19UbLRwsqOVgwfAnFccEevXrYGDNvrGflCCE3T7+3zf0vurZdKyM\nMyaHEtkh9um8aeHc8MouUrM2Ud9iYcnEEGbHBvZ4r4WJwXz5q7O45/2DfHKgqN9BupH+Bu6/aCqX\nzYnGbLURF+yFlNLlIS4jjRItF1HdaOKm/+4iv2p0W2d1pD9fDCklHx9wL9HSCPq1X+TloeWvK2dz\n7tTua6nvzKrkv99ls3xGJPlVTTx48bROm96nTwrF4KFxnhIezK/pVbSsNolNSv529RwumR3FA2sO\nt9se6I4JoT7ceuYErpof6xyHh1bDJbOje73WHVGVS13E/32byaERmCkNliZT3/fGjhTWud1+1h8u\nmc6Pz5jQ59PRF66b1+uX/aN9hVQ2mAjy1vPgxdOI6bCfBZBb2YjRfCp2rbXyw8/f2sfe3M57VzaH\nsnpoNWg0gnOnRvD1PecwJ7b7jf+oAAOPXTGTjb86i+sWJ4zZ08KOKNFyEVtGof17X8ivaiavsm+F\n4fbnu2ajeDh55NM0MssbeP7aecyN636mExfsxS1LJ7QTmlaklJxss8+0fGYEf7x8BksmhvD4+mMU\n1XSeXadmt884++xwMfVGM1nljazZ1z7uy76E65yf6OOpw9/LHkOn77CEv+OcSWz+zTlcvyRhSOL+\nRjPj69MOIfVG96xqYJOS+JC+mU6U1nUufOcOfHO8nLvf3c+SiSE8tGIa4R3qpMcEevHh7afzh0un\nc5HDBq2VeqOZu989wGX/3EZreNAXR0pZ8fw2pv3hc/bmVjtPDndlVzkrKCyfEcmkNq5ENU1mvv/i\ndlYuiGHDkRKMjlpaUkr+l5rHrEe+dASqnqqx9e7uPLZmVPDIpdM58sflfM9h/xXqq+eX500eNzOr\njqg9LRcgpUTjpvLfn5OqKhdHcQ8nZqvkX99mEu7nyXPXzmNLRjmvbM3GZLVx7/IphPvZN9Lbblof\nLqjlF2/vI7eyiZtOS6CgupnYIC+uWxLPsqnheOo0JIR409BiYUdmpVNUAI4W1XZysK43Wgj01mOy\n2DheUk+Ev4E73tzLvrwa9FoN2eWN5Fc1kxTuy+bjZTz40RGSI3yds6nnrp3LdS+nMi8uaNwKFijR\nchkNbjrT+t+OXH50eiLh/r1n/nvr3f+/S1l9C/e8d4Bnr53H0kmhRPh3Hdi7Ob2Mn/1vLy0OG/mi\nWiOxQV4IIZgZHYCPp46C6mZe35HLw5dOZ07cqb2nnIpGUrMqqesQ7Z4U7svMmAASQ72JDfLi86Ml\n7Muz5yIuSAjiiStncv+aw2g1go8PFGK1Se6/aKpz+WfQablhSQIe42w52JHx/eldhBCiy//47kB9\ni4VbXtvdpyJ1wT5jI4+tqNbINf/ewZ/WpXX575ZV3sBPXt/jFCyw53a2zsKK64y8lZqHn0HHXedN\nRgjhnKkBFFY38enBok4xddtOVvDhvgKWT4/EZLUxOdz+3n4GHZfOieZIUR3v7y3gnd35GM02fn/J\nNJZNORVnJbGXbv5oX4HbF/IbDEq0XMRIGxYMhiOFdfz4tT1U97L8S3ZTYW6lo6lDdxb3e3Or2y3t\n4oK9uOv8yc7nMYFe/P6S6cyPDyKoCyGvbDJ3uaHvoRXct3wql8+NYX9eDQsTg5gY5oOvp46rFsTw\nYYcN+hazrd1yVSPgo/1FfH28nPJRUgl1JFCi5SJclVYzUhzMr+HOt/f3+Bt8shvbgGk1gr9cNRuf\nNsJl7uazLk0K5cbTEvjJmRN4/2enseXeZVyTEtdl347UG828vj0Hq5R4aNufBpqtktI6I/Eh3syP\nD0IIwfIZkYT7GzhZ1sCHHapJHC+p4+1dec5wiPL6FoSwi2hlF3W+xgtKtFzA4YJadma5f1HVbScr\nekyETgjxZkGCe1lPLp8RQbifJ1ab5HcfHeZX30umNbJgZ1Ylj36a1sneLDrQi0cvn8nvVkxnYWJw\nrxHlJouN93bnY7HaMJpt/Ov6+ay78wxSHzyfh1ZMY2bMqfy/h9cepc5odkbQz4sL5M5lSby/p4BG\nk/3kUK/TcPGsSLIrmnjis2POWVWLxYZOI5gU5su7u8eO+W1/GZDDtKP9TiFEuhDiqBDiqTbt485h\nuqjWvaLge+LV7TlUdrP0EELw7Kq5brUUjgvydoYX1BktvLQliwcumgbYReCzw0U8sf5Yt7OurpBS\nYjRbOVpUy+dHirHYbDzy6VFueGUXFz67hSaTjcgAL4J99Nx65kQevHgas2IC8NFr8fXU4d3m5O+C\nGZGcPz2C5Ag/pkXZxe3cKeF8fqSEyRF+rL/rTCIchyTFtUYO5NfwzfFyPthbwGPr0th8vMw5ptSs\nSn793gF++fb+fn0ed2NADtNCiGXYTVbnSClnAH9ztI9Lh+mSWveMX+qK7IrGdhU8OxIX7M0PFruH\nt2SgtwdWKdsV9iurbyGvqskZaFpa18Lpk0K6PZF7csMxOpZvEkLw5w3p/PbDQ4T5GahsMNFkspKa\nXckFMyIJ9tGz7lARZXVGvkor5fRJoaxaGEeIrydfp5d1CiI1W23Migng2VVzeOTS6SybGs7qmxfy\n92vmEBfszd7cKu56Zz/NZitr7jid702PoNls5eVt2dzz3kFSHtvI3Ec3suqlnazZV8jag0V8vN+9\n0q36w0Adpm8H/iylbHH0aTWCG5cO015jLGbmP1uzeoySv2/5VOb0EF0+Wvj+vFjnLAtORZyX1Bmd\nMWdhfp78+IyJPd7n2xPlNJvaG6teNT+W/9yYwoRQH/759Um0GsG8+CDuXT6Fl7Zk8ou39vPennw+\nP1rifJ+8qiaCvD3aLTctVhuPfZbGY5+l8eBHR7h56QTOnRrOOY5Tw9zKRm7+724+OVBERmk93nod\nJ9rUT6tqNFHRYOpUTPDV7Tlj9oRxoPP8ZOBMIcTjgBH4jZRyN+PUYfrM5FD0Og0my9j4T2KTsOL5\nrWz77bkEeHcuxazVCF69eSH3fnCILSfKR219+Nd35PDElbNYd6gYm02y7pdnsuVEOaG+nkgkZquN\nS2ZH46HVsDWjnIzSBuYnBLVL97l2YTzhfp6dKpPOcuQE1jWZ8DVo+cGiOGICvQn20XN2cjgRAYZ2\novnnDfbqHw9cPI0mk8UZ82ay2lh3sAhvTx2XzYlGSklYm4j9e9476My2iA3yoslkoby+95PDo0V1\n/GHtUR69bMaYS/MZqGjpgGBgCbAQeE8I0fOvqyFkpB2mowK8eOyKmdz3waHhfusho77FQm5VI7O9\nu55RBfnoefmmFCxWG3lVTZwobeDtXXnsz6tutxwbLrw8tDx6+QzubfNvYLFJnthwjL+tnIPZasPX\nU8fiicFklDawI6sSf4MHGaUnOFhQw3cn7TXCHloxrZ1oJQR7U91kwmy1Eeitp6KhhdA2jjb+3np+\nvmwyWg0EeNnDHxYkBrEg0b6T4aXXYrbaqGo0oRF2U4zFT2zioRXTWLUwHm+9jj0Pfc9ZP611FvZ1\neikL4oOd9eVDfPScMyUcm5Q0dZj1dcdbqXkkh/ty81L3dpTuyEBFqwBY41jq7RJC2IBQBucwXdCF\nw/Q5Ha75ZoDjHXKumh/LX7843qffgu5CX8qi6LQaJob5MjHMlwtnRiKlZF9eNc9+lcHWjIphGKWd\nZrOVI4W1/OmKmfz183SeWTWXdYeK+Wh/IT99Yy9+Bh16raZXQ4m04rp2z4vrjPgZdPgbPNiWUcH1\nr6TiZ9ARG+TNw5dOZ8nEkF6Dbnc7chIXTQgmws9AQog3nx4sZtVC+6pACEHritFmk3y4r4BjxfUc\nyK9le2YlCxODWDY1nA1Hip2b8n0lp4/J8O7EQOeNHwPLAIQQyYAeqGAcO0xrNYJlU8JGehguIybQ\nq5MRaV8QQrAgIZjXb1nEQyumMZzGyq/tyOU/W7J46ydLaGix0Gyy8uSVs9AIe95fXxxwtnUQWo3A\nHooOBHh5oNdpqDfardMeWXu00yZ9KzabxGSxsTm9jF05VbRY7BHwGo3gqavmsHyGPU/RYrXx/KYM\nfv7mPn7w0k7O+utm3tiZy8wYf57flEG4nydv3rqEo0V1fLy/CItVkhzR93+X/pTSdhd6/UQOh+lz\ngFAhRAH2E73VwGpHGIQJuMkhNEeFEK0O0xY6O0y/Cnhhd5du6zD9hsNhugr76SNSyiohRKvDNLiB\nw7S7B5i24m/Q8doti5jQTYnhviCE4NYzJxIf7M0db+7rlDw8VORVNfHLt/dz7/IpfH28jPzqJm5Y\nksBrO3L7dH1ZfQu5lY0khNg/e1SAl3PTflZsAH+8bAb//S6bqAAvfv295Hab6marjaKaZsL9DFz/\nSirpxXW0WGxYbBKtRnD7OZMAmB7tz/Roe3jDmn2FPL3xRLsxfG96BK9sy3aO58Jnt5DlsLL/th8l\nkCaF+eCpG1v7WaDceFxGVnkD5z397Ziw0/rvzQtdWlv8H5sy+HuHL6armRrph04rOFJoX94tmRjM\nzacl8psPDnHjaQn8e0tWn6u0rr45pcfKpV2RXdHIb94/yL68ap68chY1zWYaWyyE+xvw0WuxSbh6\nQWy7az7aX8DX6eXkVzW1M3FNCveltM44oHJHGgErZkeTkhCERtj3Hoeygqly43FTGlos/OKt/WNC\nsP62co7LzRBuXppIVkUj6w4V9dubsa8UVDdz65kTnKK1M6uKvMomfnzGBErrjIT46J2Gtb2xO6e6\nk2jVG8349WBqG+HvyZXzYiisbub+NYd7FH4pJe/vLeDj/YVoNaJdWAbQruBgT/h56vAz6CiuMyKl\nfSn4zm1LXGpzNhpRojVIzFYbj61L67SB647ceFpCp9mAK/AzePCLc5M4mF/jXOa4moYWC0eL6vD1\n1BHm50l2RSNFtUZ2ZlWy+uaFHC2q67NobTpWym8vnOp8vjunihtf2cWFMyN5ZtXcLq/x1uu4fkkC\nob567v3gEMdK6roUrdYZWWvJZZ1G9Lp0jgn0IiUxiNggLyL9DcQEeREb5E1SmC8ajaDeaOZEaQNJ\nYb5dhqiMNZRoDZJms5V3xkAeWKC3B7/+XvKQ3V+v1XDVglg+3FcwZHXm58QGkBjizX+2ZjvbtBpB\ni8VGdZMJg4cGb70Os8XGxDCfbt2PCqqbMVtteGg1NJks3PLf3TSbrXy0v5CfnDnRuR/VFRfOjOKC\n6e2rn5qtNqSE9/fm8/uPj7Qz2uhKsPwMOqZH+XPm5FAunBnJpDDfHvMf/QwebpcTOhiUaA0Sg879\no+H9DDre++lpBHoPXb2sgupm1h4oGlJjjE8PFnPNwjgumhlJi8VGYogPs2L92ZlVyZXzYliQEMSM\n6AD8vXRICfP/tLHLmKcmk12grkmJI7Oskfo2Byw+nr3/e2vaHJk+vymD13fkYLFJarrxrPQz6Dht\nYghLJoawMDGYGdH+7e6haI8SrUFS3eTeJUKEgOevnTfktbK+OlbK8dJ6NAIunBnJ+sMlA7pPmJ8n\nfp46Z4G+OqMZk8VGi8VGSZ2Rj/YXMCc2kPL6Fj4/Usx/t2cTF+TNlvuWdbrX+dMiWHuwqMv3SSuy\nL/dbwz60GsGtZ0xwnir2hMli45vjZazZV8iXaSWdLMxmxviTFOZLcqQfZ00OIznCzxlEqugdJVqD\nZF8XdlDuxOVzojlniOLLdmVXkVFWz8zoAC5yLHPmxAWwwSFYAV4enXLmemLlglh8PHXMiglgyaQQ\novwNmG02jCYbdUYzQT56Z1yS0Wxlc3oZWRWNlNe3kFXewMSw9vFNp00K6VK0dBrBrWfao8i99Foe\nWjGN6dH+nD4ptF2/7ZkVfHm01L7XFGCgrtnC2oOFHCqo7TSDiwv24uJZUVw1P9btiymONEq0Bsmm\n9LLeO41STpsYwlNXz+lyvySjtJ7yhpZOX9S+YLNJ7nxnP58dKu70fhabjbOnhKHXafj4QGG/ROv9\nDkXy2jIlwo8vfnWW87nBQ8tFs6J6vF9eVedo8XA/T35zwRRig05VNb31zPYZanVGM4+sPdqr27Y9\n4Dic65bEc/bkMLXkcxFKtAZJzhCdhg0106P8+fs1c9B180VqMlk7ee31lYyyhk6CBbAjq5IdWfYc\nv/46P/fGyfKGXsMSOnJNShxrDxRx4cxIksJ9mRzuy5y4wB6NI3ZmVXLPewcp7MLrsJXoAAM/PzeJ\nS+dE49+P8Sj6hhKtQWA0W9nfJijQXZge5c+rP1rYowPPYErPTAj16bXqxUAFS6cRTIn04+zkMIpr\njRg8NPgbPLDYJC0WG/1ZeE0I9eG7+8/tU98Wi5WnvzzBS1uzuo3Hi/Q38KOlidx0euK4tvgaapRo\nDYKTZQ19jrIeLSSF+/LOT5cM6QxAr9Pw1q2L2Z5ZyTfHy5w2WX3BU6dhcoQvUyP9iQ6wxyRF+BuI\nDDCg02iIDfIadkHYl1fN/R8e4kRp10Gfk8J8uP2cJC6fGz3u7b2GAyVag+BoUddxPqOVmEAv3rx1\n8bAsWVISg0lJDOaX503myQ3HeGVrtjMmyd+gY1K4LwnB3kQEGIgJ9CLU15PYIC+SI/zw1Gl6rcs+\nHDS2WPjbl8d5dXtOl7OraVH+3HHOJC6eFdWpGqli6FCiNQg2ppWO9BD6jJ+njmevndvv0iau4Ffn\nJ3P/hVMxOYIs24qSyWIb0eN+s9VGk8lKgJcHZXVGhBAUVDeRX93MU5+nU1Ddee9qyUS7GA/kkEIx\neJRoDZDaZjNbhrFe1GCYGOrDY1fOZGFicL+vbWixDLq8SetyzrOLQNyRFCybTXLdy6nszqki3M+T\n8voWNKLrtJpQX09OnxTCtQvjOD1JidVIokRrgHxxtMQtyisLAX+/Zg7z4geW5lFU0+zWcUU2m2Tr\nyQryqpq4fnG8c4YnpWT1d9nsyrZXO2oteGjrsA6cHuXPT86awMWzoroUXcXwo0RrgGS0MRcYrYT6\n6nklFiMAAA7bSURBVHngomkDFixwT1dpk8VGvdFMWnEd/9mazRZHDaqP9hVwxbwYSmqNHCmqc7Z3\nRAi4dHY0Pz17ItOj/EfF/priFEq0Bkhf63SPJPcun8JVQ1C1YbQipeR/qXk8ti7NmebTln15NT2e\nZEb6G7gmJZbvz48lcRAFEBVDixKtAWCzSXZkVo70MHrkoRXTuHxul+ZFYxKL1cYfP03jjZ19q1Da\nip+njnOmhrMqJY7FE4NVyIIb0Jdyy6uBS4AyKeXMDq/dg92oNUxKWeFoewC7AasV+KWU8gtH+wJO\nlVteD9wlpZRCCE/sPogLsBtarJJS5jiuuQl4yPF2j0kpW/0Rh4XGFgtrDxbhZ9A5N7G99Foe/uTo\nkNWFcgVz4gL58RkTxsWyJreykYfXHiWtj/WyzkgKdeZaTon0Y05coIpadzP6MtN6FfgndmFxIoSI\nw242kdemra3DdDTwlRAi2VEnvtVhOhW7aF2IvU6802FaCHEtdofpVW0cplOwWwvsFUKsdRi3DjlG\ns5XvPf0tRW3coyeG+VBaa6RxlC4N44O9CfLR8+5tS8aFYEkpue31vRzvw/7iuVPD+fX3ksd8Vc/x\nQK+iJaXcIoRI7OKlZ4D7OOWqA20cpoFsh1nFIiFEDg6HaQAhRKvD9AbHNY84rv8A+GdHh2nHNa0O\n02/37yP2n5e3ZvHB3oJ2ggUMaS2oweJv0PHmrYuJDDCMmyVOVaOpV8E6c3Iov7lgils4Yiv6xoD2\ntIQQlwOFUsqDHX6ju73DdGFNM2/tyhvVAtUVd52fTFywd+8dxxA9pfOcPimEX5ybxGkTQ8bFrHM8\n0W/REkJ4Aw9iXxqOClzhMJ1b2YjRbOPnb+1zG8HSCFiaFMrUSD+uXzI4sR4rLJsSxt3nJ6uZ1Rhm\nIDOtScAEoHWWFQvsE0Iswk0dpgtrmrnyxe1Of7vRxNRIP24/ZxILE4P55EARf/k8HbDHYN1yxgTu\nOCdphEc4crStxXX6pBB+sSxJRauPA/otWlLKw4DTZsSxX5UipawQQqwF3hJCPI19I77VYdoqhKgT\nQizBvhF/I/APxy1aHaZ30MZhWgjxBfCEw10a7DO7BwbyIXvjP1uyRqVgBXp78Pdr5jgDHG8/ZxLH\nS+rYdrKS9b88o8fSMuOBmiYzp00M4Q+XTmdaVPdmE4qxxYAcpqWUr3TVV0rplg7TtyydwJupuUPm\nyTdQHr9iFtMi20dkT4n056JZUeNesMB+mvv2bUtGehiKYaYvp4c/6OX1xA7PHwce76LfHmBmF+1G\nYGU3914NrO5tjIMlPsSbqZH+HC4cXaVmLDZbuxK9x0vqOVZc57RXH++oQnvjk/FxNt4HRptvXFK4\nb7s65SW1Rm57Yw8/PXtiD1cpFGMflcbj4FffS2ZjWmmPtb+HA61GcNNpifxoaSJ+Bh0vbD6Jp07D\nmn2FLJ4QzIxoFRypGN8o0XIQ4OXBvPjAERUtvU7DY5fP5JqF9gPYOqOZFzafpMlkJSrAwIMXTxux\nsSkUowW1PGxDdKDXiL23n6eOD392ulOwAPwNHiyfEYmfQceL180fUgdohcJdUDOtNnxzfGQ8DOfE\nBfLklbOYHt352P53K6Zx9/mT++RsrFCMB5RoOahtNpNR1rXbylBxwfQIVqbEcUZSKF76rk/CQn09\nCfX1HNZxKRSjGSVaDuqazWiEwNqdqZ0L8dRpeOrq2Vw2J1rlxSkU/USJloO4YG8CvTyoHMLI+Lhg\nL56/dh4hPp7Eh4yv5GaFwlWojfg2PHftPJf71505OZR7l09hYWIQH92xlHnxQUqwFIpBMO5nWjab\nRAh4blMGG9NKXeoY/dgVM7l+SQIAd5wzSS0FFQoXMO5F60BBDe/uyufdPfm9d+4Ht54xwSlYgBIs\nhcJFjGvRyiit56bVu6g3WgZ9LyFwWqefOTlUBYIqFEPEuBatV7fnDEqwVsyKYvnMSObHB7Izq4p7\nPzhIdIB9s13j4r0xhUJhZ9yKltFsJTV74JVurpofy99WznYu+65e4E24nychvnqCfFTkukIxVIxb\n0frPlixODjCYNMLfkwcvntppn+qs5DBXDE2hUPTAuBWtgZ4RzosP5I0fL8bXc9z+1SkUI0qvcVpC\niNVCiDIhxJE2bX8VQqQLIQ4JIT4SQgS2ee0BIcRJIcRxIcTyNu0LhBCHHa8977AJQwjhKYR419Ge\n2tauTAhxkxAiw/Fzk6s+NMCkMN9+9Q/z8/z/9s4+xqqjCuC/aReWUqj7wcKCLWVJoU2ppZYXLaaL\nH00/QGy0pgohbRX+adFGTbSUYA3aaLKa/qHRSNvQaAw1rJrWj3/4aBT9h+huA3WhbFkWW6Dsglsp\npCBVe/xjzuybvbxlyXv3vbd39/ySm503d+6cc8/MPffembtzaJ03jafuX2gOyzCqSLHBWncA6zXk\nVxt+7fZ1WQrWeveCGTRfNYm+0/++YN+0KRNZfvMsPpe7htmNk3nz1DnmTZ9iny0YxihgxCctEfkz\nfu32OG+7iIRpt93kI+0MBmsVkcNACNY6Ew3WKiKCd4Cfjo4J4e5/DdyRDNaqjioEa02Fmssv4yer\nbmViIrDpkvlN7PrGx9l47wJunHUVU2prmD9jqjkswxglpPGesxrYqumqBGstlkXX1rNu6Q20/+0I\n65Zez/uumMgNzVO50l7/DGPUUtLV6ZzbgI+6syUddYrWo+gI02tub2HN7S3lUMswjDJQ9D9MO+e+\nACwHVukrH5QWrJUCwVoL1XUBIvKMiOREJNfUZJ8dGMZYpiin5Zy7B3gMuFdEzka7fges0BnBFvLB\nWo8Dp51zt+l41YPAb6NjwszgYLBWYBtwl3OuXgO23qV5hmGMY4oK1oqfLawFdugA9W4ReTirwVoN\nw8gOTiqwUmclyeVy0tHRUW01DGNc4JzrFJFcJWXaIoCGYWQKc1qGYWQKc1qGYWQKc1qGYWQKc1qG\nYWSKMTd76Jw7CbxeAVHTgH9WQI7JH706VFv+aNDhehGZWkmBY+6f7ESkIp/EO+c6Kj3Va/JHlw7V\nlj8adHDOVfz7Ins9NAwjU5jTMgwjU5jTKp5nTH7VqbYO1ZYP1deh4vLH3EC8YRhjG3vSMgwjW4jI\nuNqArwBdwD7gq5r3A+AA8ArwAlCn+XOAc8Ae3TZF9SwC/o5fUvpH5J9aa/Erufbg18OfEx3zEHAQ\nOIlfiTXWYSN+vbAga1l03Hqtrxu4OwUdTgLnVYcgf2sk+x/AnjRtADwHnFCZB3Vbi19G+6D+rS/j\nOb+NX3nkaJR/i+a/C/QB0zX/TqBT5XQCn4iO+ZPqFOwxvQzyU7F5gX73NnAa6NL8FqADOAucAXaG\nNgBWRfL3AO8Bt5Rog9DuD0X5LVq2R4+dOOI1XG0nUmGHdRPeYU3Gf+6xE7gOv1ZXjZZpA9qiztM1\nTF1/BW4DHH6ZnaWavzZ0MvwyO1s13QD0Ah/BL91zGP+NTdBhI/D1AnJuBPZqh2gBDgGXl6DDEeBV\nfOCRXu2A1yVkPgV8K00bAEvwSxy9q3rUA6eAb2u5xyO7p33OvcAngY+q/HBhHgCe1/RuYJumPwjM\nivrMsYTTyhWwRZryU7F5Qn4DsAx/09iv+9rx69k9DmzC37DbCsj8AHAoBRuEdu+NbNAOrND0JuCR\nEa/jajuSSm7A/cDm6PcTwGOJMp8Btlys8wAzgQPR75XA05reBizWdA3+wz8XygQdNL0y6MDwTms9\nPvIRcf0l6LAj2EB1aI9toOWOAPPKYINHgbeiY06FTqr1dZfpnJ+OzuUtzXP4J5+rdd9y4J0C5+n0\nmNoRLtjU5Kds88Eyum+Ltq/TMt1a72Lgj6ENEnK/B3w3+l20DaJ+tzLSITwwLEYd98W28Tam1QW0\nOucanXOT8XeeaxJlVpNfoBCgxTm3xzm3yznXqnnv5xIDdeAfyeNAHV1AK35J6TkJHR7VWJLP6Wqt\nQ+pLyCpWh/3BBkA/8KGEDVqBfhE5WAYbNOODnARqgSs13QfMKNM5x3X9R/Ma8a9Wob69wCQu5LPA\nyyJyPsr7udrjiRC/swzy0+53gT68Q2nE3zRmiF9Z+CjQRL4NYj4P/DKRV4oNgt6NwCnJR/a6pOA1\nY+6L+IshIq9qnMbtwDv49/GwsmqhQB3HgdkiMuCcWwS86JxbkJIO38GPK21THX4KPImP8fgk/hVt\ndSmyhuEk/hV4O77TvElkA/wdMO6gqdugECIizjlJu95S0PNsww8fBFaJyDHn3FTgN8ADDI0JmgYV\nsfkwDGkD59yHgbMi0hVlV8IGwzLenrQQkc0iskhElgD/Al6DwoE6xMdvHNB0J35sZT4lBuoQkc3A\nH4ANQQcR6ReR/4nIe8Cz+CegIfUlZBWtQ7AB3mGeiGxQA9xHPiRc2jboAyZEx5zH3zzQ2JgnynXO\n0TETNG8AEOdcqG8hMBi5V/NfAB4UkUORPY7p3zPA8xRop1Lll6vfKc34G/MAUAf0q+2vxt/QTjCU\nFSSeslKwQdB7AKjTssnzGZ6R3h/H2kZ+pmM2fiC0Dh8Edj/QlCjbRH4AeK4atEF/JwdEl2n+lxg6\nGNmu6Qb84Hs9PuDHYfwAZ9BhZiT3a/igt+CjdceD0r0MPyh9qTrMUz3ewDusMFt6D7CrjDZYiA5E\nU3gg/vtlPOd64GaVH/TvZuhA+HZN16n8+xK2qAGmaXoCPrjww2WQX65+V49OxOi+XwG/Jz8Q/2Jo\nA91/mcqem6IN6jXdEOkQD8SvHfEarrYTqYLT+gveQe0F7tC8Hm3MIVPM+PGMfZr3MvCpqJ4cfnzq\nEPBj8lPPk7QherSDxQ2+WvPPaWeIdfgFfir7FfyMTuzENqicbnS2qEQdzuEvnjeCfN33s9ABo7xU\nbIC/Wx/H3+X/ix9P+zLwEn4afGfoyGU65zOR7KPAGuBW8p8c9APNWv6b5IcPBqf18eNvndpG+4Af\nkncuacovV787g79RhODJ67T+8MnDS4k2+Bg+aE3cH0qxQY9uX4zy52rZHj22dqRr2L6INwwjU4y7\nMS3DMLKNOS3DMDKFOS3DMDKFOS3DMDKFOS3DMDKFOS3DMDKFOS3DMDKFOS3DMDLF/wGms8Jolysl\nyQAAAABJRU5ErkJggg==\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "polydf.plot()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Joins" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:26:12.951484Z", - "start_time": "2017-12-15T21:26:10.561508Z" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
geometryvalue1value2index_rightBoroCodeBoroNameShape_LengShape_Area
0POINT (913175 120121)1033296793054NaNNaNNaNNaNNaN
1POINT (932450 139211)10716617932390.05.0Staten Island330470.0103321.623820e+09
2POINT (951725 158301)11100267934240.05.0Staten Island330470.0103321.623820e+09
3POINT (971000 177391)1148391793609NaNNaNNaNNaNNaN
4POINT (990275 196481)1186756793794NaNNaNNaNNaNNaN
5POINT (1009550 215571)12251217939791.04.0Queens896344.0477633.045213e+09
6POINT (1028825 234661)12634867941644.02.0Bronx464392.9918241.186925e+09
7POINT (1048100 253751)1301851794349NaNNaNNaNNaNNaN
8POINT (1067375 272841)1340216794534NaNNaNNaNNaNNaN
\n", - "
" - ], - "text/plain": [ - " geometry value1 value2 index_right BoroCode \\\n", - "0 POINT (913175 120121) 1033296 793054 NaN NaN \n", - "1 POINT (932450 139211) 1071661 793239 0.0 5.0 \n", - "2 POINT (951725 158301) 1110026 793424 0.0 5.0 \n", - "3 POINT (971000 177391) 1148391 793609 NaN NaN \n", - "4 POINT (990275 196481) 1186756 793794 NaN NaN \n", - "5 POINT (1009550 215571) 1225121 793979 1.0 4.0 \n", - "6 POINT (1028825 234661) 1263486 794164 4.0 2.0 \n", - "7 POINT (1048100 253751) 1301851 794349 NaN NaN \n", - "8 POINT (1067375 272841) 1340216 794534 NaN NaN \n", - "\n", - " BoroName Shape_Leng Shape_Area \n", - "0 NaN NaN NaN \n", - "1 Staten Island 330470.010332 1.623820e+09 \n", - "2 Staten Island 330470.010332 1.623820e+09 \n", - "3 NaN NaN NaN \n", - "4 NaN NaN NaN \n", - "5 Queens 896344.047763 3.045213e+09 \n", - "6 Bronx 464392.991824 1.186925e+09 \n", - "7 NaN NaN NaN \n", - "8 NaN NaN NaN " - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from geopandas.tools import sjoin\n", - "join_left_df = sjoin(pointdf, polydf, how=\"left\")\n", - "join_left_df\n", - "# Note the NaNs where the point did not intersect a boro" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:26:13.871475Z", - "start_time": "2017-12-15T21:26:12.951484Z" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
index_leftvalue1value2BoroCodeBoroNameShape_LengShape_Areageometry
index_right
01.01071661.0793239.05Staten Island330470.0103321.623820e+09(POLYGON ((970217.0223999023 145643.3322143555...
02.01110026.0793424.05Staten Island330470.0103321.623820e+09(POLYGON ((970217.0223999023 145643.3322143555...
15.01225121.0793979.04Queens896344.0477633.045213e+09(POLYGON ((1029606.076599121 156073.8142089844...
46.01263486.0794164.02Bronx464392.9918241.186925e+09(POLYGON ((1012821.805786133 229228.2645874023...
2NaNNaNNaN3Brooklyn741080.5231661.937479e+09(POLYGON ((1021176.479003906 151374.7969970703...
3NaNNaNNaN1Manhattan359299.0964716.364715e+08(POLYGON ((981219.0557861328 188655.3157958984...
\n", - "
" - ], - "text/plain": [ - " index_left value1 value2 BoroCode BoroName \\\n", - "index_right \n", - "0 1.0 1071661.0 793239.0 5 Staten Island \n", - "0 2.0 1110026.0 793424.0 5 Staten Island \n", - "1 5.0 1225121.0 793979.0 4 Queens \n", - "4 6.0 1263486.0 794164.0 2 Bronx \n", - "2 NaN NaN NaN 3 Brooklyn \n", - "3 NaN NaN NaN 1 Manhattan \n", - "\n", - " Shape_Leng Shape_Area \\\n", - "index_right \n", - "0 330470.010332 1.623820e+09 \n", - "0 330470.010332 1.623820e+09 \n", - "1 896344.047763 3.045213e+09 \n", - "4 464392.991824 1.186925e+09 \n", - "2 741080.523166 1.937479e+09 \n", - "3 359299.096471 6.364715e+08 \n", - "\n", - " geometry \n", - "index_right \n", - "0 (POLYGON ((970217.0223999023 145643.3322143555... \n", - "0 (POLYGON ((970217.0223999023 145643.3322143555... \n", - "1 (POLYGON ((1029606.076599121 156073.8142089844... \n", - "4 (POLYGON ((1012821.805786133 229228.2645874023... \n", - "2 (POLYGON ((1021176.479003906 151374.7969970703... \n", - "3 (POLYGON ((981219.0557861328 188655.3157958984... " - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "join_right_df = sjoin(pointdf, polydf, how=\"right\")\n", - "join_right_df\n", - "# Note Staten Island is repeated" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:26:13.961474Z", - "start_time": "2017-12-15T21:26:13.881475Z" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
geometryvalue1value2index_rightBoroCodeBoroNameShape_LengShape_Area
1POINT (932450 139211)107166179323905Staten Island330470.0103321.623820e+09
2POINT (951725 158301)111002679342405Staten Island330470.0103321.623820e+09
5POINT (1009550 215571)122512179397914Queens896344.0477633.045213e+09
6POINT (1028825 234661)126348679416442Bronx464392.9918241.186925e+09
\n", - "
" - ], - "text/plain": [ - " geometry value1 value2 index_right BoroCode \\\n", - "1 POINT (932450 139211) 1071661 793239 0 5 \n", - "2 POINT (951725 158301) 1110026 793424 0 5 \n", - "5 POINT (1009550 215571) 1225121 793979 1 4 \n", - "6 POINT (1028825 234661) 1263486 794164 4 2 \n", - "\n", - " BoroName Shape_Leng Shape_Area \n", - "1 Staten Island 330470.010332 1.623820e+09 \n", - "2 Staten Island 330470.010332 1.623820e+09 \n", - "5 Queens 896344.047763 3.045213e+09 \n", - "6 Bronx 464392.991824 1.186925e+09 " - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "join_inner_df = sjoin(pointdf, polydf, how=\"inner\")\n", - "join_inner_df\n", - "# Note the lack of NaNs; dropped anything that didn't intersect" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We're not limited to using the `intersection` binary predicate. Any of the `Shapely` geometry methods that return a Boolean can be used by specifying the `op` kwarg." - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:26:14.191472Z", - "start_time": "2017-12-15T21:26:13.961474Z" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
geometryvalue1value2index_rightBoroCodeBoroNameShape_LengShape_Area
0POINT (913175 120121)1033296793054NaNNaNNaNNaNNaN
1POINT (932450 139211)10716617932390.05.0Staten Island330470.0103321.623820e+09
2POINT (951725 158301)11100267934240.05.0Staten Island330470.0103321.623820e+09
3POINT (971000 177391)1148391793609NaNNaNNaNNaNNaN
4POINT (990275 196481)1186756793794NaNNaNNaNNaNNaN
5POINT (1009550 215571)12251217939791.04.0Queens896344.0477633.045213e+09
6POINT (1028825 234661)12634867941644.02.0Bronx464392.9918241.186925e+09
7POINT (1048100 253751)1301851794349NaNNaNNaNNaNNaN
8POINT (1067375 272841)1340216794534NaNNaNNaNNaNNaN
\n", - "
" - ], - "text/plain": [ - " geometry value1 value2 index_right BoroCode \\\n", - "0 POINT (913175 120121) 1033296 793054 NaN NaN \n", - "1 POINT (932450 139211) 1071661 793239 0.0 5.0 \n", - "2 POINT (951725 158301) 1110026 793424 0.0 5.0 \n", - "3 POINT (971000 177391) 1148391 793609 NaN NaN \n", - "4 POINT (990275 196481) 1186756 793794 NaN NaN \n", - "5 POINT (1009550 215571) 1225121 793979 1.0 4.0 \n", - "6 POINT (1028825 234661) 1263486 794164 4.0 2.0 \n", - "7 POINT (1048100 253751) 1301851 794349 NaN NaN \n", - "8 POINT (1067375 272841) 1340216 794534 NaN NaN \n", - "\n", - " BoroName Shape_Leng Shape_Area \n", - "0 NaN NaN NaN \n", - "1 Staten Island 330470.010332 1.623820e+09 \n", - "2 Staten Island 330470.010332 1.623820e+09 \n", - "3 NaN NaN NaN \n", - "4 NaN NaN NaN \n", - "5 Queens 896344.047763 3.045213e+09 \n", - "6 Bronx 464392.991824 1.186925e+09 \n", - "7 NaN NaN NaN \n", - "8 NaN NaN NaN " - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "sjoin(pointdf, polydf, how=\"left\", op=\"within\")" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.6.1" - } - }, - "nbformat": 4, - "nbformat_minor": 1 -} diff --git a/geopandas/io/tests/test_file.py b/geopandas/io/tests/test_file.py index 5951122..d9bc6de 100644 --- a/geopandas/io/tests/test_file.py +++ b/geopandas/io/tests/test_file.py @@ -33,12 +33,14 @@ def df_nybb(): @pytest.fixture def df_null(): - return read_file(os.path.join(PACKAGE_DIR, "examples", "null_geom.geojson")) + return read_file( + os.path.join(PACKAGE_DIR, "geopandas", "tests", "data", "null_geom.geojson") + ) @pytest.fixture def file_path(): - return os.path.join(PACKAGE_DIR, "examples", "null_geom.geojson") + return os.path.join(PACKAGE_DIR, "geopandas", "tests", "data", "null_geom.geojson") @pytest.fixture diff --git a/examples/null_geom.geojson b/geopandas/tests/data/null_geom.geojson similarity index 100% rename from examples/null_geom.geojson rename to geopandas/tests/data/null_geom.geojson diff --git a/geopandas/tests/test_geodataframe.py b/geopandas/tests/test_geodataframe.py index 49f5614..28b1e84 100644 --- a/geopandas/tests/test_geodataframe.py +++ b/geopandas/tests/test_geodataframe.py @@ -40,7 +40,9 @@ class TestDataFrame: ], crs=self.crs, ) - self.df3 = read_file(os.path.join(PACKAGE_DIR, "examples", "null_geom.geojson")) + self.df3 = read_file( + os.path.join(PACKAGE_DIR, "geopandas", "tests", "data", "null_geom.geojson") + ) def teardown_method(self): shutil.rmtree(self.tempdir) From 01365433f8b5ea0373c6bc6b9fad17cdec68fc81 Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Thu, 18 Feb 2021 21:50:41 +0000 Subject: [PATCH 109/316] TST: fix path to remote gejson (#1834) --- geopandas/io/tests/test_file.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/geopandas/io/tests/test_file.py b/geopandas/io/tests/test_file.py index d9bc6de..ac20d5e 100644 --- a/geopandas/io/tests/test_file.py +++ b/geopandas/io/tests/test_file.py @@ -298,7 +298,7 @@ def test_read_file(df_nybb): def test_read_file_remote_geojson_url(): url = ( "https://raw.githubusercontent.com/geopandas/geopandas/" - "master/examples/null_geom.geojson" + "master/geopandas/tests/data/null_geom.geojson" ) gdf = read_file(url) assert isinstance(gdf, geopandas.GeoDataFrame) From 0ae468fcad06f9ff71563e6a0b67a5d583ec4d37 Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Thu, 18 Feb 2021 21:51:05 +0000 Subject: [PATCH 110/316] DOC: fix links in readme (#1836) --- README.md | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index ab9fd4e..ff1cf8e 100644 --- a/README.md +++ b/README.md @@ -67,7 +67,7 @@ Examples 2 POLYGON ((2 0, 3 0, 3 1, 2 1, 2 0)) dtype: geometry -![Example 1](examples/test.png) +![Example 1](doc/source/gallery/test.png) Some geographic operations return normal pandas object. The `area` property of a `GeoSeries` will return a `pandas.Series` containing the area of each item in the `GeoSeries`: @@ -85,7 +85,7 @@ Other operations return GeoPandas objects: 2 POLYGON ((1.5 0, 1.5 1, 1.502407636663901 1.04... dtype: geometry -![Example 2](examples/test_buffer.png) +![Example 2](doc/source/gallery/test_buffer.png) GeoPandas objects also know how to plot themselves. GeoPandas uses [matplotlib](http://matplotlib.org) for plotting. To generate a plot of our @@ -101,22 +101,22 @@ GeoPandas also implements alternate constructors that can read any data format r >>> boros.sort_index(inplace=True) >>> boros BoroName Shape_Leng Shape_Area \ - BoroCode - 1 Manhattan 359299.096471 6.364715e+08 - 2 Bronx 464392.991824 1.186925e+09 - 3 Brooklyn 741080.523166 1.937479e+09 - 4 Queens 896344.047763 3.045213e+09 - 5 Staten Island 330470.010332 1.623820e+09 - - geometry - BoroCode - 1 MULTIPOLYGON (((981219.0557861328 188655.31579... - 2 MULTIPOLYGON (((1012821.805786133 229228.26458... - 3 MULTIPOLYGON (((1021176.479003906 151374.79699... - 4 MULTIPOLYGON (((1029606.076599121 156073.81420... - 5 MULTIPOLYGON (((970217.0223999023 145643.33221... + BoroCode + 1 Manhattan 359299.096471 6.364715e+08 + 2 Bronx 464392.991824 1.186925e+09 + 3 Brooklyn 741080.523166 1.937479e+09 + 4 Queens 896344.047763 3.045213e+09 + 5 Staten Island 330470.010332 1.623820e+09 -![New York City boroughs](examples/nyc.png) + geometry + BoroCode + 1 MULTIPOLYGON (((981219.0557861328 188655.31579... + 2 MULTIPOLYGON (((1012821.805786133 229228.26458... + 3 MULTIPOLYGON (((1021176.479003906 151374.79699... + 4 MULTIPOLYGON (((1029606.076599121 156073.81420... + 5 MULTIPOLYGON (((970217.0223999023 145643.33221... + +![New York City boroughs](doc/source/gallery/nyc.png) >>> boros['geometry'].convex_hull BoroCode @@ -127,4 +127,4 @@ GeoPandas also implements alternate constructors that can read any data format r 5 POLYGON ((915517.6877458114 120121.8812543372,... dtype: geometry -![Convex hulls of New York City boroughs](examples/nyc_hull.png) +![Convex hulls of New York City boroughs](doc/source/gallery/nyc_hull.png) From 53e06302cb8d7526e02ba7f3c84eba58d31376de Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Thu, 18 Feb 2021 21:51:48 +0000 Subject: [PATCH 111/316] ENH: add a keyword to control alignment in binary operations and predicates (#1668) * align keyword * tests * first set of docstrings * docstrings * docs * shapely test * fix condition * fix project test * docstring changes per review --- .gitignore | 2 +- doc/source/_static/binary_geo-difference.svg | 1 + .../_static/binary_geo-intersection.svg | 1 + doc/source/_static/binary_geo-symm_diff.svg | 1 + doc/source/_static/binary_geo-union.svg | 1 + doc/source/_static/binary_op-01.svg | 1 + doc/source/_static/binary_op-02.svg | 1 + doc/source/_static/binary_op-03.svg | 1 + doc/source/docs/reference/geoseries.rst | 3 +- geopandas/base.py | 1872 ++++++++++++++++- geopandas/tests/test_geom_methods.py | 111 + geopandas/tests/test_geoseries.py | 20 +- 12 files changed, 1934 insertions(+), 81 deletions(-) create mode 100644 doc/source/_static/binary_geo-difference.svg create mode 100644 doc/source/_static/binary_geo-intersection.svg create mode 100644 doc/source/_static/binary_geo-symm_diff.svg create mode 100644 doc/source/_static/binary_geo-union.svg create mode 100644 doc/source/_static/binary_op-01.svg create mode 100644 doc/source/_static/binary_op-02.svg create mode 100644 doc/source/_static/binary_op-03.svg diff --git a/.gitignore b/.gitignore index 1cfe9fe..8eefebd 100644 --- a/.gitignore +++ b/.gitignore @@ -61,7 +61,7 @@ examples/nybb_*.zip doc/source/savefig doc/source/reference -doc/source/docs/reference/api +doc/source/docs/reference/api/*.rst geopandas.egg-info geopandas/version.py diff --git a/doc/source/_static/binary_geo-difference.svg b/doc/source/_static/binary_geo-difference.svg new file mode 100644 index 0000000..d430d25 --- /dev/null +++ b/doc/source/_static/binary_geo-difference.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/source/_static/binary_geo-intersection.svg b/doc/source/_static/binary_geo-intersection.svg new file mode 100644 index 0000000..2a06f5b --- /dev/null +++ b/doc/source/_static/binary_geo-intersection.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/source/_static/binary_geo-symm_diff.svg b/doc/source/_static/binary_geo-symm_diff.svg new file mode 100644 index 0000000..f33736b --- /dev/null +++ b/doc/source/_static/binary_geo-symm_diff.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/source/_static/binary_geo-union.svg b/doc/source/_static/binary_geo-union.svg new file mode 100644 index 0000000..1c6901a --- /dev/null +++ b/doc/source/_static/binary_geo-union.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/source/_static/binary_op-01.svg b/doc/source/_static/binary_op-01.svg new file mode 100644 index 0000000..3bedcb6 --- /dev/null +++ b/doc/source/_static/binary_op-01.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/source/_static/binary_op-02.svg b/doc/source/_static/binary_op-02.svg new file mode 100644 index 0000000..a8d4087 --- /dev/null +++ b/doc/source/_static/binary_op-02.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/source/_static/binary_op-03.svg b/doc/source/_static/binary_op-03.svg new file mode 100644 index 0000000..37b1fa6 --- /dev/null +++ b/doc/source/_static/binary_op-03.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/source/docs/reference/geoseries.rst b/doc/source/docs/reference/geoseries.rst index 4f6bfd2..82726ac 100644 --- a/doc/source/docs/reference/geoseries.rst +++ b/doc/source/docs/reference/geoseries.rst @@ -49,11 +49,12 @@ Binary Predicates .. autosummary:: :toctree: api/ - GeoSeries.geom_almost_equals GeoSeries.contains GeoSeries.crosses GeoSeries.disjoint GeoSeries.geom_equals + GeoSeries.geom_almost_equals + GeoSeries.geom_equals_exact GeoSeries.intersects GeoSeries.overlaps GeoSeries.touches diff --git a/geopandas/base.py b/geopandas/base.py index b2e2802..a4edd73 100644 --- a/geopandas/base.py +++ b/geopandas/base.py @@ -24,11 +24,11 @@ def is_geometry_type(data): return False -def _delegate_binary_method(op, this, other, *args, **kwargs): +def _delegate_binary_method(op, this, other, align, *args, **kwargs): # type: (str, GeoSeries, GeoSeries) -> GeoSeries/Series this = this.geometry if isinstance(other, GeoPandasBase): - if not this.index.equals(other.index): + if align and not this.index.equals(other.index): warn("The indices of the two GeoSeries are different.") this, other = this.align(other.geometry) else: @@ -45,19 +45,19 @@ def _delegate_binary_method(op, this, other, *args, **kwargs): return data, this.index -def _binary_geo(op, this, other): +def _binary_geo(op, this, other, align): # type: (str, GeoSeries, GeoSeries) -> GeoSeries """Binary operation on GeoSeries objects that returns a GeoSeries""" from .geoseries import GeoSeries - geoms, index = _delegate_binary_method(op, this, other) + geoms, index = _delegate_binary_method(op, this, other, align) return GeoSeries(geoms.data, index=index, crs=this.crs) -def _binary_op(op, this, other, *args, **kwargs): +def _binary_op(op, this, other, align, *args, **kwargs): # type: (str, GeoSeries, GeoSeries, args/kwargs) -> Series[bool/float] """Binary operation on GeoSeries objects that returns a Series""" - data, index = _delegate_binary_method(op, this, other, *args, **kwargs) + data, index = _delegate_binary_method(op, this, other, align, *args, **kwargs) return Series(data, index=index) @@ -727,9 +727,9 @@ GeometryCollection # Binary operations that return a pandas Series # - def contains(self, other): + def contains(self, other, align=True): """Returns a ``Series`` of ``dtype('bool')`` with value ``True`` for - each geometry that contains `other`. + each aligned geometry that contains `other`. An object is said to contain `other` if its `interior` contains the `boundary` and `interior` of the other object and their boundaries do @@ -738,36 +738,230 @@ GeometryCollection This is the inverse of :meth:`within` in the sense that the expression ``a.contains(b) == b.within(a)`` always evaluates to ``True``. + The operation works on a 1-to-1 row-wise manner: + + .. image:: ../../../_static/binary_op-01.svg + :align: center + Parameters ---------- other : GeoSeries or geometric object The GeoSeries (elementwise) or geometric object to test if is contained. - """ - return _binary_op("contains", self, other) + align : bool (default True) + If True, automatically aligns GeoSeries based on their indices. + If False, the order of elements is preserved. - def geom_equals(self, other): + Returns + ------- + Series (bool) + + Examples + -------- + >>> from shapely.geometry import Polygon, LineString, Point + >>> s = geopandas.GeoSeries( + ... [ + ... Polygon([(0, 0), (1, 1), (0, 1)]), + ... LineString([(0, 0), (0, 2)]), + ... LineString([(0, 0), (0, 1)]), + ... Point(0, 1), + ... ], + ... index=range(0, 4), + ... ) + >>> s2 = geopandas.GeoSeries( + ... [ + ... Polygon([(0, 0), (2, 2), (0, 2)]), + ... Polygon([(0, 0), (1, 2), (0, 2)]), + ... LineString([(0, 0), (0, 2)]), + ... Point(0, 1), + ... ], + ... index=range(1, 5), + ... ) + + >>> s + 0 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 0.... + 1 LINESTRING (0.00000 0.00000, 0.00000 2.00000) + 2 LINESTRING (0.00000 0.00000, 0.00000 1.00000) + 3 POINT (0.00000 1.00000) + dtype: geometry + + >>> s2 + 1 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0.... + 2 POLYGON ((0.00000 0.00000, 1.00000 2.00000, 0.... + 3 LINESTRING (0.00000 0.00000, 0.00000 2.00000) + 4 POINT (0.00000 1.00000) + dtype: geometry + + We can check if each geometry of GeoSeries contains a single + geometry: + + .. image:: ../../../_static/binary_op-03.svg + :align: center + + >>> point = Point(0, 1) + >>> s.contains(point) + 0 False + 1 True + 2 False + 3 True + dtype: bool + + We can also check two GeoSeries against each other, row by row. + The GeoSeries above have different indices. We can either align both GeoSeries + based on index values and compare elements with the same index using + ``align=True`` or ignore index and compare elements based on their matching + order using ``align=False``: + + .. image:: ../../../_static/binary_op-02.svg + + >>> s2.contains(s, align=True) + 0 False + 1 False + 2 False + 3 True + 4 False + dtype: bool + + >>> s2.contains(s, align=False) + 1 True + 2 False + 3 True + 4 True + dtype: bool + + Notes + ----- + This method works in a row-wise manner. It does not check if an element + of one GeoSeries ``contains`` *any* element of the other one. + + See also + -------- + GeoSeries.within + """ + return _binary_op("contains", self, other, align) + + def geom_equals(self, other, align=True): """Returns a ``Series`` of ``dtype('bool')`` with value ``True`` for - each geometry equal to `other`. + each aligned geometry equal to `other`. An object is said to be equal to `other` if its set-theoretic `boundary`, `interior`, and `exterior` coincides with those of the other. + The operation works on a 1-to-1 row-wise manner: + + .. image:: ../../../_static/binary_op-01.svg + :align: center + Parameters ---------- other : GeoSeries or geometric object The GeoSeries (elementwise) or geometric object to test for equality. - """ - return _binary_op("geom_equals", self, other) + align : bool (default True) + If True, automatically aligns GeoSeries based on their indices. + If False, the order of elements is preserved. - def geom_almost_equals(self, other, decimal=6): + Returns + ------- + Series (bool) + + Examples + -------- + >>> from shapely.geometry import Polygon, LineString, Point + >>> s = geopandas.GeoSeries( + ... [ + ... Polygon([(0, 0), (2, 2), (0, 2)]), + ... Polygon([(0, 0), (1, 2), (0, 2)]), + ... LineString([(0, 0), (0, 2)]), + ... Point(0, 1), + ... ], + ... ) + >>> s2 = geopandas.GeoSeries( + ... [ + ... Polygon([(0, 0), (2, 2), (0, 2)]), + ... Polygon([(0, 0), (1, 2), (0, 2)]), + ... Point(0, 1), + ... LineString([(0, 0), (0, 2)]), + ... ], + ... index=range(1, 5), + ... ) + + >>> s + 0 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0.... + 1 POLYGON ((0.00000 0.00000, 1.00000 2.00000, 0.... + 2 LINESTRING (0.00000 0.00000, 0.00000 2.00000) + 3 POINT (0.00000 1.00000) + dtype: geometry + + >>> s2 + 1 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0.... + 2 POLYGON ((0.00000 0.00000, 1.00000 2.00000, 0.... + 3 POINT (0.00000 1.00000) + 4 LINESTRING (0.00000 0.00000, 0.00000 2.00000) + dtype: geometry + + We can check if each geometry of GeoSeries contains a single + geometry: + + .. image:: ../../../_static/binary_op-03.svg + :align: center + + >>> polygon = Polygon([(0, 0), (2, 2), (0, 2)]) + >>> s.geom_equals(polygon) + 0 True + 1 False + 2 False + 3 False + dtype: bool + + We can also check two GeoSeries against each other, row by row. + The GeoSeries above have different indices. We can either align both GeoSeries + based on index values and compare elements with the same index using + ``align=True`` or ignore index and compare elements based on their matching + order using ``align=False``: + + .. image:: ../../../_static/binary_op-02.svg + + >>> s.geom_equals(s2) + 0 False + 1 False + 2 False + 3 True + 4 False + dtype: bool + + >>> s.geom_equals(s2, align=False) + 0 True + 1 True + 2 False + 3 False + dtype: bool + + Notes + ----- + This method works in a row-wise manner. It does not check if an element + of one GeoSeries is equal to *any* element of the other one. + + See also + -------- + GeoSeries.geom_almost_equals + GeoSeries.geom_equals_exact + + """ + return _binary_op("geom_equals", self, other, align) + + def geom_almost_equals(self, other, decimal=6, align=True): """Returns a ``Series`` of ``dtype('bool')`` with value ``True`` if - each geometry is approximately equal to `other`. + each aligned geometry is approximately equal to `other`. Approximate equality is tested at all points to the specified `decimal` - place precision. See also :meth:`geom_equals`. + place precision. + + The operation works on a 1-to-1 row-wise manner: + + .. image:: ../../../_static/binary_op-01.svg + :align: center Parameters ---------- @@ -775,90 +969,677 @@ GeometryCollection The GeoSeries (elementwise) or geometric object to compare to. decimal : int Decimal place presion used when testing for approximate equality. + align : bool (default True) + If True, automatically aligns GeoSeries based on their indices. + If False, the order of elements is preserved. + + Returns + ------- + Series (bool) + + Examples + -------- + >>> from shapely.geometry import Point + >>> s = geopandas.GeoSeries( + ... [ + ... Point(0, 1.1), + ... Point(0, 1.01), + ... Point(0, 1.001), + ... ], + ... ) + + >>> s + 0 POINT (0.00000 1.10000) + 1 POINT (0.00000 1.01000) + 2 POINT (0.00000 1.00100) + dtype: geometry + + + >>> s.geom_almost_equals(Point(0, 1), decimal=2) + 0 False + 1 False + 2 True + dtype: bool + + >>> s.geom_almost_equals(Point(0, 1), decimal=1) + 0 False + 1 True + 2 True + dtype: bool + + Notes + ----- + This method works in a row-wise manner. It does not check if an element + of one GeoSeries is equal to *any* element of the other one. + + See also + -------- + GeoSeries.geom_equals + GeoSeries.geom_equals_exact + """ - return _binary_op("geom_almost_equals", self, other, decimal=decimal) + return _binary_op( + "geom_almost_equals", self, other, decimal=decimal, align=align + ) - def geom_equals_exact(self, other, tolerance): - """Return True for all geometries that equal *other* to a given - tolerance, else False""" - return _binary_op("geom_equals_exact", self, other, tolerance=tolerance) + def geom_equals_exact(self, other, tolerance, align=True): + """Return True for all geometries that equal aligned *other* to a given + tolerance, else False. - def crosses(self, other): + The operation works on a 1-to-1 row-wise manner: + + .. image:: ../../../_static/binary_op-01.svg + :align: center + + Parameters + ---------- + other : GeoSeries or geometric object + The GeoSeries (elementwise) or geometric object to compare to. + tolerance : float + Decimal place presion used when testing for approximate equality. + align : bool (default True) + If True, automatically aligns GeoSeries based on their indices. + If False, the order of elements is preserved. + + Returns + ------- + Series (bool) + + Examples + -------- + >>> from shapely.geometry import Point + >>> s = geopandas.GeoSeries( + ... [ + ... Point(0, 1.1), + ... Point(0, 1.0), + ... Point(0, 1.2), + ... ] + ... ) + + >>> s + 0 POINT (0.00000 1.10000) + 1 POINT (0.00000 1.00000) + 2 POINT (0.00000 1.20000) + dtype: geometry + + + >>> s.geom_equals_exact(Point(0, 1), tolerance=0.1) + 0 False + 1 True + 2 False + dtype: bool + + >>> s.geom_equals_exact(Point(0, 1), tolerance=0.15) + 0 True + 1 True + 2 False + dtype: bool + + Notes + ----- + This method works in a row-wise manner. It does not check if an element + of one GeoSeries is equal to *any* element of the other one. + + See also + -------- + GeoSeries.geom_equals + GeoSeries.geom_almost_equals + """ + return _binary_op( + "geom_equals_exact", self, other, tolerance=tolerance, align=align + ) + + def crosses(self, other, align=True): """Returns a ``Series`` of ``dtype('bool')`` with value ``True`` for - each geometry that cross `other`. + each aligned geometry that cross `other`. An object is said to cross `other` if its `interior` intersects the `interior` of the other but does not contain it, and the dimension of the intersection is less than the dimension of the one or the other. + The operation works on a 1-to-1 row-wise manner: + + .. image:: ../../../_static/binary_op-01.svg + :align: center + Parameters ---------- other : GeoSeries or geometric object The GeoSeries (elementwise) or geometric object to test if is crossed. - """ - return _binary_op("crosses", self, other) + align : bool (default True) + If True, automatically aligns GeoSeries based on their indices. + If False, the order of elements is preserved. - def disjoint(self, other): + Returns + ------- + Series (bool) + + Examples + -------- + >>> from shapely.geometry import Polygon, LineString, Point + >>> s = geopandas.GeoSeries( + ... [ + ... Polygon([(0, 0), (2, 2), (0, 2)]), + ... LineString([(0, 0), (2, 2)]), + ... LineString([(2, 0), (0, 2)]), + ... Point(0, 1), + ... ], + ... ) + >>> s2 = geopandas.GeoSeries( + ... [ + ... LineString([(1, 0), (1, 3)]), + ... LineString([(2, 0), (0, 2)]), + ... Point(1, 1), + ... Point(0, 1), + ... ], + ... index=range(1, 5), + ... ) + + >>> s + 0 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0.... + 1 LINESTRING (0.00000 0.00000, 2.00000 2.00000) + 2 LINESTRING (2.00000 0.00000, 0.00000 2.00000) + 3 POINT (0.00000 1.00000) + dtype: geometry + + >>> s2 + 1 LINESTRING (1.00000 0.00000, 1.00000 3.00000) + 2 LINESTRING (2.00000 0.00000, 0.00000 2.00000) + 3 POINT (1.00000 1.00000) + 4 POINT (0.00000 1.00000) + dtype: geometry + + We can check if each geometry of GeoSeries crosses a single + geometry: + + .. image:: ../../../_static/binary_op-03.svg + :align: center + + >>> line = LineString([(-1, 1), (3, 1)]) + >>> s.crosses(line) + 0 True + 1 True + 2 True + 3 False + dtype: bool + + We can also check two GeoSeries against each other, row by row. + The GeoSeries above have different indices. We can either align both GeoSeries + based on index values and compare elements with the same index using + ``align=True`` or ignore index and compare elements based on their matching + order using ``align=False``: + + .. image:: ../../../_static/binary_op-02.svg + + >>> s.crosses(s2, align=True) + 0 False + 1 True + 2 False + 3 False + 4 False + dtype: bool + + >>> s.crosses(s2, align=False) + 0 True + 1 True + 2 False + 3 False + dtype: bool + + Notice that a line does not cross a point that it contains. + + Notes + ----- + This method works in a row-wise manner. It does not check if an element + of one GeoSeries ``crosses`` *any* element of the other one. + + See also + -------- + GeoSeries.disjoint + GeoSeries.intersects + + """ + return _binary_op("crosses", self, other, align) + + def disjoint(self, other, align=True): """Returns a ``Series`` of ``dtype('bool')`` with value ``True`` for - each geometry disjoint to `other`. + each aligned geometry disjoint to `other`. An object is said to be disjoint to `other` if its `boundary` and `interior` does not intersect at all with those of the other. + The operation works on a 1-to-1 row-wise manner: + + .. image:: ../../../_static/binary_op-01.svg + :align: center + Parameters ---------- other : GeoSeries or geometric object The GeoSeries (elementwise) or geometric object to test if is disjoint. - """ - return _binary_op("disjoint", self, other) + align : bool (default True) + If True, automatically aligns GeoSeries based on their indices. + If False, the order of elements is preserved. - def intersects(self, other): + Returns + ------- + Series (bool) + + Examples + -------- + >>> from shapely.geometry import Polygon, LineString, Point + >>> s = geopandas.GeoSeries( + ... [ + ... Polygon([(0, 0), (2, 2), (0, 2)]), + ... LineString([(0, 0), (2, 2)]), + ... LineString([(2, 0), (0, 2)]), + ... Point(0, 1), + ... ], + ... ) + >>> s2 = geopandas.GeoSeries( + ... [ + ... Polygon([(-1, 0), (-1, 2), (0, -2)]), + ... LineString([(0, 0), (0, 1)]), + ... Point(1, 1), + ... Point(0, 0), + ... ], + ... ) + + >>> s + 0 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0.... + 1 LINESTRING (0.00000 0.00000, 2.00000 2.00000) + 2 LINESTRING (2.00000 0.00000, 0.00000 2.00000) + 3 POINT (0.00000 1.00000) + dtype: geometry + + >>> s2 + 0 POLYGON ((-1.00000 0.00000, -1.00000 2.00000, ... + 1 LINESTRING (0.00000 0.00000, 0.00000 1.00000) + 2 POINT (1.00000 1.00000) + 3 POINT (0.00000 0.00000) + dtype: geometry + + We can check each geometry of GeoSeries to a single + geometry: + + .. image:: ../../../_static/binary_op-03.svg + :align: center + + >>> line = LineString([(0, 0), (2, 0)]) + >>> s.disjoint(line) + 0 False + 1 False + 2 False + 3 True + dtype: bool + + We can also check two GeoSeries against each other, row by row. + We can either align both GeoSeries + based on index values and compare elements with the same index using + ``align=True`` or ignore index and compare elements based on their matching + order using ``align=False``: + + .. image:: ../../../_static/binary_op-02.svg + + >>> s.disjoint(s2) + 0 True + 1 False + 2 False + 3 True + dtype: bool + + Notes + ----- + This method works in a row-wise manner. It does not check if an element + of one GeoSeries is equal to *any* element of the other one. + + See also + -------- + GeoSeries.intersects + GeoSeries.touches + + """ + return _binary_op("disjoint", self, other, align) + + def intersects(self, other, align=True): """Returns a ``Series`` of ``dtype('bool')`` with value ``True`` for - each geometry that intersects `other`. + each aligned geometry that intersects `other`. An object is said to intersect `other` if its `boundary` and `interior` intersects in any way with those of the other. + The operation works on a 1-to-1 row-wise manner: + + .. image:: ../../../_static/binary_op-01.svg + :align: center + Parameters ---------- other : GeoSeries or geometric object The GeoSeries (elementwise) or geometric object to test if is intersected. - """ - return _binary_op("intersects", self, other) + align : bool (default True) + If True, automatically aligns GeoSeries based on their indices. + If False, the order of elements is preserved. - def overlaps(self, other): - """Returns True for all geometries that overlap *other*, else False. + Returns + ------- + Series (bool) + + Examples + -------- + >>> from shapely.geometry import Polygon, LineString, Point + >>> s = geopandas.GeoSeries( + ... [ + ... Polygon([(0, 0), (2, 2), (0, 2)]), + ... LineString([(0, 0), (2, 2)]), + ... LineString([(2, 0), (0, 2)]), + ... Point(0, 1), + ... ], + ... ) + >>> s2 = geopandas.GeoSeries( + ... [ + ... LineString([(1, 0), (1, 3)]), + ... LineString([(2, 0), (0, 2)]), + ... Point(1, 1), + ... Point(0, 1), + ... ], + ... index=range(1, 5), + ... ) + + >>> s + 0 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0.... + 1 LINESTRING (0.00000 0.00000, 2.00000 2.00000) + 2 LINESTRING (2.00000 0.00000, 0.00000 2.00000) + 3 POINT (0.00000 1.00000) + dtype: geometry + + >>> s2 + 1 LINESTRING (1.00000 0.00000, 1.00000 3.00000) + 2 LINESTRING (2.00000 0.00000, 0.00000 2.00000) + 3 POINT (1.00000 1.00000) + 4 POINT (0.00000 1.00000) + dtype: geometry + + We can check if each geometry of GeoSeries crosses a single + geometry: + + .. image:: ../../../_static/binary_op-03.svg + :align: center + + >>> line = LineString([(-1, 1), (3, 1)]) + >>> s.intersects(line) + 0 True + 1 True + 2 True + 3 True + dtype: bool + + We can also check two GeoSeries against each other, row by row. + The GeoSeries above have different indices. We can either align both GeoSeries + based on index values and compare elements with the same index using + ``align=True`` or ignore index and compare elements based on their matching + order using ``align=False``: + + .. image:: ../../../_static/binary_op-02.svg + + >>> s.intersects(s2, align=True) + 0 False + 1 True + 2 True + 3 False + 4 False + dtype: bool + + >>> s.intersects(s2, align=False) + 0 True + 1 True + 2 True + 3 True + dtype: bool + + Notes + ----- + This method works in a row-wise manner. It does not check if an element + of one GeoSeries ``crosses`` *any* element of the other one. + + See also + -------- + GeoSeries.disjoint + GeoSeries.crosses + GeoSeries.touches + GeoSeries.intersection + """ + return _binary_op("intersects", self, other, align) + + def overlaps(self, other, align=True): + """Returns True for all aligned geometries that overlap *other*, else False. + + Geometries overlaps if they have more than one but not all + points in common, have the same dimension, and the intersection of the + interiors of the geometries has the same dimension as the geometries + themselves. + + The operation works on a 1-to-1 row-wise manner: + + .. image:: ../../../_static/binary_op-01.svg + :align: center Parameters ---------- other : GeoSeries or geometric object The GeoSeries (elementwise) or geometric object to test if overlaps. - """ - return _binary_op("overlaps", self, other) + align : bool (default True) + If True, automatically aligns GeoSeries based on their indices. + If False, the order of elements is preserved. - def touches(self, other): + Returns + ------- + Series (bool) + + Examples + -------- + >>> from shapely.geometry import Polygon, LineString, MultiPoint, Point + >>> s = geopandas.GeoSeries( + ... [ + ... Polygon([(0, 0), (2, 2), (0, 2)]), + ... Polygon([(0, 0), (2, 2), (0, 2)]), + ... LineString([(0, 0), (2, 2)]), + ... MultiPoint([(0, 0), (0, 1)]), + ... ], + ... ) + >>> s2 = geopandas.GeoSeries( + ... [ + ... Polygon([(0, 0), (2, 0), (0, 2)]), + ... LineString([(0, 1), (1, 1)]), + ... LineString([(1, 1), (3, 3)]), + ... Point(0, 1), + ... ], + ... index=range(1, 5), + ... ) + + >>> s + 0 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0.... + 1 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0.... + 2 LINESTRING (0.00000 0.00000, 2.00000 2.00000) + 3 MULTIPOINT (0.00000 0.00000, 0.00000 1.00000) + dtype: geometry + + >>> s2 + 1 POLYGON ((0.00000 0.00000, 2.00000 0.00000, 0.... + 2 LINESTRING (0.00000 1.00000, 1.00000 1.00000) + 3 LINESTRING (1.00000 1.00000, 3.00000 3.00000) + 4 POINT (0.00000 1.00000) + dtype: geometry + + We can check if each geometry of GeoSeries overlaps a single + geometry: + + .. image:: ../../../_static/binary_op-03.svg + :align: center + + >>> polygon = Polygon([(0, 0), (1, 0), (1, 1), (0, 1)]) + >>> s.overlaps(polygon) + 0 True + 1 True + 2 False + 3 False + dtype: bool + + We can also check two GeoSeries against each other, row by row. + The GeoSeries above have different indices. We can either align both GeoSeries + based on index values and compare elements with the same index using + ``align=True`` or ignore index and compare elements based on their matching + order using ``align=False``: + + .. image:: ../../../_static/binary_op-02.svg + + >>> s.overlaps(s2) + 0 False + 1 True + 2 False + 3 False + 4 False + dtype: bool + + >>> s.overlaps(s2, align=False) + 0 True + 1 False + 2 True + 3 False + dtype: bool + + Notes + ----- + This method works in a row-wise manner. It does not check if an element + of one GeoSeries ``overlaps`` *any* element of the other one. + + See also + -------- + GeoSeries.crosses + GeoSeries.intersects + + """ + return _binary_op("overlaps", self, other, align) + + def touches(self, other, align=True): """Returns a ``Series`` of ``dtype('bool')`` with value ``True`` for - each geometry that touches `other`. + each aligned geometry that touches `other`. An object is said to touch `other` if it has at least one point in common with `other` and its interior does not intersect with any part - of the other. + of the other. Overlapping features therefore do not touch. + + The operation works on a 1-to-1 row-wise manner: + + .. image:: ../../../_static/binary_op-01.svg + :align: center Parameters ---------- other : GeoSeries or geometric object The GeoSeries (elementwise) or geometric object to test if is touched. - """ - return _binary_op("touches", self, other) + align : bool (default True) + If True, automatically aligns GeoSeries based on their indices. + If False, the order of elements is preserved. - def within(self, other): + Returns + ------- + Series (bool) + + Examples + -------- + >>> from shapely.geometry import Polygon, LineString, MultiPoint, Point + >>> s = geopandas.GeoSeries( + ... [ + ... Polygon([(0, 0), (2, 2), (0, 2)]), + ... Polygon([(0, 0), (2, 2), (0, 2)]), + ... LineString([(0, 0), (2, 2)]), + ... MultiPoint([(0, 0), (0, 1)]), + ... ], + ... ) + >>> s2 = geopandas.GeoSeries( + ... [ + ... Polygon([(0, 0), (-2, 0), (0, -2)]), + ... LineString([(0, 1), (1, 1)]), + ... LineString([(1, 1), (3, 0)]), + ... Point(0, 1), + ... ], + ... index=range(1, 5), + ... ) + + >>> s + 0 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0.... + 1 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0.... + 2 LINESTRING (0.00000 0.00000, 2.00000 2.00000) + 3 MULTIPOINT (0.00000 0.00000, 0.00000 1.00000) + dtype: geometry + + >>> s2 + 1 POLYGON ((0.00000 0.00000, -2.00000 0.00000, 0... + 2 LINESTRING (0.00000 1.00000, 1.00000 1.00000) + 3 LINESTRING (1.00000 1.00000, 3.00000 0.00000) + 4 POINT (0.00000 1.00000) + dtype: geometry + + We can check if each geometry of GeoSeries touches a single + geometry: + + .. image:: ../../../_static/binary_op-03.svg + :align: center + + + >>> line = LineString([(0, 0), (-1, -2)]) + >>> s.touches(line) + 0 True + 1 True + 2 True + 3 True + dtype: bool + + We can also check two GeoSeries against each other, row by row. + The GeoSeries above have different indices. We can either align both GeoSeries + based on index values and compare elements with the same index using + ``align=True`` or ignore index and compare elements based on their matching + order using ``align=False``: + + .. image:: ../../../_static/binary_op-02.svg + + >>> s.touches(s2, align=True) + 0 False + 1 True + 2 True + 3 False + 4 False + dtype: bool + + >>> s.touches(s2, align=False) + 0 True + 1 False + 2 True + 3 False + dtype: bool + + Notes + ----- + This method works in a row-wise manner. It does not check if an element + of one GeoSeries ``touches`` *any* element of the other one. + + See also + -------- + GeoSeries.overlaps + GeoSeries.intersects + + """ + return _binary_op("touches", self, other, align) + + def within(self, other, align=True): """Returns a ``Series`` of ``dtype('bool')`` with value ``True`` for - each geometry that is within `other`. + each aligned geometry that is within `other`. An object is said to be within `other` if its `boundary` and `interior` intersects only with the `interior` of the other (not its `boundary` or @@ -868,23 +1649,121 @@ GeometryCollection expression ``a.within(b) == b.contains(a)`` always evaluates to ``True``. + The operation works on a 1-to-1 row-wise manner: + + .. image:: ../../../_static/binary_op-01.svg + :align: center + Parameters ---------- other : GeoSeries or geometric object The GeoSeries (elementwise) or geometric object to test if each geometry is within. + align : bool (default True) + If True, automatically aligns GeoSeries based on their indices. + If False, the order of elements is preserved. + Returns + ------- + Series (bool) + + + Examples + -------- + >>> from shapely.geometry import Polygon, LineString, Point + >>> s = geopandas.GeoSeries( + ... [ + ... Polygon([(0, 0), (2, 2), (0, 2)]), + ... Polygon([(0, 0), (1, 2), (0, 2)]), + ... LineString([(0, 0), (0, 2)]), + ... Point(0, 1), + ... ], + ... ) + >>> s2 = geopandas.GeoSeries( + ... [ + ... Polygon([(0, 0), (1, 1), (0, 1)]), + ... LineString([(0, 0), (0, 2)]), + ... LineString([(0, 0), (0, 1)]), + ... Point(0, 1), + ... ], + ... index=range(1, 5), + ... ) + + >>> s + 0 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0.... + 1 POLYGON ((0.00000 0.00000, 1.00000 2.00000, 0.... + 2 LINESTRING (0.00000 0.00000, 0.00000 2.00000) + 3 POINT (0.00000 1.00000) + dtype: geometry + + >>> s2 + 1 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 0.... + 2 LINESTRING (0.00000 0.00000, 0.00000 2.00000) + 3 LINESTRING (0.00000 0.00000, 0.00000 1.00000) + 4 POINT (0.00000 1.00000) + dtype: geometry + + We can check if each geometry of GeoSeries is within a single + geometry: + + .. image:: ../../../_static/binary_op-03.svg + :align: center + + >>> polygon = Polygon([(0, 0), (2, 2), (0, 2)]) + >>> s.within(polygon) + 0 True + 1 True + 2 False + 3 False + dtype: bool + + We can also check two GeoSeries against each other, row by row. + The GeoSeries above have different indices. We can either align both GeoSeries + based on index values and compare elements with the same index using + ``align=True`` or ignore index and compare elements based on their matching + order using ``align=False``: + + .. image:: ../../../_static/binary_op-02.svg + + >>> s2.within(s) + 0 False + 1 False + 2 True + 3 False + 4 False + dtype: bool + + >>> s2.within(s, align=False) + 1 True + 2 False + 3 True + 4 True + dtype: bool + + Notes + ----- + This method works in a row-wise manner. It does not check if an element + of one GeoSeries is ``within`` *any* element of the other one. + + See also + -------- + GeoSeries.contains """ - return _binary_op("within", self, other) + return _binary_op("within", self, other, align) - def covers(self, other): + def covers(self, other, align=True): """ Returns a ``Series`` of ``dtype('bool')`` with value ``True`` for - each geometry that is entirely covering `other`. + each aligned geometry that is entirely covering `other`. An object A is said to cover another object B if no points of B lie in the exterior of A. + The operation works on a 1-to-1 row-wise manner: + + .. image:: ../../../_static/binary_op-01.svg + :align: center + See https://lin-ear-th-inking.blogspot.com/2007/06/subtleties-of-ogc-covers-spatial.html for reference. @@ -893,17 +1772,111 @@ GeometryCollection ---------- other : Geoseries or geometric object The Geoseries (elementwise) or geometric object to check is being covered. - """ - return _binary_geo("covers", self, other) + align : bool (default True) + If True, automatically aligns GeoSeries based on their indices. + If False, the order of elements is preserved. - def covered_by(self, other): + Returns + ------- + Series (bool) + + Examples + -------- + >>> from shapely.geometry import Polygon, LineString, Point + >>> s = geopandas.GeoSeries( + ... [ + ... Polygon([(0, 0), (2, 0), (2, 2), (0, 2)]), + ... Polygon([(0, 0), (2, 2), (0, 2)]), + ... LineString([(0, 0), (2, 2)]), + ... Point(0, 0), + ... ], + ... ) + >>> s2 = geopandas.GeoSeries( + ... [ + ... Polygon([(0.5, 0.5), (1.5, 0.5), (1.5, 1.5), (0.5, 1.5)]), + ... Polygon([(0, 0), (2, 0), (2, 2), (0, 2)]), + ... LineString([(1, 1), (1.5, 1.5)]), + ... Point(0, 0), + ... ], + ... index=range(1, 5), + ... ) + + >>> s + 0 POLYGON ((0.00000 0.00000, 2.00000 0.00000, 2.... + 1 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0.... + 2 LINESTRING (0.00000 0.00000, 2.00000 2.00000) + 3 POINT (0.00000 0.00000) + dtype: geometry + + >>> s2 + 1 POLYGON ((0.50000 0.50000, 1.50000 0.50000, 1.... + 2 POLYGON ((0.00000 0.00000, 2.00000 0.00000, 2.... + 3 LINESTRING (1.00000 1.00000, 1.50000 1.50000) + 4 POINT (0.00000 0.00000) + dtype: geometry + + We can check if each geometry of GeoSeries covers a single + geometry: + + .. image:: ../../../_static/binary_op-03.svg + :align: center + + >>> poly = Polygon([(0, 0), (2, 0), (2, 2), (0, 2)]) + >>> s.covers(poly) + 0 True + 1 False + 2 False + 3 False + dtype: bool + + We can also check two GeoSeries against each other, row by row. + The GeoSeries above have different indices. We can either align both GeoSeries + based on index values and compare elements with the same index using + ``align=True`` or ignore index and compare elements based on their matching + order using ``align=False``: + + .. image:: ../../../_static/binary_op-02.svg + + >>> s.covers(s2, align=True) + 0 False + 1 False + 2 False + 3 False + 4 False + dtype: bool + + >>> s.covers(s2, align=False) + 0 True + 1 False + 2 True + 3 True + dtype: bool + + Notes + ----- + This method works in a row-wise manner. It does not check if an element + of one GeoSeries ``covers`` *any* element of the other one. + + See also + -------- + GeoSeries.covered_by + GeoSeries.overlaps + """ + return _binary_op("covers", self, other, align) + + def covered_by(self, other, align=True): """ Returns a ``Series`` of ``dtype('bool')`` with value ``True`` for - each geometry that is entirely covered by `other`. + each aligned geometry that is entirely covered by `other`. An object A is said to cover another object B if no points of B lie in the exterior of A. + The operation works on a 1-to-1 row-wise manner: + + .. image:: ../../../_static/binary_op-01.svg + :align: center + See https://lin-ear-th-inking.blogspot.com/2007/06/subtleties-of-ogc-covers-spatial.html for reference. @@ -912,74 +1885,649 @@ GeometryCollection ---------- other : Geoseries or geometric object The Geoseries (elementwise) or geometric object to check is being covered. - """ - return _binary_geo("covered_by", self, other) + align : bool (default True) + If True, automatically aligns GeoSeries based on their indices. + If False, the order of elements is preserved. - def distance(self, other): - """Returns a ``Series`` containing the distance to `other`. + Returns + ------- + Series (bool) + + Examples + -------- + >>> from shapely.geometry import Polygon, LineString, Point + >>> s = geopandas.GeoSeries( + ... [ + ... Polygon([(0.5, 0.5), (1.5, 0.5), (1.5, 1.5), (0.5, 1.5)]), + ... Polygon([(0, 0), (2, 0), (2, 2), (0, 2)]), + ... LineString([(1, 1), (1.5, 1.5)]), + ... Point(0, 0), + ... ], + ... ) + >>> s2 = geopandas.GeoSeries( + ... [ + ... Polygon([(0, 0), (2, 0), (2, 2), (0, 2)]), + ... Polygon([(0, 0), (2, 2), (0, 2)]), + ... LineString([(0, 0), (2, 2)]), + ... Point(0, 0), + ... ], + ... index=range(1, 5), + ... ) + + >>> s + 0 POLYGON ((0.50000 0.50000, 1.50000 0.50000, 1.... + 1 POLYGON ((0.00000 0.00000, 2.00000 0.00000, 2.... + 2 LINESTRING (1.00000 1.00000, 1.50000 1.50000) + 3 POINT (0.00000 0.00000) + dtype: geometry + + >>> s2 + 1 POLYGON ((0.00000 0.00000, 2.00000 0.00000, 2.... + 2 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0.... + 3 LINESTRING (0.00000 0.00000, 2.00000 2.00000) + 4 POINT (0.00000 0.00000) + dtype: geometry + + We can check if each geometry of GeoSeries is covered by a single + geometry: + + .. image:: ../../../_static/binary_op-03.svg + :align: center + + >>> poly = Polygon([(0, 0), (2, 0), (2, 2), (0, 2)]) + >>> s.covered_by(poly) + 0 True + 1 True + 2 True + 3 True + dtype: bool + + We can also check two GeoSeries against each other, row by row. + The GeoSeries above have different indices. We can either align both GeoSeries + based on index values and compare elements with the same index using + ``align=True`` or ignore index and compare elements based on their matching + order using ``align=False``: + + .. image:: ../../../_static/binary_op-02.svg + + >>> s.covered_by(s2, align=True) + 0 False + 1 True + 2 True + 3 True + 4 False + dtype: bool + + >>> s.covered_by(s2, align=False) + 0 True + 1 False + 2 True + 3 True + dtype: bool + + Notes + ----- + This method works in a row-wise manner. It does not check if an element + of one GeoSeries is ``covered_by`` *any* element of the other one. + + See also + -------- + GeoSeries.covers + GeoSeries.overlaps + """ + return _binary_op("covered_by", self, other, align) + + def distance(self, other, align=True): + """Returns a ``Series`` containing the distance to aligned `other`. + + The operation works on a 1-to-1 row-wise manner: + + .. image:: ../../../_static/binary_op-01.svg + :align: center Parameters ---------- other : Geoseries or geometric object The Geoseries (elementwise) or geometric object to find the distance to. + align : bool (default True) + If True, automatically aligns GeoSeries based on their indices. + If False, the order of elements is preserved. + + + Returns + ------- + Series (float) + + Examples + -------- + >>> from shapely.geometry import Polygon, LineString, Point + >>> s = geopandas.GeoSeries( + ... [ + ... Polygon([(0, 0), (1, 0), (1, 1)]), + ... Polygon([(0, 0), (-1, 0), (-1, 1)]), + ... LineString([(1, 1), (0, 0)]), + ... Point(0, 0), + ... ], + ... ) + >>> s2 = geopandas.GeoSeries( + ... [ + ... Polygon([(0.5, 0.5), (1.5, 0.5), (1.5, 1.5), (0.5, 1.5)]), + ... Point(3, 1), + ... LineString([(1, 0), (2, 0)]), + ... Point(0, 1), + ... ], + ... index=range(1, 5), + ... ) + + >>> s + 0 POLYGON ((0.00000 0.00000, 1.00000 0.00000, 1.... + 1 POLYGON ((0.00000 0.00000, -1.00000 0.00000, -... + 2 LINESTRING (1.00000 1.00000, 0.00000 0.00000) + 3 POINT (0.00000 0.00000) + dtype: geometry + + >>> s2 + 1 POLYGON ((0.50000 0.50000, 1.50000 0.50000, 1.... + 2 POINT (3.00000 1.00000) + 3 LINESTRING (1.00000 0.00000, 2.00000 0.00000) + 4 POINT (0.00000 1.00000) + dtype: geometry + + We can check the distance of each geometry of GeoSeries to a single + geometry: + + .. image:: ../../../_static/binary_op-03.svg + :align: center + + >>> point = Point(-1, 0) + >>> s.distance(point) + 0 1.0 + 1 0.0 + 2 1.0 + 3 1.0 + dtype: float64 + + We can also check two GeoSeries against each other, row by row. + The GeoSeries above have different indices. We can either align both GeoSeries + based on index values and use elements with the same index using + ``align=True`` or ignore index and use elements based on their matching + order using ``align=False``: + + .. image:: ../../../_static/binary_op-02.svg + + >>> s.distance(s2, align=True) + 0 NaN + 1 0.707107 + 2 2.000000 + 3 1.000000 + 4 NaN + dtype: float64 + + >>> s.distance(s2, align=False) + 0 0.000000 + 1 3.162278 + 2 0.707107 + 3 1.000000 + dtype: float64 """ - return _binary_op("distance", self, other) + return _binary_op("distance", self, other, align) # # Binary operations that return a GeoSeries # - def difference(self, other): - """Returns a ``GeoSeries`` of the points in each geometry that + def difference(self, other, align=True): + """Returns a ``GeoSeries`` of the points in each aligned geometry that are not in `other`. + .. image:: ../../../_static/binary_geo-difference.svg + :align: center + + The operation works on a 1-to-1 row-wise manner: + + .. image:: ../../../_static/binary_op-01.svg + :align: center + Parameters ---------- other : Geoseries or geometric object The Geoseries (elementwise) or geometric object to find the difference to. - """ - return _binary_geo("difference", self, other) + align : bool (default True) + If True, automatically aligns GeoSeries based on their indices. + If False, the order of elements is preserved. - def symmetric_difference(self, other): + Returns + ------- + GeoSeries + + Examples + -------- + >>> from shapely.geometry import Polygon, LineString, Point + >>> s = geopandas.GeoSeries( + ... [ + ... Polygon([(0, 0), (2, 2), (0, 2)]), + ... Polygon([(0, 0), (2, 2), (0, 2)]), + ... LineString([(0, 0), (2, 2)]), + ... LineString([(2, 0), (0, 2)]), + ... Point(0, 1), + ... ], + ... ) + >>> s2 = geopandas.GeoSeries( + ... [ + ... Polygon([(0, 0), (1, 1), (0, 1)]), + ... LineString([(1, 0), (1, 3)]), + ... LineString([(2, 0), (0, 2)]), + ... Point(1, 1), + ... Point(0, 1), + ... ], + ... index=range(1, 6), + ... ) + + >>> s + 0 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0.... + 1 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0.... + 2 LINESTRING (0.00000 0.00000, 2.00000 2.00000) + 3 LINESTRING (2.00000 0.00000, 0.00000 2.00000) + 4 POINT (0.00000 1.00000) + dtype: geometry + + >>> s2 + 1 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 0.... + 2 LINESTRING (1.00000 0.00000, 1.00000 3.00000) + 3 LINESTRING (2.00000 0.00000, 0.00000 2.00000) + 4 POINT (1.00000 1.00000) + 5 POINT (0.00000 1.00000) + dtype: geometry + + We can do difference of each geometry and a single + shapely geometry: + + .. image:: ../../../_static/binary_op-03.svg + :align: center + + >>> s.difference(Polygon([(0, 0), (1, 1), (0, 1)])) + 0 POLYGON ((0.00000 1.00000, 0.00000 2.00000, 2.... + 1 POLYGON ((0.00000 1.00000, 0.00000 2.00000, 2.... + 2 LINESTRING (1.00000 1.00000, 2.00000 2.00000) + 3 MULTILINESTRING ((2.00000 0.00000, 1.00000 1.0... + 4 POINT EMPTY + dtype: geometry + + We can also check two GeoSeries against each other, row by row. + The GeoSeries above have different indices. We can either align both GeoSeries + based on index values and compare elements with the same index using + ``align=True`` or ignore index and compare elements based on their matching + order using ``align=False``: + + .. image:: ../../../_static/binary_op-02.svg + + >>> s.difference(s2, align=True) + 0 None + 1 POLYGON ((0.00000 1.00000, 0.00000 2.00000, 2.... + 2 MULTILINESTRING ((0.00000 0.00000, 1.00000 1.0... + 3 LINESTRING EMPTY + 4 POINT (0.00000 1.00000) + 5 None + dtype: geometry + + >>> s.difference(s2, align=False) + 0 POLYGON ((0.00000 1.00000, 0.00000 2.00000, 2.... + 1 POLYGON ((1.00000 1.00000, 0.00000 0.00000, 0.... + 2 MULTILINESTRING ((0.00000 0.00000, 1.00000 1.0... + 3 LINESTRING (2.00000 0.00000, 0.00000 2.00000) + 4 POINT EMPTY + dtype: geometry + + See Also + -------- + GeoSeries.symmetric_difference + GeoSeries.union + GeoSeries.intersection + """ + return _binary_geo("difference", self, other, align) + + def symmetric_difference(self, other, align=True): """Returns a ``GeoSeries`` of the symmetric difference of points in - each geometry with `other`. + each aligned geometry with `other`. For each geometry, the symmetric difference consists of points in the geometry not in `other`, and points in `other` not in the geometry. + .. image:: ../../../_static/binary_geo-symm_diff.svg + :align: center + + The operation works on a 1-to-1 row-wise manner: + + .. image:: ../../../_static/binary_op-01.svg + :align: center + + Parameters ---------- other : Geoseries or geometric object The Geoseries (elementwise) or geometric object to find the symmetric difference to. - """ - return _binary_geo("symmetric_difference", self, other) + align : bool (default True) + If True, automatically aligns GeoSeries based on their indices. + If False, the order of elements is preserved. - def union(self, other): - """Returns a ``GeoSeries`` of the union of points in each geometry with + Returns + ------- + GeoSeries + + Examples + -------- + >>> from shapely.geometry import Polygon, LineString, Point + >>> s = geopandas.GeoSeries( + ... [ + ... Polygon([(0, 0), (2, 2), (0, 2)]), + ... Polygon([(0, 0), (2, 2), (0, 2)]), + ... LineString([(0, 0), (2, 2)]), + ... LineString([(2, 0), (0, 2)]), + ... Point(0, 1), + ... ], + ... ) + >>> s2 = geopandas.GeoSeries( + ... [ + ... Polygon([(0, 0), (1, 1), (0, 1)]), + ... LineString([(1, 0), (1, 3)]), + ... LineString([(2, 0), (0, 2)]), + ... Point(1, 1), + ... Point(0, 1), + ... ], + ... index=range(1, 6), + ... ) + + >>> s + 0 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0.... + 1 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0.... + 2 LINESTRING (0.00000 0.00000, 2.00000 2.00000) + 3 LINESTRING (2.00000 0.00000, 0.00000 2.00000) + 4 POINT (0.00000 1.00000) + dtype: geometry + + >>> s2 + 1 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 0.... + 2 LINESTRING (1.00000 0.00000, 1.00000 3.00000) + 3 LINESTRING (2.00000 0.00000, 0.00000 2.00000) + 4 POINT (1.00000 1.00000) + 5 POINT (0.00000 1.00000) + dtype: geometry + + We can do symmetric difference of each geometry and a single + shapely geometry: + + .. image:: ../../../_static/binary_op-03.svg + :align: center + + >>> s.symmetric_difference(Polygon([(0, 0), (1, 1), (0, 1)])) + 0 POLYGON ((0.00000 1.00000, 0.00000 2.00000, 2.... + 1 POLYGON ((0.00000 1.00000, 0.00000 2.00000, 2.... + 2 GEOMETRYCOLLECTION (LINESTRING (1.00000 1.0000... + 3 GEOMETRYCOLLECTION (LINESTRING (2.00000 0.0000... + 4 POLYGON ((0.00000 0.00000, 0.00000 1.00000, 1.... + dtype: geometry + + We can also check two GeoSeries against each other, row by row. + The GeoSeries above have different indices. We can either align both GeoSeries + based on index values and compare elements with the same index using + ``align=True`` or ignore index and compare elements based on their matching + order using ``align=False``: + + .. image:: ../../../_static/binary_op-02.svg + + >>> s.symmetric_difference(s2, align=True) + 0 None + 1 POLYGON ((0.00000 1.00000, 0.00000 2.00000, 2.... + 2 MULTILINESTRING ((0.00000 0.00000, 1.00000 1.0... + 3 LINESTRING EMPTY + 4 MULTIPOINT (0.00000 1.00000, 1.00000 1.00000) + 5 None + dtype: geometry + + >>> s.symmetric_difference(s2, align=False) + 0 POLYGON ((0.00000 1.00000, 0.00000 2.00000, 2.... + 1 GEOMETRYCOLLECTION (LINESTRING (1.00000 0.0000... + 2 MULTILINESTRING ((0.00000 0.00000, 1.00000 1.0... + 3 LINESTRING (2.00000 0.00000, 0.00000 2.00000) + 4 POINT EMPTY + dtype: geometry + + See Also + -------- + GeoSeries.difference + GeoSeries.union + GeoSeries.intersection + """ + return _binary_geo("symmetric_difference", self, other, align) + + def union(self, other, align=True): + """Returns a ``GeoSeries`` of the union of points in each aligned geometry with `other`. + .. image:: ../../../_static/binary_geo-union.svg + :align: center + + The operation works on a 1-to-1 row-wise manner: + + .. image:: ../../../_static/binary_op-01.svg + :align: center + + Parameters ---------- other : Geoseries or geometric object The Geoseries (elementwise) or geometric object to find the union with. - """ - return _binary_geo("union", self, other) + align : bool (default True) + If True, automatically aligns GeoSeries based on their indices. + If False, the order of elements is preserved. - def intersection(self, other): + Returns + ------- + GeoSeries + + Examples + -------- + >>> from shapely.geometry import Polygon, LineString, Point + >>> s = geopandas.GeoSeries( + ... [ + ... Polygon([(0, 0), (2, 2), (0, 2)]), + ... Polygon([(0, 0), (2, 2), (0, 2)]), + ... LineString([(0, 0), (2, 2)]), + ... LineString([(2, 0), (0, 2)]), + ... Point(0, 1), + ... ], + ... ) + >>> s2 = geopandas.GeoSeries( + ... [ + ... Polygon([(0, 0), (1, 1), (0, 1)]), + ... LineString([(1, 0), (1, 3)]), + ... LineString([(2, 0), (0, 2)]), + ... Point(1, 1), + ... Point(0, 1), + ... ], + ... index=range(1, 6), + ... ) + + >>> s + 0 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0.... + 1 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0.... + 2 LINESTRING (0.00000 0.00000, 2.00000 2.00000) + 3 LINESTRING (2.00000 0.00000, 0.00000 2.00000) + 4 POINT (0.00000 1.00000) + dtype: geometry + + >>> s2 + 1 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 0.... + 2 LINESTRING (1.00000 0.00000, 1.00000 3.00000) + 3 LINESTRING (2.00000 0.00000, 0.00000 2.00000) + 4 POINT (1.00000 1.00000) + 5 POINT (0.00000 1.00000) + dtype: geometry + + We can do union of each geometry and a single + shapely geometry: + + .. image:: ../../../_static/binary_op-03.svg + :align: center + + >>> s.union(Polygon([(0, 0), (1, 1), (0, 1)])) + 0 POLYGON ((1.00000 1.00000, 0.00000 0.00000, 0.... + 1 POLYGON ((1.00000 1.00000, 0.00000 0.00000, 0.... + 2 GEOMETRYCOLLECTION (LINESTRING (1.00000 1.0000... + 3 GEOMETRYCOLLECTION (LINESTRING (2.00000 0.0000... + 4 POLYGON ((0.00000 0.00000, 0.00000 1.00000, 1.... + dtype: geometry + + We can also check two GeoSeries against each other, row by row. + The GeoSeries above have different indices. We can either align both GeoSeries + based on index values and compare elements with the same index using + ``align=True`` or ignore index and compare elements based on their matching + order using ``align=False``: + + .. image:: ../../../_static/binary_op-02.svg + + >>> s.union(s2, align=True) + 0 None + 1 POLYGON ((1.00000 1.00000, 0.00000 0.00000, 0.... + 2 MULTILINESTRING ((0.00000 0.00000, 1.00000 1.0... + 3 LINESTRING (2.00000 0.00000, 0.00000 2.00000) + 4 MULTIPOINT (0.00000 1.00000, 1.00000 1.00000) + 5 None + dtype: geometry + + >>> s.union(s2, align=False) + 0 POLYGON ((1.00000 1.00000, 0.00000 0.00000, 0.... + 1 GEOMETRYCOLLECTION (LINESTRING (1.00000 0.0000... + 2 MULTILINESTRING ((0.00000 0.00000, 1.00000 1.0... + 3 LINESTRING (2.00000 0.00000, 0.00000 2.00000) + 4 POINT (0.00000 1.00000) + dtype: geometry + + + See Also + -------- + GeoSeries.symmetric_difference + GeoSeries.difference + GeoSeries.intersection + """ + return _binary_geo("union", self, other, align) + + def intersection(self, other, align=True): """Returns a ``GeoSeries`` of the intersection of points in each - geometry with `other`. + aligned geometry with `other`. + + .. image:: ../../../_static/binary_geo-intersection.svg + :align: center + + The operation works on a 1-to-1 row-wise manner: + + .. image:: ../../../_static/binary_op-01.svg + :align: center + Parameters ---------- other : Geoseries or geometric object The Geoseries (elementwise) or geometric object to find the intersection with. + align : bool (default True) + If True, automatically aligns GeoSeries based on their indices. + If False, the order of elements is preserved. + + Returns + ------- + GeoSeries + + Examples + -------- + >>> from shapely.geometry import Polygon, LineString, Point + >>> s = geopandas.GeoSeries( + ... [ + ... Polygon([(0, 0), (2, 2), (0, 2)]), + ... Polygon([(0, 0), (2, 2), (0, 2)]), + ... LineString([(0, 0), (2, 2)]), + ... LineString([(2, 0), (0, 2)]), + ... Point(0, 1), + ... ], + ... ) + >>> s2 = geopandas.GeoSeries( + ... [ + ... Polygon([(0, 0), (1, 1), (0, 1)]), + ... LineString([(1, 0), (1, 3)]), + ... LineString([(2, 0), (0, 2)]), + ... Point(1, 1), + ... Point(0, 1), + ... ], + ... index=range(1, 6), + ... ) + + >>> s + 0 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0.... + 1 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0.... + 2 LINESTRING (0.00000 0.00000, 2.00000 2.00000) + 3 LINESTRING (2.00000 0.00000, 0.00000 2.00000) + 4 POINT (0.00000 1.00000) + dtype: geometry + + >>> s2 + 1 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 0.... + 2 LINESTRING (1.00000 0.00000, 1.00000 3.00000) + 3 LINESTRING (2.00000 0.00000, 0.00000 2.00000) + 4 POINT (1.00000 1.00000) + 5 POINT (0.00000 1.00000) + dtype: geometry + + We can also do intersection of each geometry and a single + shapely geometry: + + .. image:: ../../../_static/binary_op-03.svg + :align: center + + >>> s.intersection(Polygon([(0, 0), (1, 1), (0, 1)])) + 0 POLYGON ((1.00000 1.00000, 0.00000 0.00000, 0.... + 1 POLYGON ((1.00000 1.00000, 0.00000 0.00000, 0.... + 2 LINESTRING (0.00000 0.00000, 1.00000 1.00000) + 3 POINT (1.00000 1.00000) + 4 POINT (0.00000 1.00000) + dtype: geometry + + We can also check two GeoSeries against each other, row by row. + The GeoSeries above have different indices. We can either align both GeoSeries + based on index values and compare elements with the same index using + ``align=True`` or ignore index and compare elements based on their matching + order using ``align=False``: + + .. image:: ../../../_static/binary_op-02.svg + + >>> s.intersection(s2, align=True) + 0 None + 1 POLYGON ((1.00000 1.00000, 0.00000 0.00000, 0.... + 2 POINT (1.00000 1.00000) + 3 LINESTRING (2.00000 0.00000, 0.00000 2.00000) + 4 POINT EMPTY + 5 None + dtype: geometry + + >>> s.intersection(s2, align=False) + 0 POLYGON ((1.00000 1.00000, 0.00000 0.00000, 0.... + 1 LINESTRING (1.00000 1.00000, 1.00000 2.00000) + 2 POINT (1.00000 1.00000) + 3 POINT (1.00000 1.00000) + 4 POINT (0.00000 1.00000) + dtype: geometry + + + See Also + -------- + GeoSeries.difference + GeoSeries.symmetric_difference + GeoSeries.union """ - return _binary_geo("intersection", self, other) + return _binary_geo("intersection", self, other, align) # # Other operations @@ -1161,28 +2709,123 @@ GeometryCollection """ return _delegate_geo_method("simplify", self, *args, **kwargs) - def relate(self, other): + def relate(self, other, align=True): """ Returns the DE-9IM intersection matrices for the geometries + The operation works on a 1-to-1 row-wise manner: + + .. image:: ../../../_static/binary_op-01.svg + :align: center + Parameters ---------- other : BaseGeometry or GeoSeries The other geometry to computed the DE-9IM intersection matrices from. + align : bool (default True) + If True, automatically aligns GeoSeries based on their indices. + If False, the order of elements is preserved. Returns ---------- spatial_relations: Series of strings The DE-9IM intersection matrices which describe the spatial relations of the other geometry. - """ - return _binary_op("relate", self, other) - def project(self, other, normalized=False): + Examples + -------- + >>> from shapely.geometry import Polygon, LineString, Point + >>> s = geopandas.GeoSeries( + ... [ + ... Polygon([(0, 0), (2, 2), (0, 2)]), + ... Polygon([(0, 0), (2, 2), (0, 2)]), + ... LineString([(0, 0), (2, 2)]), + ... LineString([(2, 0), (0, 2)]), + ... Point(0, 1), + ... ], + ... ) + >>> s2 = geopandas.GeoSeries( + ... [ + ... Polygon([(0, 0), (1, 1), (0, 1)]), + ... LineString([(1, 0), (1, 3)]), + ... LineString([(2, 0), (0, 2)]), + ... Point(1, 1), + ... Point(0, 1), + ... ], + ... index=range(1, 6), + ... ) + + >>> s + 0 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0.... + 1 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0.... + 2 LINESTRING (0.00000 0.00000, 2.00000 2.00000) + 3 LINESTRING (2.00000 0.00000, 0.00000 2.00000) + 4 POINT (0.00000 1.00000) + dtype: geometry + + >>> s2 + 1 POLYGON ((0.00000 0.00000, 1.00000 1.00000, 0.... + 2 LINESTRING (1.00000 0.00000, 1.00000 3.00000) + 3 LINESTRING (2.00000 0.00000, 0.00000 2.00000) + 4 POINT (1.00000 1.00000) + 5 POINT (0.00000 1.00000) + dtype: geometry + + We can relate each geometry and a single + shapely geometry: + + .. image:: ../../../_static/binary_op-03.svg + :align: center + + >>> s.relate(Polygon([(0, 0), (1, 1), (0, 1)])) + 0 212F11FF2 + 1 212F11FF2 + 2 F11F00212 + 3 F01FF0212 + 4 F0FFFF212 + dtype: object + + We can also check two GeoSeries against each other, row by row. + The GeoSeries above have different indices. We can either align both GeoSeries + based on index values and compare elements with the same index using + ``align=True`` or ignore index and compare elements based on their matching + order using ``align=False``: + + .. image:: ../../../_static/binary_op-02.svg + + >>> s.relate(s2, align=True) + 0 None + 1 212F11FF2 + 2 0F1FF0102 + 3 1FFF0FFF2 + 4 FF0FFF0F2 + 5 None + dtype: object + + >>> s.relate(s2, align=False) + 0 212F11FF2 + 1 1F20F1102 + 2 0F1FF0102 + 3 0F1FF0FF2 + 4 0FFFFFFF2 + dtype: object + + """ + return _binary_op("relate", self, other, align) + + def project(self, other, normalized=False, align=True): """ Return the distance along each geometry nearest to *other* + The operation works on a 1-to-1 row-wise manner: + + .. image:: ../../../_static/binary_op-01.svg + :align: center + + The project method is the inverse of interpolate. + + Parameters ---------- other : BaseGeometry or GeoSeries @@ -1190,10 +2833,83 @@ GeometryCollection normalized : boolean If normalized is True, return the distance normalized to the length of the object. + align : bool (default True) + If True, automatically aligns GeoSeries based on their indices. + If False, the order of elements is preserved. - The project method is the inverse of interpolate. + Returns + ------- + Series + + Examples + -------- + >>> from shapely.geometry import Polygon, LineString, Point + >>> s = geopandas.GeoSeries( + ... [ + ... Polygon([(0, 0), (2, 2), (0, 2)]), + ... LineString([(0, 0), (2, 2)]), + ... LineString([(2, 0), (0, 2)]), + ... ], + ... ) + >>> s2 = geopandas.GeoSeries( + ... [ + ... Point(1, 0), + ... Point(1, 0), + ... Point(2, 1), + ... ], + ... index=range(1, 4), + ... ) + + >>> s + 0 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0.... + 1 LINESTRING (0.00000 0.00000, 2.00000 2.00000) + 2 LINESTRING (2.00000 0.00000, 0.00000 2.00000) + dtype: geometry + + >>> s2 + 1 POINT (1.00000 0.00000) + 2 POINT (1.00000 0.00000) + 3 POINT (2.00000 1.00000) + dtype: geometry + + We can project each geometry on a single + shapely geometry: + + .. image:: ../../../_static/binary_op-03.svg + :align: center + + >>> s.project(Point(1, 0)) + 0 -1.000000 + 1 0.707107 + 2 0.707107 + dtype: float64 + + We can also check two GeoSeries against each other, row by row. + The GeoSeries above have different indices. We can either align both GeoSeries + based on index values and project elements with the same index using + ``align=True`` or ignore index and project elements based on their matching + order using ``align=False``: + + .. image:: ../../../_static/binary_op-02.svg + + >>> s.project(s2, align=True) + 0 NaN + 1 0.707107 + 2 0.707107 + 3 NaN + dtype: float64 + + >>> s.project(s2, align=False) + 0 -1.000000 + 1 0.707107 + 2 0.707107 + dtype: float64 + + See also + -------- + GeoSeries.interpolate """ - return _binary_op("project", self, other, normalized=normalized) + return _binary_op("project", self, other, normalized=normalized, align=align) def interpolate(self, distance, normalized=False): """ diff --git a/geopandas/tests/test_geom_methods.py b/geopandas/tests/test_geom_methods.py index 1764a2f..d4a86a6 100644 --- a/geopandas/tests/test_geom_methods.py +++ b/geopandas/tests/test_geom_methods.py @@ -81,6 +81,7 @@ class TestGeomMethods: self.empty = GeoSeries([]) self.all_none = GeoSeries([None, None]) self.empty_poly = Polygon() + self.g9 = GeoSeries(self.g0, index=range(1, 8)) # Crossed lines self.l3 = LineString([(0, 0), (1, 1)]) @@ -244,15 +245,24 @@ class TestGeomMethods: "intersection", self.all_none, self.g1, self.empty ) + assert len(self.g0.intersection(self.g9, align=True) == 8) + assert len(self.g0.intersection(self.g9, align=False) == 7) + def test_union_series(self): self._test_binary_topological("union", self.sq, self.g1, self.g2) + assert len(self.g0.union(self.g9, align=True) == 8) + assert len(self.g0.union(self.g9, align=False) == 7) + def test_union_polygon(self): self._test_binary_topological("union", self.sq, self.g1, self.t2) def test_symmetric_difference_series(self): self._test_binary_topological("symmetric_difference", self.sq, self.g3, self.g4) + assert len(self.g0.symmetric_difference(self.g9, align=True) == 8) + assert len(self.g0.symmetric_difference(self.g9, align=False) == 7) + def test_symmetric_difference_poly(self): expected = GeoSeries([GeometryCollection(), self.sq], crs=self.g3.crs) self._test_binary_topological( @@ -263,6 +273,9 @@ class TestGeomMethods: expected = GeoSeries([GeometryCollection(), self.t2]) self._test_binary_topological("difference", expected, self.g1, self.g2) + assert len(self.g0.difference(self.g9, align=True) == 8) + assert len(self.g0.difference(self.g9, align=False) == 7) + def test_difference_poly(self): expected = GeoSeries([self.t1, self.t1]) self._test_binary_topological("difference", expected, self.g1, self.t2) @@ -341,6 +354,12 @@ class TestGeomMethods: expected = [True, False, True, False, False, False, False] assert_array_dtype_equal(expected, self.g0.contains(self.t1)) + expected = [False, True, True, True, True, True, False, False] + assert_array_dtype_equal(expected, self.g0.contains(self.g9, align=True)) + + expected = [False, False, True, False, False, False, False] + assert_array_dtype_equal(expected, self.g0.contains(self.g9, align=False)) + def test_length(self): expected = Series(np.array([2 + np.sqrt(2), 4]), index=self.g1.index) self._test_unary_real("length", expected, self.g1) @@ -359,10 +378,22 @@ class TestGeomMethods: expected = [False, True] assert_array_dtype_equal(expected, self.crossed_lines.crosses(self.l3)) + expected = [False] * 8 + assert_array_dtype_equal(expected, self.g0.crosses(self.g9, align=True)) + + expected = [False] * 7 + assert_array_dtype_equal(expected, self.g0.crosses(self.g9, align=False)) + def test_disjoint(self): expected = [False, False, False, False, False, True, False] assert_array_dtype_equal(expected, self.g0.disjoint(self.t1)) + expected = [False] * 8 + assert_array_dtype_equal(expected, self.g0.disjoint(self.g9, align=True)) + + expected = [False, False, False, False, True, False, False] + assert_array_dtype_equal(expected, self.g0.disjoint(self.g9, align=False)) + def test_relate(self): expected = Series( [ @@ -381,6 +412,36 @@ class TestGeomMethods: expected = Series(["FF0FFF212", None], index=self.g6.index) assert_array_dtype_equal(expected, self.g6.relate(self.na_none)) + expected = Series( + [ + None, + "2FFF1FFF2", + "2FFF1FFF2", + "2FFF1FFF2", + "2FFF1FFF2", + "0FFFFFFF2", + None, + None, + ], + index=range(8), + ) + + assert_array_dtype_equal(expected, self.g0.relate(self.g9, align=True)) + + expected = Series( + [ + "FF2F11212", + "2FF11F212", + "212FF1FF2", + "FF2F1F212", + "FF2FF10F2", + None, + None, + ], + index=self.g0.index, + ) + assert_array_dtype_equal(expected, self.g0.relate(self.g9, align=False)) + def test_distance(self): expected = Series( np.array([np.sqrt((5 - 1) ** 2 + (5 - 1) ** 2), np.nan]), self.na_none.index @@ -390,6 +451,13 @@ class TestGeomMethods: expected = Series(np.array([np.sqrt(4 ** 2 + 4 ** 2), np.nan]), self.g6.index) assert_array_dtype_equal(expected, self.g6.distance(self.na_none)) + expected = Series(np.array([np.nan, 0, 0, 0, 0, 0, np.nan, np.nan]), range(8)) + assert_array_dtype_equal(expected, self.g0.distance(self.g9, align=True)) + + val = self.g0.iloc[4].distance(self.g9.iloc[4]) + expected = Series(np.array([0, 0, 0, 0, val, np.nan, np.nan]), self.g0.index) + assert_array_dtype_equal(expected, self.g0.distance(self.g9, align=False)) + def test_distance_crs_warning(self): with pytest.warns(UserWarning, match="Geometry is in a geographic CRS"): self.g4.distance(self.p0) @@ -410,6 +478,12 @@ class TestGeomMethods: expected = [False] * 7 assert_array_dtype_equal(expected, self.g0.intersects(self.empty_poly)) + expected = [False, True, True, True, True, True, False, False] + assert_array_dtype_equal(expected, self.g0.intersects(self.g9, align=True)) + + expected = [True, True, True, True, False, False, False] + assert_array_dtype_equal(expected, self.g0.intersects(self.g9, align=False)) + def test_overlaps(self): expected = [True, True, False, False, False, False, False] assert_array_dtype_equal(expected, self.g0.overlaps(self.inner_sq)) @@ -417,10 +491,22 @@ class TestGeomMethods: expected = [False, False] assert_array_dtype_equal(expected, self.g4.overlaps(self.t1)) + expected = [False] * 8 + assert_array_dtype_equal(expected, self.g0.overlaps(self.g9, align=True)) + + expected = [False] * 7 + assert_array_dtype_equal(expected, self.g0.overlaps(self.g9, align=False)) + def test_touches(self): expected = [False, True, False, False, False, False, False] assert_array_dtype_equal(expected, self.g0.touches(self.t1)) + expected = [False] * 8 + assert_array_dtype_equal(expected, self.g0.touches(self.g9, align=True)) + + expected = [True, False, False, True, False, False, False] + assert_array_dtype_equal(expected, self.g0.touches(self.g9, align=False)) + def test_within(self): expected = [True, False, False, False, False, False, False] assert_array_dtype_equal(expected, self.g0.within(self.t1)) @@ -428,6 +514,12 @@ class TestGeomMethods: expected = [True, True, True, True, True, False, False] assert_array_dtype_equal(expected, self.g0.within(self.sq)) + expected = [False, True, True, True, True, True, False, False] + assert_array_dtype_equal(expected, self.g0.within(self.g9, align=True)) + + expected = [False, True, False, False, False, False, False] + assert_array_dtype_equal(expected, self.g0.within(self.g9, align=False)) + def test_covers_itself(self): # Each polygon in a Series covers itself res = self.g1.covers(self.g1) @@ -439,6 +531,12 @@ class TestGeomMethods: exp = Series([True, False]) assert_series_equal(res, exp) + expected = [False, True, True, True, True, True, False, False] + assert_array_dtype_equal(expected, self.g0.covers(self.g9, align=True)) + + expected = [False, False, True, False, False, False, False] + assert_array_dtype_equal(expected, self.g0.covers(self.g9, align=False)) + def test_covers_inverse(self): res = self.g8.covers(self.g7) exp = Series([False, False]) @@ -453,6 +551,12 @@ class TestGeomMethods: exp = Series([True, True]) assert_series_equal(res, exp) + expected = [False, True, True, True, True, True, False, False] + assert_array_dtype_equal(expected, self.g0.covered_by(self.g9, align=True)) + + expected = [False, True, False, False, False, False, False] + assert_array_dtype_equal(expected, self.g0.covered_by(self.g9, align=False)) + def test_is_valid(self): expected = Series(np.array([True] * len(self.g1)), self.g1.index) self._test_unary_real("is_valid", expected, self.g1) @@ -572,6 +676,13 @@ class TestGeomMethods: expected = Series([1.0, 0.5], index=self.g5.index) self._test_binary_real("project", expected, self.g5, p, normalized=True) + s = GeoSeries([Point(2, 2), Point(0.5, 0.5)], index=[1, 2]) + expected = Series([np.nan, 2.0, np.nan]) + assert_series_equal(self.g5.project(s), expected) + + expected = Series([2.0, 0.5], index=self.g5.index) + assert_series_equal(self.g5.project(s, align=False), expected) + def test_affine_transform(self): # 45 degree reflection matrix matrix = [0, 1, 1, 0, 0, 0] diff --git a/geopandas/tests/test_geoseries.py b/geopandas/tests/test_geoseries.py index 9bcc763..1ffb649 100644 --- a/geopandas/tests/test_geoseries.py +++ b/geopandas/tests/test_geoseries.py @@ -136,20 +136,38 @@ class TestSeries: def test_geom_equals_align(self): with pytest.warns(UserWarning, match="The indices .+ different"): - a = self.a1.geom_equals(self.a2) + a = self.a1.geom_equals(self.a2, align=True) exp = pd.Series([False, True, False], index=["A", "B", "C"]) assert_series_equal(a, exp) + a = self.a1.geom_equals(self.a2, align=False) + exp = pd.Series([False, False], index=["A", "B"]) + assert_series_equal(a, exp) + def test_geom_almost_equals(self): # TODO: test decimal parameter assert np.all(self.g1.geom_almost_equals(self.g1)) assert_array_equal(self.g1.geom_almost_equals(self.sq), [False, True]) + assert_array_equal( + self.a1.geom_almost_equals(self.a2, align=True), [False, True, False] + ) + assert_array_equal( + self.a1.geom_almost_equals(self.a2, align=False), [False, False] + ) + def test_geom_equals_exact(self): # TODO: test tolerance parameter assert np.all(self.g1.geom_equals_exact(self.g1, 0.001)) assert_array_equal(self.g1.geom_equals_exact(self.sq, 0.001), [False, True]) + assert_array_equal( + self.a1.geom_equals_exact(self.a2, 0.001, align=True), [False, True, False] + ) + assert_array_equal( + self.a1.geom_equals_exact(self.a2, 0.001, align=False), [False, False] + ) + def test_equal_comp_op(self): s = GeoSeries([Point(x, x) for x in range(3)]) res = s == Point(1, 1) From 8bc5c30afd4b27e6ebfc6999f7ca0c2a6d8d7a10 Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Thu, 18 Feb 2021 21:56:46 +0000 Subject: [PATCH 112/316] DOC: pin doc environment for RTD (#1837) --- doc/environment.yml | 65 ++++++++++++++++++++++----------------------- 1 file changed, 32 insertions(+), 33 deletions(-) diff --git a/doc/environment.yml b/doc/environment.yml index a372f14..e4a2fc1 100644 --- a/doc/environment.yml +++ b/doc/environment.yml @@ -2,40 +2,39 @@ name: geopandas_docs channels: - conda-forge dependencies: - - python - - pandas - - shapely - - fiona - - pyproj - - rtree - - geopy - - matplotlib - - descartes - - mapclassify - - sphinx - - pydata-sphinx-theme - - numpydoc - - ipython - - pillow - - mock - - cartopy - - contextily - - rasterio - - geoplot - - sphinx-gallery - - jinja2 - - doc2dash + - python=3.9.1 + - pandas=1.2.2 + - shapely=1.7.1 + - fiona=1.8.18 + - pyproj=3.0.0.post1 + - rtree=0.9.7 + - geopy=2.1.0 + - matplotlib=3.3.4 + - mapclassify=2.4.2 + - sphinx=3.5.1 + - pydata-sphinx-theme=0.4.3 + - numpydoc=1.1.0 + - ipython=7.20.0 + - pillow=8.1.0 + - mock=4.0.3 + - cartopy=0.18.0 + - contextily=1.1.0 + - rasterio=1.2.0 + - geoplot=0.4.1 + - sphinx-gallery=0.8.2 + - jinja2=2.11.3 + - doc2dash=2.3.0 # specify additional dependencies to reduce solving for conda - # - gdal=3.0.4 - # - libgdal=3.0.4 - # - proj=6.3.0 - # - geos=3.8.0 - - nbsphinx - - jupyter_client - - ipykernel - - myst-parser - - folium - - libpysal + - gdal=3.1.4 + - libgdal=3.1.4 + - proj=7.2.0 + - geos=3.9.0 + - nbsphinx=0.8.1 + - jupyter_client=6.1.11 + - ipykernel=5.4.3 + - myst-parser=0.13.5 + - folium=0.12.0 + - libpysal=4.4.0 - pip - pip: - sphinx-toggleprompt \ No newline at end of file From 56fd62f010da0efdac44b0186e27cb9893ae2fb8 Mon Sep 17 00:00:00 2001 From: James McBride Date: Fri, 19 Feb 2021 01:13:33 -0800 Subject: [PATCH 113/316] ENH: Make the id property in to_json optional (#1637) * Make the id property in to_json optional As discussed in #390, the id property in geojson generated with to_json may not be all that meaningful (frequently just an arbitrary row number in a dataframe). The option to disable writing ids without meaning is given here with a new argument `drop_id`, set to `False` by default. * Add to_json tests when only geometry column * Fix linting error * Improved docstring on drop_id option * Fix merge conflict leftover * Set id key first in iterfeatures * Update geopandas/geodataframe.py * Update geopandas/geodataframe.py Co-authored-by: Martin Fleischmann Co-authored-by: Joris Van den Bossche --- geopandas/geodataframe.py | 57 ++++++++++++++++++---------- geopandas/tests/test_geodataframe.py | 21 ++++++++++ 2 files changed, 59 insertions(+), 19 deletions(-) diff --git a/geopandas/geodataframe.py b/geopandas/geodataframe.py index 09188ef..78fc3a3 100644 --- a/geopandas/geodataframe.py +++ b/geopandas/geodataframe.py @@ -658,7 +658,7 @@ class GeoDataFrame(GeoPandasBase, DataFrame): return df - def to_json(self, na="null", show_bbox=False, **kwargs): + def to_json(self, na="null", show_bbox=False, drop_id=False, **kwargs): """ Returns a GeoJSON representation of the ``GeoDataFrame`` as a string. @@ -669,6 +669,10 @@ class GeoDataFrame(GeoPandasBase, DataFrame): See below. show_bbox : bool, optional, default: False Include bbox (bounds) in the geojson + drop_id : bool, default: False + Whether to retain the index of the GeoDataFrame as the id property + in the generated GeoJSON. Default is False, but may want True + if the index is just arbitrary row numbers. Notes ----- @@ -707,7 +711,9 @@ class GeoDataFrame(GeoPandasBase, DataFrame): GeoDataFrame.to_file : write GeoDataFrame to file """ - return json.dumps(self._to_geo(na=na, show_bbox=show_bbox), **kwargs) + return json.dumps( + self._to_geo(na=na, show_bbox=show_bbox, drop_id=drop_id), **kwargs + ) @property def __geo_interface__(self): @@ -740,24 +746,29 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} """ - return self._to_geo(na="null", show_bbox=True) + return self._to_geo(na="null", show_bbox=True, drop_id=False) - def iterfeatures(self, na="null", show_bbox=False): + def iterfeatures(self, na="null", show_bbox=False, drop_id=False): """ Returns an iterator that yields feature dictionaries that comply with __geo_interface__ Parameters ---------- - na : {'null', 'drop', 'keep'}, default 'null' + na : str, optional + Options are {'null', 'drop', 'keep'}, default 'null'. Indicates how to output missing (NaN) values in the GeoDataFrame * null: ouput the missing entries as JSON null * drop: remove the property from the feature. This applies to each feature individually so that features may have different properties * keep: output the missing entries as NaN - - show_bbox : include bbox (bounds) in the geojson. default False + show_bbox : bool, optional + Include bbox (bounds) in the geojson. Default False. + drop_id : bool, default: False + Whether to retain the index of the GeoDataFrame as the id property + in the generated GeoJSON. Default is False, but may want True + if the index is just arbitrary row numbers. Examples -------- @@ -805,27 +816,35 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} else: properties_items = {k: v for k, v in zip(properties_cols, row)} - feature = { - "id": str(ids[i]), - "type": "Feature", - "properties": properties_items, - "geometry": mapping(geom) if geom else None, - } + if drop_id: + feature = {} + else: + feature = {"id": str(ids[i])} + + feature["type"] = "Feature" + feature["properties"] = properties_items + feature["geometry"] = mapping(geom) if geom else None if show_bbox: feature["bbox"] = geom.bounds if geom else None + yield feature else: for fid, geom in zip(ids, geometries): - feature = { - "id": str(fid), - "type": "Feature", - "properties": {}, - "geometry": mapping(geom) if geom else None, - } + + if drop_id: + feature = {} + else: + feature = {"id": str(fid)} + + feature["type"] = "Feature" + feature["properties"] = {} + feature["geometry"] = mapping(geom) if geom else None + if show_bbox: feature["bbox"] = geom.bounds if geom else None + yield feature def _to_geo(self, **kwargs): diff --git a/geopandas/tests/test_geodataframe.py b/geopandas/tests/test_geodataframe.py index 28b1e84..47c38aa 100644 --- a/geopandas/tests/test_geodataframe.py +++ b/geopandas/tests/test_geodataframe.py @@ -365,6 +365,7 @@ class TestDataFrame: data = json.loads(text) assert data["type"] == "FeatureCollection" assert len(data["features"]) == 5 + assert "id" in data["features"][0].keys() def test_to_json_geom_col(self): df = self.df.copy() @@ -377,6 +378,12 @@ class TestDataFrame: assert data["type"] == "FeatureCollection" assert len(data["features"]) == 5 + def test_to_json_only_geom_column(self): + text = self.df[["geometry"]].to_json() + data = json.loads(text) + assert len(data["features"]) == 5 + assert "id" in data["features"][0].keys() + def test_to_json_na(self): # Set a value as nan and make sure it's written self.df.loc[self.df["BoroName"] == "Queens", "Shape_Area"] = np.nan @@ -436,6 +443,20 @@ class TestDataFrame: assert np.isnan(props["Shape_Leng"]) assert "Shape_Area" in props + def test_to_json_drop_id(self): + text = self.df.to_json(drop_id=True) + data = json.loads(text) + assert len(data["features"]) == 5 + for f in data["features"]: + assert "id" not in f.keys() + + def test_to_json_drop_id_only_geom_column(self): + text = self.df[["geometry"]].to_json(drop_id=True) + data = json.loads(text) + assert len(data["features"]) == 5 + for f in data["features"]: + assert "id" not in f.keys() + def test_copy(self): df2 = self.df.copy() assert type(df2) is GeoDataFrame From ed68a95033174947711f9dea1a021a15e09b2c4a Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Fri, 19 Feb 2021 23:44:26 +0000 Subject: [PATCH 114/316] DOC: debug readthedocs and nbsphinx (#1838) * don't execute * list examples * try with executed notebooks * build intro, add pygeos * auto build * build the same as currently * remove kernel name * add few more * revert choro * add rest * remove kernelspec * clear choropleths * build choropleths, clear choro_legends * clear introduction * remove kernelspec * clean meta * execute choro_legends * always execute + exceptions * fix cartopy plot --- doc/environment.yml | 2 + doc/source/conf.py | 1 - doc/source/gallery/cartopy_convert.ipynb | 51 +- doc/source/gallery/choro_legends.ipynb | 499 ++++++++++++++++-- doc/source/gallery/choropleths.ipynb | 359 ++++++++++++- .../create_geopandas_from_pandas.ipynb | 53 +- doc/source/gallery/index.rst | 3 +- doc/source/gallery/overlays.ipynb | 76 +-- doc/source/gallery/plot_clip.ipynb | 29 +- .../gallery/plotting_basemap_background.ipynb | 46 +- .../gallery/plotting_with_geoplot.ipynb | 39 +- .../polygon_plotting_with_folium.ipynb | 5 - doc/source/gallery/spatial_joins.ipynb | 63 +-- doc/source/getting_started/introduction.ipynb | 5 - 14 files changed, 852 insertions(+), 379 deletions(-) diff --git a/doc/environment.yml b/doc/environment.yml index e4a2fc1..584cbef 100644 --- a/doc/environment.yml +++ b/doc/environment.yml @@ -18,6 +18,7 @@ dependencies: - pillow=8.1.0 - mock=4.0.3 - cartopy=0.18.0 + - pyepsg=0.4.0 - contextily=1.1.0 - rasterio=1.2.0 - geoplot=0.4.1 @@ -35,6 +36,7 @@ dependencies: - myst-parser=0.13.5 - folium=0.12.0 - libpysal=4.4.0 + - pygeos=0.9 - pip - pip: - sphinx-toggleprompt \ No newline at end of file diff --git a/doc/source/conf.py b/doc/source/conf.py index 536f0ec..eb4b6d2 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -64,7 +64,6 @@ templates_path = ["_templates"] autosummary_generate = True nbsphinx_execute = "always" -nbsphinx_kernel_name = "geopandas_docs" nbsphinx_allow_errors = True # connect docs in other projects diff --git a/doc/source/gallery/cartopy_convert.ipynb b/doc/source/gallery/cartopy_convert.ipynb index 7f95a6e..b4ba243 100644 --- a/doc/source/gallery/cartopy_convert.ipynb +++ b/doc/source/gallery/cartopy_convert.ipynb @@ -22,11 +22,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "jupyter": { - "outputs_hidden": false - } - }, + "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", @@ -50,11 +46,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "jupyter": { - "outputs_hidden": false - } - }, + "metadata": {}, "outputs": [], "source": [ "df.plot()" @@ -77,11 +69,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "jupyter": { - "outputs_hidden": false - } - }, + "metadata": {}, "outputs": [], "source": [ "# Define the CartoPy CRS object.\n", @@ -107,11 +95,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "jupyter": { - "outputs_hidden": false - } - }, + "metadata": {}, "outputs": [], "source": [ "fig, ax = plt.subplots(subplot_kw={'projection': crs})\n", @@ -129,11 +113,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "jupyter": { - "outputs_hidden": false - } - }, + "metadata": {}, "outputs": [], "source": [ "crs_epsg = ccrs.epsg('3857')\n", @@ -164,11 +144,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "jupyter": { - "outputs_hidden": false - } - }, + "metadata": {}, "outputs": [], "source": [ "crs_new = ccrs.AlbersEqualArea()\n", @@ -191,11 +167,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "jupyter": { - "outputs_hidden": false - } - }, + "metadata": {}, "outputs": [], "source": [ "df_aea = geopandas.GeoDataFrame(df['gdp_pp'], geometry=new_geometries,\n", @@ -217,13 +189,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "jupyter": { - "outputs_hidden": false - }, - "tags": [ + "tags": [ "nbsphinx-thumbnail" ] - }, + }, "outputs": [], "source": [ "# Generate a CartoPy figure and add the countries to it\n", @@ -255,7 +224,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.6" + "version": "3.9.1" } }, "nbformat": 4, diff --git a/doc/source/gallery/choro_legends.ipynb b/doc/source/gallery/choro_legends.ipynb index b92c291..5855a07 100644 --- a/doc/source/gallery/choro_legends.ipynb +++ b/doc/source/gallery/choro_legends.ipynb @@ -9,8 +9,15 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, + "execution_count": 1, + "metadata": { + "execution": { + "iopub.execute_input": "2021-02-19T23:08:44.841969Z", + "iopub.status.busy": "2021-02-19T23:08:44.841058Z", + "iopub.status.idle": "2021-02-19T23:08:45.312297Z", + "shell.execute_reply": "2021-02-19T23:08:45.312723Z" + } + }, "outputs": [], "source": [ "import geopandas\n", @@ -19,9 +26,27 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 2, + "metadata": { + "execution": { + "iopub.execute_input": "2021-02-19T23:08:45.317060Z", + "iopub.status.busy": "2021-02-19T23:08:45.316568Z", + "iopub.status.idle": "2021-02-19T23:08:45.758963Z", + "shell.execute_reply": "2021-02-19T23:08:45.759617Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "'2.4.2'" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "import mapclassify\n", "mapclassify.__version__" @@ -29,9 +54,27 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 3, + "metadata": { + "execution": { + "iopub.execute_input": "2021-02-19T23:08:45.763272Z", + "iopub.status.busy": "2021-02-19T23:08:45.762726Z", + "iopub.status.idle": "2021-02-19T23:08:46.553322Z", + "shell.execute_reply": "2021-02-19T23:08:46.553826Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "'4.3.5'" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "import libpysal\n", "libpysal.__version__" @@ -39,17 +82,137 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 4, + "metadata": { + "execution": { + "iopub.execute_input": "2021-02-19T23:08:46.558625Z", + "iopub.status.busy": "2021-02-19T23:08:46.558139Z", + "iopub.status.idle": "2021-02-19T23:08:46.792635Z", + "shell.execute_reply": "2021-02-19T23:08:46.793048Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Name Description Installed\n", + "0 10740 Albuquerque, New Mexico, Census 2000 Tract Data. 10740 i... True\n", + "1 AirBnB Airbnb rentals, socioeconomics, and crime in Chicago False\n", + "2 Atlanta Atlanta, GA region homicide counts and rates False\n", + "3 Baltimore Baltimore house sales prices and hedonics False\n", + "4 Bostonhsg Boston housing and neighborhood data False\n", + "5 Buenosaires Electoral Data for 1999 Argentinean Elections False\n", + "6 Charleston1 2000 Census Tract Data for Charleston, SC MSA and counties False\n", + "7 Charleston2 1998 and 2001 Zip Code Business Patterns (Census Bureau... False\n", + "8 Chicago Health Chicago Health + Socio-Economics False\n", + "9 Chicago commpop Chicago Community Area Population Percent Change for 20... False\n", + "10 Chicago parcels Tax parcel polygons of Cook county False\n", + "11 Chile Labor Labor Markets in Chile (1982-2002) False\n", + "12 Chile Migration Internal Migration in Chile (1977-2002) False\n", + "13 Cincinnati 2008 Cincinnati Crime + Socio-Demographics False\n", + "14 Cleveland 2015 sales prices of homes in Cleveland, OH. False\n", + "15 Columbus Columbus neighborhood crime False\n", + "16 Elections 2012 and 2016 Presidential Elections False\n", + "17 Grid100 Grid with simulated variables False\n", + "18 Groceries 2015 Chicago supermarkets False\n", + "19 Guerry Moral statistics of France (Guerry, 1833) False\n", + "20 Health Indicators Chicago Health Indicators (2005-11) False\n", + "21 Health+ 2000 Health, Income + Diversity False\n", + "22 Hickory1 2000 Census Tract Data for Hickory, NC MSA and counties False\n", + "23 Hickory2 1998 and 2001 Zip Code Business Patterns (Census Bureau... False\n", + "24 Home Sales 2014-15 Home Sales in King County, WA False\n", + "25 Houston Houston, TX region homicide counts and rates False\n", + "26 Juvenile Cardiff juvenile delinquent residences False\n", + "27 Lansing1 2000 Census Tract Data for Lansing, MI MSA and counties False\n", + "28 Lansing2 1998 and 2001 Zip Code Business Patterns (Census Bureau... False\n", + "29 Laozone Ozone measures at monitoring stations in Los Angeles basin False\n", + "30 LasRosas Corn yield, fertilizer and field data for precision agr... False\n", + "31 Line Line Shapefile True\n", + "32 Liquor Stores 2015 Chicago Liquor Stores False\n", + "33 Malaria Malaria incidence and population (1973, 95, 93 censuses... False\n", + "34 Milwaukee1 2000 Census Tract Data for Milwaukee, WI MSA False\n", + "35 Milwaukee2 1998 and 2001 Zip Code Business Patterns (Census Bureau... False\n", + "36 NCOVR US county homicides 1960-1990 True\n", + "37 NDVI Normalized Difference Vegetation Index grid False\n", + "38 NYC Demographic and housing data for New York City subborou... False\n", + "39 NYC Earnings Block-level Earnings in NYC (2002-14) False\n", + "40 NYC Education NYC Education (2000) False\n", + "41 NYC Neighborhoods Demographics for New York City neighborhoods False\n", + "42 NYC Socio-Demographics NYC Education + Socio-Demographics False\n", + "43 Natregimes NCOVR with regimes (book/PySAL) False\n", + "44 Nepal Health, poverty and education indicators for Nepal dist... False\n", + "45 Ohiolung Ohio lung cancer data, 1968, 1978, 1988 False\n", + "46 Orlando1 2000 Census Tract Data for Orlando, FL MSA and counties False\n", + "47 Orlando2 1998 and 2001 Zip Code Business Patterns (Census Bureau... False\n", + "48 Oz9799 Monthly ozone data, 1997-99 False\n", + "49 Phoenix ACS Phoenix American Community Survey Data (2010, 5-year av... False\n", + "50 Pittsburgh Pittsburgh homicide locations False\n", + "51 Point Point Shapefile True\n", + "52 Police Police expenditures Mississippi counties False\n", + "53 Polygon Polygon Shapefile True\n", + "54 Polygon_Holes Example to test treatment of holes True\n", + "55 Rio Grande do Sul Cities of the Brazilian State of Rio Grande do Sul True\n", + "56 SIDS North Carolina county SIDS death counts False\n", + "57 SIDS2 North Carolina county SIDS death counts and rates False\n", + "58 Sacramento1 2000 Census Tract Data for Sacramento MSA True\n", + "59 Sacramento2 1998 and 2001 Zip Code Business Patterns (Census Bureau... True\n", + "60 SanFran Crime July-Dec 2012 crime incidents in San Francisco (points ... False\n", + "61 Savannah1 2000 Census Tract Data for Savannah, GA MSA and counties False\n", + "62 Savannah2 1998 and 2001 Zip Code Business Patterns (Census Bureau... False\n", + "63 Scotlip Male lip cancer in Scotland, 1975-80 False\n", + "64 Seattle1 2000 Census Tract Data for Seattle, WA MSA and counties False\n", + "65 Seattle2 1998 and 2001 Zip Code Business Patterns (Census Bureau... False\n", + "66 Snow John Snow & the 19th Century Cholera Epidemic False\n", + "67 South US Southern county homicides 1960-1990 True\n", + "68 Spirals Synthetic spiral points False\n", + "69 StLouis St Louis region county homicide counts and rates False\n", + "70 Tampa1 2000 Census Tract Data for Tampa, FL MSA and counties False\n", + "71 US SDOH 2014 US Social Determinants of Health Data False\n", + "72 arcgis arcgis testing files True\n", + "73 baltim Baltimore house sales prices and hedonics, 1978. True\n", + "74 berlin Prenzlauer Berg neighborhood AirBnB data from Berlin True\n", + "75 book Synthetic data to illustrate spatial weights True\n", + "76 burkitt Burkitt's lymphoma in the Western Nile district of Uganda True\n", + "77 calemp Employment density for California counties True\n", + "78 chicago Chicago neighborhoods True\n", + "79 clearwater mgwr testing dataset False\n", + "80 columbus Columbus neighborhood crime data 1980 True\n", + "81 desmith Small dataset to illustrate Moran's I statistic True\n", + "82 geodanet Datasets from GeoDaNet for network analysis True\n", + "83 georgia Various socio-economic variables for counties within the... True\n", + "84 juvenile Residences of juvenile offenders in Cardiff, UK True\n", + "85 mexico Decennial per capita incomes of Mexican states 1940-2000 True\n", + "86 networks Datasets used for network testing True\n", + "87 newHaven Network testing dataset False\n", + "88 nyc_bikes New York City Bike Trips False\n", + "89 sids2 North Carolina county SIDS death counts and rates True\n", + "90 snow_maps Public water pumps and Cholera deaths in London 1854 (Jo... True\n", + "91 stl Homicides and selected socio-economic characteristics fo... True\n", + "92 street_net_pts Street network points True\n", + "93 taz Traffic Analysis Zones in So. California False\n", + "94 tokyo Tokyo Mortality data True\n", + "95 us_income Per-capita income for the lower 48 US states 1929-2009 True\n", + "96 virginia Virginia counties shapefile True\n", + "97 wmat Datasets used for spatial weights testing True\n" + ] + } + ], "source": [ "libpysal.examples.available()" ] }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, + "execution_count": 5, + "metadata": { + "execution": { + "iopub.execute_input": "2021-02-19T23:08:46.796900Z", + "iopub.status.busy": "2021-02-19T23:08:46.796472Z", + "iopub.status.idle": "2021-02-19T23:08:46.803392Z", + "shell.execute_reply": "2021-02-19T23:08:46.803920Z" + } + }, "outputs": [], "source": [ "_ = libpysal.examples.load_example('South')\n", @@ -58,8 +221,15 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, + "execution_count": 6, + "metadata": { + "execution": { + "iopub.execute_input": "2021-02-19T23:08:46.953675Z", + "iopub.status.busy": "2021-02-19T23:08:46.953147Z", + "iopub.status.idle": "2021-02-19T23:08:46.997924Z", + "shell.execute_reply": "2021-02-19T23:08:46.998497Z" + } + }, "outputs": [], "source": [ "df = read_file(pth)" @@ -74,13 +244,32 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": { + "execution": { + "iopub.execute_input": "2021-02-19T23:08:47.016396Z", + "iopub.status.busy": "2021-02-19T23:08:47.015792Z", + "iopub.status.idle": "2021-02-19T23:08:47.383077Z", + "shell.execute_reply": "2021-02-19T23:08:47.383580Z" + }, "tags": [ "nbsphinx-thumbnail" ] }, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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pAqKSWlhgoSgXJFEv1GWB15359PQ1NRkWrJkycKqqqpIY2Pjienrt23bZrvrrruqIpGIvHHjRu8vfvGLblmeef/++Z//uejBBx90y7LMf//3f3ddf/31vjez/2w0Nzebrr322lpVVaVEIiHdfffdQ5///OdnRGN+7WtfK/zNb37jVhRF5OXlJe6///6OhoaGGMDatWvrDx06ZF+5cmVg06ZNKX/MVVddVb1ly5asH/zgB50f/OAHx6cf80zICN6/QmZJWeTF//cUIhxm6wObGe2dFHTz187nxLYZzzwA63JMVKxbnLbs9drrHd/cPqvgnSrUlalatxCzCl09WElibFqaUkwVmKf8biaElSGi8vIvdnGiLg9Xvh3FIGO0GwlWzqzKZenxse+55jRJVbakCKnAlhLaxpYxtHwbRrcNh8XIkprcVLs2qTIPl83Eyz/fTnZVDrLLPKPCFIBRVlh84UrqV68EaUpqk4BIyEv4RBuSJGG0mphzzjzMRhm3S6OvaRhV1bC4zBjk5H4S5K8oxbSylHFNYDAptA/4kCUJSQIZCeQJcSwh2wwU1eSgaXplJ9kTwSyS3u5kYeKIx6O/8JM+5njEj9EUB0nB4nBgtQuyC3LJrS7EaDExdLILS0Uh2flZmIwK0biKOuVBm7gDsiRhNRt0K43ZwLVfWMemXx/EaFQwmBVybCYko8LB1hG6R4JYXDmc9R/34PnI9+g5rGugspI+CUp0eqBEj/i1DARomxJEF/YnqFhyNus+dz3jh0YZH5icPEiyRjjZhP6P//cYeWWFLNigR5EHPVHufvw/aN9ziPbDeqGP8b5+cismo41nyz2fng9sMBmoXlZD2wHdTz7eP8If/utnrL3lUkIuC/MrcujxRijOsVJd4GSs348j24JpSvu/v/amCEmhWzrLKlkVlKJpvFXhW15eHp1N6AJ87GMfq7zvvvs6N27cGDz//PPrH3vsMddNN93km7rN/v37LY8//nhuU1PT8c7OTuNFF13UcPXVVx8zGAxntP/pqKioiO/bt6/RarUKr9crz58/f8FNN93kqaqqSjM3rVixIvSP//iPJ51Op/ad73wn/7Of/WzZs88+2wbwuc99biAYDMo//elP07SXp556qv3666+velM3ahoZwftXyGxa8JEX9iFicYpqi9ME70j36xQLe5MvhPbDAzz6tVcoqs/D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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "%matplotlib inline\n", "ax = df.plot(column='HR60', scheme='QUANTILES', k=4, \\\n", @@ -90,9 +279,27 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 8, + "metadata": { + "execution": { + "iopub.execute_input": "2021-02-19T23:08:47.387398Z", + "iopub.status.busy": "2021-02-19T23:08:47.386835Z", + "iopub.status.idle": "2021-02-19T23:08:47.389204Z", + "shell.execute_reply": "2021-02-19T23:08:47.389948Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "['[ 0.00, 3.21]', '( 3.21, 6.25]', '( 6.25, 9.96]', '( 9.96, 92.94]']" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "labels = [t.get_text() for t in ax.get_legend().get_texts()]\n", "labels" @@ -100,9 +307,34 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 9, + "metadata": { + "execution": { + "iopub.execute_input": "2021-02-19T23:08:47.393317Z", + "iopub.status.busy": "2021-02-19T23:08:47.392851Z", + "iopub.status.idle": "2021-02-19T23:08:47.397099Z", + "shell.execute_reply": "2021-02-19T23:08:47.397634Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Quantiles \n", + "\n", + " Interval Count\n", + "----------------------\n", + "[ 0.00, 3.21] | 353\n", + "( 3.21, 6.25] | 353\n", + "( 6.25, 9.96] | 353\n", + "( 9.96, 92.94] | 353" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "q4 = mapclassify.Quantiles(df.HR60, k=4)\n", "q4" @@ -110,9 +342,27 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 10, + "metadata": { + "execution": { + "iopub.execute_input": "2021-02-19T23:08:47.401177Z", + "iopub.status.busy": "2021-02-19T23:08:47.400591Z", + "iopub.status.idle": "2021-02-19T23:08:47.402935Z", + "shell.execute_reply": "2021-02-19T23:08:47.403405Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "labels == q4.get_legend_classes()" ] @@ -133,9 +383,29 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 11, + "metadata": { + "execution": { + "iopub.execute_input": "2021-02-19T23:08:47.419734Z", + "iopub.status.busy": "2021-02-19T23:08:47.419203Z", + "iopub.status.idle": "2021-02-19T23:08:47.781231Z", + "shell.execute_reply": "2021-02-19T23:08:47.781738Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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pAqKSWlhgoSgXJFEv1GWB15359PQ1NRkWrJkycKqqqpIY2Pjienrt23bZrvrrruqIpGIvHHjRu8vfvGLblmeef/++Z//uejBBx90y7LMf//3f3ddf/31vjez/2w0Nzebrr322lpVVaVEIiHdfffdQ5///OdnRGN+7WtfK/zNb37jVhRF5OXlJe6///6OhoaGGMDatWvrDx06ZF+5cmVg06ZNKX/MVVddVb1ly5asH/zgB50f/OAHx6cf80zICN6/QmZJWeTF//cUIhxm6wObGe2dFHTz187nxLYZzzwA63JMVKxbnLbs9drrHd/cPqvgnSrUlalatxCzCl09WElibFqaUkwVmKf8biaElSGi8vIvdnGiLg9Xvh3FIGO0GwlWzqzKZenxse+55jRJVbakCKnAlhLaxpYxtHwbRrcNh8XIkprcVLs2qTIPl83Eyz/fTnZVDrLLPKPCFIBRVlh84UrqV68EaUpqk4BIyEv4RBuSJGG0mphzzjzMRhm3S6OvaRhV1bC4zBjk5H4S5K8oxbSylHFNYDAptA/4kCUJSQIZCeQJcSwh2wwU1eSgaXplJ9kTwSyS3u5kYeKIx6O/8JM+5njEj9EUB0nB4nBgtQuyC3LJrS7EaDExdLILS0Uh2flZmIwK0biKOuVBm7gDsiRhNRt0K43ZwLVfWMemXx/EaFQwmBVybCYko8LB1hG6R4JYXDmc9R/34PnI9+g5rGugspI+CUp0eqBEj/i1DARomxJEF/YnqFhyNus+dz3jh0YZH5icPEiyRjjZhP6P//cYeWWFLNigR5EHPVHufvw/aN9ziPbDeqGP8b5+cismo41nyz2fng9sMBmoXlZD2wHdTz7eP8If/utnrL3lUkIuC/MrcujxRijOsVJd4GSs348j24JpSvu/v/amCEmhWzrLKlkVlKJpvFXhW15eHp1N6AJ87GMfq7zvvvs6N27cGDz//PPrH3vsMddNN93km7rN/v37LY8//nhuU1PT8c7OTuNFF13UcPXVVx8zGAxntP/pqKioiO/bt6/RarUKr9crz58/f8FNN93kqaqqSjM3rVixIvSP//iPJ51Op/ad73wn/7Of/WzZs88+2wbwuc99biAYDMo//elP07SXp556qv3666+velM3ahoZwftXyGxa8JEX9iFicYpqi9ME70j36xQLe5MvhPbDAzz6tVcoqs/D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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "ax = df.plot(column='HR60', scheme='QUANTILES', k=4, \\\n", " cmap='BuPu', legend=True,\n", @@ -145,9 +415,29 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 12, + "metadata": { + "execution": { + "iopub.execute_input": "2021-02-19T23:08:47.798671Z", + "iopub.status.busy": "2021-02-19T23:08:47.798160Z", + "iopub.status.idle": "2021-02-19T23:08:48.222135Z", + "shell.execute_reply": "2021-02-19T23:08:48.222630Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "ax = df.plot(column='HR60', scheme='QUANTILES', k=4, \\\n", " cmap='BuPu', legend=True,\n", @@ -156,9 +446,29 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 13, + "metadata": { + "execution": { + "iopub.execute_input": "2021-02-19T23:08:48.238749Z", + "iopub.status.busy": "2021-02-19T23:08:48.238230Z", + "iopub.status.idle": "2021-02-19T23:08:48.597017Z", + "shell.execute_reply": "2021-02-19T23:08:48.597497Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "ax = df.plot(column='HR60', scheme='QUANTILES', k=4, \\\n", " cmap='BuPu', legend=True,\n", @@ -181,9 +491,29 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 14, + "metadata": { + "execution": { + "iopub.execute_input": "2021-02-19T23:08:48.614466Z", + "iopub.status.busy": "2021-02-19T23:08:48.613950Z", + "iopub.status.idle": "2021-02-19T23:08:49.001364Z", + "shell.execute_reply": "2021-02-19T23:08:49.001871Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "ax = df.plot(column='HR60', scheme='BoxPlot', \\\n", " cmap='BuPu', legend=True,\n", @@ -193,9 +523,36 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 15, + "metadata": { + "execution": { + "iopub.execute_input": "2021-02-19T23:08:49.005256Z", + "iopub.status.busy": "2021-02-19T23:08:49.004778Z", + "iopub.status.idle": "2021-02-19T23:08:49.009124Z", + "shell.execute_reply": "2021-02-19T23:08:49.009602Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "BoxPlot \n", + "\n", + " Interval Count\n", + "----------------------\n", + "( -inf, -6.90] | 0\n", + "(-6.90, 3.21] | 353\n", + "( 3.21, 6.25] | 353\n", + "( 6.25, 9.96] | 353\n", + "( 9.96, 20.07] | 311\n", + "(20.07, 92.94] | 42" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "bp = mapclassify.BoxPlot(df.HR60)\n", "bp\n" @@ -203,9 +560,32 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 16, + "metadata": { + "execution": { + "iopub.execute_input": "2021-02-19T23:08:49.013353Z", + "iopub.status.busy": "2021-02-19T23:08:49.012793Z", + "iopub.status.idle": "2021-02-19T23:08:49.015087Z", + "shell.execute_reply": "2021-02-19T23:08:49.015680Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "['(-inf, -7]',\n", + " '( -7, 3]',\n", + " '( 3, 6]',\n", + " '( 6, 10]',\n", + " '( 10, 20]',\n", + " '( 20, 93]']" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "bp.get_legend_classes(fmt=\"{:.0f}\")" ] @@ -226,9 +606,29 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 17, + "metadata": { + "execution": { + "iopub.execute_input": "2021-02-19T23:08:49.032373Z", + "iopub.status.busy": "2021-02-19T23:08:49.031813Z", + "iopub.status.idle": "2021-02-19T23:08:49.594965Z", + "shell.execute_reply": "2021-02-19T23:08:49.595487Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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9/Dw8DhDeTHa465fvz6yZs2a9ssvv7xt7ty5ZZr9rl27tI6OjvkPPfRQ8IEHHgguW7ZsXkdHx/xly5bN27p1qw/g1ltvrb700ktnrVu3bk5LS8vC66+/fjq4k4crr7yydc6cOQva29vnf+pTn6oDuOWWW2oWLlzYMXfu3PmvfvWrZ6VSKQng+9//fuWcOXMWzJ07d/7KlSvnns7nO9PwfPgeHh4eZyin0h73dHL0T9Qed9u2baEtW7bsnDdvnr53714NYOvWrb63vOUts/7nf/7n8LnnnpsbHh6WNm7cuEdVVX77299Gbr755ul/+MMfDgLs2rUruHXr1l2BQMCePXv2wg9/+MN9PT09ak9Pj7p///6dAIODgzLAtddeO/KhD31oEOCf//mfp9166601n/jEJ/o///nPN/7xj3/c19bWZoxue7bjafgeHh4eZygvVnvcxYsXZ+bNm6ePbjc8PKy88Y1vnP3jH//40LnnnpsrLpNf97rXzZozZ86Cm2++eca+fftKMQDnnXdesrq62goGg87s2bPzBw8e9M2bN69w7Ngx33XXXTfjrrvuilZWVloAmzdvDqxYsWJue3v7/Lvvvrt6586dfoCVK1emr7322tZbbrmlxnMtuHgC38PDw+MM5W/RHvcf//EfW5qamhZ94xvfaLjnnnsqHcchGAyWleyNRCJWY2Oj/uCDD4ZHl330ox9tuuCCC1L79+/fee+99x7Q9TG3wvjWt7IsO4ZhiNraWmvHjh27LrrootS3vvWture85S2tAO973/vavvGNbxzdt2/fro9+9KPdhUJBAvjpT3969D//8z+7jx07pi1dunRBb2/vWa/lewLfw8PD4wzlxWiP+/DDD4cnbquqqnP//fcf/NnPflZ92223VQEkk0l5+vTpOsDtt99e82zn6+npUSzL4h3veEf8P//zP7u2b98eBMhms1Jzc7NRKBTEz3/+81Lg4M6dO32vfOUrM1/72te6KysrzUOHDp31rXI9H76Hh4fHGcpoe9zbHz7UdKJtnkt73Jtvvrms9e4b3vCGke9///u1LS0thYnbR6NR+w9/+MOBCy+8sD0cDtsf/ehHe9/znve03XrrrQ3r1q1LPtv5Ojs71Xe/+92ttm0LgE9/+tPHAT72sY91r169uqOpqUnv6OjIptNpGeCmm26a3tnZ6XMcR5x33nnJc845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iKIozs0331yKLj/33HNzr3nNa9K2bfP+979/+pw5cxa0t7fP/+53vzupu+Ctt95a/Q//8A/No+8vuuii2evXr4+A27L3hhtuaFqwYEHHueee2/7AAw8EV69ePXf69OmLRtsAA3R1danr1q2b09rauvBDH/pQ6XsLBoPLABKJhLR27dr2+fPnd7S3t8//yU9+UnEq35FXWtfDw+NF4S9DSb59rJ9hw9XeO3N5XlkVIWVaKELQ6FfZl84xaJgIZC6sivCn4VRp//ESygF63nI9B/xB/hSspkFTuSdcR3JWNTKwriLMnkyeQWOsUdrRpplMa5lNVJHoO7ivtDyfSlE9vYXU4ACx+gYSfWPKb8+BvTR1LKRr9w4QguWvewOJvh72/fURDEd2N1KnLOv+4nAq7XGfhxz98e1xxy+/5ZZbGm699dYjl156aSaRSEjBYND+7Gc/23XLLbfUP/DAAwfAFZhPPfVUeNu2bTvr6+ut8U12brnlltojR474du7cuUtVVfr6+uT6+nrr29/+dv1DDz20r7GxsawDXjabFe9///vb/vjHP+5dvHhx4e/+7u9av/SlL9V+8pOf7H/sscfCl112WeKd73xnWaG4bdu2BZYsWTKlReKOO+6o2L59e2D37t07e3p6lNWrV3dceuml6ZO9LrlcTrroootS3/72t7suueSSWf/2b//W9Mgjj+x76qmn/O985zvbrr322kRxDKHt27fvDIfD9rJly+a/4Q1vSIy3kgSDQfu+++47UFVVZff09Chr1qyZd80118Ql6eTma57A9/Dw+JuQtWzeuf0wl1ZH2ZTM8Jv+OCFJcE5FiBHdJCBL/GU4xdpYqGTenx3U0G1Xs+83yruayhR99sEwu6/9J34vu4I24DiYjkOy6AawgKRloTsOweKD8ZxYiMcTGZoueD0zNvyx/LiaD0mSqGubheYPkOjrdV8HAsR7e7D0Apff9DF8wTCyItO9fzcti5chlGJTuKd+DPNeD7ETl6//m/EitscdzznnnJP+8Ic/POPqq68efutb3zoya9asKU3w69atS9bX108KJPzLX/4Svf766wdU1R3mVNuMZ+vWrf7p06cXRk3x73jHO4a++c1v1nGaweWPPPJI5Oqrrx5WFIUZM2aYa9asST/66KPBlStX5k5mf1VVnb//+79PAixYsCDn8/lsn8/nrF69OtfV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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "ax = df.plot(column='STATE_NAME', categorical=True, legend=True, \\\n", " legend_kwds={'loc': 'center left', 'bbox_to_anchor':(1,0.5),\n", @@ -244,6 +644,9 @@ } ], "metadata": { + "nbsphinx": { + "execute": "never" + }, "kernelspec": { "display_name": "Python 3", "language": "python", @@ -259,7 +662,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.6" + "version": "3.9.1" } }, "nbformat": 4, diff --git a/doc/source/gallery/choropleths.ipynb b/doc/source/gallery/choropleths.ipynb index 55e4ace..7ca4c55 100644 --- a/doc/source/gallery/choropleths.ipynb +++ b/doc/source/gallery/choropleths.ipynb @@ -23,11 +23,17 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": { "ExecuteTime": { "end_time": "2017-12-15T21:29:37.736444Z", "start_time": "2017-12-15T21:29:37.716444Z" + }, + "execution": { + "iopub.execute_input": "2021-02-19T19:18:04.695356Z", + "iopub.status.busy": "2021-02-19T19:18:04.694550Z", + "iopub.status.idle": "2021-02-19T19:18:05.468831Z", + "shell.execute_reply": "2021-02-19T19:18:05.469324Z" } }, "outputs": [], @@ -38,14 +44,60 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": { "ExecuteTime": { "end_time": "2017-12-15T21:29:39.866422Z", "start_time": "2017-12-15T21:29:39.846422Z" + }, + "execution": { + "iopub.execute_input": "2021-02-19T19:18:05.473838Z", + "iopub.status.busy": "2021-02-19T19:18:05.473318Z", + "iopub.status.idle": "2021-02-19T19:18:06.370313Z", + "shell.execute_reply": "2021-02-19T19:18:06.370935Z" } }, - "outputs": [], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Observations, Attributes: (49, 21)\n" + ] + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " AREA PERIMETER COLUMBUS_ COLUMBUS_I POLYID NEIG HOVAL \\\n", + "0 0.309441 2.440629 2 5 1 5 80.467003 \n", + "1 0.259329 2.236939 3 1 2 1 44.567001 \n", + "2 0.192468 2.187547 4 6 3 6 26.350000 \n", + "3 0.083841 1.427635 5 2 4 2 33.200001 \n", + "4 0.488888 2.997133 6 7 5 7 23.225000 \n", + "\n", + " INC CRIME OPEN ... DISCBD X Y NSA NSB \\\n", + "0 19.531 15.725980 2.850747 ... 5.03 38.799999 44.070000 1.0 1.0 \n", + "1 21.232 18.801754 5.296720 ... 4.27 35.619999 42.380001 1.0 1.0 \n", + "2 15.956 30.626781 4.534649 ... 3.89 39.820000 41.180000 1.0 1.0 \n", + "3 4.477 32.387760 0.394427 ... 3.70 36.500000 40.520000 1.0 1.0 \n", + "4 11.252 50.731510 0.405664 ... 2.83 40.009998 38.000000 1.0 1.0 \n", + "\n", + " EW CP THOUS NEIGNO geometry \n", + "0 1.0 0.0 1000.0 1005.0 POLYGON ((8.62413 14.23698, 8.55970 14.74245, ... \n", + "1 0.0 0.0 1000.0 1001.0 POLYGON ((8.25279 14.23694, 8.28276 14.22994, ... \n", + "2 1.0 0.0 1000.0 1006.0 POLYGON ((8.65331 14.00809, 8.81814 14.00205, ... \n", + "3 0.0 0.0 1000.0 1002.0 POLYGON ((8.45950 13.82035, 8.47341 13.83227, ... \n", + "4 1.0 0.0 1000.0 1007.0 POLYGON ((8.68527 13.63952, 8.67758 13.72221, ... \n", + "\n", + "[5 rows x 21 columns]" + ], + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
AREAPERIMETERCOLUMBUS_COLUMBUS_IPOLYIDNEIGHOVALINCCRIMEOPEN...DISCBDXYNSANSBEWCPTHOUSNEIGNOgeometry
00.3094412.440629251580.46700319.53115.7259802.850747...5.0338.79999944.0700001.01.01.00.01000.01005.0POLYGON ((8.62413 14.23698, 8.55970 14.74245, ...
10.2593292.236939312144.56700121.23218.8017545.296720...4.2735.61999942.3800011.01.00.00.01000.01001.0POLYGON ((8.25279 14.23694, 8.28276 14.22994, ...
20.1924682.187547463626.35000015.95630.6267814.534649...3.8939.82000041.1800001.01.01.00.01000.01006.0POLYGON ((8.65331 14.00809, 8.81814 14.00205, ...
30.0838411.427635524233.2000014.47732.3877600.394427...3.7036.50000040.5200001.01.00.00.01000.01002.0POLYGON ((8.45950 13.82035, 8.47341 13.83227, ...
40.4888882.997133675723.22500011.25250.7315100.405664...2.8340.00999838.0000001.01.01.00.01000.01007.0POLYGON ((8.68527 13.63952, 8.67758 13.72221, ...
\n

5 rows × 21 columns

\n
" + }, + "metadata": {}, + "execution_count": 2 + } + ], "source": [ "# We use a PySAL example shapefile\n", "import libpysal as ps\n", @@ -69,9 +121,28 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 3, + "metadata": { + "execution": { + "iopub.execute_input": "2021-02-19T19:18:06.375604Z", + "iopub.status.busy": "2021-02-19T19:18:06.375107Z", + "iopub.status.idle": "2021-02-19T19:18:06.570919Z", + "shell.execute_reply": "2021-02-19T19:18:06.570247Z" + } + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\n\n\n\n \n \n \n \n 2021-02-19T22:27:18.985781\n image/svg+xml\n \n \n Matplotlib v3.3.4, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], "source": [ "# Let's take a look at how the CRIME variable is distributed with a histogram\n", "tracts['CRIME'].hist(bins=20)\n", @@ -90,17 +161,45 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": { "ExecuteTime": { "end_time": "2017-12-15T21:29:54.097280Z", "start_time": "2017-12-15T21:29:53.766283Z" }, + "execution": { + "iopub.execute_input": "2021-02-19T19:18:06.598910Z", + "iopub.status.busy": "2021-02-19T19:18:06.598332Z", + "iopub.status.idle": "2021-02-19T19:18:06.799060Z", + "shell.execute_reply": "2021-02-19T19:18:06.798559Z" + }, "tags": [ "nbsphinx-thumbnail" ] }, - "outputs": [], + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": {}, + "execution_count": 4 + }, + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\n\n\n\n \n \n \n \n 2021-02-19T22:27:19.389656\n image/svg+xml\n \n \n Matplotlib v3.3.4, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWYAAADtCAYAAACMJt+5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAABusElEQVR4nO2dd3gU1frHP2e2ZDfZ9EYSQhIglNClW6gqiCIqFsR61Yt67b397A2vXnu5145drIAiTUVURAGlF+kQkpBet++c3x+7ICVlN9lNNjif55lnd2Znzjmb7H73zHveIqSUaGhoaGiED0pbD0BDQ0ND41A0YdbQ0NAIMzRh1tDQ0AgzNGHW0NDQCDM0YdbQ0NAIM/RtPQANDQ2NtqSrENLq57mFMF9KOT6kA0ITZg0Njb85VmCan+c+CEmhHMt+NGHW0ND4WyMAXVsP4jA0YdbQ0PjbE26LbZowa2ho/K0RaMKsoaGhEXaIth7AYWjCrKGh8bdHmzFraGhohBnajFlDQ0MjjBCEnxCG23g0NDQ0Wh1txqyhoaERRmheGX6SlJQks7Oz23oYGhoaYc7KlStLpZTJLW1HE2Y/yM7OZsWKFW09DA0NjTBHCLErKO0Eo5EgEpbCrKGhodFaaCHZGhoaGmGIZsrQ0NDQCCO0xT8NDQ2NMESzMWtoaGiEGdqMWUNDQyOM0EwZGhrNYMaMGVRWVmIymTCbzZhMpkO2g49FRUWRlpaGEOF2c6oRrmheGRoazeC2W2/mlBP6EmE0Yne6sDlc2B0u7E4XdrvT+9zhwu5wsqewmG+//Y7jjjuurYet0Y7QZswaGgGSndWJK88bw7D+uU2eO+bSx3E6na0wKo2jiXC7vwq3HwoNjSPIzs5m594Sv85VVYlOF243phrhzH4bsz9ba6HNmDXCnuzOXdmZv8evcz0eVRNmjYAJtxmzJswaYU/nzl1YuXi1X+dKKbnlphuItkThcrtwu9243R5MpggslmgsFgtRlmiio2OwRMcQHR3N4MGDGTNmTIjfhUY4E26mA02YNcKe7OxsPiso8+vc/z5wKXuKytDrFAx6PXq9gk5RcDjd1Frt1NTZqLXaqbNWUltTxNq1Rcz64lOWLlse4nehEa4E2ytDCBEHvA70BiRwGbAZ+BjIBnYC50opKxpqQxNmjbAnJyeHnXuK/Tq3d7dMenfL9Lvtleu2c+XDHzZ3aBpHCUGeMT8HzJNSni2EMAKRwN3At1LK6UKIO4E7gTtaaTwaGsEnKyuLPYXFeDxq0Ns2m4zY7fagt6vRfgjm4p8QIgYYAbwBIKV0SikrgUnADN9pM4AzGmunyb6EEG8KIYqFEOvqee1WIYQUQiQ1cO1OIcRaIcQqIYSWYFmjWZhMJhLi4ygsafDOr/ltRxiw2TRh/rsj/NyAJCHEioO2aYc11RkoAd4SQvwhhHhdCBEFpEopCwF8jymNjccfU8bbwIvAO4e8ESEygZOA3U1cP1pKWepHPxoaDZKTncWO/BI6dkgMarvmCCN2hyOobWq0P4Tip1+GKkullIMaOUMPHANcJ6X8VQjxHF6zRUA0OWOWUi4Byut56RngdrzGbQ2NkJKTk8OOfP/szIGgzZg1hACdTvFr84N8IF9K+atv/1O8Qr1PCJHm7U+kAY1+mJtlYxZCnA7slVI25cMkgQVCiJX1TPkPb3Pa/tuDkhL/ggk0/j5k5XRhl59BJoFgNmkzZg0QQvi1NYWUsgjYI4To7js0FtgAzAYu8R27BJjVWDsBe2UIISKBe4CT/Tj9OCllgRAiBVgohNjkm4EfgZTyVeBVgEGDBmmzcI1D6Ny5Cz9+82vTJwZIhNGA0+lCVVUURVsL/3si/Ddl+Md1wPs+j4ztwD/wToJnCiEux2v+PaexBprjLtcFyAFW+35BOgK/CyGG+H4tDiClLPA9FgshvgCGAPUKs4ZGY2RnZ/Pu3uAvVQghiIgw4nA4MJvNQW9fo30QzGyEUspVQH126LH+thHwFEFKuVZKmSKlzJZSZuO1qRxzuCgLIaKEENH7n+OdYR/h2aGh4Q85OTnsDIGNGcAUYcRms4WkbY12gPAu/vmztRb+uMt9CPwCdBdC5Pum4g2dmy6EmOvbTQV+EkKsBn4DvpZSzgvGoDX+fmRmZlJYXIbL5Q5622ZThObL/DdGEDwbc7Bo0pQhpTy/idezD3peAEzwPd8O9Gvh+DQ0ADAYDHRISWZPURmdM1OD2rY2Y/6bIwSKfx4XrUZ4jUZDoxFycvxP/xkIWvSfhqIIv7bWQsuVodFuyMnpzI784AuzNmP+e7PflBFOaMKs0W7IyunCzvw1QW/XHKHNmP/WiAAi/1oJzZSh0W7o3LkzOwvrC0JtGd7oP23G/Hem3S3+aWgcjpSSffv2sXPnTnbt2sWOHTvYtXM7u3ZsZ+euXYDgg49m0r9//6D2m52dzc784PkySymxO1zodIo2Y/5b07qucP6gCbNGwPzwww+MHj2aXrlZ9OicRlZqDHnpCZzSqydZacexbmsBJ584hhtvvpXBgwcjpWT16tVsWLuKuIQkunXvcWAGotfrMRgMB6Lu3G43VVVVVFZWUlVZQWVlOXarFYfDQWVlJZu27mrx+F//5DtuePQdHA4nRqOBSLOZuLi4Frer0T4RgrDzytCEWSNgRo4cyWX/uITdm//g3YcvIsJoOOT1Prkdye2Uwrtff89jsz9EEQo9c5IZlJNKZfVuVn3vjTNSpYrbI3G5PUhfEL5OEcRaTMRGGUmzmOmeaSbSFEeEUY9B34mzfviJyupa4mIszR7/7oJSbr31Nh544AGtPqAGoC3+aRwFCCH436uvc945k7n0/nf58PHLjjhnUK9sBvXKDnrfHZJiWbZqK+NH9G92G06Xh0SLRRNljQO0piucP4TX/F2j3aDX63n7nff4YlHr1j/ISk9ixfrtLWrD6fZgNBqDNCKNdo+fC3/a4p9Gu0BKSUQrC1y3rFQ2bt3bojYcTrcmzBoHEGjuchpHEU6n8wj7cqjpnpXCzhYGmThdHiIiIoI0Io12jwBFJ/zaWgttxqzRbJxOJ0ZD636EsjOSKKuqbVEbTpdmytA4FG3xT+Oowel0YjS2sjCnJ1JdY21RGw6XW5sxaxxCuzNltLBK9nghxGYhxFYhRMAFCTXCm7aYMedkJFFd2zJhdro0G7PGXwgEivBvay38sTG/DYw//GBTVbKFEDrgJeAUIA84XwiR1+yRaoQdTqcTg751hTk1MQaXR6WopLLZbWimDI1DCMNE+f7kY14ihMiu56X9VbIbKio4BNjqy8uMEOIjYBLewoQaRwGxsbEUFJdTUFxJekpcq/QphCA5PpqptzxPt5x0LGYTMRYT0VFmoi1m4mIiibVEEh8TRXyMhfjYKOJiIg+p5+d0ujRThsYhHBU25oOrZDfyhjKAPQft5wNDG2lzGjANoFOnTs0ZlkYrk5mZybXXXseVj37I7GevarUPt8PuYMe2fJKEh912F1anC5vDTZ3Thd3pxuZ043C5cbg8OD0qbo+KXqegVxT0OoGUUF4e/GRIGu2ToyIkO4Aq2fV9Sxusfq1VyW6f3Hvf/QwdPJv3vl7GRacNb5U+UxJiuP3kPlx8Qk+/zldVid3lxuoT7bNeXEiHDh1CPEqN9kP4JTFqzs/EwVWyd/JXlezDP+n5QOZB+x2BguYMUiN8MRqNPPTIY7w1+7dW6zPaYmZftf8LgIoiiIwwkBRtJjMxmkhzBBs3bmTz5s2Ulpbi8XhCOFqN9kC7j/yTUq4FUvbv+8R5kJTy8HyMy4FcIUQOsBeYAkxt/lA1wpWTTjqJK/95Oas27aF/j8ymL2ghyfEWCiqb75lxcs903nruCf7zyP2UVtdSXWcj1mIhMT6OxIR4EhMTSUxKJiElhcSkFJKSkkhMTCQpKYnk5GTy8vIOsVlrtHMEiDD7fzYpzL4q2aOAJCFEPnC/lPKNBs5NB16XUk6QUrqFENcC8wEd8KaUcn3whq4RLphMJm674y6ueOhFHrnmNJLjo4m1mOmSmRySWUZ6Sjz5e4qaff09Ewdwz8QBB/Y9qkpFnYOyWvtfW00pZfvyKdvuYJfVTZnVRVmtnVXbC5n52eeMGzcuGG9FI0wIpinDN1mtATyAW0o5SAiRAHwMZAM7gXOllBUNtRGyKtm+/bnA3Kb60Gj/XH/99cTExPDIq6/gcDgoKS2jrq6Oq88dwQNXnRbUGWZ2eiJr12wNWns6RSEp2kxStLnJc8995Tuqq6uD1rdGOCC8K4DBZfRhVoQ7gW+llNN9MR13Anc0dHF4zd812i06nY7LL7+cpb+uYOWqtezOL+CP1WtZvLaEa6fPDEofqqry7pxfmDHrZ7bta3CyEVLMRp1W7eQoQwhQ9Dq/thYwCZjhez4DOKOxk7WQbI2Q0alTJ+Z8/Q2dMjvy9C2TMUU0nfDI6XRz/u2v8vuGnZRU1OL0eJPoRxh06ITAYjJw7qDOvPFT2wizSa9o9QGPQgIwuSUJIQ7Odfuqz6PsYCSwQAghgf/5Xk+VUhYCSCkLhRApNIImzBohJT4+nrwe3fhlzTZGD+7R6LlWm4P+Zz9IvEHw7OTBDMpOIj4yAkUIKm0Oah1uOidF4/KovPjdOlRVbfVFOLNBmzEfdQgB/tuYS6WUg5o45zgpZYFPfBcKITYFOiRNmDVCztiTx/Pdb2sZPbgHu/aW8vBrX1NTZ6Omzk6dzYnd7sLhdFFYUsmAzES+vPpEIgyH3jamGiJJ9T036nUY9Tr2lNWSlRzTqu8lQie0GfNRSDC9MnxrbUgpi4UQX+CNgt4nhEjzzZbTgOLG2tCEWSPknHDCCJ566GsA3vnqF76Yv5yzB3ehk8VAdKIJS4SBaJOB9LgoTsrLwOBHFFas2cjW4spWF2azQRPmo5FgeQ8JIaIARUpZ43t+MvAQMBu4BJjue2wolQWgCbNGKzB06FCWr9tGeWUtlTU2dDqF/15wXIvaTLCY2FFSE6QR+o/JoKfaWtfq/WqEDiEEQh+0GXMq8IVP6PXAB1LKeUKI5cBMIcTleBO/ndNYI5owa4SchIQEIo0G0sfeSk5yDJf7GUrdGDohePTzX3lnyQaMBh0mg44Igx6zQYfJqCfSaCDSoMMcoScqwkhkhJ7oCANRJoN3hm42Em0yEhtpJNpkIMZs9MtebTboKba1LO2oRvghRHCE2Ze0rV89x8uAsf62owmzRqvQo0cPrulj4axjcoLSntvloQfQy+bEaZXYJDikxK5CjZQ4VIldVXGo0repOKXEqaq4VIlTlbikxK1K3FLiwes7qlcEa5+4kC6pcfX2azLqsFn/Eubt27fzxx9/4HQ66908Hg/p6elkZmZSXFxMWloao0aNCsrfQCNIiPBLlK8Js0bIyc/PZ+269Rx7xulBazMuKoJeBh1Xp8cHpT0pJS4Jo9fsZntxdcPCbNDjqP3Lxnzd1VdSW7yLtMQY36KkcsgmgA0/WMkvrcHlchER14FRS34Oypg1gocmzBrtFlVVsVqtREVFBbRY8siDD3D5cd3oEBvZ5Llut8qeir9q+imKIC3WjPGwhPwdYs3sK6ryf/BNIITAKMCsU6i01u8OJ6Xko+U7GX+hNxxbVVWWLvuV9a9eTYeE6Cb7mLd8C4/P2cj69eupq6s7YrPb7Qgh0Ol0KIpy4PHg55GRkUyYMAF9KxcoOLoRECRTRrDQ/rsafvPYo4/ywIMPIqUkOjqa6GgLU8+fyhP//neD1xQUFPDJzI/ZeP8ZR7y2ZV8Vry7ZyKKNBXx9/TjS46KY8MI8fvyzEL3P3iuROD0qekVBpwiMOgVFCDyqJNXQokisevEKs7Pe1z75dQtFDoXrrr8BgI0bN5IQE+mXKAMkx0ayZ9cOzp44jiiTEYs5gkiT1+4dFaHHZNAhJahS4lHlX4/qX/tb95by+v9e4aNPPiMysukfOg0/0EwZGu0Ft9vNpNNPR6fTkZCQQHx8PMt+/ZXpD9/LjdddRU1NLUt+WsqV192GwWCge48ejBo1iszMQ7PL2e12LCYjiRYT4J1lPvz1H/x38UaqbU4Gd0xk7d5yRj35Nb0z4li6dR8fnT2MU3L/yiLrcHuwuT043CrVDheqhN8LK7jn2+DnxDLrFKrqEeYqq4NbZ/7GzC/nYDB4Ixh//vlnju3lf1GHgd0y2D7jhhaNz+ly88/nvmbMyBOY/fU3pKQ0GkCm4QeCoyBRvsbfA0VR+H7xYp576lEMBgPl5RVEjTyWU8adiF6vJz4+jlNPOZlXnpOsXruOzz/9mCeemM6HH36E2WwmKysLvV6PXq+ntKKawY98CUKyu7SWKKOe58f1Y0JuBww6hbX7qlhRUMHvRVUcn5XMsZmJh4wlQq8jwpenINUn8AC2EORRNisK7/28keO6pZEeF8X46V8SGaGn0upkxNhxHHfcX25+S39czPDurZtw32jQ8/Ytp/Pgez+Q16MbN9x4EzfdfAsWi6VVx3FUIQS0t7SfGn9PFEXhkosvZueuPTz64D31nqPX6zlz0qmcOelUpJScd9EVnD/lPGrr6tizJx9VVRFC0DUxmqk90nBLycCR8QzvmIjuoFvHPqmx9EmN5R8BjC/VEoHNFXxhHhlr5oOiSh74fBnnDetGZVUd53WIY6FHpXe//oec+/PPP3PTnRODPoamEELwwEWjuHBMH+5/bza5L73A8y+8zDnnntvqYzlaCDdThpCy8SpOQog3gdOAYillb9+xh/FmS1LxhhZeuj8M8bBrd3JYXlJ/BjVo0CC5YsWKpk/UCCk7duxg0KBB7Nmyqln2TCklg4aO4pR4lXtOaDxPRnPajp0+ix/7diLBENz5xScl1Ty8uxRVwoXpCdyZHsf88lqetir0692L6qoqyioq2LZnN5Vf3tPmSfNn/rCWV77fyQ8//9qm42gLhBAr/dWVhugXb5Hzxx7helwvaZ8tbXF//uDPJ+ptYPxhx56UUvaVUvYHvgLua+T60VLK/q3xZjSCS05ODoMGDmTWnG+adf0nn81i06bNXNQ3+MV1hRDEmYxstbuC3vaJ8VFMz0nhp/5Z3JkeB8DouCj+ZfJw4va1XFyZT3ppIYN7dGxzUQbIzUiksjJ4Hip/O4RAKIpfW2vRZE9SyiVA+WHHDs4UHkUjRVY12jdTpkzhy68CF+YdO3ZxxT//xSunDqCTH25yzSE5ysQOW/0eFC0hXq9jQoKFuIPy7xoVwaSkaE5OsHBsbCR7VBg/KDfofTeHuCgzVVry/mYjAKFT/Npai2bfAwohHgUuBqqA0Q2cVl9e0obamwZMA28eX43woFNWFiUlZQFdU1xcwnEjTuTCvp04p1fHEI0MOkSb2WNtm4RCRR6VkX2z26Tvw9lXWYvVpqUibTZh6C7X7J8AKeU9UspM4H3g2gZOO05KeQxwCnCNEGJEI+29KqUcJKUclJyc3NxhaQSZ6Ohoamprmz7xIMaedBpDk6OYPqZXiEblpWOMib1Od0j7qI+ddie1DhcDuqa1et+Hs3VvGec8+inPvfBSWw+lHdMOTRl+8AEwub4XDs5LCuzPS6rRjoiJiaG62v8sbus3bGLr9p28dEo/v9J3toQMi4mSEHhmNMVnJTUM6paBoWWlhlrM7F82csKtb3P/Q49x/vmNlubUaAIhhF9ba9EsU4YQIldKucW3ezpwRIb+RvKSarQjMjMzyd9bgMPhICIiosnzP/j4M+xuD91enE+0UU+s2Ui8OYIEs5GkSCNJJgPxJgMWo54oo44og56c+Cj6d4gLeGwdLBHUtkEo7TKbi3MGt719efonv/LiK69yzjmNZpDUaApBIBVMWoUmhVkI8SEwCm+tq3zgfmCCEKI7Xne5XcBVvnPTgdellBNoIC9pKN6ERuiIioqib98+zFvwLZMmTmjy/EcfvId77riJXbvzyd+7l/z8QgqKiti3r5iS0jLWlJZRU12F3WrD6XDgdDrYU1jMzhtPIc5kDGhsqVEm2iIBZ4GqMiIM7MsGvY60tLY3pxwNtKaZwh+aFGYpZX33SG80cG4BMMH3vN68pBrtj9tvu50nnnzCL2EGiIyMpGePbvTs0c2v8zMzc/l5dxmndgtMZDpYIrB51ICuaSmFDpc3lLxbRqv2Wx9GvQ6nM/heKX83hBBaSLZG+2PY8OFs274jZO337NOH73cVBCzMKVEmbK7WXfz7rLSGfl3SiTC2zVenoKyaOruLH9fuZEdBqSbMwaIV7cf+EF4/ExphSUxMDDU1gXlmBMLkM09n/rZ9AV+XEhWB1eVBVVtv1vxTnYNxg7q0Wn8Hk19SRf+r/8uEBz7l/eXFXHPzHQwbNqxNxnK0IRTh19ZaaDNmjSYxm83Y7XaklCFZmb7ognO5/qbbKbc5STD7b2eOMurRK4JCp5uMAO3TzWWvhFH9mleF5b9zfuXXTfnERpmIs5hIiDZj1Ouos7uwOd3YHC7s+x9dbhwuNw6nx/vocrO1sJJrr7+RBx7U1tCDivBtYYQmzBpNoigKRqMRh8OByWRq+oIAiYyMJDUxnh93lTKpR3pA1yZERrDN7moVYS5xuimptvLpkvV8+fNGpJRIvHk79udRlkik6tvH+4jvvM+XrGdUXkfKSquptjmptTtxeVQiDHpvBj2Db9PrMBv0RBgUYk16TJYIrE4Xv2zM58677g7a+1m5ciU7d+48kAVQCEFGRgbdunXDbDYHrZ92QZiZMjRh1vALi8XC/z3wOE8+/kBIZs29+vbju127AhbmFIuJHXYXDUYuBZGPi6uRwJ69pT6/1r/K3ns9rv46JvjrNUWAQHDR8T155sLj0TXDA+CL5VvZoyT69cNYUVHBjBkzGDp0KLm5uSQmJlJUVER5eTlOp5PS0lI2bNjAjTfeyKDOaXSIteBWVVQJ+RV1bC0qxWyKYO68BRx77LEBj7U9Ema6rAmzhn/MmzePq666knc/mMnFF5wX9PbPnjyJR+6uP71oY6RFm8mvrAv6eOrjF6uD208bxGPnDm+V/g7mxy37GDG23jiuQ3A4HJx52gT0FXt55wUP2/dVouh0CKmSGmfBqNcRHxlB5zgTc68cw8k9jlxwlVLy2ML1zPzog7+FMAshELrwUmZNmDX8YtCgQTzxxL+55l9Xc8GUs9Hpghv1dsGUyfzr2psoqXOQHNV0IMt+Okab2FlcGdSxNES+CqN6to2b3JItxbx8X0MpabyoqsqlF04l0V7CR1ecgKIIPKpKcY2DDjEmv+90hBBkxUfyx7ZtwRh6+yDMpsyaV4aG34wZM4a4+Hg+nPlZ0Ns2mUx0SErgp92lAV2XYTFR1gpeGZVuN2VWO8O7tm7FEoCKOjtbC8sYOHBgo+fdfcft7Fr9KzPOG4Ti8yDQKQppseaAzU8T8jKYu3ARTeVrP2pQ/Nz8QAihE0L8IYT4yrefIIRYKITY4ntssrS7JswafiOE4PnnX+CWO+9nz569QW+/z4ABfLszMGFOtURQ1wof4y9La8ntEE90AF4jweLnPwsZOnAARmPDfb/y8kt88cEMvrh4GOYg+Fg73Cpx0ZZWzQ/RlgQ5V8YNwMaD9u8EvpVS5gLf+vYbRRNmjYAYMmQIN95wIxf84yrc7uAGd0w550wWBujPnBplwtYKk7rvq22M65sV+o7qYcmfRYw48eQGX583bx4P3Xs3c/5xLEmW4HjNqD5Pk78F3pVa/7ammhKiI3Aq8PpBhycBM3zPZwBnNNWOJswaAXP7HXcQn5DEuInnsmDR97zx9nvEpubgcrWsmsi5Z59BcZ2Notojcwu7VZVf88tYsK2Izzbk89YfO3nh1y3M3VJItTP4VUwOZ7eEUT0D8xgJFku2ljBqVP325Y0bN3Lx1Cl8dMFQuiRFB63POevzGTnihKC1F+4InfBrw5szaMVB27TDmnoWuB1vHqH9pEopCwF8j02WNtcW/zQCRqfT8fkXX/DIww/z72dfITYmlurqGqqqqklKSmy6gQZ44JEniBAK3Z/7hmiDHlVK3wZuqeKUECcEBiEwAgbhnVmEOl9GnVultM7OcbmtL8w1Nicbd+9jyJAjM+aWlZUxcfzJPDE+j+M7N/ldD4hah5uOOW1zh9Am+G+xKW2oTJ4QYn9t1JVCiFEtGY4mzBrNQqfTcf8DDxzYz87Ooqa21m9hdrvdlJdXUFZeQVlZOZ/P+oq3/vc6g+Kj2FBWw4ORRvQCDIBeCK6usnKTlPSRkoPvsd3AJYBTVTGGKEPYnLIaspJjiQvAWyRYLN1SyMB+fY7wX7bZbEyaMJ6zuidw8ZDOQe93S4Wd/id3D3q7YUnwci0fB5wuhJgAmIAYIcR7wD4hRJqUslAIkYa3gHWj+JP2syVVsscDzwE6vOlAp/v7DjXaF9HR0X7l05g7byGTzpqKW0oMQmDQKZh0Cmadjmf65yAl/F+1jZ6GQ93xrKqkvhRHeiAC2GV3kRsZGuFcVGXl5KFtk395yeZCRow96ZBjUkouOPdssqji0fGDQ9LvL7vKuervlIcjCLospbwLuAvAN2O+VUp5oRDiSbzzh+m+x1lNteXPjPlt4EXgnYOOPSmlvNc3gOvxVsm+6uCLhBA64CXgJCAfWC6EmC2l3OBHnxrtDJPJhN3uaPB1VVXZsWMXz7zwX07JSOLlAdko9cxSdtc5qHIfWpXEISUeIKGBtqOFYJvdGTJh3iHhhh5t47/84/ZSHrz+UPvy448/zh+//syG20854BYXbHaWVNK9+99kxkzIa/5NB2YKIS4HdgNNVjbwJx/zEiFE9mHH/KmSPQTY6svLjBDiI7yzbE2Yj0JEE1OOHj0GsHtvIWmRETzeu1O9ogzQMdKIW1UpcKuk672miUpVEiEESgNuAnGKwm57aNJ/2lWVEquD47u3vn3Z6nCxenshw4d7Iw2tVis3Xn8tr73xFhcO7oIxhKWtUmItFBQU/H3EOci6LKVcDCz2PS8DxgZyfSirZGcAew7azweGNtKeViX7KGPjpj+pramlvLKSnXsLWDNuADGGxj9yihB0jo5kqcvF2XrvDLhSeoW5If+tBCDfERrPjLlltaTFR5EU3fpJfZZtKyKtQyrbt2/H4XBw6YVT6Zts5IqReRSU+l+HsTl07xDHtm3b/hbCLP5mVbLre6cNekZqVbLbPwdHib3y6lv0OeZYTj5xAlPPuYAzOqU0Kcr76RsXxRrXX54WlarE2MgXJ0FVKQpRwvz5FXWc2LttvBMSLSZyE02cN3Ecp407kZtHZPHOP0eTmxbPvhpbSPsWgMfT+oVu2wxF+Le1EsHwyvgA+BpvLcCDyQcyD9rvCByxQKhxdJDXK48LLrqC5OQkjKYI1q3fhCrhhKQYTIqCGZWH1u/GoleI1Omw6BWiDTosOh0xBj0xBh0xej2xRoU+MWZW7vtrzlAnJZVuDzfpdURIuMXj4eCf7ngp2eMOTTTEdgRX5rWNfblfp2TmXH9kYElOcgwl9fh6B5Nd5bVkZf193OXCLcAxZFWygeVArhAiB9gLTAGmNmuUGmHP1Vf/ixkz3mF0yT48eH+FnWYjjso6qoB90ruIZ5cSh++5Q0qcUuLyPbql1/0NwKIIvP4WMMKoJy02kkopeaLWziY4RJjjgJoQ+DI7VZV9dXZOaAP7cmN06xBPeV1ohTkvJYYff/yRvn37hrSfsMDPqL7WJGRVsqWUbiHEtcB8vO5yb0op14fmbWi0NUOHDmVQXh65u7czrIW5GipVyeTKOtyqil5R0AtxwH0uVqfDqR5qtogFrO7gC/PCijqSos10iIsKetstoWtqLFanG4+qNiu3sz8c3ymG9WtWhaTtcCTMdDl0VbJ9+3OBuc0enUa74vLrruOTu+5gGC0TyThFEKUI1rpVBhgPFR69gMOX+WIBuxp8e+i8ilrG9skOerstxWTUY9ApVFidQcuNcTiKENjtoZ2VhxVhtvinRf5pBI3zzz+f22+6iUqTjrgWftC7GAz85nQz4LDZt0EI9teFfkcIVut1OFWJR/UwdNUu3+qyNwHPfqvzgUcpD91nv6OHr0SU7+CB50juiA+v2TLAy4vWEGsyEhvCTHdju3XgmXe/DVn7YUUYemVowqwRNGJjYzltwgQWzfuas02GFrXVQ4GN9ZgnDIgDM+bfdTrOijTSP8LA1cVVfNgvi0i9gkD4yjn5yj3xVwIxxedxvf91IQTKYa8J32snLN3MiABLXYUaVVV59MvlPD6xPwZd8M0YqqryR34FczfuZefeQq649GI2b1jP7fc+wMSJE4PeX9gQZrYMTZg1gso/r72Wq75dxGTpaVH+gY4CvnSrXFdZh0QghXcWu8utskfAKkWh0uNmXFQ0GXodkYpArwi6RgXn1r7Y4cLmURnds2NQ2gsW0+esJEInuGBg8yp170dVVVbtrWDh5iJ+21XK9vI6SmodVFjtGHUK3ZJjuXxwF/qWrcPlLuenJUuOamEWYZZnUxNmjaAycuRIag0GplXUYhL7TQJ/CfQBM8KBQ+KA6cAlJYoi0AtBjUfFjWRIlPmAs73O15JOgA6vHTrdN2uM1enYbnWQF6RAkN8q60iJjkQJ0eJac1BVlefmr+LlyYPR+zlbVlWVdYVVzF6fz+q9FWwtraO01k651Y5BUeiWHMOAtHjGHJNMz+Ro8lJijyjt9d4qPd/t3B6KtxQ+aDNmjaMZRVE4ftQoZn76GdPiIg+YETji8a8g7v2mg/eqbfSIj2ZcxyQAHvl9G5OjTCTomxahBL2OPTZnk+f5y/yyWgbnpgatvWBw58dLSY6K4My+mUe8tl+AF2wu5LddpWytclJidVNRXeu9cxGCKb3SuXxAInkpMfRMjiGliYXDaruL537ZypxtZWT1aihTyVHAwR/SMEETZo2gc8ddd/PrwoVcEWsMyJwxx+pkatc0zu/qteu+s6WQn+0OJlqangUn6hQK7MEJy65xe1i4r5Ll158SlPaCgdPt5o3F63n3wuFs2FfJgk2F/LqrjK2VDkqsbspratHpdHTr2oVjBozgn/360CuvO7169qCquprBx53If08fEFCfa/dV8c7mMl5/+x2OP/74EL2ztkcgECGw17cETZjDkN9//527br4RnaKg0+kwRETw2FNP06NHj7Yeml8MGDCAMoeTGtVATABl4d1SYj6o+na/pBhWFpUz0dL0tSmKYF+Q8mV8va+KtFgLeRnNT/ofDJxuN/PX7OHrVdv5etUuXOg4791fEYqgW9cu9O93HJf160OvvB706tmd1NSUen8Iq6qr62m9aRIjjUQY9Jx00klNn9ze0UwZGk1RXFzM3j838uCwLnhUyUeb/+STmTO597772npofiGEQK9TAvZmdkuJ6SAhH5Bg4cPCcr+uTRKwzdlyX2aHR+WlXaVcNr5fi9sKBLdbZdGG3Xz1+06W7yimoKKWshobiRYTOYnR7Kuq45Ybr+Wm666iQ4fUgO5EpJTNulNPjoqgpLyiGVe2M/a76YQRmjCHIbm5uVS7PIzv7LVxSiRvfLsQ2okwA3RM7UCBrZy4AG4RXRLMB6Wy7BVvwV9ZiNcp1LRQmKWU3LelCEOkkf+bFJoE9Afz/PxVfPjLnxRU1FFSYyXeHMGg7GTO7pPBMZmJHJOZQJzZyKTXFnPs0EH8+7EHmtWPlLJZM0LvZeElWKFBhJ1bhibMYUhWVhbFVbXY3R5Meh3DMxKZtmgJbrcbvb59/Mt69+3DD98twFVPqs4IIegRcaSfs0dKTAcJeV68hQqnC1VVm/SOSFBEi8Oyn9tVyoLSav6YfkHIvTF+31nMPTOXcvfJfRmU5RXhxHpc/T79YydLd5SwY+v3ze5LyuatbdncHgx6PXPnzsVms2Gz2bBarUgpiY+PJzExkYSEBBITE0lNTSUiovVLbwWNMPsBah/f8r8Zer2erPQObK+sIy8phkSzkYxYC2vWrOGYY45p6+H5RVJGR16stjHLfeQstsLm5MmkGEYc5pblkRLTQTPmZLORCEVho8tDr4jGhTJep2D3M02l3a2ysc7G+ho7W+sc7LI62GVzss/lJj0hmnOe/waDzlv2KsKgJ8Kgw2TQYTboMRm9j6lxkdxxWr01Of1i2hvfc8Vx3blrXJ8GzymttXPlR8t46qkniIuLa3ZfzWVXhZXi8kqef/wezBEGIk0GzBF6BIKKWjvlVXWUV1kpLCln4KBBzJ23sNXHGBQ0U4aGv+TmdmVbRS15STEADE+LZcmSJe1GmOPi47jz+B7cN7LnEa+NnvEjW2qsRwizW0LkYVU5uidEs9Rmp1c9M+yDiVcOFeY5RZUsKq2m0uWh2q1S6fJQ43Jj9XhwSIgEEhWFFCHooKrUCEGnuEguz+uI06Pi8G12j8Tu9mC3ubDXOqh2q9g9Ki/vKGJcnyz6ZwWeO3zpnwX8WVjO3GkjGz3vX5/8RveePbnisosC7uNgZAMFBpqixuEiIyWOuc9Oa/S8H1b+yf0zljarj/BAgC501WCagybMYUpuz15sXfVXroIRHWJ47YP3uOGGG9qF3S8vrxcfz/6w3tcyYswUVBxZuNXDoV4ZAMckRrNmW9NFXuN0AofqFaC3d5cyfUshx+l0xKsqmVKSBCTiTReagO+Dr/5l+tisU7ggL5Mr+zcdUVdpd9HrzRKOe3AmekXx3QWLA3fDAq9jdkP/JYfbww2je5HSSDDMrvJa5q7bw57t85scT1PExcZgczjJe+UHxnS0cNvxPcjyIweI28/sdYqioKqhyYfdaoTZd0oT5jClW888fvt53oH9M7ql8czq33jv3Xe56OKL23Bk/tG3b1/uL6m//FHHGBPL68kG55FgPiyYpG+ChQU7m57NRAmBCryzxyvKdwD9AqjAIVSJx4+ZpZSS8+asoHNyDHOuHA1CICWoUiKlRJXexVq1CXN3TmLjPoCRvmovSUktd9lLS+vArs1/8NU3C3jj7fc48YPf2HJNfdXgDsWg1+H242/orfoV/LSrrYYAwijCE/zLx/wmcBpQLKXs7Tv2JDARcALbgH9IKSvruXYnUAN4ALeUsvlGub8Zubm5fFj9V9VpvaLw3IjuTLn5JvJ69WLgwIFtOLqmycjIoKiyfmHuFGPmdbfKGaU1jNEJro/3ipQKRB0mzHnxFir9EgeBScBjfxZyIxCos5siVb+E2a1Klu0to+7pqRhDuBCbGBWB0+3BarUSGRnZ4vZSUpK57JIL6Na1C+eef4lf10QZdLj8WFBVhEBt6pco3AmzGbM/PxNvA+MPO7YQ6C2l7Av8CdzVyPWjpZT9NVEOjNzcXLaVHRoYMCgtnoeGZDHxxDGcc8bpbN68uY1G1zSxsbHYnC7s9Sz+/fOYHBZcdAJjOqewyufipkpv6k3jYTOXbrFR1Djd1Dbxxd/udOORcCXe8uyBIqRXdJvCIyWKECEVZQBFEUSbjGzavKXpkwNqV2m48OZhRBr0uOv5/9XbZru2ZAjvjNmfrZVosicp5RKg/LBjC6SU+8tILMNbSUgjiGRmZlJeZ6XWeWi1jql5may6+Hj6VGznuMEDOWHIIJ5//nkKCsKrnGJRURFxUeZDvCz2Y9ApHJMWT058FDrfN9qN98N4uJtahE4hLcrEL43kwXCqKteU1HCKotD4clrDKIDLD2FWm+cSHDC1Dhduj4rHD2EMBCEE/ipztFGHy09TRrueMR/I9erH1lRTQpiEEL8JIVYLIdYLIR70HU8QQiwUQmzxPcY31k4wfgIuA75p4DUJLBBCrBRCNLq0K4SYJoRYIYRYUVJSEoRhtW8URaFLp0y2VdQd8VqUQc8tg7vw52WjuD5Dx7I3n6dXt1x653bhysv/wTvvvMOWLVtwu0NTOdof1q9fT4/UxhPfWIx67D4hdsuGP4x9k2L4rZE8GDeU1pIoJVNbIA46/J8xt8ZN74s/bCItrQODBwfXC0cI4SsLcCR2l5t5W4q4c95qTnrrByZ+/Jtf77WZ8SthhM8rw5+taRzAGCllP6A/MF4IMQy4E/hWSpkLfOvbb5AW3Y8JIe7BO9l5v4FTjpNSFgghUoCFQohNvhn4EUgpXwVeBRg0aFC7vjEKFt26dWNLRQn9UmPrfT1Cr2NClw5M6NIB1+ierC2pZtmOFcxZ8SP/V1BOYUU1D9x3L/fcd3gB89CzevVq8hIaz142KD2eJ6Rks8NNuao26Ep6TIKFz4vqjwF8p6qOzXYnz+IV1+birzDrhEARgtHPLeD7G46sYB0Mqm1Onli0jg/enxH0thVFQaqSX/eUsWjrPn7NL2dXnYsyq4OKGiuJsRZ652YwfOQxTOuazuBeTVfKdjhd7Ty4hKD9skivb+J+NyKDb5PAJLy1UwFmAIuBOxpqp9nCLIS4BO+i4FjZgKOkrwYgUspiIcQXeM1/9QqzxpF079OXLT/O9utcg07hmA5xHNMhjn/5jq3aV8k/3ni9QWGWUvL6668TGxtLTk4OOTk5JCYmBsUdb/GCeZyTVv8Pyn76d4jD4fFwRWEF0REGOsfU76nQK97C6/WMaa/LzRtVNm4BGr0v9AOvKaPpGXekQccvF45g4IzFuN0qej9SkgbK80s206FDGqdNCL7wFxQWUllTw8QPl9GzcxoDj+nB5NwM+nTNIK9zByyRgRcacLjc7VuYCai0VJIQYsVB+6/6JpV/tSWEDlgJdAVeklL+KoRIlVIWAkgpC32T1QZpljALIcbjVfuRUkprA+dEAYqUssb3/GTgoeb093elR8885s77rNnX90uJpa6mhrlz5/L7ypXs3PonRfuKmfX1XHQ6Hdu3b+f2m25gRE4au6tt7Cyrwq2qZGWke4U6txs5XXPJzs4mMzOTjh07kpKS0mS4sqqq/Lj0F164fESj55n0Ol45bSBXzlnJI0O6Mblzh3rP6xVvodJ5qCnjsxobT1TUkQYElsyyfnR4zSn+0DXeglGnUFRjo2OQawJW2Zw8tWgdM2e+G9R291NdU0OnDgls/uKBoLXpcLZ/YQ4gV0ZpU44MUkoP0F8IEQd8IYToHehw/HGX+xDvFDxJCJEP3I/XCyMCr3kCYJmU8iohRDrwupRyApDqG9T+fj6QUs6rpwuNBjjhhBO45bp9FFu7khIZ+AdfCMG4nGTOOess/tG3E31jzbyxaA1utxudTseGDRtItZh5bFgO2bFegam0u9hdbWVnVTW7Nyzhz9++5Vubm701NvZW1lBls5OenERGWhqZWVl0zO5MZlbWAeHu2LEjbrcbk15Hqh8VnCf3zEABps35nTm7S3hzRK8jhL9DZARCCLY63dSpKk/XOtjrUZnUPZ31W4vA0/KFJz3egAp/Mel17KuxB12Yn128iYyMdE45+cSgtrsfXQgi3LzCHJpq3a2CECEJyZZSVgohFuP1atsnhEjzzZbTgOLGrm1SmKWU59dz+I0Gzi0AJviebydwd1KNg+jcuTMXXXoJD/08nxdH5zWrjbsG5XBdv050S/CaCW78du2BREjDhw9n/DnnM+q9d+mTHMut/TMZ2SmJOFMsfVPqN0PY3R4Kau1eoa7Zxd7fNrN+iYcFNjcFNTbyK2sor7OSmxjj9xjP7JlBvw6xnP/Zcrp/+jPZFjOj0+IZ1zGJOKMBl6oSa9RzVVkNbuCyYzpzy7CuvLt6N5u27mvW3+Vw/PXK2E+UQU9RtRVvPGFwqLQ6efq7dXzxWf0Rk8FAEUqzQ7Qb4mgwZQQrJFsIkQy4fKJsBk4EngBmA5cA032PsxprR4v8C3Puf+gR+vf6jLfW7uYffToFfH36QWG/UkpiI03s2LGDrl27kpSUxLMvvMj0J5/i7bff5sYH7+WPC5Iabc+k19E5LorOcQ3PFP8sr2H4Oz/gVlX0fvp+do63sPSyUawoKGfxrlLmbt3Hm3/uxeWbDXdNjGZq70wu7pdFrK8Ct1P1tGjB72B0BCbMFqOeklpH0ycGwDOLN9KpUyYnjR2N3W5n9lfzmLfwO+645Tq6d8sNSh86nQ412MLc3mfMEEy3kjRghs/OrAAzpZRfCSF+AWYKIS4HdgPnNNaIJsxhTlxcHIt++JFRxw0nyqDj3B4ZzW5LCMFtg7sycdzJfDp7Dj179uS9d9/ljVdeYuwpE9hVVkmx1dEss8nBdEuIJtKoZ11xNf07xPl9nU4RDO2YyNCOidxxXPcmz3d5ZFCFORBTRpzJSFG1LSh9Syn5aVsxTy1aS8f0DDqkZFFWW0eiQY+QEpvNxofvvBaUvkIRDKJKiVKPv3q7wU8fZX+QUq6hnmUPKWUZMNbfdjRhbgd07dqV+d8t5sSRJ6ATMLl788X5hoE5JJr2MOq44XRITSXSUce/eqezZPb7mPQ6tlXUtliYAdItZn7eXRqQMAeKR6rs8nh4S1FIVlVOABr3A2kYr43Zf8VKMDdfmCusDj7+fSffrM9nw95K9lVbEUC/yAiG2KroExdBr7RoYnQKMyvq+HzlH83qpz50Ol3QTRlHBe0tV4ZGeNCrVy/mLvyWyRNPY/6eCqYf140Es7FZbV3YK5OBHeLYXWXl5JyeCCE4u0cGz47qiRKkmcPUvAyeXraFfw7sjDFEhS6vH9oVq8vD9vJaPtxeQpKUDGtmW3oCM2UkmY2U1NqbPE9VVb7fUsSsNXv4ZXsJu0trqHK6yIwwMjgqgmmRBvolJpNh0NXrptjLZOClvcGL6lQUEXRTxlFBmEXIaMLcjhgwYABrNm3m7ttvY+gHH/CfEd05PTetWW31TIymZ2L0IceCJcoANwzqykt/7OTV33dw7eAuQWv3YJIiTTx1snd9ucP0WaR6mi84OsARgCkj2WxgTdWR6UjXFlTwye87WbJ1HzuKayits2NWBH2iTIwy6enbIYY8kwGznzO03AgDNU4npaVlQck0p9PptRnz4WiJ8jVaisVi4fmXX+HcqRdw+UUX8Nn2Ep46oTvJQTA/BJv/jOrF5d/8jpRw3ZDQiDN4Z6V1HpXAU9b/RSCmjHK7k8JaG+uLKjnrte/ZW1FHflkttU43HinpGWlioEnPuXFmeqfFkNQC+6tREXQyGfnsizlc+c9Lm93OfhRFaMJ8BFqifI0gcfzxx7Nqwybu/797GPbG6zw0vAvn52UGddbbUibmpjErchhnf/kb2yvreGRUHlHG0HzkUswRPOdwcaeqNmtBsL6Q7Eq7k+92l/JzfhlrS6opqLZTbndg86ik6BQy9TqUrcUMQvKHzcmHOUn0iDAEvZBBf7ORBd9+HxRhFopo55ngQkQYfW9AE+Z2jdls5t//eZpzz5/KNf+8gtc3ruDfx3VlcFpLA5SDx/CMRH66YARnfPEbH63dzVMn9WVqn8ygipeiKKy+9mSynvqKvUCgToU2oADYVFLF+JlL2Vtto9zmwOpRSdIpdDbo6S5gvE4hx2KioyLQHzb+TxxuKt0qwtSy97XF7uLhfdWMjDLSzWQgN8JAH6OOj/5Y3aJ296MPweJfu5+BC6Et/mkEn0GDBvHLyt959513uOD2WzmpYwIvjO4RNrPnnLgoVv9jNB+s38Mdi9bx+h87eWlCf3omRQdNoC1GPVEGHTXOhjPqWYHVwAZgJ1Ch01GjqlilRAWiHU66VNRyoiLIiYogU6dg8HN86Xod62xOhvsR7djo+9AJVlkdlMcl4K6xUrG3EpeqEmVqeqHRHxRFCfrin9XmJDIyLqhttjph8l3ZjybMRwmKonDJpZdy1uTJpKWm8MixXYg3Nc9rI1RM7ZXJWd3TuGzuH5zw1mJMOoWhmUmMykpkcHoCFXYnG0qq2VJhZUxWEuf06hjQj4vZoKfW6aYWWAOsB3YBlT4BtklJghBkKQq9PB6yPB46AkbgRuB/0ZFkNDMpUbJOId/V8tzJaQY916bE8EldLfn5W9Dr9axbt4HS8vKmL/YDr7tcUJo6QI3VTkxCXHAbbW00YdYIJdHR0Qi86SnDEZNezwenD/YmOsov4/PNBXywNp+nf9lKhF5HamQE6ZYIbl24li83F/HOGQMxNOBuV1RrZ9G2ffySX8764ipK6+w8hzcPbYIQZCsKfT0eOnk8ZOINyTJICYclf/8S6KjXN1uUAcyALUiKd3lCFN/uLufs8y7hy8/ep3fv5oXj14c3wCS4ylxjdZKU7X8IftjRHmv+abQ/PKqKLszcfw5HURRGdkpmZKf6fSnKbU6GvPsDtyxYw5CMeNbuq+bPsmr2VNkprbVT5XDhkpJ4RSFVCFI8HtLxZoaZDuTUI8ANUaYodPC74FL9mIGyIFWK1gnBf9JimTxvAV/M+pozJ50alHYBdErwbcw1Nic50dFNnxi2BC/yL1howhwmSCkpLCxk27ZtB7ay0mKsdbVcfOnljBkzJoDWBNct3kynSB3pURFkWMykR5tIt5hIjowIG9tzYySYjcyZPIyhb3/PjN93kKPTkSAlWapKfyAJb5SfcpDvsR34DHgTeDiAvmqFwNLCHzITElsQqyt1NOq5PTWWyy6dxthdG4mJCc6MNBQ25hqrk+h2Lcy0P2FuYZXs8cBzeL2RXpdSTg/e0Ns/27dv59X//ZdlS39izbr16BSF3Ow0OndMonN6PD3jLWyqLOLlF58LSJi/W7yYTZs2sWfPHjbt3M63u3eRv3kve4uKqK61khYfQ3pMJJd3T2VKz+aHd4eanonRDEiNJ6K4kpP8mP2agERFwRNgiak6oGMLv5cRgDPIgndWrJlFtQ7GT5jM0p8WBqXNUOTKqK5zBO2Ho81ob8KMt0r2i8A7Bx1bCNwlpXQLIZ7Am5/5kDIpvuxKLwEnAfnAciHEbCnlhmAMvL2iqirz5s3jpRee5bfflnPJpOHcffGx9Mk9h9SkIzM9FBRX0O/sh/F4PH7n0h02bBjDhtUfnGy32ykoKOCLL77gkzdeCmthBrhzeC4XffkbY/GvQKVNCKxAJRDnZx91QGwLv5geKYNu1xdC8EiHGE5ftZoXX3mda6++osVt6nQ6mqPM5VW1rN6ylw3bCvlzdzG7CssoKquhqs7OvrJqptQeGQXZvmhnwiylXCKEyD7s2IKDdpcBZ9dz6RBgqy8vM0KIj/DWvfpbCnN5eTlvvvkmr7z0AvEWI1efewIzHz4LcxOeE+kp8aQmxrJq1SoGDhzY4nGYTCY6d+7MqaeeyitPhv8NzNisFNxANf4JbW+Phx8VhctVlQydjuf9mGlbpSS6haLqAMo8Hj4pr8ODxIO3orYHUJGoEtxSHjgmkbglOH3HXVLikuCSEjfe527pPSdawC233sVZk04lPb15Ifj7OTxXhtPpZsOOQtZuLWDzzn1s31vC3pIqKqpt1Fjt1Nkc1NkcuN0eEmKjSEuOo2NqAtnpyRx/TC7pKfH899OfDuT4breEly4HxcZ8GfBxPcczgD0H7ecDQxtqxFdFexpAp06B5x0OV9atW8fT/3mSL774glNH9OO9Ry9iSJ+cgPx3xwzpzqJFi4IizPvp3Lkz+eVVOD1qyJIMBYPnVmwlXlGI89M8kQvkqio24EmPBysQ2cQ1dimJbaGNeacq2eH08JlHogiBgkAR3vwj3s37XKeIAwVdFQFGRcGgKBh0gihFwagIjDoFgyJ8r3nP+XJbEfc//ASvvfJsi8Yp8N61pY+7kzqbA6vdiSXSRGpCDB1T4+mUnsjYoemkJ8eRkeLd0pPjSIyLavAzu3z9LgoKgpdoqdU52gJMmqiSXd9/scF7qKOtSvaePXu45647mD9/HjdcMIaNsx4iJYCqHgczdmh3Xpn1DXfc0WBR3YAxGo10TE1mZ5X1QHWTcOStNbsYFKDNGLxeEhYh2CAljRZow7toGNfCGbNUJdf178wjx/ZoUTsNkRsXxb1ffQ0tFGa9Xk+N1cG8V24kPTmOtKRYDIaW5YnISI5hz+5dLWqjzWmHNuZ68aNKdj6QedB+R7yRr0c1tbW1TJ/+GK+8/DJXnTOCP796mOgoc9MXNsLIQd25+O43sdvtmEzBqxSR27UrWytqw1aYd1TWUVBjY0ozr09UFP70eJoUZkcQZszRQlDuaDjqsKVMyEnlmu/Xsmr1Wvr369PsdvQGA5bICIb17Ry0sXVMTeCNN+aQlJxCp06dsFqtZGZmMmDAADp0qL/AbvhxFAizP1WygeVArhAiB9gLTAGmNmuU7YT58+dzxWWXMmJgF1Z+fA+d0oJTDy4uJpJeuZn88ssvjB49OihtAnTp0ZOtG38MWnvB5uZv15Kr02H20x/5cJKlxJ95nBOIb6EwxyjerHOhwqzXcVqXNO5/aDqzPqvvBtU/lBAkMZo4si8Op5t1m39gzU81RJoMvPrnXmweHavWrMNgMAS3w1AQXrocuirZPo+Na4H5eN3l3pRSrg/R+2hT6urquO3WW5gz63Nef+AiTjq2V9D7GDM4l0WLFgZFmO12O489/DAfffA+b5wUcGX1VuHxpZtYsrOYf7agjURVZZOiQCOmEDfexbiEFvQDEC8EBQ5XC1tpnHO6dOCmX39rURuhiPyLMkdwyenDDzkmpWT8tS/z4osvcNNNNwe1v5DQ3kwZza2S7dufC8xt9ujaAcuWLePiC6cyJC+DVZ/cS3xscMvZ72fssJ7c88o8Hn30Mb/Ot9vtlJSUUFJSQnFxMZmZmfTq1QspJYP796ODp46fzxtOx5iWmVlCwYy1u3jylz+5iJbVoE7A683RGFbAgFewWkKColDpx4xZVVWcqkqtS8XmdmN1e4jU68iMbmqJErrGRVFTW9eicep1+hbGOPqHEILnbp3MiCse5vzzp4a3SUPQ/oRZo36cTicPPnA/b7z+Ks/feR5nn9yUJbMlfbnRKYLfV6/l/fffx+VyUVVVRWVlJZUV5VRVllNaXOwV4ZISSsoqsDscJMfHkpIQw4Zte7jmmmt5+plnEEJw0aWX8saz/8GgC68PI8DsLQXcuGA1Z+NdlGgJCYC1iYXDOvA7g1xjxAjYU2Oly9vf4pESVZXeR9/mUX2uclJ6c5koAr0i0CsKTo+KxagnKyaS87qmcWWfrHp/KDpGm6h1OnE6nRiNzUtQFYoZc0P0yOnAP04fxu233sw7733QKn02DwHiKPLK+Luybt06LrrgfDISjPw+8//oUE9gSCCUVdSwZsteflu7nW2797GrsJx9pdVUVluprrNRa7UTHWmiW2YyH/3vSeIsZmIjjcRFGUiPMtEj2URybgeS47qSEh9FcqyFWIsJIQSf/bCWO99czIMPPXSgv9vvvAu73c7EV1/m6zMGtkr1E4fbw7KCCnolRZPUQH/vrd/NdfNWcTrQLQh9xuH1L27MZS5YwhwnoM7lYdGFI7yubjoFo05Bryh/ub/pvK5xh+cxcasqfxRV8v2uUl5evZMnVm7jxMwkHhzenQzLX3c0ETodAoHVam22MOv0rVuM9f+uOIVBFzzBzJkzOffcc1ut34DRZsztF4/Hw9NP/4d/T3+cx244g8vOPL5B305VVSkqrWL91gI27Shk255idhWUsa+smspaO3VWB1af877H4yE+1oLb48GgCC4aN5CcYd3JSUsgJy2erNR4TBGBL6AUldVw7XNzmP31vCNyGdx7/wPYbTZOf/9tvp40sNmFXRtje2UdC3cUs6iwhp92FmGxWJjSOZGHj+9+xLnP/LaFh3/cyJl4Z7qr8Joh9L7N4HsUeMXW6XssVhSsqooRb/rOCLyh2fufG4A5QD+8Qh3vO76fYAlzpKIQbdTTNyXwH2m9ojA4PYHB6QncNiyXxbtKeW7FNvq//wMpUSZOzEjk4eN6EGM0oAhwOptvyw7F4l9jREeZ+OCxSzn1X1cxaNAgOncOnjdIUAkvXdaE2V++++47rr3mav7cspWRg7rx8Te/8fpnP2KzO7E6XDicbpxOFw6nC6fTjd3pwqDXER9roUNyHBmpiWRldGDYwF6kpSSQlhxPWko86SnxxMdavOG3L37Cgu9+5d9XByeb2LaCMrI6dWLo0CPjeoQQPDr9CRwOB2d8/jFzJh1DbDPE/3C2V9bx0urdLNpTjtUjGTduPJdeOYn3TjyR7du3c8HEU3j4+EOvOe/L3/h6WxEAsw0G0pKT6T9gAEP79MFeV0ddbS11tbVYa2tRVZX4+Hhifdujjz3Gtf1y8AA1TjfVLg81Tjc2t4cKl4csl4slbpV5Lu8xh0dFEQKDIjAoCgKJ261yU42NQXqFkyMMJDfD3hyF8LtmYGMIIRidnczo7GSqHS4W7Sjmld93kPv2d/RMjMGtSpyu5guzTtHRSDhBSBiYl8Xdl53MlHMn89PSX5s92w8pQZoxCyEy8aav6ACowKtSyueEEAl4A/Gy8dZpOFdKWdFQO5ow+0FhYSFnnnE6Bp3CaWMGkxQfTVJ8NAmxFmJjooiLiSIu2vcYE0lcdBSx0ZEYjYEJXYzFjK2RChyBkpkSy97CwgZfF0Lw1DPPcp3DzplzZjPr9GOIbmFNvkU7i1mri+ez+Z/Qt2/fQ+4o4uPjqVNhc1kNcSYDc7YW8eWuSjZUOLjkkkuYNm0affv2xWLx3696zqefcHbXZPon+zdTlVJic6vUutzUutw8vnwLs7cV0ctiZondyVuVViJ1OpJ1gu7AaKOegXqlycXBKAVczQiEaYyYCANn9cjgrB4Z7K6ycvOitZjKdDjsjma3GYpE+f5w3fmj+W7FVu668w7+8/QzrT+AJgnalNkN3CKl/F0IEQ2sFEIsBC4FvpVSThdC3AncyWH5hQ5GE+YmqK2t5bQJ44mzRJDVMZXPX749ZH1ZoszYg1AFYz/piTFIj5u5c+cyYcKEes8RQvD8S69w5eUOzv5qId+cObBFaUG7xEVhtKr069ev3r4mnj6JMz//hCqHm1PGj+P6Jy5i/PjxmM3N8w7pmZfH5oodfguzEIJIg45Ig44UIkiOjGCIxcxNiVFAFC4p+dPhZrXdxQqnh0fq7NhUSaJBT4ZU6atXMErJHhWKVEm1QU+dENhUFX0Qc2AvLyhnZ6UVq8tNnctDnctDj0QLi3YUMeaUSSQnJSF8od3g8yrZvy8EQgiEUPDuChRFQQiBx+PB7fYw+oqncHtUVI/ErUoyU+N479HLMIWo6o0Qgjfum8qgC55g1OgxTJw4MST9NIsghmRLKQuBQt/zGiHERrzpKSbhdTsGmAEsRhPm5uF2uznvnMn0z4mj38k9efur5SHtL8YSiSOIwqzX65j5wPlMunAqewuKGowaVBSFhx+fTm7nj3F6VEz65ofodo23sPXHhguH3nXvfZw66QxOPPHEoEQx5vUfwOY5zc+LpeC939yPQQh6mQz0Mhl80VDRFLs9rLG7WOXw8FFVHTGREQzpmMQJsWY6xZjpGGMmI9pMdlzwXCWnfrWKYwYPISk5mShLNFHRMcRFR9PL8Tm7d2zjhqmjkXi9P6SUSAmqVL2PB455PUKkz0tE9T0O7zkRo0GPQa/DoNeh1+uY/d3vZI6/i8Q4C4oQCEX4hN/7+TDoFQw6HUaDjgijHo/Hg6pK6uwubHYXdqd3czjd5HVO4/vXbzniPSXGWXj/0UuZfPmlrFi5iszMzHreeRvh/29qkhBixUH7r/rSSRzZpDf52wDgVyDVJ9pIKQuFECmNdaIJcwMUFxdz8YVTEfYyXn5oGp8sWkmdLTgFMQ9HVVV2F5SyfXcRTldww3qP7Z2N0+di1ZgQfvD++0zqntEiUQboGG2mtLISq9VKZOSRvhCdOnUKapKqXr1789ZHzbe5CiGQTdhcU/Q6TrToONECG51uTu2XzV3HhyYnxn5UCf97awbp6emHHO/Zsyfvvvofbrz0lKD2d9Olp7Dg57VUVNXhUVWvu5/v0e3x4HC4sDtc2BxOrDYnT77xFTdeeCKZqfHERJuJi44kzueLPfHaF6iutRJjOfL/f2z/Ltw0dRRTzp3M4iU/h09UoP93iaVSyiZ9Y4UQFrx1G26UUlYHWnRYE+Z6+Pbbb7n4wqlcctpgHrhyGnq9joSYSGwhCrm9+bG3ee2jhSTFRzOib3bQ21dV2WQu57df+x/T+6a2uC+dIshKjGPr1q307du3xe01RV5eHpvLa5p9vSIOnTE3hQfQt0I2PiGo161t4MCB3LR+ewj6E4w73r//V3FZFc/M+IanbjmnXq+knl3S+c87i3jwX6fXe/2tF5/ED7//j3vuvot/P/lUi8YdPIJnhhJCGPCK8vtSys99h/cJIdJ8s+U0vFXQGkQT5oNwu93cf9+9vP3ma7z1wEWcOKzngdcS4yw4HKER5gijnhF9s/jmqZYEIDeMx+M5YvGqsLCQpUuXsvTnn1iy+Dt27tnNCac2fxa4r87OzE0FfLC1BBu6oCZbaoyuXbuSX1mN3e1p1mxfEYG5j6lSBtWW3BACUa8w5+TkYDSaWPrHnxw7IBje3oHjdHkDnhqaBf5z8vHc/O+ZvPLJD+h1OvR6BaNBz8nDe/LUTecQaTYy48GLGHjBdEaOGs2ppwavpmGzCZ5XhsAbGb1RSvn0QS/NBi7BW5LyEmBWY+1owuxjz549TJ1yDmZhY8X7d5J6WIrOxNgo7C3wH22MtOR4vq8OjZkEvGLyxx9/sGLFCpb9vISlS3+hpraGYb07M7xHGo9fPIwp92/lm+37OLWL/6GzNpeHr7cV8cHWUn7bW8qk00/n+funMWLEiBaHOPuLwWAgp2MGW6vq6N2MtKp6ReAOQJlVCa0RMNnQjFkIwa2338H012cw+6W2Eeb0lHhcbg9Olxuj4UgJmTZ5BCcNy/Ml2XditTvZV1bNCx9+R9qJtzKodxciIiJASq66chp78ve2wbs4CBHUYqzHARcBa4UQq3zH7sYryDOFEJcDu4FzGmtEE2Zg1qxZTLviMm66YDS3XnxivaKSEBuFPURJalIS46ixhy4BTpwlkmmXTGF4XiZje2Zw78SpdMtMPmTGM+XEAby88s8mhVlKyS97y/ngz33M2lLAwGOO4ZL/e4TPzzyTqKjQ5Alpip49e7K5oqBZwtw1NoqPAlhw9SAxtEZhAVH/jBngsssu55GHH2LN5t307d76RSUURcFkNFBeVVdv1KsQgs4dj6x+fv4pQ7j7+c/ZVGpk2pVXEh8fT0ZGmJQ2C5IwSyl/omG7yFh/2/lbC7PD4eC2W29h9hef8vlTVzC8X5cGz421mHG7PVitdiIjg3ubnpoUS10z7Ndut5uZ369h7rJNvH772Zgi6nd1KvziniYrppw3ph8fLvy9wdd3VNbxwca9fLSlGHNMLBdfMY1HLrooLL5Yef0HsGn+1mZdOygljpIAFlxVCfpWCN/dX2mkPkwmEzfedDP3v/g5nz9/XUDVcIJFhNFARbU14HQE8dGRpEckN+i+2WaEWUh2eGXuaEW2bNnC8KGD2LPxV1Z+cEejogw+/1ezkR35jdrsm0VqUhxWP4V5z74Kbn1pDn0ufYb40x7krtcX8OO63Vz7bMMmK3++uMN7dQIhmOeLwAOotLt4a80uTv7id8Z8toLafqP55JsFrNuyjTvuvDMsRBmgV+8+bLE2z5slJ8aMS0pmVlr5oc7OOruTQpcbZwOi6EFiaAUzjWhkxgxw7bXXUVDu5KGXvgz5WOpFgMsduGvn2ScP4uOPPsLpDF3u6max35zR1NZK+JOP+U28lUqKpZS9fcfOAR4AegJDpJQrGrh2J1CDdzHb7Y+bSWvw6aefcvWV/+SBKydw1Tkj/J5xxEVHsiO/mF7dgnv72CEpDlsD0VyqqjJn6QZen/Mbq7bvo7SihqH9unLl+Scy/oR+dM1K5aeVmzn1yqd4+pqJxFiaN5tXFIXzxvTnhT+2IITgw60lLNxexNjRo7jjmYc45ZRTwse16TDy8vLYVNG8Ks37AzPecbpRXIJapxuby43DrfoSD+kw6Lzh2wZFwSrg4WVbeHH1bnQC9AJ0QmAQXh9oo04hQqdgMihEKDpMBgWzXodJr2DS64g06L0BLnodkUY9kXodUUYdFoP+wGO0UQ8+/+OGiIyM5Ku58xg+bAiZaQlcNnlkc/98AZNfVEad1U737MC9eHIykpCqSk1NDYmJwSkkERTCbMbsjynjbeBFvPHf+1kHnAX8z4/rR0spSwMfWvBxu93cdecdfPrx+8x94V8MzMsK6Pr42Ch2F5QEfVwJcRacLjfVtXZiLCaKK2p56fOfmb10EzsKy4gwGpg0dhBXXjyBMUPziDQfmp3t+IHdGdSnM9Oe+oyPHrig2eMYP7Qb7y9Yyb932Lj4ypv53/nnk5DQ0hTyoadbt27sLKvE5VEDtv9W+xZ0t9wy4RA3OFWV1LncVDvc1Dhc1Pgez3x/KZed1J9e2Sk4nB5cbg8Ol9u3ebC73Ngc3uc2p5tqp4sSp/e43erA6bJ6z3W6cfoW0JxuDy63isvtweVRcXs8SAllZWWNJv1JTU3lm3kLGDnieNJT4hh/wpHRlqFg4dJ1ZKcnExFgyoH9mCKM2Gy2II+qJQjCLYuRP4nyl/giWA4+thH8u0UOF/bt28eUc8/GqNbw27u3kxgXeJ27pLhoCoobzDvSbMorazFFGDnznrfZVlTJvrJq+vXI4oIzTmDCiP707JLe5N/6ydvOZ9RFj1BaWUtSM94bwMeL13P1tTcw/YknmnV9W2EymeiYmsr2aivd4wN77yv3VZEYFXGEb7KiCKIjDERHGPCWdvUSZTJy4dh+9OuSFoyhN8jpD35Cfn4+gwcPbvS87t2789nnX3LGpNNY8Ppt9OsR2GSjOZiMBlTZvLwgG7YVYHM4cDian+8j6PwNE+VLYIEQQgL/ayh0EUAIMQ2YBgQ1Mgzgl19+4dyzz+LS0wZz37QL0DVzVT0lPprCAIVZVVU2b9/LirXbWPfnbv7cWcDeonIqa+qoqbVRU2fD5XKTlBBDRmYa/7r0NE4c3otYPypaHMwxedmMHtaLf0z/hDnT/xHQtQDf/76VhSu2su2TbwO+NhzI69mDTRVlAQvzqpIqsgK4RkqJrhVszL0z41mzZg1nnnlmk+ced9xxvPDiK0y65gZ+/uD/yEgN7V2OJdKEvZnJth55Yz7XXncjXbo0vqbTuggQLYt4DTahFubjpJQFvrjwhUKITVLKJfWd6BPtVwEGDRoUlPxXUkpefvllHrz//3jt3qlMHNmyW73kBAs7CqsO7LvdbkoraigqqaS0opqKqjoqq2vR6XVs3LqXVRt38/OKdegUQXpqAtkZyXTtlMoJA7qSmZZIVnoSndISSUmMCYrf753/PI0zrgk8c9f3v29lysMf8/Ennx+Rt7m9kJLZide/+YMqh4u8BAu9E6Mx6b0f7x1VdZzy9UoQ+yuHKCh4bcPVDic9kv1/z1K2TuRf7+xkZq1a6ff5U6ZMYceO7Uy8+lm+e/sO4mJC57oYbTHjbKYwe1RJnz7Nr/IdMv5OM2ZfDUCklMVCiC+AIUC9whxsrFYrV027gtUrfuGnN2+ha6dGc4YcQnllLT+v2sbKTbvZsHUvu4oqKa+uo6KqDofTRWSvKd4sXR4Vo0GPOcKA2RSBwaBjT2EZo0edwIknjefGSZfz3emn417/TquYffrkZlJZY8XpdGP0I33nxp37eOS9H/juj+18/MnnjBkzJuRjDDbLli3jiUcf5scff6RfViIvby2kqLKWaqsTs1FPVIQBl9vD6L7Z3HTaQGxON3affdflUVm6aS/zVvof4qxK2ew7rkDok5PKo599E9A1d955F0VFhYz751PMf+3WkIlzdGRE0HO6tDl/l9JSQogoQPGlvosCTgYeauKyoLBt2zbOOuN0+mTH8fNbtxAZYHWO9JNuJzkhhs6ZKXTPSWdI/+7kZKaQ0zGZ5PhooswRmCIMmCIMh8x0n37rGxat2sc38xcihMDlcqHT6VrNFm+JMhEXHcnP63Yy+piuDZ63s7CcB2Z8z/zlW7jpllt57fPrAsqBHA4sWbKEe++6nV3bt3HzhH688+JlRB2UstLtUSmqrGNveQ2FFXWM7tWJ2KgjS1plJ8fy8c+b/O5XSom+FUwZ3TsmsXN3Pna73e/wdiEEzz77PDfeeD3j/vkU8169NSTFgQ16PWpbJHUOKe1sxiyE+BBvHtEkIUQ+cD9QDrwAJANfCyFWSSnHCSHSgdellBOAVOALnyjpgQ+klPNC8zb+Ys6cOVx+2SXcd8V4rj53ZMCi6HS6cbs97Fn8fMB9P/3OfBYsWnygT28eXMHPv//Jcce0Tvhszy4ZLP5jW73C/OeeEl74fBkffbeaa6+7ni0fLSAmJvBouXDg0Qfu5YQ0hQXXXYyhnhwZep1Cx8RoOiY2bqbo2iGOKqsDVVX9Mid5Z8yh/xIbDXq6dExl48aNDBgwwO/r9ovzrbfczPEXPMKsl26ga1YYV6gOC1rXR9kf/PHKOL+Bl76o59wCYILv+Xa8pdZaBY/HwwP338fbb77G50/+k2P7N39xwWwy8uOKzZww6MjadI1RWV1LTk7OgX29Xs8777zLOddfQ8EPzzV7PIHQr0cWKzfvOrDvdnuYs3Qjr8xZwdrtRVx2+RVsfOVTUlL8N+2EI7k98oiv21SvKAdCQrQZnU5hS1kt3ZOb/pGSklZZ/APonZ3CunXrAhJm8Irzf55+hq65uZxw4f+x9MN7yenYvv/fIUUQdot/4WVYaSZlZWWceso4flzwJb+9e3uLRNlo1HPNlNFcdk+DDiT1oqoqdvuROY/PO+886qx2Kqvrmj2mQOidm8H2ogpm/bSea56dTeepT/HM1xv5x/V3szu/gMenP9HuRRkgr3cfNhU1P93nwWQlx/DjTv9c7VUpW2XxD6B3ZhxrVq9q9vVXX/0vJpx6GvOWNFy4QMNHe4v8C3dWrVrFmZMmEmsW3HLxScz9aS3H9utC9+zm375dc+4onv/guwZfX752O8tWbcFoNGA06Ikw6imrqKFb185H5D12uVzExcWyq6A0pCvl+8nrksG+8hpeXridcadOYsEj/yMvLy/k/bY2PXv25MP/VgalrR4dk/hjbwXqQBW7W8Xqi/yzu1VvAVe3B5vLW8hVVVV0rZD2E6B3Tir/+/GPFrVx7HEn8MPX73P11CANqoWUVtTiakEx2dDQDgNMwp2FCxeQ1SmTqKgo5qwsY9uOXazbWsh/bjm72W0mxllwudxIKeu1UT/zzkIqnCY6dcrE5azDYfc6zN9626ElvNxuN+efdw4De2bSq2vHZo8nEHp0TkNFYcF3P7SrAKBA6dmzJxt3Bydvic3u5I3VO3h9xXYU37qAThHoFMW76bwudjqdgsPlweMJbtHVhuiT3YF1/22ZX/nIkSN55MF7G/wstwbVtVaenLGAd2f/wp59FVxwRThF/fn4u3hltBa33XY7t932V4HUJ554grJNi1vUptGgIAGXy1Ov25nV4eLqa27hjDPOaLSd0tJS5s6bz8pPH2oVFyuAKHMEdocDl8sVnmXig0RqaipuVVJSZSU5NrBgnMPR6xSunjiU568+pVHxcrrcmCc+zPUvfU1FrZWSKhsIgc3pDbE+EJrtdHPN6UN44p/jm+zb5nDhdHtdL12+x/2b0+2hpKyciooK4uPjm/XecnNzcbpVtu3e12qLgNW1Vr75aT3f/baJH1f+yc6CMnplJXPvOccy44dNZGWFPjoxYMJsEtPuhflgpJQs/3UZAzKan5bT6XQzcOpjHJOXjV5fv5hWVtcRG9t0usMOHTrw0EMPMfDs+3C53MRGR/Lrxw/QOTN0Nt7Vm3aT16PbUS3Kqqry0ksvIpA4m5Hh7HBioyKoqnM0OaNUFMHlpwwCCYv+2Ead3cUzN55BfHQkcRaT79HM9Pe+48/8sib73VFYQY/LnyPSbEKv02EwGHwVP3To9Xr0Oj09u3fDZrM1W5iFEFx11dWced0LPHX7eZw4vHdQJwlut5sFv2zgy+9WsWFbAbsKyiipqCEtMZr+nTtw7fj+nDGsO+k+75h3lvzpTZIfdmjCHDJmz57NokULee3rRxs9b8bspbw9eymqyoGCk/srCBeUVJLTMYVvXr2tQfepopJKvzOt7Z/Rf/TRR9x+y/WkJITWPW3l+h0MGjwkpH20NY8/9iifv/MqPz10HhlNuMP5Q3yUiZ0VTd9e63U6Xr1hIgD5JZX07pbJ1Wced8R5ybFRFBeXN9leWY2Vvnk9WLl6XeCDDoD7H3iQzl26cu8zT3Hl/W9z3ilDGNgrm349OpGWHIdep0OnUzDodYd85qWU1NTZWL5mO8vXbefPnUWUV9ZQUFyJw+Gk04m3UVpVS1yUiWE9MxnfuyODzxrCcT0zsTQQO+BW1fDLUigEQgkvr4yjSpjHjRvH8OHDmfboB0w781gMeh19u3U8UL13Px988xtVdQ7OOmmwz4aooNd5H80mIxdPOr7BpPMAd087lannn8evv60gLc2/ZDYxMdFkdsomfeT1DMjrzFO3ncvgPg1nDmsuKzbs4dhxU4LebriwYsUKnnv6Pyx/bAqZScH5kUu0mFidH1gOFINewdHAbD3KbOCn9XvoeulzeNcJBYrirePnXdwXCMDp9qA3tU5gz0UXXcRFF13E6tWr+fLLL5n5wwrufm4WJaVleFQVt9uNoij06JJJpCmCPYWllJRXAqC63fTvkkbnDvFkRpvp1zuDi47NpUfHRPrlpJIS5/+ittujoteHo+xoM+aQYTKZ+GLWHK6/7hoe/2A5NpuNfUUFzHrmSnp1+asM/KnH9+G1L5fyf1ef0ax+Lp50PN/9uonPP/+ca665xq9rJkw4lQkTTqWoqIjc3K4hc7lasW4H198TFmmvQ8LjDz/A/ZMHB02UARKjzVRbA6u5aNDrcDZQkurqs47jmO6ZvrswFY8q8XhUJBzYV1XJlj0lfPNH69a769evH/361R9eYLVa2bBhA1arlaysLJKTk1m3bh3X/mMKy6YHx62jsRzTbYfQFv9Cjclk4tXX3jiw/847Mxh75U28/+gljB3qrXo95ZTB3PbMp9jsTsym5tlih/bN5o/f660P0Cgvv/wSk8YMZEBedrP6bYxtu/dRXF4dnkligoTq8ZAawAzNH1JiI6mxBpaG0qjX4XTXny8iJT6aicf3arKNlZv2MH91YUD9hpLIyEgGDTr0R91isVBrC161EYvJSG1t84oahJbwmjGH189ECLj44kt46JHH+M/7Pxw4lpIQQ1ZGMrc/9VGz201NjKW0ODB3rcLCQl568QUevq7pVI7N4e0vfuKCCy4MPxteEImIiMARQPFUf3CrapvM5ExGA/YGKteECxaLhZoA7yYaIzrSSHV1ddDaCxphFmBy1AszwAknnMCO/EMrj3zz4rXM+HIJi3/b2Kw2k+NjKCkNTJjvv+9eJo0ZQKf04JfUsTuczJj1M5ddfkXQ2w4njBERQfHEOJgPftzIsb0Cc+HyqGqLkxmZjPqwF+Z335lB76zgeRHFR0VQWhoWBY0ORSj+ba3E30KYTSYTFdW1rN6858DMqEtmCpPHDuCpN+cG3J6Ukve/+gUpA/sFTUlJZv7SjXQ++TauuPdNPvz6F/aVVjV9oR88+cY3DB4y9Kg2YwBUVVYSGxlcd6t5q3awYnM+0z9awuc/baCs2trkNS632uI8HRCuNlcva9as4dmnn+KVK8cGrc3huSl8v3B+0NoLDkIT5rYgOzubS/9xOZPvmEHX0x/g5v98yuIVmxkxsBvb9+wLuL3Siho+/PoXZs35OqDrHnn0cfL3FjJ/0WIGjDyTT37YSc/T7mLA5Pu59d8f8s2S1dTWBX7buH1PMc+/v5Bnn38x4GvbG1u3bWsyY1ygfHjjaQztksqsnzcy7dnZ3P/u901e41HVBv3c/cXmdBEZaW76xDbA6XRy8QVTmH7RCDolN+2z7y8TBnZl3oIFeDzBvetpEYKgCbMQ4k0hRLEQYt1BxxKEEAuFEFt8j006pYe6SvZ44DlAhzcd6PQm31kI0Ol0/PvJp3ji30+ydu1avvzyC2578TPWb9xEpMnIG58tZtTgnnTOTPErbNVo0KMoCsnJyQGPRQhBjx496NGjB9dddx1ut5sVK1awcOECnnx/Pufd/BIDe3dl7NBujB3ei8G9O6NvZGbm8ahccd9b3HHnXeEZURVESkpK2PDnNq58w4UQHOJ/fsFx3bhjUvO8Uc4e3oOzh/cA4NrXFvDl0o2kxkWhUxSEAEUInG4P1VYH1VYHNVYHv23eS7fO6U203DhWuxOzn7mWW5uHHryfjha4dGzfoLabmRxDx6QYZs+e7VfZrNYjaPbjtzmyePWdwLdSyulCiDt9+3fUc+0BQlYlWwihA14CTgLygeVCiNlSyg1+9BkShBD07duXvn37ct9997N161beffcdvl+3iftf+jc6ASMH92Dk4NxGhdpo0OMMUiIWvV7PsGHDGDZsGPfeex91dXX8+OOPLFwwn2se/5Sdu3YzYkgeJw7pztjhvejR+dDCrE+//Q3SEMMtt9walPGEM0lJSaxevRqXy+XLda2gKArLli1j5v+e5o5JLe8jMTqSylo7i9bsPiD6UkoMeh0WcwRRZiPR0VGce9JAzh7dsqy2NocLszn8ZszLly/ntf++wu9PXxKS/BpPXzqSKVf8g/KyMi6/IhzWRIK3sFdf8WpgEt6c9gAzgMW0VJhbUCV7CLDVl5cZIcRHvgG2mTAfTteuXXnwQW9RFSklW7Zs4fvvv+f7779tVKiNBj0OhzMkiWGioqIYP34848d78ywUFxfz3XffsXDBPP5z9fO43U7GDuvF2GE9SE2M5T8zFrB8xe9HZLU7Gtn/w3o4P/30E50Sg+NCl5eZSHpSLD+87J9/ekuw2l1ERrYsz0ewsdvtXHLh+Tx7+RjSEkJT/3FUnywWPzKFU+69C3OkmalTLwhJP4Hht1kqSQhxsIXg1caKTPtIlVIWAkgpC301UBsllH7MGcCeg/bzgaENnRzKKtn+IISgW7dudOvWjSuvvBIpJVu3buX7779n8fff8sDLTyKkysghPRk5KBfwJucPdRRTSkoKU6ZMYcqUKUgp2bZtGwsXLmTOwnn8suxLnnv+xaPehNEUUkoMQagqUl5j47EvfiMuunVmseEYBfefp54kLzWS804IbarYHh2TmH33mZx03TVkZ+dw7LHHhrS/JvHfw6ZUShnyCK5Qfirq+6Y0uAQdiirZLUEIQW5uLrm5uUybNu2AKC5evJjF3y1i4ID+bTKmrl270rVrV66++upW7z9c6du3L28+X9L0iU1wymOfk9EhgQ8evCgIo2oanSLCaxEM+HPTBoZ0aZ1CCn2yU3jz2vGcO/lMNmze0oZlzgQh9oPYJ4RI882W04Am/WxDOZp8IPOg/Y5AQQj7Cyn7RfGKK67gvQ8+YvnK38NutvN3Zfjw4ewuqWZncctcD/PLa7jz4rGtNmPW63S4G4gebCtuvOV2nvlqJXX24EX7NcaEQV0Z168Td9/ZqMk19IQ2wGQ2cInv+SXArKYuCKUwLwdyhRA5QggjMAXvADU0goper+fiSy7m0S+XN7uN/LJqyqqt9OvaMk+LQNDrlbCr5jFgwABGjBzFQx/93Gp9PnHxCD6d+RHLlzf//9dyhJ9bE614i1f/AnQXQuQLIS4HpgMnCSG24HWGaNI7rUlhrq8jIcSZvorZw/FWyZ7vOzddCDEXQErpBq4F5gMbgZlSyvVNvjMNjWZw3wMPMW9NPj+s39P0yYdx9wdL6Hnjm1xy6lBiLa3nJREfbaaisrLV+vOX51/6L7NWFfDsrNYRyoRoMw+ffxw3X39t2wTcCII2Y5ZSni+lTJNSGqSUHaWUb0gpy6SUY6WUub7HJnPCNinMDXT0he95hJQyVUo5zndugZRywkHXzpVSdpNSdpFSNp4kWUOjBcTGxvLam29z4UvzyS8LrEjrJ8u28sLNk/nf7c0vR9YckuMslJY1nbe5tUlNTWXR9z/wzNzVzFq2uVX6vHRsX0oL9/Dzz603U/8Lf2fLWjFWDY2AmTBhAtfeeAvnPvsai++bjNHgnwuh3eUiJz2hRX273B5sDhc2hwur3XnguXffhc3512t23/GqWjslZeVtWo+vITp16sSnX8xi4oRx9OiYRPeOwc/vcjA6ncLEQZ1ZuGABxx9/fEj7qhcRXu6mmjBrHFXccedd/PLTj9z2/o/ccuox2F1uHC5vpWu7043D7fHuu9zYXd7nNoeLr37ewC9rd3rF0+HB5nRjc3qwOlzYHG6vsB4iuE6sNgc2hxOb3YGqSiLNJsymCCIjzZhNJsxmE5HmSMxms3eLjCQyMgqTOcb7vKOFZ589I+xEeT9Dhw7lkceeYPL0B1n8yBSSYkLrc31sj3T+t/THkPbRIGH2P9CEWeOoQlEUZrz/ISePGcUJD3+BKSKCCKORiIgIIiIiMJkifM9NmEwmIkxR9Ok3AFtsN6piYomMjKJD5F9iGunHc7PZjMFgCFuBbQnTrrySXbt2kHX5M3RIjCUtIYaUuChizAaiTXqiI/RYTHriLWbSEiykJ1hIT4gmIzE64L+HQa+gqq1TgfxQWtdM4Q+aMGscdcTHx7P8j9VtPYyjhkcfm849/3cfhYWFFBUVsW/fPqqrq6mpqaG2tpbq6ip2lxQz//d8Cgo2kl9QiNvtYmiPTqTHRyGRvrwmeMPcpe+5L9eJ9B0vLKsiMTO3bd5kmP2oasKsoaHRJJGRkXTp0oUuXbr4df7evXtZtmwZZWVlh+Q1qW87+PW8vNBGHDaMJswaGhpHORkZGUyePLmth+E/2oxZQ0NDI4wQWjFWDQ0NjTBEE2YNDQ2N8EIzZWhoaGiEG5owa2hoaIQRmh+zhoaGRtghtMU/DQ0NjTBDszE3zcqVK0uFELta2EwSUBqM8bQi2phbB23MrUNrjDlIddU0YW4SKWVyS9sQQqxojdpcwUQbc+ugjbl1aDdj1vyYNTQ0NMIRbcasoaGhEV5oNuZW49W2HkAz0MbcOmhjbh3ayZjDz5Qh2qTGloaGhkaYMOiYfnLFj9/4da6wZKxsDbv50Txj1tDQ0PAPzZShoaGhEW6ElzCHl2ElSAgh4oQQnwohNgkhNgohhrf1mBpDCNFdCLHqoK1aCHFjW4+rKYQQNwkh1gsh1gkhPhRCmNp6TE0hhLjBN9714fo3FkK8KYQoFkKsO+hYghBioRBii+8xvi3HeDgNjPkc399ZFUKEsducz8bsz9ZKHJXCDDwHzJNS9gD6ARvbeDyNIqXcLKXsL6XsDwwErMAXbTuqxhFCZADXA4OklL0BHTClbUfVOEKI3sA/gSF4PxenCSHaqJZRo7wNjD/s2J3At1LKXOBb33448TZHjnkdcBawpNVHEwgCTZhDjRAiBhgBvAEgpXRKKSvbdFCBMRbYJqVsaeRja6AHzEIIPRAJFLTxeJqiJ7BMSmmVUrqBH4Az23hMRyClXAKUH3Z4EjDD93wGcEZrjqkp6huzlHKjlHJzGw0pQISfW+twNNqYOwMlwFtCiH7ASuAGKWVd2w7Lb6YAH7b1IJpCSrlXCPEUsBuwAQuklAvaeFhNsQ54VAiRiHfME4AVbTskv0mVUhYCSCkLhRApbT2go4WVv6+eL8xJSX6e3iph8UejMOuBY4DrpJS/CiGew3vbd2/bDqtphBBG4HTgrrYeS1P4bJyTgBygEvhECHGhlPK9Nh1YI0gpNwohngAWArXAasDdtqPSaGuklIebYNqco86UAeQD+VLKX337n+IV6vbAKcDvUsp9bT0QPzgR2CGlLJFSuoDPgWPbeExNIqV8Q0p5jJRyBN5b7y1tPSY/2SeESAPwPRa38Xg0QshRJ8xSyiJgjxCiu+/QWGBDGw4pEM6nHZgxfOwGhgkhIoUQAu/fOawXWQH2mwCEEJ3wLky1l7/3bOAS3/NLgFltOBaNEHNURv4JIfoDrwNGYDvwDyllRZsOqgmEEJHAHqCzlLKqrcfjD0KIB4Hz8JoD/gCukFI62nZUjSOE+BFIBFzAzVLKb9t4SEcghPgQGIU3beY+4H7gS2Am0Anvj+I5UsrDFwjbjAbGXA68ACTjNXetklKOa6MhtiuOSmHW0NDQaM8cdaYMDQ0NjfaOJswaGhoaYYYmzBoaGhphhibMGhoaGmGGJswaGhoaYYYmzBoaGhphhibMGhoaGmHG/wPgGut2L8rX8wAAAABJRU5ErkJggg==\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], "source": [ "tracts.plot(column='CRIME', cmap='OrRd', edgecolor='k', legend=True)" ] @@ -124,14 +223,42 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": { "ExecuteTime": { "end_time": "2017-12-15T21:30:30.408917Z", "start_time": "2017-12-15T21:30:30.088920Z" + }, + "execution": { + "iopub.execute_input": "2021-02-19T19:18:06.869222Z", + "iopub.status.busy": "2021-02-19T19:18:06.868648Z", + "iopub.status.idle": "2021-02-19T19:18:07.299027Z", + "shell.execute_reply": "2021-02-19T19:18:07.299650Z" } }, - "outputs": [], + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": {}, + "execution_count": 5 + }, + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\n\n\n\n \n \n \n \n 2021-02-19T22:27:20.144274\n image/svg+xml\n \n \n Matplotlib v3.3.4, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], "source": [ "# Splitting the data in three shows some spatial clustering around the center\n", "tracts.plot(column='CRIME', scheme='quantiles', k=3, cmap='OrRd', edgecolor='k', legend=True)" @@ -139,14 +266,42 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": { "ExecuteTime": { "end_time": "2017-12-15T21:28:00.376417Z", "start_time": "2017-12-15T21:27:57.039Z" + }, + "execution": { + "iopub.execute_input": "2021-02-19T19:18:07.320276Z", + "iopub.status.busy": "2021-02-19T19:18:07.317934Z", + "iopub.status.idle": "2021-02-19T19:18:07.569566Z", + "shell.execute_reply": "2021-02-19T19:18:07.570663Z" } }, - "outputs": [], + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": {}, + "execution_count": 6 + }, + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\n\n\n\n \n \n \n \n 2021-02-19T22:27:20.495801\n image/svg+xml\n \n \n Matplotlib v3.3.4, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], "source": [ "# We can also see where the top and bottom halves are located\n", "tracts.plot(column='CRIME', scheme='quantiles', k=2, cmap='OrRd', edgecolor='k', legend=True)" @@ -162,28 +317,84 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": { "ExecuteTime": { "end_time": "2017-12-15T21:28:00.376417Z", "start_time": "2017-12-15T21:27:57.045Z" + }, + "execution": { + "iopub.execute_input": "2021-02-19T19:18:07.603173Z", + "iopub.status.busy": "2021-02-19T19:18:07.601948Z", + "iopub.status.idle": "2021-02-19T19:18:07.877554Z", + "shell.execute_reply": "2021-02-19T19:18:07.878113Z" } }, - "outputs": [], + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": {}, + "execution_count": 7 + }, + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\n\n\n\n \n \n \n \n 2021-02-19T22:27:20.797058\n image/svg+xml\n \n \n Matplotlib v3.3.4, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], "source": [ "tracts.plot(column='CRIME', scheme='equal_interval', k=4, cmap='OrRd', edgecolor='k', legend=True)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": { "ExecuteTime": { "end_time": "2017-12-15T21:28:00.386417Z", "start_time": "2017-12-15T21:27:57.048Z" + }, + "execution": { + "iopub.execute_input": "2021-02-19T19:18:07.901216Z", + "iopub.status.busy": "2021-02-19T19:18:07.900716Z", + "iopub.status.idle": "2021-02-19T19:18:08.038149Z", + "shell.execute_reply": "2021-02-19T19:18:08.038837Z" } }, - "outputs": [], + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": {}, + "execution_count": 8 + }, + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\n\n\n\n \n \n \n \n 2021-02-19T22:27:21.116842\n image/svg+xml\n \n \n Matplotlib v3.3.4, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], "source": [ "# No legend here as we'd be out of space\n", "tracts.plot(column='CRIME', scheme='equal_interval', k=12, cmap='OrRd', edgecolor='k')" @@ -199,14 +410,42 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": { "ExecuteTime": { "end_time": "2017-12-15T21:28:00.376417Z", "start_time": "2017-12-15T21:27:57.042Z" + }, + "execution": { + "iopub.execute_input": "2021-02-19T19:18:08.070486Z", + "iopub.status.busy": "2021-02-19T19:18:08.066165Z", + "iopub.status.idle": "2021-02-19T19:18:08.265868Z", + "shell.execute_reply": "2021-02-19T19:18:08.266452Z" } }, - "outputs": [], + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": {}, + "execution_count": 9 + }, + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\n\n\n\n \n \n \n \n 2021-02-19T22:27:22.905376\n image/svg+xml\n \n \n Matplotlib v3.3.4, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], "source": [ "# Compare this to the previous 3-bin figure with quantiles\n", "tracts.plot(column='CRIME', scheme='fisher_jenks', k=3, cmap='OrRd', edgecolor='k', legend=True)" @@ -225,9 +464,49 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 10, + "metadata": { + "execution": { + "iopub.execute_input": "2021-02-19T19:18:08.851870Z", + "iopub.status.busy": "2021-02-19T19:18:08.851381Z", + "iopub.status.idle": "2021-02-19T19:18:08.865819Z", + "shell.execute_reply": "2021-02-19T19:18:08.866393Z" + } + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " AREA PERIMETER COLUMBUS_ COLUMBUS_I POLYID NEIG HOVAL \\\n", + "0 0.309441 2.440629 2 5 1 5 80.467003 \n", + "1 0.259329 2.236939 3 1 2 1 44.567001 \n", + "2 0.192468 2.187547 4 6 3 6 26.350000 \n", + "3 0.083841 1.427635 5 2 4 2 33.200001 \n", + "4 0.488888 2.997133 6 7 5 7 23.225000 \n", + "\n", + " INC CRIME OPEN ... X Y NSA NSB EW CP \\\n", + "0 19.531 15.725980 2.850747 ... 38.799999 44.070000 1.0 1.0 1.0 0.0 \n", + "1 21.232 18.801754 5.296720 ... 35.619999 42.380001 1.0 1.0 0.0 0.0 \n", + "2 15.956 30.626781 4.534649 ... 39.820000 41.180000 1.0 1.0 1.0 0.0 \n", + "3 4.477 32.387760 0.394427 ... 36.500000 40.520000 1.0 1.0 0.0 0.0 \n", + "4 11.252 50.731510 0.405664 ... 40.009998 38.000000 1.0 1.0 1.0 0.0 \n", + "\n", + " THOUS NEIGNO geometry Max_P \n", + "0 1000.0 1005.0 POLYGON ((8.62413 14.23698, 8.55970 14.74245, ... 0 \n", + "1 1000.0 1001.0 POLYGON ((8.25279 14.23694, 8.28276 14.22994, ... 0 \n", + "2 1000.0 1006.0 POLYGON ((8.65331 14.00809, 8.81814 14.00205, ... 2 \n", + "3 1000.0 1002.0 POLYGON ((8.45950 13.82035, 8.47341 13.83227, ... 2 \n", + "4 1000.0 1007.0 POLYGON ((8.68527 13.63952, 8.67758 13.72221, ... 3 \n", + "\n", + "[5 rows x 22 columns]" + ], + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
AREAPERIMETERCOLUMBUS_COLUMBUS_IPOLYIDNEIGHOVALINCCRIMEOPEN...XYNSANSBEWCPTHOUSNEIGNOgeometryMax_P
00.3094412.440629251580.46700319.53115.7259802.850747...38.79999944.0700001.01.01.00.01000.01005.0POLYGON ((8.62413 14.23698, 8.55970 14.74245, ...0
10.2593292.236939312144.56700121.23218.8017545.296720...35.61999942.3800011.01.00.00.01000.01001.0POLYGON ((8.25279 14.23694, 8.28276 14.22994, ...0
20.1924682.187547463626.35000015.95630.6267814.534649...39.82000041.1800001.01.01.00.01000.01006.0POLYGON ((8.65331 14.00809, 8.81814 14.00205, ...2
30.0838411.427635524233.2000014.47732.3877600.394427...36.50000040.5200001.01.00.00.01000.01002.0POLYGON ((8.45950 13.82035, 8.47341 13.83227, ...2
40.4888882.997133675723.22500011.25250.7315100.405664...40.00999838.0000001.01.01.00.01000.01007.0POLYGON ((8.68527 13.63952, 8.67758 13.72221, ...3
\n

5 rows × 22 columns

\n
" + }, + "metadata": {}, + "execution_count": 10 + } + ], "source": [ "def max_p(values, k):\n", " \"\"\"\n", @@ -244,9 +523,38 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 11, + "metadata": { + "execution": { + "iopub.execute_input": "2021-02-19T19:18:08.885642Z", + "iopub.status.busy": "2021-02-19T19:18:08.884016Z", + "iopub.status.idle": "2021-02-19T19:18:09.098414Z", + "shell.execute_reply": "2021-02-19T19:18:09.099540Z" + } + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": {}, + "execution_count": 11 + }, + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\n\n\n\n \n \n \n \n 2021-02-19T22:27:23.805586\n image/svg+xml\n \n \n Matplotlib v3.3.4, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAVUAAAD4CAYAAABc+XWqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAB2mklEQVR4nO2dd3xTVRvHv+dmd9O9oC1lF2QVBARkKUNFEVRwggP3fN3bV3HvLe7xinuBOEBUBAUF2XtDKR1Ad3buef9IqYyONKMteL+fT0hyc+65T0ryyxnPEFJKNDQ0NDSCg9LcBmhoaGgcS2iiqqGhoRFENFHV0NDQCCKaqGpoaGgEEU1UNTQ0NIKIvrkNqI34+HiZmZnZ3GZoaGho1MrSpUv3SikTanutRYpqZmYmS5YsaW4zNDQ0NGpFCLGjrte06b+GhoZGENFEVUNDQyOIaKKqoaGhEURa5JqqhobGsY/L5SIvLw+73d7cptSJ2WwmPT0dg8Hg8zmaqGpoaDQLeXl5REZGkpmZiRCiuc05Aikl+/btIy8vj6ysLJ/P06b/GhoazYLdbicuLq5FCiqAEIK4uLhGj6Q1UdXQ0Gg2WqqgHsAf+7Tpv8Yxi6qqLFq0CCEEZrMZs9mMxWKpeWw2mzGZTC3+i61RjVTB4wRUQAGdEUTLGxdqoqpxzLJr1y5OPPFEevfqgd3uwG63Y3c4sNlsNc9dLhcmk6lGZMPCLMyY8RF9+/ZtbvM1DsZtBbftsGNVoLeAPszvbr///nuuv/56PB4Pl156KbfffnuAhmqiqnEMk5ycjKIoLPhpFnp97R91VVVxOBzYbHbsdjsXXnoN+fn5TWypRr3UJqg1r1Uf90NYPR4PV199NXPmzCE9PZ0+ffowduxYunTpEoCx2pqqxjGMyWQiMTGBvN11i6SiKFgsFmJjW5GamoLJZESn0zWhlRr1ItW6BfUAbpu3XSP5888/adeuHW3btsVoNDJx4kS+/vprPw39B01UNY5pMjMy2b5jp8/tVVXVRLUl4XEGt91B7N69m9atW9c8T09PZ/fu3Y3u53A0UdU4psnKymLbdt9F1eP5R1Q9Hg8Oh4PKykoqKipQ1caPhjQCxde/eeP/b2qrzxeMTUttTVXjmCYrK6tRI9WI8HBOOeUUVFVFCIFer6+JprFarVgsFiIiIoiICPfeh0cQGRlJdHQ0L770EgkJtWaD0/AbX8d9jR8fpqens2vXrprneXl5pKamNrqfw9FEVeOYJjMri5/n/uBz+08/fBOPx4Ner0dRDv2iqqqK1WqlsrKKyqoqKiurqKiopLKqihtvvYdNmzZpohpsdEbvLr8v7RpJnz592LRpE9u2bSMtLY2PPvqIDz/80A8jD0UTVY1jmqysLN5qxEhVp9PVuaaqKEr1KDXiiNcef/rFFh3DftQiFK/bVH2bVXqLX/6qer2eF198kZEjR+LxeLj44ovJyckJwNjqfgPuQUOjBdPY6b+/WCxmbLYGdqk1/OOAu1Rtwhqgn+qYMWMYM2aM3+fXRoPyLoR4SwhRJIRYXctrNwshpBAivo5ztwshVgkhlgshtFT+Gk1OWloaRUXFOByOkF7HbDZrI9VQog8DUyvQh1cLaXj1c/8FNVT4MmZ+Bxh1+EEhRGvgJKChYcBQKWUPKWVu483T0AgMvV5PWloqO3flhfQ6FrM2Ug05QgG92SukenOLDFEFH0RVSjkf2F/LS88AtwJH+iVoaLQgvEsAuxpuGABms0kbqWoAfvqpCiHGArullCsaaCqBH4UQS4UQUxvoc6oQYokQYklxcbE/Zmlo1EpmRibbttdZpy0oaCNVjQM0eqNKCBEG3AWc7EPzE6SU+UKIRGCOEGJ99cj3CKSU04HpALm5udroVyNoNDYAwB+0karGAfwZqWYDWcAKIcR2IB34WwiRfHhDKWV+9X0R8CWgpf7RaHIym2D6b7FYsFmtIb3Gvx3pcSJLNiKLl3vv/QhNbQoaPVKVUq4CEg88rxbWXCnl3oPbCSHCAUVKWVH9+GTgv4GZq6HReLKystgWYrcqs9lElTZSDRmyeAVy70pQ3f8cLFgM8cchErr73e/FF1/MrFmzSExMZPXqIxyc/MIXl6oZwB9ARyFEnhDiknrapgohZlc/TQIWCCFWAH8C30opvw+G0RoajcE7/dfWVI9WZPEKZNHfhwoqgOpGFv2NLG5oa6duJk+ezPffB1eWGhypSiknNfB65kGP84Ex1Y+3Av7/hGhoBInk5GTKysqxWq2EhYXGr1HzUw0N0uP0jlDra7N3JcR2RvgRqjp48GC2b9/up3W10zIdvTQ0goiiKGRktAnpuqrFYsZm10aqQad8+5Ej1MNR3d52LQRNVDX+FWRlhjZc1WwyYbdpI9Wg4/Zx86+hRNZNiCaqGv8KMjMzQ+pWZbFYtDXVUOBrGKreElo7GoEmqhr/CkK9WaX5qYaIqExQGtj6UfTedi0ETVQ1/hVktW3L9p2hi//XslSFBqEzIuKPq79N/HF+bVIBTJo0if79+7NhwwbS09N58803/ernYLTUfxrNhtVqZceOHezYsYPu3buTkpISsmt5p/+hG6lazBZtpBoiDvihHuGnqui9ghqAn+qMGTMCNe8INFHVCDmbN2/m+++/Z/u2bezYsYPtO7azY8dOysvLyWjTmpTkJDZv3c7XX39N7969Q2JDsENVrVYrS/5ejtVqw2azs2HjZm33P4SIhO4Q29m7y++2eddQozL9HqGGEk1UNULOd7Nnc93113PnrTcyfuxIMjPakNEmnaSkxJqSJV9+/S2jRo1i5Mkn07VrVzweD6tXr2bh7wtRFIU+uX2wWLybEYqiYDAYMBgMNYXaVFWloqKCsrIySktLKSsvo7y8HLvdgcPhvdlsNvJ255OeFngdog9mfMoDDz9F15wcLBYLFouFiy68KOB+NepG6IzQqkNzm9EgmqhqhJxrrr2WtWvX8vuiv7jnjv9gNpuPaDPu9FPo0b0rP/+6gLXrNmAwGBg5fCAP3HUjUkr+XrYSl9s79fN4PLhcLlyuf6aCQggiIyOIiY4iOjqK6KgooqIisZjNmEwmjEYDnXsM4Pc//uTsCWcE/J6sVhsTxo/nueefD7gvjWMLTVQ1Qo4Qghdfeonzzz+P8yZfwecfvVNru6zMDLIyM2p9rWOH9gHbkZ2dxfKVq4Iiqk6nE6Ox5U09NZofTVQ1mgSdTsfbb79DeHh4s9nQqX071q3fFJS+nC4XJpMpKH1pHFtooqrRZKiq2qxC1L5dW/5auiwofTkcTozmyKD0peEb0mFFblwMVaUQHoPocDzC1PJqVGmiqtFkNPeUOTOjDSWlpUHpy+l0Eh6tjVSbCnXRV8g/vwbXPwUc5c/vIfqejtLvDL/73bVrFxdeeCEFBQUoisLUqVO5/vrrA7JVE1WNJsMrqoZmu35WZhvKyiuC0pfTqU3/mwp10VfIhZ8c+YLLgVz4CSr4Lax6vZ6nnnqKXr16UVFRQe/evTnppJPo0qWL3/ZqEVUaTUZzj1SzMjOoKK9AVdWA+3I4HdpGVRMgHVbvCLW+Nn9+jXT4V3UhJSWFXr16ARAZGUnnzp3ZvXu3X30dQBNVjSbD4XBgNDSfEMXERKPT69iydVvAfTmdLk1UmwC5cfEhU/5acTmQG/8M+Frbt29n2bJlHH/88QH140vm/7eEEEVCiCNqDQghbhZCSCFEfB3njhJCbBBCbBZC3B6QpRpHPc09/QdIS03lj8V/BdyPNv1vIqpKg9uuDiorKxk/fjzPPvssUVFRAfXly0j1HWDU4QeFEK2Bk4BaY/+EEDrgJWA00AWYJITwf6FC46jH6XRiMDSvqGa3zWTFyrUB96NN/5uI8JjgtqsFl8vF+PHjOe+88zjzzDP97ucAvpRTmS+EyKzlpWeAW4G6Fjz6Apury6oghPgIOB0I/BOtcVSSlpZGQWERK1aupvtxXZvFhvbZbXnn/Q9ZtmIFYWFhhIWFEREeTkR4GBER4URFRREVEUF0TBTRUdHEREcRExNNbGwMsa1a1USDadP/pkF0OB7583v1LwEYTIgO/hVqllJyySWX0LlzZ2666SY/rTwUv3b/hRBjgd1SyhUHYq9rIQ04uH5FHlDnYoUQYiowFaBNmzb+mKXRwomPj+fxxx7josuu4c/ffmwWUdq5axf7S0rpry+lonIfVSUerE43xU43VU4PVqcLq9ODzeXG5vLgcLlxuFUcbg8uj4oQAr1OoCA4aeSYJrf/34YwhSH6nl777v+BNn1P99tfdeHChbz//vt069aNHj16APDwww8zZoz//7eNFlUhRBhwF96S0/U2reWYrKuxlHI6MB0gNze3znYaRzeTp0zhiy++4OHHn+H+u29r8uunpaZyWrc2/Hd0/Tk6a0NKicujYnV5OOvDJdqPfxOh9DsDFY7wU8VgCthPdeDAgUgZXLnxZ6SaDWQBB0ap6cDfQoi+UsqCg9rlAa0Pep4O5PtrqMaxgRCCp595hkGDBnLvnbfUZKlqKjIzWvPXD/6l6BNCYNTrMOp1mI2ai3dTovQ7A9nzZO8uf01EVd9jI6JKSrkKSDzwXAixHciVUu49rOlfQHshRBawG5gInOu/qRrHCu3btyc1NZVZs39g7Kmjm/Ta2dlZFFb459N4MCnhBs4443RiIiOIi4kmPi6OuLg44hISiE1IIi4hkYSEBO+xw27aWqx/CFMYotuQ5jajQRoUVSHEDGAIEC+EyAPuk1LWWnNACJEKvCGlHCOldAshrgF+AHTAW1LKNcEzXeNo5u677ub+h/7L4IEDiImJbrLrdu7Ygf1VDfg9+sD0M3vy0undKbE62Wd1sLfKwX6rk31VW9m3aR37VrrZ4lDZZ3Ozz+pkf5WdfZU29ldUYTYZiYuJJjMzi7m//oZOpwvCO9NoKfiy+z+pgdczD3qcD4w56PlsYHYA9mkco5wxbhzff/892Tl9yO3VA7fbTXbbTI7v04uzzjydqKjQJCtp364tNpcbl0fFoAts6cGgU0iMNJMYeWR+2LqQUlJud7HP6qTHMz9itVqJjNQSsxxLaBFVGs2CoihMf/11li1bxvU3/ofb77yb43rk8s3sn+g/ZDQ7duxquBM/0Ol0mPQ6Ciuap/SJEIJoi5G2cRGEmQxaXatjEG21XaNZadOmTc0u+kknncQ1117LE48/zvhzp7Bk4Vy/+ly9ei3zF/xBlc2GIgSpKclER0fx8mtv8seChdhcHhZu28s5PZsvtyuA2WDQKrA2Ak9FORVzZ+PeW4Q+PpHIEWPQRQYW/RQKNFHVaHHceNNNTHv4YYqKiklMTPDpHFVVOWPCufz683zcHg/ZCdGYDTqklOy3OqhyuBnVOZUvLjqBW2etYHtJZYjfRcNYjHptpOoje19/gb1vvYy0/bPJWPD4A8RffBXxl13rd792u53BgwfjcDhwu91MmDCBBx54ICBbNVHVaHHo9XpOHDyYeb/8xsSzGw4bVFWVvgOGUbFnJ79ePZycpGgUpc6gFJIizewua/4Rotmg10aqPrD39RcofunJI45Lm7XmuL/CajKZmDdvHhEREbhcLgYOHMjo0aPp16+f3/ZqoqrRIhk+fDg/HSSqjz/1PCtWraGyspLKqiqslVYcdht2m439+/aTHK7n92tPIsbSsLtSSpSZPS1EVLWRav14KsrZ+9bL9bbZ+9bLtJo0GV1E4zf8hBBEREQAVBeTdFFPlKhPaKKq0SIZOGgQ06e/VvP8oYceZVDbRDJjw4ky6YlM1BNuDCPSFEVSZAYnZidiMfj2cU6OMLGuoDRElvuO2aDTRqoNUDF39iFT/tqQNisVc2cTc8Y5fl3D4/HQu3dvNm/ezNVXXx1w6j9NVDVaJN26dWP7jp2UlZUTGRlBdGQElx3fltNy0gLuOz7cRLkj8ETVgWIx6LSRagO49xb51q7Yt3a1odPpWL58OaWlpYwbN47Vq1fTtav/CX80UdVokRgMBjJat6Zb977sLynFoFMIMwbHST7GYqCgwspbi7cQbtQTYdYTaTQQadYTZTIQaTIQbdZj8nHk6y9mvaKNVBtAH5/YcCNAn+Bbu/qIiYlhyJAhfP/995qoahybtG+bSatiB3df0p+MVuEBr3UdoLjSQUmFnce+XYFTVXGqEpeUuFSJW3ofe6pzbOgE6BDohEARoFMEOqGgU0ARCnpFoNN57/WKgl6noNcJ2sSG8dXFJ9Zrh0Wv+DxSVVUVl8uFx+PBYrEE7W/R0okcMYaCxx+odwlAWMKIHOFfVqni4mIMBgMxMTHYbDbmzp3LbbcFluhHE1WNFovH4+b4jHgyYyOC2m/b2AhiDTpmtk+qs42UEjfgVCVOWX1TwSkljmoRPvDYKSUOKXFVv17hUXl2XcO5g8y6Q0eqn336KbfdfhtOpxOn01V977253W6MRiOKomA0GsnKysThcJCXt5tly5bRrl27YPxpWhy6yCjiL76q1t3/A8RffJVfm1QAe/bs4aKLLsLj8aCqKmeffTannnqqv+YCmqhqtFAWL17M8qVL+Og/DWWYbDxdkqMpcXnqbSOEwAAYdILGhgi4pOTJPaWoqlpvFq5Sm/OQtHNffPEFV102mXMmjMNoNGAwGDAaDRiNRvR6PUIIpJSUlJSybfsOTCYTZ513CVZr4AliWjIH3KUO91MVlrCA/VSPO+44li1bFrCNB6OJqkbImD17Nk6nk8jISG9G/ago0tPTCQ9vWKbuvf1W7hrSAbPBt3VUq9PNnd+uwOn5RyyNOh0ZseFEGPVEmvUkR1qwGHSoB40yTfX4s/qLQQgEUOl0E2Wu3cVrwbZiluwp572zzqo59vsfv3PfHdeTnp5aZ99CCGJjWxEb2wrwjqg/+OADIiMiqKqqOuJmtVmRUqLT6VCE4r1X/rk/8Fin0zFlyhRGjjqiclKLIP6ya2k1abI3oqq4CH1CdUSVnyPUUKKJqkZIcLvdnHrqqZx2yigqKiopr6igsKiYvn368vkXX9R77oYNG1i5Yjlf335kWsBNxeVM/2Mz87YUszq/hN33nUF8hJln52/go+U7GNwuuaatw+3g9x37sLs9ONweyu0uPNXlqYWA9TYn3cNDU7zPIAT7qpy1iqrLo3L11yt55oWXaorM7d69m6qqKjq0b9w0/qqpU9i6bQd24SY6IpzUxBjCw8MIDwsjPNxbLkYIUFVZM8X9516teV5eUcFFky/i4WkPc/EllwTlbxBsdBGRfrtNNSWaqGoEjNvtpkuXziiKQquYVsTGxhIVFYXFYuHrT9+vaffXkr8ZPmY8E885h06dOtGrd2/Gjh17RH8REREgOCSL1I8b8rn6i7/ZU2alX1YCp3VJZcXu/fR4+geSI81sKi7nyhPa8+gpPXyyuesTs9lsd4VMVE2KYL/VQVbckevBz/62iTadujJhwoSaYwsXLmRAv76N3oC67uqpAdt6gMED+zP69Ins3LmTu++5B71ekwd/0P5qGgGj0+koKirm4/dfJzIigv0lJewvKeXM0w5dD83t3ZOF875lxarVbNi4hcsuuxSj8T06dOhAfHz8IaWBKyqt9Hz6e8w6wZ5KByVVDu4YnsN1gzoQVp11/7pBHViRX8qK/BJWF5Rzbs8Mn21OiQpjZ1no4v9NiuDO2St4eEx3ereOI/ep77C7VEx6hW1lNpatXnuIgC5csIAT+vUJmT2+0KF9O37/eTbnTr6Cbt0+5sH/Psj4CRP+NZ4GwUITVY2AEUJw6SWX8N0PP/Hsk9Pqbdetaxe6dfVWKs9ok84N11+H0+miqLi4ZmNHSknrVhFc2b8dFQ4X7eIjGdE+mXDToR/X2DATQ9slMbRd3bv4dZEeE0Z+cVmjz/OVYTER/LZjHw/OWc0Xkwexck8p96bHYlNVXpbiiPpWC39fyHOPPxgye3wlKSmRubM/58e5P3PnfdN49LFHee216fTu3bu5TTtqEA0VvRJCvAWcChRJKbtWH3sQb7lpFSgCJlcnqD783O1ABeAB3FLKXF+Mys3NlUuWLGnE29BobvLz8+natSubV/9Zs4nSGDweD3a7HY9HZejJp3JKouC+kd1CYKmXe75byU+LN/NOduMF2Vc+KK7g+eIKTIpALyU/d/ZuQE3Iq2DMlEuwWCyU7dvHvuIiPv9mJiUFW2pKYLcEVFXlgWmPs2lrHh/OmBH0/tetW0fnzp19bm8vK2PtZ59RsWcPkSkpdJkwAXN06KtG1GanEGJpXXrmy0j1HeBF4L2Djj0hpbynuvPrgHuBK+o4f2gt9as0jjFSU1M5acQIPvn8K664bEqjz9fpdISHh7P4z6WsX7eB90aODIGV/5ASZaZSCW0Zk4FRZna7PZwYYaZ3xD9rt1dE6Vn6v7cIV91E6BR2V9jp2LFdixJU8CYS79O7J0uWNX8VpPnTpvHbI4/gqqqqOfbd9dcz6I47GHzXXQH17fF4yM3NJS0tjVmzZgVqasOZ/6WU84H9hx0rP+hpOPWUntb493DBhRfywYzP/T6/vLycU8eO564RXemUGNrkw8mRFkLt3ZlpMnBbSgz9Is0YDlqXHBFl4bbECK5JjmFyQhSVio5RJ48IsTX+ER0VRVlZ6JZJfGH+tGnMu/vuQwQVwFVVxby772b+tLqXnHzhueeea9SIuSH8LqcihJgmhNgFnId3pFobEvhRCLFUCFHvNqUQYqoQYokQYklxcbG/Zmk0I/369WPdhg1+nz/wxJEcnx7DrUM7BdGq2kmKNGNTmz+pCkCezsjQwSc0txm1Eh0dRVl584mqvayM3x55pN42vz3yCPby8nrb1EVeXh7ffvstl156qV/n14bfoiqlvEtK2Rr4H3BNHc1OkFL2AkYDVwshBtfT33QpZa6UMjchwbds7xoti8jISCoq/NtRHzRkJNa9BXwwqV+T7DYnR5qxueuPqmoKSt0e9ldUMqCZd/5rQ1VVHn3yedplN18I7NrPPjtihHo4rqoq1n72mV/933DDDTz++OP1Rr41lmD09CEwvrYXDmxeSSmLgC+BvkG4nkYLxWTyrhs6HI0rAT3j489Zu2o1i647mUizIRSmHUFSpBmr043azKPVmSVVtMtu2+Iqqrrdbq66/lZ25Rfw0ccfN5sdFXv2+NSu0sd2BzNr1iwSExOD7tngl6gKIdof9HQssL6WNuFCiMgDj4GTgdX+XE/j6CE6OpqSktJGnXPXPQ/U5ElV1aZZno8wGVCEoMjdvKI6r9LJqJOHNasNh1NRUcHxg0eSl1/ErFnf1vxYNgeRKSk+tYvwsd3BLFy4kG+++YbMzEwmTpzIvHnzOP/88xvdz+E0uPsvhJgBDAHihRB5wH3AGCFER7wuVTuo3vkXQqQCb0gpxwBJwJfVUzk98KGU8vuALdZo0eTkdGHl6rUkJ/vuquR2u/lw6XY+WrYdp0fFrNcRaTYSYzHSKsxIbLiJ+DATsRYDUSY94UbvrVtqDAOz/F8qig0zscXhItnYfO7auwwmhp44sNmuXxs7d+2mvKKSJUtnNbvjf5cJE/ju+uvrXQIwhIfT5aDoNF955JFHeKR6vfaXX37hySef5IMPPvDb1gM0+GmSUk6q5fCbdbTNB8ZUP94KdA/IOo2jjqFDhvLZlzM5ecRQn8/ZuXVtzWOn08muXbvZsSuPvN27yd9TSGFhEUXFe9lUVkZVVRX2/TZs1nI2zlxGybQJh4SzNobESDPb7S5OiLT4dX6gVLlV9pZXMnCA/0XmQoHR6F2CaW5BBTBHRzPojjuYd/fddbYZdMcdmKNaTqlqLaJKI6hcc+21dOjQgfvuvIW0tMZPyYxGI9nZWWRnZzXYNjEpg7927WNApn+j1dToMHYV+7drHAxmlVaRkdGamJjQO7A3BqPBiNPpbG4zajjgh3q4n6ohPDwofqoAQ4YMYciQIQH3A5qoagSZuLg4OnXsyLbtO/wS1caQlZ3Nz5uL/BbV9Ogwduze33DDEPFThYORY1vWempVVRW//f4HTqeruU05hMF33UXfa69l7WefUblnDxEHIqpa0Aj1AJqoagSdqKgoyvz0G2wMI0edxHcz3ueuETl+nZ8ebebvJtoYq40dBjP/GVKnl2GTcsPNd/HBR58ihKBTp05cPKXxUXGhxhwVRa+LL25uMxpEE1WNoBMWFobNFvoqoZdOuYDHn3gGh9uDSd/4kNPkSDNVQfRPbAx2VaWoopKBAwIrh+wvUkocDgcVFZX8Mn8hX86czZIlS3G73WRnZzfZeqqUskWs3dZFQ7lRakMTVY2gExYWhrUJqoS2aZ1OdHgYi3fsY3B246tpJkVaaK5apt+VWklNSSY+Ps7vPh569Cn++9BjGHQKBp0Og16HweAtu+LxePDUJKKW3seqRJXee0/1CF2vE7g8krffeovMzMwgvTvfMJvN7Nu3j7i4uBYprFJK9u3b1+icDJqoagQdi8VCeXlFk1wru317ft5c6JeoJkeasXmaJ6pq5v4qCl3lpKa2rU6cIb331f8cGCBJ5CGZNQ48l4DV7uS+k7sypW9bKh1uKp1uKhxupJQYdQomva76XsGoV444plMUSqxOsh6dzbnnnRf09zh37lxuv+kGIiPCMRgMNeVbMrLb0SmnGykpKfTo0YOWHJZuNptJT09v1DmaqGoEnY4dO3LrXfdiNpu4dMoFIb3WqNEn8827b/qVJjAp0oytgQKAoWK3onBx3wwmdG+DwFveRSCq773uTAfGbkL88/zwdp0SozDqdST5GZC1YFsxx/fqidFYey2tw6msrOS8s8YTERlB734nkJOTQ3h4OCtWrKCiogKHw8H+vUVs37SROb/M56LcTM7sGo67enTsViXbi5axccMffJxfynFDRvHq67V6aB61aKKqEXT+c/PNnHLqqZxwwglMGDc2pC5Dl045n2kPP4HN5cZiaNzHOSnSjNXlwa2q6JtwbdWpqhTZHNw+rAvJUc3jI3uA+dv3MXjEWQ03xBukcc6ZZxBfvov+EdGs++ZNvpheidOj0j0pghiTDqMC6WYDJySG8+rtp5AYWffU+a+d+7hq7sJgvZUWgyaqGiGhU6dOnHLKGF567U3uuu2mkF0nNSWFVlHh/LF9L8PaJzd8wkGY9DrMeoVdTjdZdVQ9DQU/lduIDzc3u6AC/LazjKeGNhyoIaXkqssvw52/mdcu7Od3wMXBpERZ2Jm/B7vd3uJyyQZC82x9avwruOOOO3n+5dfZty+0vqDtOnRk3uYiv86NCzez1dG0PpnflVgZ3iG0Pry+UGF3sS5/L337Npzn6JFp0/jrp+/5eFKfoAgqeEvaZMZGsHjx4qD011LQRFUjZHTu3Jnzzj2Py666yS/XFF859dTRfLe+8VmKAJKiLGx3NO266mYpGN6u+dNbLtxeTO/jujY4Svzg/fd57fmn+ebC44OeRazS4SY+Pj6ofTY3mqhqhJRHHn2UbTt3Mf3Nd0N2jUsnn8+6glKqHO5Gn5sWHcZuZ+PP8xdVVSm0O/zyVgg2v23fx+ARJ9ff5rffuOm6q/nmwn6kRocF3QadIpo9/WKw0URVI6SYTCZmzPiIe/77GB/M+ATwJk2Z9tjT7N7t3+jycOLj44iLjuT3HY13zUmPtlDQhKL6S4WdKLOB1jHhTXbNupi/s5whQ+sOk926dStnjTudd8/qTdeUmKBff/v+SooqbE3uHxtqtI0qjZDTqVMnfvrpJ84443Ruuu1eKiursNls5HTuFLT8AImpadw+azmfpO/E4fbg9Kg43d7b7jIr+futeKTXrccjvTdVSlQgpQlT/80usTKsffOvp1qdblbuKqR///61vl5eXs5po07mzsHtOLljaOzdVWqlU/t2LS5Bd6BooqrRJHTr1o316zdQUlJCWFgYl0+dSmWVf6VXDsZqtZKR0ZlKqxUdIIsqUCToAL2UKFKyRkpGAOl4P/CG6ns9sA5YLZpuwrZOSu5q1/xT/0U79nJc506EhR05pXe5XEwcP44Tk41cfULoSqmU2pxERESErP/mQhNVjSbDYDCQmOgVlMbWs5rx8efM+/U3KiurqKisxFplxVZlZffufFoLlWc6pTBy3R5Od3sOWdOSwCKgJ1DbdkwrwNpEa3qqqlJkd7WI9dT52/YyePiRZcCllFx+6cXIgq08fUFo8xL8lVdC7/6nhfQazYEvmf/fAk4FiqSUXauPPQicjjfzfxEw+UA9qsPOHQU8h3fg8IaU8tEg2q5xFNNYUb3y8mvpbjGQYNARKwStBVgEmBWFEemtSNDr0AkolHDwZNWOd+Ogrv3tCMDuaRpR/aPKgVmvIyu2Bayn7irnjhuHH3H8ySceY9WCn/jpkoFBc52qi4W7K7n9ppaRpSuY+DJSfQd4EXjvoGNPSCnvARBCXIe3RPUVB58khNABLwEnAXnAX0KIb6SUa9H416PX6/E0MEIsLy/n0y9msnzFSqqcTp7vkIRRqTvxRrswE5sq7YeIqhXvdL8uIgBHE41UZ5VUMbhdUrMnD3G4PSzdXsCAAQMOOT5nzhzuuftuVvxnNOGm0E9irU4PrVq1Cvl1mhpfyqnMF0JkHnbs4GSZ4RyS8qGGvsDm6rIqCCE+wju61URVwydOHDKagi1b6Bhu5s70uHoFFaCrxchflYemHKwCDIoCdQhnGODGuwQQFuJQ1dVuuLmD77W7QsWfO/fRuX02UdUJnt1uN/fefSdvT38Nt0clLbppIr3aRJvZsmULxx/fPOkPQ4XfP0dCiGnAhUAZUFucWxqw66DneUCdfz0hxFRgKkCbNm38NUvjKEZVVfL3FOCwO7A7HGzcuInP2ieRafLN4byzSc8vBj24/nGRqgIM9YwMFcAIbLe76BIW2qqhRU4ng9u2gPXUrcVkZHdg27ZtqKrKhZPOIdy6l6XXDaPjo7MornTQplXoR6rtYoxs2bIl5Ndpavz+aZZS3iWlbA38D7imlia1fZLrDKuRUk6XUuZKKXMTEpo/2kSj6Rl/zoVktjuOrsf1pW+fwXQOM/ksqAAdLAash0VuWfGKZn2EC8FWe2h9VZdW2lGEoENC87sPtYuPpGj9Mk48vjfdcrowNknl24v6kxRpwWLQU1zlaBI7DuR9PdYIxs/Rh8C3eEtXH0we0Pqg5+nAEZtZGv9OMjIyeOvNN9i/vwSLxYzFbGHunHmcEhPGidEWIhSFcJ1go81JlE4hUlGwKKDUM0VvZzZQ6fbg5B8htQIlHg9v4V0/HQHEHnZepKKwM8Q1mb4uqWJQdvOvpwKc06MN5/TwzgYPz7xvMeoprgx91QaA7eUuxmRnN8m1mhK/RFUI0V5Kuan66VhgfS3N/gLaCyGygN3AROBcv6zUOOaYPGUKV151FduXLSdCUfAAkR4PfzhdLCiz4QbcUuLG62LiwTvNUQ666YRAEd57nRDohUDB63t6oDb6cYAF7zLAcrzuVWMOsyUK2O0M7YhppUtyTQtYTz2cw0U+zKBnbxONVOPMOjZv3Ngk12pKfHGpmgEMAeKFEHl4R6RjhBAd8X7ed1C98y+ESMXrOjVGSukWQlwD/IDXpeotKeWa0LwNjaMNs9nMdVdfzfLXXmOo27ept4p3U8lVfe+WEpcEN7Lm+K9CsFvKGlGNBnKrH+/V6XDXMt2MVFUKXaGd/he6XC1iPbUhwo06iiqaZqQ6oWsK//nqcx548MEmuV5T4cvu/6RaDteaqrvaV3XMQc9nA7P9tk7jmOayK67gxLff5kS326fF/QObSvWtke6Wkm11vKbDO+I9nAgp2RXCgepqqwOPKumSFLpk3cGilcVAURONVKUEsym0m4PNgRZRpdFsdO3alfTWrdm6YQPBCoZMBlbqdFDLiFQHHCwXbqAU79JAgdPFl/srUaW3DpSnug6Upzo/gAqo8sC9rH4N1OraUgfyCBxoI+WBJQvJwgo7vVrHoTTgEtYScHlUrE1UYqZTYhRrNiw65pJUa6Kq0axcft11TL/1VtpVVQWlvyTAWseOsl5KDlxlD/A63sAAHeDxqLxRXIlyoAYUVD/2rjsqUH3sn9cOHBOHHDv0XEUIKlRJlKnxJbSbmrxSK3/u3Mfz43IbbhwEEiPNpMZEsHnzZnJycnA4HMeEuGqiqtGsnHvuudz6n/9gxeuIHygx/DMCjTnsNZ2UNdP/TUCaonCJqlIEvCsE33ZsXDkWXzltY0HIMj0FkykfL+bUnHRykkO3TKGqKst2lzBnYwF/7tzH9sK9nDdhHDvzC3B5PJSVV6DTtfwfoPrQRFWjWYmJiWHMqFGs+uqruiNDGoEAIvGKpKna/UpW32weDyrwok6HVVXpUn1OOOAMUWUChyrZYXdydveWHdCysaicRduLWf6f0UHpT1VVludXi+eOfWzZb2VvlZ0SqwOTXkfHpGh6prXiydN60jkpms5J3ejx3E8UFRWRktLyf4DqQxNVjWbn8muuYfy337LW5fUVPVzeJP9EktS8JkTNcY+UqIrAWO0e5FBVkqWkm8fjnZ4fdL4CKB5vJqu0aiG14F3/tKsq5iCHqq60Oog2GoiPaNnT2ikfL2ZS7yyy4xsXnKCqKiv3lDFzTR4r8kvZsr+KvVUO9lfZMep0dEiMomd6LCM6pNAlOZqc5Gjiw2vfnEqPjSQvL08TVQ2NQBkyZAhlLhdtgLjqY+Kw+8MfI2XN81WARxFMTPDGsq+2OVlZ4aCnj9E6NaGqDjedLMGtqvpzhYOOIciaH0z+3rWPlfklfHLhCXW2UVWV1QVl/LhhD4t37GNzuYu9djclZZV4VBWDQc+53dMZ1j6JLkle8Uzw8Ydk/pYivl5XwLaiUvbvD22RyKZAE1WNZken0zH14ovZ8vbbDPRjGl6g09E5ysyURK+oLq20s7jKWbv/VB2ECcE2hyuoouqWki/2VfD+qQOD1mcouOyzJUzt34G06DBUVWVtYRk/bCjwimeZk2Kbm5KKSvQ6PR07ZNMjdwhTj+tKTpeO5HTuxC/zF3L3HXfx6nj/Nrgu/GQpk6ZcyuxHJ/hU2bWlo4nqUYaUkvfeew+bzYZer0en0xEbG8vpp5/e3KYFxNgzz+Tmzz6D8vKGGx+GG2qm/gAdLEbK3W5UfE9uEaEo5PlROLA+FlTYMRn0nNIlLaj9BouCchvP/raeFbv345AKnz7+IyXlVQhF0KF9Nr16DuLS7t1qxDMxMaHWMNtAK+XGRlo497zz6NGjR0D9tBQ0UT3KcDgcTJ48mfEpcd6EFAjm7i9n1foNZGRkNLd5fhMVFYXqZ1y8h0NFNVKnEKnTsd3toa2PfUQCe4Lsn/nBvipG5aQGtU9/2Vtp58tVeczZWMC64goKy21U2J24VEl6WgpX3ngtOV06kdO5I0lJiY3KURCoqCZEWCgqKgqoj5aEJqpHGWazmbT4OKZGm2hdnUjYKr2lhI9mUY2IiMDm55fTAxgOG5J2DDOxpdzqs6hGSElREENVvy2pYpXVwWen9gxan75SanXy1eo8ftiwhzVFFRSWWym3OWkbH0X/rASuH5hM79axLNm1n7u+X8OGlYtrrVXlK/Kg9W1/CDfqqAqSn3JLQBPVo5B2WVns2LujRlR7CRe/zp3D+eef38yW+U+nTp0otFrx4HXGbwwewHRY8b5uFgNzGrGSEKGq7HMHx61qtdXBfXn7efmc40mMbLpd/72Vdno8/T37Ku1kxEbSPyuBawa0o1d6K7qlxGDS//OXzS+zcuvM5bz++ssBCWowsLk8WCxNkxi7KdBE9SikQ04OO+Zs4cD2R+9wM3f/8ktzmhQwFouFhNhYPi4qqjO2vz3/ZJ86GA8cURWgk1nPN4clrK6PcGCbGriobrW7uGRrMdcP6cT5vbMC7q8xXPrpn3RPbcXnFw3EbKj7p0lKyaWf/kWv3r0456xxAV830On/3ioHr732Gp9+8gk2mw2bzYbVagUgNjaW2NhY4uLiiI2LIzExkQkTJmA0BtdLI5hoonoU0iGnKyt/mPnPc4uB3bsK2bdvH3FxcfWc2bJRFDCnxJDbJv6I13aVVLEobz/drUcm+/BIifmw+WdHs5GqRtSeCgeqfCwAWOx0s8bmZIPNxTani91OD/s8kgq3ik31rstOX7iZN37fgk7xpiXU6RT0ikCnKOh1AsOBe71CcqSJz6ec6LOttVFQbmPepkJ+v/akegUV4OPlO/hzVwk7fl0Q0DUPEOj0f8OefXTpq6d/n+MIs1iwWCxYLGaklJSUlLJvfwn7S0rYtmkd06Y9RHZ2dosuwaKJ6lFIhw4dmHXQJFkvBD1ioli4cCFjx45tRssCI7NNa+7pGcWw9keGiy7asZfT35xf63kewHTYSLWNSY9DVanEm5y6IcLxOv8f4M8KO68WllGpgg1JpVulyqNiV1VUIEIIYhSFVkC0x0Ma3jSD7wPvZScSpig4pfTe1Op76Y3cctU8lzidbp5fs4+CchvJUf5PgS/+eDEjO6XStQGf2KIKO1d9voTnn3+6pkZVoEgkgeTejggL44ZrLie3d8Prz38uXYbaRIUa/UUT1aOQDh06sN3mxBsL5KWv4uZ/b791VItq1x49Wblnaa2imhxpxuGufXdeRWI8bE1VLwTpJiMb7U56+XDtMMBZPf3/u8rO5VuLOA5v1iszXtGNrr5ZACFlrZmwzIog02QgvoHR4gGKXG5eKiwj88GvaqoaiANJXaqFSlQfrE+3PKpk6U2jGrze//7eTmpaGhddUFtGT/9IT0tlW1EJnZ+Zy4iMaG4e0pmMWF9+yrxIKX2O9xdCBLzcEGo0UT0Kadu2LXsqK3HJqJqidpNiwzn9p5/4+eefGTq0tjqMLZ8evfvwx7u1T0mTIs3YXJ5afU/dEsy1OKTmhJvY3ghRdUnJequTS7cUM0QI+vnx5RV4Rd4X7KrKlK17Gdwumc8mD/SmHZQSj5TI6tSDqiprUg3Wh8WgI8aHwIVIkx69LrihuEMGD2T7+mXM+u5H3v/wE3Jf/IXie0/1+XwhBG4fE5UrinL0j1SFEG8BpwJFUsqu1ceeAE4DnMAWYIqUsrSWc7cDFXhnaG4pZdPkFDvGMRqNpMTFsdvprimMF6ZTuC3OzBVTJrNo2fKjsp56eno6+RXOWl+zGPSYDApvS4HO5WY03jR/4M1fevjuP0BXk47ldeRWPRwT3g/peZsL6S8E/fz84goEHh+1eIPNRYlHZfZlJ9ZbeyuYJEWaqayoCHq/yclJXDrlAkadNJzOPfo36lydInD6WCNMCNHiRdWX/8l3gMPnFXOArlLK44CNwB31nD9UStlDE9Tg0j67LTsOiwAaHmVhgNtK+4w2PPbwwzU7qEcLKSkpFFTY6nz9m4tP5MbR3VBjwg4piuZBYqrlk9zBbMTmY2JoB974/x5CMCiAL60Q+CyqEjDolCYTVIDECDM2W91/40BRFEHD4+ojz3E4fas2oCgtf/rf4P+mlHI+sP+wYz9KKQ98oxfhrZSq0YR0yOnKdsehv+5CCG6ND+Od1Eh+fv4p2rdpzX/vv5/162ury9jyKC8vJ7yektRD2iVx/eBOpESHH+LLqkqw1CJMHSyGmnDVhnhXUchUFE5S1YB2shW8NbN8wSMD2+Dxh0iTAZuj9tlAMBBC1FOIvnZ0ohEjVY6NkWpDXAx8V8drEvhRCLFUCDG1vk6EEFOFEEuEEEuKi4uDYNaxTceu3dhZh5t8ttnAM8kRPBdrZNP0FxjaN5eu2W25/957+eWXX1ps9MqaNWvIiQ9vsJ162EhF5cjdf4BYvQ6zorC7gf6+BaxScmaAggoHUhH61taburBpVfW1xVto3y5YxWuOpLEbSWsLynC4XDidvgm9oigtfqQa0EaVEOIuvPks/ldHkxOklPlCiERgjhBiffXI9wiklNOB6QC5ubkt+6/WAujYsSMfq/X/JuaEGckJM3J7QjjLqqr4+Y2X+M/0V1hfUkbHrCwGDh1Kp27Hcfzxx9O7d+8msrxuVq9YRue4hiOQuqfGsGDn3prnKmCpQ5s6hJnYXGGjdR19rQdWAJdISTBK0Akh8Pj4pffg/YFwu1X0+tAvAeSXWXlr0WZ+/21uyK7hXco48v3nl1mZvT6fhVuLWbvPRqHNw/5y7497504daN8u26f+XW43BkPds5mWgN+iKoS4CO8G1nBZx09HdXVVpJRFQogvgb5A7c6GGo2iQ4cObLPaONitqi4UIegdYaZ3tZeLI9HCGlsZy77+mPnffM6dZVaK9pc0e5TK0sWLGN+/4TLOAzPj+WrZDuY7XDjx/qqb6liX7GYxML+OdVon8LUQjJayZtMrUARebwRfyDTpMUpJ6we+ZM+D44NkQd1M+2kdXXNy6NG9W8iuIYTA7VG59ou/WF5QwR6byv5KG3a7g6ysDHr16MWkCd3pmtOZbjmdSUlJblTyFrvdjqmFV2D1S1SFEKOA24ATpZS17oYIIcIBRUpZUf34ZOC/fluqcQht2rShxObA6lEJa6SLjEkR9Ao30as6A/t6l2TBggUMGzasznMevO9e9uTvoW3HjmRlZdXcYmJiGvWlqIvS0lLWbtxMv4ldGmx7csdk7FKyTq+QZTZwukFPYh0jvU5mAz8YDXDYmp2Kt856qhD0COJ0UuDdOPOFJIOez9olceLahhYoAiev1Mp7f23hz99/Dul1Kioqcbtd5MVkM2p4D7rldKFb185kZWYEpfaUw+E8+kVVCDEDGALECyHygPvw7vab8E7pARZJKa8QQqQCb0gpx+D1ePmy+nU98KGU8vuQvIt/ITqdjqy0VLY7HHQJC2yEOUiv8smHH7J69Wp++/EHNmzcSNt27fhqtnepXErJE088ydQYE6u+VfhB6Njt9LCrohKh6MhMTSEzK4usjh1p274Dbdq0IT09ndatW5OYmOjT7vYff/xBblZygyGWAEmRFt4/tz/n/+93hkVZOC+h7sigTmYDVYe5VO0BvjAbqbA7GRKEddSDEULQmBQC4TqBS0pUVQ2pF8BDP62l+3Hd6Nq14R+tQJBSYjaZ+ebzulYEA8PhcBz9oiqlrC304s062uYDY6ofb6X2/BcaQeKUM8Yx4+P3eTBAUR0SYWLCm28yNKEVIy0K7d0ePlhaVvN6fn4+TpeTPhFRdLMYa0amUoZT5lHZ7bSSt2kFu9cs5U8UZgkdBS4Pe6x2KhwOkmNjSUtJIb1NGzLatad1ZiatW7cmPT2d9PR0kpKS2LBhAznxvmdLGts1nU8nD+Lc9xcyt8rJK21ia60vlWkyUOVRseJdJvhOCHbqFW4a1JHXF25EV0sugUDwTv99V1W9EOiA/VZnyOpY7Syp4n9LtrL0z99C0v/BKIrSaJeqxmA/CspYaxFVRzF3338/Hd95h7VWZ0Cj1c4WA+9lJ9I73IQQgjVWJ7MPiphPTEzk3vvu4/aXX8ayv4JxZsE5cREYhCBGryNGryOn1utH4FAlhS43hZUFFKzYTcFfv/GnomcmCgUulQKrjXKHg3CzidtO7NAou0d2TGH1radw7v/+YNimIjIMOgaFGTgnLoI4g/ejrUcSa9DzjlSpQDCycyofjMihR1orpi/YGBT3l4PxTv8bh1mnUFBhC5moPjh3LT17dqdzp8b9ff1Bp9chg5Dtqy6OiZGqRsslOjqaR556ittuupF30nTE+RhvfjhCCHIP+kLrBZSUlddMSQ0GA3fefQ+333kXv/zyCzdceQXRpfs5rVXD7k8mRdDGZKBNnf6n4ThVyQ3bi1lT1PhIn5QoCz9dPpQF24r5ZUsRs9bl8+r6PegVBUV4Y+IjTAYm9c7m+oEdyIr758ci0OxKtdGYjaoDWBTBnnI7XUNQRHT7/ko++nsby5b8E/5rtVr5dcHvjBwxLOhLDqEeqR4Ta6oaLZspF1/M1k0bmfraq7yVGkl0EFxzOpgNxO6r4M7bbmXao4+h0+lwOp28//77xMfHc8Gll7H0mcc4LQj2gzcX6piYcF7cXODX+YoiGJydyODsRO49uStuj0qJzYkqJTpFIS7MWOtmmiploxNiN4Q3oqpxohKu09UbSRYID/y4hozMDF569U0W/PY727dso9xmQwXenv5CUBOrAOh1OkLpRurxeNDrW7ZstWzrNHzivw8/QkVFBVfO+B+vp0YSHmDCDCEEzyWFc+s7bzFy0SIuvGwqD9x5BylOGw4Eq0oryIwIbrb4ETEW7s4vYb/VQWxYYCMRvU7xqTyyKiWlgJXqzFMBXdWLQPgUwXUwMQYdu8uCI6r5ZVZmLNvBD+v3sG5PGcVVdgzAD9t20trtphuQCnyv0zH7h5+CLqpHg3N+qNFE9RhACMEzL7zI1Moqpsz8iofiLXQIsNRygkHH66kRvLh1PS/echN3RugYEB8JwLZYE1scvoUV+opZUUi0mPhyVR6XHO+bI3igdEuL5aed+/i22jvgSiA2wD4bu1EFEKPXUVBhb/S1VFXlxw0FfL5qF4u37WXn/ipsHg+JikIGMFBVSQeiAA7LApXm8bDsr6WNvmZDaKKqieoxgxCC6W+/zRuvD+CSm//DpCgjl8aGH1FmpDHoheCGhCPXTbPMBrLMwY9quTTazJ2zV3BurwwshtB/NOddPbzmseXmGXWWcWkUUjZ6TTVWp1Bc2bCort5TwqcrdvHr5iI2FZWzz+rAJARtFIUMj4cBePO/6nyIjU8Fft2zp3GG+oBer9NEtbkN0AgeQggumzqV0WPGcNmFFzBx+TIejLfUsTPf8jg7PpI3y2zc/d0qnjytR1CCCnxhV0kVKt5E1IHi9VNtnKjEKrCt8lDXrvwyK5+u2MXcjXtYnV9GUYUNVUpSdTpaqypDpSQViKwjWXZDJAFWl5uiomISExMafX5d1BWm+m9CE9VjkPT0dGb/NI/333uPK6+7ljMjXFwZF1Zr0pGWxjMp0Uz9ayv55TbenXg8Rn2wt5KOZPHOfZjwRlkFejWBxNdC10VON79V2FlcYWd7SRUdp82kzOak0uHCLiXJikIbIFdVScO7NCH8ENDa0AHxisLnX83iyqlTgtIngF6vD+lG1dFA0yVy1GhShBBceNFFrNqwkcLj+jBhVxm/+7Fu19R0CTPxTdt4/thUyPDXfmbbvsqQX3NUx2Qiw03MUJTAx1jyyN3/fS43X+6v5J5d+zhnUyEnrs2n54qdDF+Xz3O7S5AON71dHrqWVDLa7iRDCHKAy1WV0arKcUAcwdlIO5jWwI8/BTdsVVtTBdES/wC5ublyyZIlzW3GMYOUkq+++oobr76KDqqTm1uZaW1q2ZMUp6py5c4SllvtTOmbzbTRxxEZgnXcA1idbuLu/JRrqN7Y8acP4A2dQoZRh0coFLo8lLs9OKWklRAkKwpJHg+JQAIQQ+2jmt+ATXhzagaLLxQFnZS0kZJEIBFYDaxOS2XL5pVBu47b7cYYmYxq29twYz+ITMhk9+7dQSta6C9CiKV1Jd5v2d8sjaAghGDcuHGMHj2apx5/nImPP8bEGAvXxIU12bplYzEqCm9mxrHN7uSGlbv4ZPkOpp/Vl7FdQ5MPPcyox6hTsHnUBkW1Em8NoZ1AEVCl02HzeLADeFTC7ZL2UtIFr3i2ApRGrH22Amw+loHxlWIpKZCSivQ0fi4sosrlwggoRcHNXawEY7RfB1JKrFYrYWHBdecLNpqo/oswm83cde+9TL7kEjq2y+a8GDOxTbBmGQhZZiNft03g3eJyJs9YRJhJz8C2iQxpm0C/jHi6JkfjViVrC8tYU1BGcpSZodlJfhW3M+l12Dz/7JxXApvximexEFQpClaPBxcQUz3ybO/xkOjxkACsFYLlQnBJgJnpowBHkGeQk6TkJeDe++/gwvMmYrVa+WHOz5SXlwf1OgcitKSUQf/BtlqtmEwmzflfo+WRlpaGQac/qhbUL0qI4ry4CH4pt/HTjmKe31LMPW43VU43qpREmQzEGPSUuT0kR1mYe8VQnwIAAHbsr+THDQXY3B6+BoROVyOeB6btHTweEqrFs66R51IIqL7VAQwcWd0gUKLwJj++8oobGDPyJOLj4xh3+ilBvcbBhEJUKyoqiYyMDGqfoUAT1X8pHlVF10Kn/nWhVxRGxIQzIuYf56c9TjdRikJ4dXiuqqpM3rGfwS/NZemNowgzej/idqebJXn7WbxjL3/l7WdDQTl7ymyU2514gFhFQVFVDMDwavGMwfdpuwqUSUnPILxPQ3V/waYbsF5KRpw8luV/LwzBFbwcqHga7LwCFZWVREZGNNywmdFE9SjF4/FgtVrxeDzExMQ0+nxVVSl1q4QrAuUoE9eDSTEe+hFWFIV3MmIZvbWYdg99g8cjqXK6cEiJRUArRSERQarHw3F41zyjAKGqbBCCL6VkjRCc2ciRohOvm1IwZERP8EeqBzjV4+HF9Rt5+PFnuPPWG0NyjcbWqfKV8vIKbaSqERgej4etW7eyatUqVq9axebNm9m6dStbtm6lqKgIi8WC0+lk3bp1ZGc3LrRzwPF9OW/5csqtVhLCwki2mEjSKyR4XCQpkiSDjiSDvvpeh/4oEl5FUXg+NYbxmwo5E0gBogGdBDx1jwE7SsmJwBohaKyzpYPgfZkMND59oK9YgPFS8sD9D3PO+DPIzs4KyXVCUfG0orKSqMjm3fX3BV8y/7+FdzmmSErZtfrYE8BpeH+gtwBTpJSltZw7CngO74/4G1LKR4Nn+rHLqlWreOnFF5nx0Ue0ahXDcV270LVLJ4YO6sslF55FdlYWqanJKIrCRZdezZwffyT7yisbdY0ff/WWCnM4HOTn55OXl/fPbds2FmzdSl7eLnbs3k2uWc+TScGIN2o6OoaZSDUZqHK4GhXPbwf0fgiCA2+p5WB4vod6rbst0FMIho04lW1bVgV9mh7KkWpExLEx/X8HeBF476Bjc4A7pJRuIcRjeMur3HbwSUIIHfAScBKQB/wlhPhGSrk2GIYfa7hcLr788kteeulFNm3axOWXXMi6ZQtJTa0/yeaIYSfy9bdzuaKRonoAk8lUU2+qNlatWsX4IYP96ru5ObtVOO8VltG3EV9whxDsk5I/gV74PvoMpqh6CL6j/+EMV1VeKSzi6utv4ZUXngpq394/Q+P+DqWlpSxfuZq1azewYdMWduzcxZ6CQsrKy6morMJaZaWyqoouXToH1dZQ4Es5lflCiMzDjv140NNFwIRaTu0LbK4uq4IQ4iPgdEAT1YPYs2cP0197jdemv0b77LZcffnFjDv9FJ/L8A4fMogbbrkbj8cTlMJqh9OuXTt2llfikZFH3cZWpzADFY38ch8vJUYh+BOYIyVnA+19OM9J8EaYHrzR8z9X36vV9/U9PvBcrT7/wL3noHYIgVQEEgHCuwn3zpvvctH5E+l3fJ8gWQ8gaqb/TqeT9Rs2snLVWtZv3MTWbTvIy8unpLSU8opKqqxWqqqsuFwuYlvFkJycRJv0NDIz2jCgXx/SUlNITU0mLTWFrdt28NBjzwXRztAQjGWgi4GPazmeBuw66HkecHxdnQghpgJTwVsp9Fjnjz/+4NlnnuHHOXOYeNYZ/PDNJ3TzoyhbamoKSYkJLF++nN69ewfdTovFQkKrGPKdnhYfhXU4rxRW0FNRoBHT+VbAMCkZBnyu07HW4/FZVIO17mzHW0/LHhWGgrfEuPfem69VJ7wCLgToENXHQUGgF2CovukRGJDVzwV64X1dh/C+LgSzy2z896EnmD3zk6DYDmAxm2nbuTdWmx2r1Up4eBiJCQmkp6WSmdGaoUMGkZ6WQmqKVyzTUlOIi4ttcBnCYDCQtzsvaHaGioC+JUKIu/D+/9dWOrG2T1idwwYp5XRgOnjDVAOxqyWzbt06brn5ZtasWcON117O9BceIzo6sMX34UMG8dPcuSERVYD2bduyvWjbUSWqTlVlTZWdSwLoI97jYYuv1yPwZCwHCMdb0uadrPgg9Vg3GSY9NywIrntVRWUln374Fp06tCc5OTFo5U9SU5LJz98T8sqzgeK3ZUKIi/BuYJ0na19AycObs+EA6UC+v9c72ikuLubqq65i8OBBDD+xPxtW/sF1V08NWFABRgwbzNy5c4NgZe107NqV7Q5fcy+1DN4uqiBGUUgMoI9YqsNFfcAJ6IK0ORMGeCS4miAvR+9wE7jdfPbFN0Hr02Q00q9vLhkZrYNaT8pkMhETE80777zDmjVr2LlzJxs2bMDpdLaoJC5+iWr1rv5twFgppbWOZn8B7YUQWUIIIzARCN7/3FGCqqq89OKLdOnSBYOisn75H9x43ZUYjcHLcXrioBP4Y9Ei7PbQZKHq2LUbO+TRtZ76aYmV3ADdemIBm499OKkOFAgCCmAUgsp63L+ChSIEZ8ZF8NTTzwevUxEalyqAafffybczv2LcGadzwgkDOGXMaCwWC+ecfXZIrucPvrhUzQCGAPFCiDzgPry7/SZgTnUo2iIp5RVCiFS8rlNjqj0DrgF+wDszektKuSZE76NFkpeXx8VTplBeXspvc2fSqaMvq3ONJyYmmpwunfjjjz8YOnRoUPsuKChgzuxvMYV8Pzp4/HfXPkqdLroF2E8sYJcSlYZHH3bAGMTRkkERlHtUWjVBboaxMRY+WrEqaP2FyqUK4LKLL+Syiy885Jjdbqdb7mBmz57NmDFjQnLdxtDgSFVKOUlKmSKlNEgp06WUb0op20kpW0spe1Tfrqhumy+lHHPQubOllB2klNlSymmhfCMtCSkl//vgA3r16sWJA/uy4KdZIRPUAwwfMoi5c+YErT8pJS+98AJdO7Qnbc3f3BVnCVrfoeT1wlK+2F/FhYBvkf91Y8E7GvAliZ1NUQjmX8ggBBVNMFIFaGcy4PB4yA9aeZXQiWptmM1mnn/qYa6//jocDkfDJ4SYo2fn4Shh7969XHnlFaxbu5YfvvmYnj2Oa5Lrjhg2mDvufYS6frmklJSWllJcXExxcTFFRUXe+8LCmmOlpaW8Nn06rVu3xm63c98993BBuI6pCS3f4Rrgm/1VvFhQznl4y4UEgxhFYYeqNrg2axMiqKKqAL+V29nldONQJQ5VYpcSpypxSO9zp5Q4JTWPXarEJb2PTYpgaJSFU1uFY25gU0cIQYLRwOI//w5KkhVB6Kb/dTF65Ai6vPEuTz35JHfedVeTXvtwNFENIrNmzuTyKy7n3LPH8/7rz2E2BzpWqp+iomIW/bmEv5etZMWqNfy9bBkXXnABVVVVlJWXUVZWRmlpKWVl5ZSWlmKxWEhMiCchIZ6E+Djv4/g4MtMT2bl9Czt37SQhwVuvyGKx8NOvv3LSiYPJLrMyPLpl57D8rrSKe3bt40wgI4j9JgiBL+M3KxDMvXrFoOOFwjLaxkWg1ykYdToMOh0mo/exUa9g0iuYdDrMeoXomufe+3KHm3c2FPDQnnySw0ycGW7k4oRI9HUIbJLRwNr1G4IjqiGc/tfHs088RO4JJ3HW2WfTvn1oZ4b1oYlqEKioqOCmG29k7tw5zHj3NQYPHBBwn5WVlaxavY616zawcfMWVq1ey57CQqxWG2XlFVRUVOB0ukhOSiQzow0dO7Tj/rtvJTEhnuioKGJioqvvo2qe17UTu2XrNh5+4lnmzv3pkB+C7t27M3vuT4weNgyDEAyOatolgCKXmwUVdqJ1Sr2i/tHeCh7ZXcLpQKcg2xDv8bDNh3Y2KQnmeN4oBO+f259JvTID6qe40s5Xq/N44uf1vL2pkL4mPVcmRdPpsBLmRkUEb+ocwo2q+sjKzOCBu29l4sRz+P33P4LqedAYNFENkPnz5zN58kUMO3EgK/78laiourPouN1uCgqL2LZ9B+vWb2LT5i1s37GL/IICykrLqayqorKqCqvVitPpJDoqiqTERNLSUti7bz8lJWVMu/9OsjIzyMxoTXJyUlD89S669BruvutuunfvfsRrubm5zPzxR047+SQeE4L+kaEbfTtVyd9VDhba3PzulOyxOxnQ73hW/PUXw6IstebnfGFPKW8WlTMBb9KUFUCxXo+q06Fzu1E8Hgx4k5QIvLv0TiFwG404dDp2Oh2YAaFKFFXFCIfc9gMlQrBMSsKAiOpbOId+eexSEsz8SQJwuAMXpoQIM5f1a8elx2ezYFsxLyzcxHlrdxNp1NPLoOP2lBgSjd7cum53cNzmRBOvqR7M1VdcwrxfFnDrLbfw3PNB9GhoBJqo+klZWRkXT5nCF19+Sd/cXpSWlnHG2RdQWVmF1WbDbnfgcDhwOJ04HU4cTgcOhxOT0UhkZAQJCfGkp6XSpnUa3Y/LISU5idSUZFKSk0hJTiIhIf4QwXzxlTd4693/cd6ks4L+XjZv3caEs+rut1+/fnzx7WzOHDOGpwXk+pj82Ve+2V/FHJfgz9IKOmVnM3rSON485RT69OmDTqcjOy2NdTYXXQ4rtX3R5kL+qvKOrr4wGEiJj6dHz56cMnAgERERWK1WrFYrVZWVVJWX43K5iImLIzomhujoaP7++2/+fvdd7k5rhU2VVKkqVSpUSrCpEpuq0kqVGN0eVkmJ1aNi86jYq9cudYBeERiEwO1R+VEI1ktJZ7yhrYH83AlV4nAHL1eVEIJBbRMZ1DYRp9vDr1uLeO63TYzctIc2FhM6VeIJ1saYAFVtHlEVQvDmq8/Ss/8whg0bxulnnNHkNmii6geqqnLyySexbt06hgweSFxsK+LiYunUsT2tYqKJiYkmJvrAfRStWsUQEx1NVFSk36UgIiMjsIdoZ7NN63R27dpFWlpanW0GDRrEjC+/ZOK4M3hBCHqEB29q9UyJnbsefoSPzz2XuLi4I14/ffx45n3+P7qEGSl1e/i53Mb3TsEOYxiXTDyfyZMn071790bn2vz9999ZPnsW58Y3PgOXKiU2VWKtFuMx6/eQKyX7dTpmVderitTpiPF4yMabILoxYR5CVXGEaPffqNdxUocUTuqQQlGFnf/OWc17f22ltDQ4pVWaa031AK1axfDh268ybuJkevbq1eRh75qo+sFtt95K3q5dhIeH8/MPXzXJNaMiI3E4nCHpu2P7dsyaOZN+/frV227EiBG8/8mnXHDWWbySCl3DgiOsGRFh5OTk1CqoAOPOOovz3n2bVdLK8tJKhg85kSsvvIixY8cSHu5/SsLOnTuzuawCmdL4AoiKEITrBOE6SECHEegDRFZXCagE8jwedgrBGiH4WVUxCUGUEKSqKjlAJt4Y73ygECgGSgCXycA+VcUdAlEtt7uodLiocnqocnrL0YzNSePXLUX8OOcnbrj5ThRFQQgFRREoinLQTaBTdAhFIIRAp9OhCAVFd/DrCh6Ph1dffxuzxYzT6cThcOJyuTh/0ln06nnkElMoGNC/LzddewWTJk3kl19+9TlBUTDQRLWRvPTii8yc+Q2ffPAmp40/t8muGxUVidMZGlF9fNq99B08khNOOIHRDThPjx49mituuIFP3nwleKKqSDZu3MiwYcNqff2EE07g7Isv5fgBAxgzZkzQcmq2atWKyPAw9rg8pBoD/yocPDaLwLtp1klKkBIPUCAlu6Rkp07H5x4PTrwZpFqFmUiLCSMzLoLBseFktAqnTUwYg7MDCbI9kp83FzLmjV+JbxVDuMVCeJiF8PBwwsPDiUrNYt2y5WzZuh1VSlRVRUqJrH7svR12XKr/PFclqpRIVaVj+3b8OO8XjAYjBoMBg8H7tx004lRGjhhGZkZr9Ho9Op0OvV6HTtGhN+iJCA8jLCycyIhwIiMjiYqKwGI2U1pWRn5+AQVFxRQV7WXvvn3s27+fsrJyrr/6ciacObbW93vLTdfwy28Luefuu3n0sceC+resD01UG8E7b7/NtIensXDet4SHhYVsOl4bkREROF2ukPSdkpLM1IsvYMGCBQ2KKsBPs2ZygTl4CS3aSDcb1tYdbKfT6Xjq2WeDdr2D6dS+PVuKtwcsqoJ6sgXhDSJIq771qx7N/hcoeWgCEeamGUVVOtycPGQws+bMO+K1ffv20bZtW77+7IOQJSv5e9kKHnniOdZv3Iyqqng8HtxuT81ju92O3e7A7vDuR9gdDqqqqtDpdKSlphATE01sTAxxcbG0a9uW/D0F3HX/tDpFVVEU3nvjJXoNGM7gwYMZc0roCh0ejCaqPlBZWck111zN4kWL+HHmp2RlZuB2u7HbHbjd7pCWzP3fR5/xxVezWL5yNa4QiSp4gwMUpeGQyI0bN7J582YGZtc+VfeHDJOe71cFL0yyMXTt0ZOtszYxKAiu+41dRZSAuQlLhNeXPDouLo5WrWLYvGUrHdq3C8n1e/XszqcfvtWoc4xRyRTuWFfrenlhYREZHXuyf/9+YmNrr++QkBDPh2+/ylnnX8KSJUtIT0/3y/bG0HLzZ7UQVqxYQW5ub4TqYsnCOXTN8WYe1+v1mEwm8vJCm3jr6edfIX9PAXfcfD0r/5ofsuuoqtpgkuvy8nL+e999jIo0YQhS7tAqj8oOh5vNW7cGpb/G0qVHD7YGY2zRyD/HAWnT65vuKyioPyN/bu9c/li8pMnsaYj9+/ejqrLO5Z6kpER6HNeVS664gU8++4o5P/3MkqXL2bFj1yHuYYMG9ue6qy5l0qSJQXMbqw9NVOtASsnLL73EiBHDufu2G3h7+gtHbIpERUWydfuOkNqRmpxEn949uPTiC0hPSw3ZdVRVRTlIVKX0rnO+++67XD51Kscd143U1FRmf/8dpfbAlj08UvJHhZ07i6oYvnkv6zr15JlXXg30LfhFly5d2BoEzyWBaNRIteld472ba/WJ6vkXXMALr7zRYtLoRUVFIaWsVwjvv/tWNm/dxh33PsRFl17DyaeOp3PP/sSltuesc6dQUFAIwO03X4/ZqOe+e+8Nud2aqNZCSUkJE8aP5403pvP7z7M5f1LtacVaxUSzY8euWl8LFulpqeTtDlaii7rxeFQ2btzIIw8/zGmnnkpiYiInnTSC7779mpyOWbz58tPsz9/E9JeeYZni3wbVVruLZ4srOXlbCc/roxl8851s2rGDb+fNa7bsQl26dGFzWWXAQqLg3cn3FUno61AdTkO1o8aOHYvN7mDuvF+b0Kq68c4GjZSUlNbZZtTJw1m15De2rF1C/rY17N+zBev+PH6Y+Sk2u4OsTr1IyuhMRHwGv8xfyMeffBLyaC9tTfUw/vjjDyZNmsjpp4ziw7dfrDfULT4ujt1By+xTO2lpKaxcE/qyXtltM5n36wKS4qK46NzxvPrco6SlHVl0cPTI4VxQZWW73USmueGcsKVuD7NLrcx0CAo9knMvvIAfLrmUbt0CTcwXHBISEtAbDOx1qyQY/F/ftOh0lLndJPjYvnlEtf6RqqIo3H7b7Tz8+LOcNHxI0xlWD2aTiX37S0hM9PUv66Xf8bnM+uJDuuUO4ulnnmPAgAGEhTXedc4fNFGtRlVVHn/sMZ559hlef+lpxp46usFz4uNjyc8vCKldyUmJlJX575RdUFDI8y9PJz01lauuqLu4yMUXncfFF53XYH/h4eGMGHYi0xct5OE2tW9WOVXJ/AobM+2SxWVWxowayWOXX8Hw4cNDuqnnL53aZbO5LD8gUY0xKJQ2YqjaHNP/htZUASZOmsQ9997DvF/mM6wFVNE1mkz1jlQbwmw2o9frA/Jnbiza9B8oLCxk9KhRfDvrG5YsmOuToAIkJSZSVFwcUtuSEhOoqqqruMKRqKrKD3PmMe7sC2nTvjsZHXsyZ96v3HrXA+zduy8oNp0/6Sz+EoeOUqWUrLQ6eKiokmFb9vJpfAbnPPQYuwoKmPHFl4wcObJFCipATvcebLEH5lmRqHizWVnxTTCbb/pfv3UGg4HXXn2NcydfwYaNm5rIsrrRKQoOp/9r+OedM57pr70WRIsaxpfM/2/hrUVVJKXsWn3sLOB+oDPQV0pZ65ahEGI7UIG3Uq5bSpkbHLODx6+//sq5557LxRdO4r67bmnUFz8xIT7kH7zkpESs1vpFtbS0lJdee4svv/6WzVu2odPpOO3UUTz/1CMMHzqIyMhIxo4/j8mXXcOsL2cEbNMpo09i8mVWdtrNGBTBzDIbs2wqqiWci6ZezkMXTSYrKyvg6zQVOT17sujHmQH1EaYT/AGsVAQeKTHqFAyKgkGnoKuuZKrDG36qeFRUpxsVmPDOb5j1CmaDDrNeh8Wgw2LQYzboCDPoCDfqsRh1RBj1hFffIkx6Ik0GIox6Ik16zD762Pqa6GTkqFFMe2gaY86YxO8/zyYpKbhBCL5it9vZt28/3XIaX2X4ACf078v/PvkyiFY1jC//G+8ALwLvHXRsNXAm4MtPwFAppS/J05sUKSVPP/UUTzz5BO+98RInj2h8GZL4uFgqKipDYN0/JCUmYrXZjji+8PfFvPTam/yx+C/y9xTSpVNHzjpzLKeMPonjuuUcsXb02LT7yB0wnJ278mjTOjBfvYiICIaeOJAL5v+GW29gwoQJvHvZVPr3798ka1bBJicnhw/VwOwuU+Huk7py/8huuDwqFQ4XFXY35Q4XFQ4X5Xbv8wqHi3KHi617K3n5902k9D8Jm92O3eGgzG7HZrfjcDhxVB5wgrfidLlwOJw4nd5wT5fLjcvtwu321OyM63Q6dDoFnXLg3hs6WvPYO0wlOqaVT+/nkksvZefOnZw6/jx++eGrJp0+H+CHOfOIi4slPt5/n2ij0Riy2m110aCoSinnCyEyDzu2Djgqv0DgzX96ySUXs23rFhb/+gMZGa0bPqkW4uJa1Sp4wSQxMR6r1UZlZSVvvP0+H3/2NRs3bcHlcjF65AgefuBuRp40jNjY+r8snTt14PTTxnDRpVfz8w9fB2STqqrs2p3PJTfcxH333RfyZNyhpnPnzmyusEKS/4m4SxWFrFiv8Bh0CrFhJmLrCeNdvruE/60u4OXnn/D7mgdwu901MfYOhzcbmtP1z3On04XD6WBXXj533f+wz/3e/8AD7Ni5g0kXXc6XH7/boB9zsHG53AHnRDWbTZSVlQXJIt8I9SKXBH4UQkjgNSnl9LoaCiGmAlOBkGaVWb9+PWeeOY4T+vXht7kzAxKE2FbBFVVVVdm0eQtL/l7O6jXr2bBpM3l5+USEhxOf3oG2WZmMP+NUnn1iGrm9ezT6Qz7tgTvJ6XUCGzZuomMH/zOjf/7lTMyWMB5++OGj9of1YFJSUnBJyX63h1g/I5wqVZXMWN9zErg8DQdb+Iper0ev1xMWVv+Pgsfj4Yprb6aiosKnjF5CCKZPf53Ro0dx06338NxTvgtyMAiPCAsocbaqqoydcAETxk8IolUNE2pRPUFKmS+ESMRbeXW9lLLWsKBqwZ0OkJubGxLv488/+4wrrrySR/57F5dOuSDg/uJiY7E30hFeVVW2bd/B+x9+ysI/FlNUvJfSsjIqKiqprKxEr9eTkpxMVmYbsttm0b9vLpkZbRg8sH/Aa1tZmRmcP+lsLrvqJubP9W8N8e9lK7jmptv5+ONPjglBBa94dGrblq22YmIjahc6t6qyqMpBmCKIUhQidQoWRcGsgFFRqHS6yWzl+xTZ4faELMa+LnQ6HZ07dWDNmjUNZiQ7gNFo5PPPv+CEEwbw3Iuvcf01l4fYyn+IiggsiZDb7Wbb9h08/cwzQbSqYUIqqlLK/Or7IiHEl0BfIHSxlnXgdru58447+OTTT/juqxnk9u4ZlH7NZhM2q42vZ86mrLycyooqysor2F9SQmlZGWXlFVRVVlFltWKxWCivqGTV6rWEhYVRWFjIzTdcTdusDDLatKZN63TatE6vt3JAMDh7/OlMvuwav86dO+9XzptyBa+8/ApDhgwJrmHNSFFRER5F4a7iSpIKy0nSK2SY9LQ1GehoMZBl1HP5rhJWuzwYDXocTjdOlxuPquLxqAgBBr2OhIiG/XYPEMyRamPoltOZVatW+SyqADExMcye/R0DBgwgPi42JInSayM6KhKnM3T5LkJFyERVCBEOKFLKiurHJ+NNzNOkFBYWMnHiORj1CksWzGn0orfdbuft92awYuVqNm7eQmFRMaVlZZSXV2Cz2WkVE811/7kTs9mExWzGYrEQFRVJdHQUUZGRpKem8OHHn9Ord2+mPfwoxx13HGvXruW2W2/miUceCNG7rpsunTqwv5F+f7/MX8D9Dz3B7j0FvPP2Oz5lsjoa2Lp1K088/hgffTSDCSfn0ntcT3YXlLA9fx8rd+/lu8ISinaWYHe60OsUVn71IO3aHFqnVUpvxvyUE29g6a4SBvmYrs/hbh5R7dqlE6tWrmz0eRkZGfz444+cdNIIgCYR1sjIyJBlZgslvrhUzQCGAPFCiDzgPryle14AEoBvhRDLpZQjhRCpwBtSyjF4qwR/WT1F1AMfSim/D83bqJ1FixZx1lkTmHz+RO6/+1a/PsT/ffgJXnr1LYYPHUy/vrlkt82kbVYGbTMzSUtLadAF6+dff+Pzr7/l008/q9lBVVW12abOKSnJSCnZtHkL7dtl19t26d/LuePeaWzdvoP77r2PSeee22J9TRvD7t27+c+N1zN37lwumzCYNV//l+T46Drb2+xO7A4XraKPnN4LIdDrdWS3SeKPHcU+i6rLo6Jr4uk/QLeuXZj1w4t+nZuTk8OcOXM56aQRSGSd4dvBQihH5/KSL7v/k+p46Qjnr+rp/pjqx1uBpknzfaQdvPLyy9z/wP28+cqznHbKKL/7qqioZMiJA/ni43f9Ov/FV9/k3nvuPcQlxWAwsHNXnk/CFmyEEGS3zWTO3F9qvbaUksV/LuXp519h4aI/ufeee7n4kkuaNHN6qPn999/Zsn45W75/mMjwhlP+WcxGLA2E5HZum8qKHTt9tsGlSnRNmPbvAN7p/2qklH79sB8Q1lGjRrJ9xy7uuu2mY2ZtPVgccxFVVquViy66kFdffZnff54dkKACtE5PY9mKlX77upWXV9L6MG+G448/nimTp3Dhpf6tbQZK925d+X3xX4ccs1qtvPH2+/QeMJzzL7mKfgMGsWnTZi6/4opjSlABOnXqRKXN5ZOg+kqX7BS2lvjuCeL0eJpl+p+cnISUKoWFhX73kZOTw+LFf/LN7Dlcfs1/gmjdscExJapbtmyhf/9+qC47i379nnbZbQPu8+Ybr8Gg0/Pgo0/5db7NbsdiOfTLqygK11x7LevWb2yWNGs9jsthw8bNVFVV8e13P3LV9bfQpkMPZn43j0cefZyNGzdx03/+06CLztFK+/bt2barAJcreLk127VJZK/D9/5cHhW9rumXUoQQdMvpwqoAk4KnpqYyb97P/O+jz7CF2Ff7aOOYEdVZM2fSv39/pk45n/ffeiVoa3+KonDepAn8/sdf9bYrL6+gtLQMm82Gp7pchqqqbN6yldatjwwuiI+PR0oZtHj8xtC5Uwe2bNtOcmYOTz7/Gm0y27N06d98/c03jBw5ssldfZoas9lMemoyW3YFL29DuzZJlFl9d/9xelR0uub5O3fL6czqIFRaiIiIoEuXziz9e0UQrAo+zZUX9ujfdcC7IXXa2LEYDAbuuPchrr/5TjweDx+99zrnnDUu4P6jo6KoslbV+brD4SCxTSfMZnN1RIsDRVEwGAy0bZtFZmbmEec8/thjpCQnERHR9OF/XTp3xGQysWPHzkaXdT5W6NypE+u37aFT2yPTG/pDdusEKu1Oer8wD1UKVECV4JGgIr1F88B7L8HhdmOyBG/5oTF0zenE4qXBKV8z8ISB/Pb7Igae4LuLVlOwafMWLrniBizNEO13TIhq37592bRpE2FhYYSHhxMWFsZll14atGin6KgorFV191VRUUl4eDj79v0z6nS73TgcjlpHzN9++y3PPf8cf/0254ilgaYgM6MN+/eXHBM7+f7SsUtX1m/dAcOD01+YxQQIzpt6BTEx0ej1egwGPXqdHoPBgF6vq4l80uv1LP5rKdPffO+QPioqKtixYxc783aTn19AfkEBxcV7qayy8tKzjwVtOaZbThfeeDfwxDoAQ4YO5ZWXXuCOW24ISn+BsHNXHo8+8Rzfz5lHQUEho0eOwGBs+v2AY+JbpSgK7dodWqzM5XLVlMYNlJWr16DWkzKtqspKePihH/gDX57a6NmzJy6Xm0+/+Jr4+FgiIyIYPnRw0EovN0RBQSGRkZFHfcx+ILRu3YalvwS3HpPRaGDiWWfSunVag22LiorZU1BIbEo2VVYbTqcTnU4hLCyMqEivn3NsqxhiY2OZO+8XzjhtNKef1rB/cEVFBe9/+CkOh7copdvjTbrivXlwuVyUlZezZs1avz0ADmbQoEFccMEFAYc+Nxa3283Mb3/gk8+/Yt36jRQV72V/SQmDBvTnvrtuYewpo6isrKL/UN/SeAaTY0JUD2flypXMmTuX2268IuC+7rjnQd5+fwbff/1JnW0KCotITPQ9hDQ1NZX333uPr776itIlK/n4k0/46bsvmiwp8JK/l5Pbu/e/1hXm4Ycf4pmnnmL6/YGHKh+M0WCgvKLCp7bjTj+FdtlZREZGct6Uyxl24iAef/j+Wv9P2nftQ2VV3ctPB7Poz6U89vSLnDlu3CEjY73BRFiYAb1eT1KanpdfHhqU///Y2Fiee/ZZBg4/lcnnT+SSyefTqWNwxdXtdvPrbwv5/MtZLP5rKXsKiygtKSUmJpphQwZxyeTz6da1M716dD8kIrGktLRZPFeOSVF94/XXyenckZwunRpsO+6cC1m+wuu3p6qq916qSFWiSondZueXH76md68edfZRWVVFaWkpZWVlREfX7UR+MKNGj2bU6NG8/957zPt5HhazpXp0HfoPwZK/l9OnT5+QX6cl8uGHH/Lem6+x9JO7SU+uvayxvxgMep9TQZrNZvrk9gK8iXn0en2dImc2mamqZ/npYKxWKz26d+eZZ5/1qX0wmHLxxQwcNIg333iDoaPGkZ6WQr8+venRvSudOrTHZDKi1+vR6XTExbYiJSUZIQRut5t9+/ZTvHcffy1dxsI/FrN581ZKysqx2x3YbDZMRiPhsa2JjIrk+D69mXjWOHJ796Bj+3akpta/Ht5U36fDOSZF9dHHHuP0sWM5b/IVTBh3GgaDnq45nclue2Ti5E2btjBsyCAmjDut+j9e8d4r3jWwzIzWDSYyGTZkEKNPGsZpp53Kr7/Ob9QIoE/fvpw76VyuvOE2tm3bzpQLJvHsk9Ma/Z4bw19Ll3PFVdeG9BotkZ07d3LD9dfy7UvXBF1QAYwGvc8j1YPR6/T1hmNGx0Rxy533cff90xBCHHJDCJQDj/FmosrIbPoE4e3bt+fRxx7jwYceYsGCBSz7+29+XbiE19/+EJfbhad6GaKoqBi3243FYqawsIjYWG++1H379nFc1y4MHNiftJRkoqOiqpdAWtGpY3tatYpptE1ut0cT1WARFhbG1998w+233caMz2bicrn4Y9Eipr/4FONOP+WQtn379GZ/SQmjR47w+3pCCJ576mFat+/Otm3baNvWd//YTp068exzzwFw7rmTQu4NIKX0Tv9zW1wRhpDz2muvMmlULr1zMkPSv1Gv8ytpudGorzcb05cfvUv+ngI8Hg+qqno9CFT1n+dSrTn+y/yFLFu1LpC3ERAGg4GhQ4cydGjdSd+Lioqw2Wykp6fXBEAMHTqEO265PqhLYJpLVZAJCwvj+RdeqHm+ZMkSzjjjDDZu2sJtN19Xc/y0MSO5+oZbA160VxSFvrm9WLp0aaNE9QDLly9n3rx5vLpysd82+MKff/1Nq1atSE1NDel1WiaCuJjQBTSYjP6NVA0GY73ZmBIS4klIiPepr6qqKpavWt9oG5qS2vYfIsIjqKz0bd3YVyIjIqjw4/8jUI5tL++DyM3NZfHixUx7/Bny8/8pKz3ypKHY7XbeeT9wF5OkxASKior8Ove2W2/lntv/E/LUf2+99yFTJk/5V25Smc1mHM7gRVEdjqIIv/J/KjoFj+oJig0Wi6XJy4cEg8jIyKCXJoqKiqS8XBPVkJKWlkbnTp3YsnV7zbGwsDCmv/QM1950B9u27wio/8SEOPb6UV31xx9/ZNu2rUy95MKArt8QVVVVfPrFN1x40UUhvU5LxWQy4XSFpji0qqrsKS6jc6cOjT7X7XJj1Adn7c9sMh11oup0Olm9ZjXR0VFB7Tcy0jtSVdWmLQj+rxJVgLi4OCoqD/1FnHDmWPrm9uT+af7XC5JSYrc7KPZDVP/3vw+wOxzccc+DfP/jT1T56D7TWJ545kVOGjGCtLSG/SiPRex2O0ZDaD7yr386n337S8ho3brRa3kutwt9kHyqDQZDQNnym4OHHnyQ1mkpnDL65KD2q9fryW6bxYoVTRtG+68T1datW3PNjXdwyx33sWDhopo4/Vtuuobvf5jrd78zPv6cT7+cyQUXNN738c033+KTTz4lJi6ZR556kaSMLgw5+XQeevQpFi1eUlMxMxC2bN3Gi6++xZNP+ZcY5ligqLCAhFahWV6RUtIqOoqcXidgjkmj03H9+PW3hT6d6/F4MARppGp32I+qoI4lS5bw6muv8vpLT4dkSerU0Scza2Zg5ccby79OVF997TU++/xzLBGtuPqmO0ht25VLrrieFStW4wlgmlBWXs6okaM4vhFlKg6g1+vp168fd99zD7/+Op+CggJuu+MuSsrtXH7dLcSnd+SMsy/kxVfeYP2GTY0eCUkpufqG27j1lltqTe7yb2HBb78SExXGhm17WLclnzWbd7NqYx4r1u/EEWDZjismDmXvwmcp//NFNn47DUW18tvCRT6d6/Go6A3BSQNos9mPmuxidrudCy+8gOeemNagz6m/nDrmJL799tuQ9F0XvmT+fws4FSiSUnatPnYWcD/QGegrpaw13k8IMQp4DtDhrQjwaJDs9hshBL169aJXr17898EH2bZtG19/9RWffvYpZWXlDB99JkMGD2DIoBPo26eXzyVyjUZj0KZdERERjB49mtGjvSF2hYWFzJs3j7lz5vD4My+iqiojhg5mxLDBDB8ymJSU5Hr7e2X62+wrKePGm24Kin1HI1JKdHoD096ci6Ioh9wKCou4/8pTuXJi3W5AjaF1ShxpiTE8+exLfPHVrJqsXwcy2TudLpxOJy6XG5fLxb59++nXNzgublarrVnySfjDPXffTU6nDkw8+8yQXWPggH5s3baVj2bMYOKkuvLtBxdfFnLeAV4EDs7+sBo4E3itrpOEEDrgJeAkIA/4SwjxjZRyrd/WhoCsrCxuuPFGbrjxRsrKyliwYAG//Pwz/7njAdatX0+f3j29Ijv4BI7v07tOkQ2mqB5OUlISkyZNYtKkSUgp2bx5M3PnzOHLmXO47j93kZqSXCOyJw4acEjmqXXrN3LfQ4+zcOHCYy7ZdGMQQrD07+W1vnbPPfewpzi4626tk2PZXeJmyoXnHhKtJ6UkLMziTfxjsRAeHkZ4WBjHdcsJynVt9qNDVBcuXMgH//uAlX/+GlJPFKPRyNxvP2fsWRewYcMG7r3vvpB7vvhSTmW+ECLzsGPrgIaM6wtsri6rghDiI+B0oEWJ6sFER0dzyimncMop3gCBsrIyFi5cyC8//8zNd/yXtevW0Te3V43I9s3tVbN+ZTQYAqpR7itCCNq3b0/79u258qqr8Hg8/P3338z58UeefvF1Jl44lR7HdWPEsEEMGzKIG2+9h4cefJAOHRq/K/1vYdXypZxzYkZQ+8xMT2BToYtrr7osqP02hM12ZFL0lkZVVRUXXXQhrzz3hM/+t4FwXLccFv/6PcPHjKdVq1Zcd/31Ib1eKJ3/04BdBz3PA46vq7EQYiowFaDNYeVHmovo6GjGjBnDmOrqoeXl5TUj2VvufJA1a9fWjGTdbk+z7LrqdDr69OlDnz59uPOuu7BarSxYsIC5c+Zw/S330DWnK1Mvb7pa7UcjZosFtyc4fqIA67bm88bnCxtVBjpYeJqpTEtjePyxx+jXpxdnjG26qrxJSYnM+uJ/DBg6huzsbE459dSQXSuUolrbMLbOHRYp5XRgOkBubm7zxJc1QFRU1BEie2Ak+8sv8+ndu3czW+j1uz355JM5+eTguqccy3Q9rid/r1vAeaf2D0p/QyY/ybmTzuaJh+8PSn+NQafT1Xi0tFRWr17NycNOaPLrZma04YsZ73DahPNZvnx5yFwLQ7n7nwccvNWcDuSH8HpNTlRUFKNHj+axxx9n8Z9/8vIrrzS3SRp+MHbsWL6atyIoseJ7SyooLa/kiYfvx2isvwJrKNDpdEGLzgoV11x7LU888xKuepLIhIp+x+dy5WUXcUMIlwBCKap/Ae2FEFlCCCMwEfgmhNfT0PCLbt26YQmLZPb8lQH3NfOX5WRmtG4WQYVqUXW3bFEdOnQobdtmH1H5oKm489YbWb58Wcj8VxsUVSHEDOAPoKMQIk8IcYkQYpwQIg/oD3wrhPihum2qEGI2gJTSDVwD/ACsAz6RUq4JybvQ0AgAIQRPP/s81z/6MVab/5uNz78/h9uf+ZKTRwTHNcsfmiuJSGN5+plneODhJ5k779cmv7bZbObl5x7n+huuD8nmcoOiKqWcJKVMkVIapJTpUso3pZRfVj82SSmTpJQjq9vmSynHHHTubCllBylltpQytElCNTQCYNSoUfQbMIgbHvvYr2WAP1Zs5vZnv+CZJx/mhaebzx07Pj6WvXv3Ntv1faVr1658/vnnnDv5cv5a8neTX/+k4UPo3LE9r4Zgye5fF1GloVEXr73+JovW7OHVj39p9LnrtuTTNjOD8yed3awlvhPi4yneG7zS26Fk0KBBTH9tOhPOu4Sioqa3+cZrr+Djjz8Oer/HbD5VDY3GEhkZyVffzGJA/77k5mTSp5vvGfTzi8uIi2vlc3uPx4PNZsNms2O12rDZ7f88t9lqfWyzV7e12aof22vOO9BHeXlF0FPohZIzxo3jr7/+YuKFU/lx1qdNWuF3QL8+rFy1ivLycqKigpchSzRXduz6yM3NlUuWBLfSpYaGr3z++efcfMM1vHzPubhcbhwuNw6nG7vDhcPpxuly1Tx2ON04XB7mLlrD3jInQwYPrBY6O1ab1SuGtmrhOyCONhsulwuLxYLFYiEszPLPY0sYljALFvOB18IOaheGpfr5wccPf56UlHRUZSLzeDyMGT2ajNYpPPLfu4mNbdVk+X679x3CW2+/02h3SCHEUillrbHF2khVQ+Mwxo8fz6aNG3hqxveYTKbqmxmzxYzRZMZkjvI+j7AQYTYTZzIxqeNg7HY7HTp0qFXoDhdBk8n0r0wUXhs6nY5PP/uM8887j+ycPthsNpKTk0hKTCAqMpLIyAgiwsOJjAwnKjKSpMQEUlOSSU1JJj09lcyMNn7/LVVVDfroWBupamhotChsNhsFBQUUFhZSUVFBZWVlzX1ZaSkFBQXk5+ezZ88etu/YjtVq4/g+vcho07omz8I/N3noMflPjS8pJT/O/Zk///yTzp07N8pGbaSqoaFx1GCxWMjKyiIry7c17T179rBo0SLy8/PR6XRHZCE7/CaEqHk85ZKpQc+LoYmqhobGUU1KSgrjxo1rbjNq0FyqNDQ0NIKIJqoaGhoaQUQTVQ0NDY0goomqhoaGRhDRRFVDQ0MjiGiiqqGhoRFENFHV0NDQCCKaqGpoaGgEkRYZpiqEKAZ2BKm7eKDlJ5hsGO19tCy099GyaOr3kSGlTKjthRYpqsFECLGkrhjdowntfbQstPfRsmhJ70Ob/mtoaGgEEU1UNTQ0NILIv0FUpze3AUFCex8tC+19tCxazPs45tdUNTQ0NJqSf8NIVUNDQ6PJ0ERVQ0NDI4gc06IqhIgRQnwmhFgvhFgnhOjf3DY1FiFERyHE8oNu5UKIG5rbLn8QQtwohFgjhFgthJghhDA3t03+IIS4vvo9rDma/i+EEG8JIYqEEKsPOhYrhJgjhNhUfe97Sdhmoo73cVb1/4cqhGhW16pjWlSB54DvpZSdgO7Auma2p9FIKTdIKXtIKXsAvQEr8GXzWtV4hBBpwHVArpSyK6ADJjavVY1HCNEVuAzoi/czdaoQon3zWuUz7wCjDjt2O/CTlLI98FP185bOOxz5PlYDZwLzm9yawzhmRVUIEQUMBt4EkFI6pZSlzWpU4AwHtkgpgxVt1tToAYsQQg+EAfnNbI8/dAYWSSmtUko38CvQcmp51IOUcj6w/7DDpwPvVj9+FzijKW3yh9reh5RynZRyQzOZdAjHrKgCbYFi4G0hxDIhxBtCiPDmNipAJgIzmtsIf5BS7gaeBHYCe4AyKeWPzWuVX6wGBgsh4oQQYcAYoHUz2xQISVLKPQDV94nNbM9Rz7EsqnqgF/CKlLInUMXRMbWpFSGEERgLfNrctvhD9Vrd6UAWkAqECyHOb16rGo+Uch3wGDAH+B5YAbib1SiNFsWxLKp5QJ6UcnH188/wiuzRymjgbyllYXMb4icjgG1SymIppQv4AhjQzDb5hZTyTSllLynlYLzT0E3NbVMAFAohUgCq74ua2Z6jnmNWVKWUBcAuIUTH6kPDgbXNaFKgTOIonfpXsxPoJ4QIE0IIvP8fR93GIYAQIrH6vg3ezZGj+f/lG+Ci6scXAV83oy3HBMd0RJUQogfwBmAEtgJTpJQlzWqUH1Sv3e0C2kopy5rbHn8RQjwAnIN3urwMuFRK6WheqxqPEOI3IA5wATdJKX9qZpN8QggxAxiCN01eIXAf8BXwCdAG7w/fWVLKwzezWhR1vI/9wAtAAlAKLJdSjmwW+45lUdXQ0NBoao7Z6b+GhoZGc6CJqoaGhkYQ0URVQ0NDI4hooqqhoaERRDRR1dDQ0AgimqhqaGhoBBFNVDU0NDSCyP8BAJAbJLUcHIAAAAAASUVORK5CYII=\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], "source": [ "tracts.plot(column='Max_P', cmap='OrRd', edgecolor='k', categorical=True, legend=True)" ] @@ -260,6 +568,9 @@ } ], "metadata": { + "nbsphinx": { + "execute": "never" + }, "kernelspec": { "display_name": "stable", "language": "python", diff --git a/doc/source/gallery/create_geopandas_from_pandas.ipynb b/doc/source/gallery/create_geopandas_from_pandas.ipynb index 47a7b62..2c8ff66 100644 --- a/doc/source/gallery/create_geopandas_from_pandas.ipynb +++ b/doc/source/gallery/create_geopandas_from_pandas.ipynb @@ -17,11 +17,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "jupyter": { - "outputs_hidden": false - } - }, + "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", @@ -44,11 +40,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "jupyter": { - "outputs_hidden": false - } - }, + "metadata": {}, "outputs": [], "source": [ "df = pd.DataFrame(\n", @@ -73,11 +65,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "jupyter": { - "outputs_hidden": false - } - }, + "metadata": {}, "outputs": [], "source": [ "gdf = geopandas.GeoDataFrame(\n", @@ -95,11 +83,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "jupyter": { - "outputs_hidden": false - } - }, + "metadata": {}, "outputs": [], "source": [ "print(gdf.head())" @@ -117,9 +101,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "jupyter": { - "outputs_hidden": false - }, "tags": [ "nbsphinx-thumbnail" ] @@ -151,11 +132,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "jupyter": { - "outputs_hidden": false - } - }, + "metadata": {}, "outputs": [], "source": [ "df = pd.DataFrame(\n", @@ -177,11 +154,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "jupyter": { - "outputs_hidden": false - } - }, + "metadata": {}, "outputs": [], "source": [ "from shapely import wkt\n", @@ -200,11 +173,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "jupyter": { - "outputs_hidden": false - } - }, + "metadata": {}, "outputs": [], "source": [ "gdf = geopandas.GeoDataFrame(df, geometry='Coordinates')\n", @@ -223,11 +192,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "jupyter": { - "outputs_hidden": false - } - }, + "metadata": {}, "outputs": [], "source": [ "ax = world[world.continent == 'South America'].plot(\n", @@ -255,7 +220,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.6" + "version": "3.9.1" } }, "nbformat": 4, diff --git a/doc/source/gallery/index.rst b/doc/source/gallery/index.rst index 9660e31..bb1f864 100644 --- a/doc/source/gallery/index.rst +++ b/doc/source/gallery/index.rst @@ -7,6 +7,5 @@ The following examples show off the functionality in GeoPandas. They highlight m .. nbgallery:: :name: nbshpinx-gallery :glob: - :reversed: - ./* + ./* \ No newline at end of file diff --git a/doc/source/gallery/overlays.ipynb b/doc/source/gallery/overlays.ipynb index a90403f..10be1a6 100644 --- a/doc/source/gallery/overlays.ipynb +++ b/doc/source/gallery/overlays.ipynb @@ -28,12 +28,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:09:36.236298Z", - "start_time": "2017-12-15T21:09:34.256318Z" - } - }, + "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", @@ -64,12 +59,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:09:36.526295Z", - "start_time": "2017-12-15T21:09:36.236298Z" - } - }, + "metadata": {}, "outputs": [], "source": [ "polydf.plot()" @@ -85,12 +75,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:09:36.756293Z", - "start_time": "2017-12-15T21:09:36.526295Z" - } - }, + "metadata": {}, "outputs": [], "source": [ "polydf2.plot(cmap='tab20b')" @@ -120,12 +105,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:09:39.796263Z", - "start_time": "2017-12-15T21:09:36.756293Z" - } - }, + "metadata": {}, "outputs": [], "source": [ "from geopandas.tools import overlay\n", @@ -143,12 +123,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:09:40.416257Z", - "start_time": "2017-12-15T21:09:39.796263Z" - } - }, + "metadata": {}, "outputs": [], "source": [ "polydf.head()" @@ -157,12 +132,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:09:40.446256Z", - "start_time": "2017-12-15T21:09:40.416257Z" - } - }, + "metadata": {}, "outputs": [], "source": [ "polydf2.head()" @@ -171,12 +141,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:09:40.586255Z", - "start_time": "2017-12-15T21:09:40.446256Z" - } - }, + "metadata": {}, "outputs": [], "source": [ "newdf.head()" @@ -192,12 +157,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:09:44.026220Z", - "start_time": "2017-12-15T21:09:40.586255Z" - } - }, + "metadata": {}, "outputs": [], "source": [ "newdf = overlay(polydf, polydf2, how=\"union\")\n", @@ -207,12 +167,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:09:47.366187Z", - "start_time": "2017-12-15T21:09:44.026220Z" - } - }, + "metadata": {}, "outputs": [], "source": [ "newdf = overlay(polydf, polydf2, how=\"identity\")\n", @@ -223,10 +178,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:09:50.556155Z", - "start_time": "2017-12-15T21:09:47.366187Z" - }, "tags": [ "nbsphinx-thumbnail" ] @@ -240,12 +191,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:09:53.566125Z", - "start_time": "2017-12-15T21:09:50.556155Z" - } - }, + "metadata": {}, "outputs": [], "source": [ "newdf = overlay(polydf, polydf2, how=\"difference\")\n", @@ -269,7 +215,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.6" + "version": "3.9.1" } }, "nbformat": 4, diff --git a/doc/source/gallery/plot_clip.ipynb b/doc/source/gallery/plot_clip.ipynb index 981385f..b341813 100644 --- a/doc/source/gallery/plot_clip.ipynb +++ b/doc/source/gallery/plot_clip.ipynb @@ -49,11 +49,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "jupyter": { - "outputs_hidden": false - } - }, + "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", @@ -77,11 +73,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "jupyter": { - "outputs_hidden": false - } - }, + "metadata": {}, "outputs": [], "source": [ "capitals = geopandas.read_file(geopandas.datasets.get_path(\"naturalearth_cities\"))\n", @@ -107,11 +99,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "jupyter": { - "outputs_hidden": false - } - }, + "metadata": {}, "outputs": [], "source": [ "fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(12, 8))\n", @@ -163,9 +151,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "jupyter": { - "outputs_hidden": false - }, "tags": [ "nbsphinx-thumbnail" ] @@ -198,11 +183,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "jupyter": { - "outputs_hidden": false - } - }, + "metadata": {}, "outputs": [], "source": [ "capitals_clipped = geopandas.clip(capitals, south_america)\n", @@ -234,7 +215,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.6" + "version": "3.9.1" } }, "nbformat": 4, diff --git a/doc/source/gallery/plotting_basemap_background.ipynb b/doc/source/gallery/plotting_basemap_background.ipynb index 75e88d0..325be15 100644 --- a/doc/source/gallery/plotting_basemap_background.ipynb +++ b/doc/source/gallery/plotting_basemap_background.ipynb @@ -16,11 +16,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "jupyter": { - "outputs_hidden": false - } - }, + "metadata": {}, "outputs": [], "source": [ "import geopandas" @@ -38,11 +34,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "jupyter": { - "outputs_hidden": false - } - }, + "metadata": {}, "outputs": [], "source": [ "df = geopandas.read_file(geopandas.datasets.get_path('nybb'))\n", @@ -67,11 +59,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "jupyter": { - "outputs_hidden": false - } - }, + "metadata": {}, "outputs": [], "source": [ "df = df.to_crs(epsg=3857)" @@ -80,11 +68,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "jupyter": { - "outputs_hidden": false - } - }, + "metadata": {}, "outputs": [], "source": [ "import contextily as ctx" @@ -106,9 +90,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "jupyter": { - "outputs_hidden": false - }, "tags": [ "nbsphinx-thumbnail" ] @@ -132,11 +113,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "jupyter": { - "outputs_hidden": false - } - }, + "metadata": {}, "outputs": [], "source": [ "ax = df.plot(figsize=(10, 10), alpha=0.5, edgecolor='k')\n", @@ -155,17 +132,20 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "jupyter": { - "outputs_hidden": false - } - }, + "metadata": {}, "outputs": [], "source": [ "ax = df.plot(figsize=(10, 10), alpha=0.5, edgecolor='k')\n", "ctx.add_basemap(ax, url=ctx.providers.Stamen.TonerLite)\n", "ax.set_axis_off()" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/doc/source/gallery/plotting_with_geoplot.ipynb b/doc/source/gallery/plotting_with_geoplot.ipynb index 80a8277..27fa2b4 100644 --- a/doc/source/gallery/plotting_with_geoplot.ipynb +++ b/doc/source/gallery/plotting_with_geoplot.ipynb @@ -22,11 +22,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "jupyter": { - "outputs_hidden": false - } - }, + "metadata": {}, "outputs": [], "source": [ "import geopandas\n", @@ -57,11 +53,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "jupyter": { - "outputs_hidden": false - } - }, + "metadata": {}, "outputs": [], "source": [ "geoplot.polyplot(world, figsize=(8, 4))" @@ -80,11 +72,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "jupyter": { - "outputs_hidden": false - } - }, + "metadata": {}, "outputs": [], "source": [ "# use the Orthographic map projection (e.g. a world globe)\n", @@ -109,11 +97,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "jupyter": { - "outputs_hidden": false - } - }, + "metadata": {}, "outputs": [], "source": [ "import mapclassify\n", @@ -139,11 +123,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "jupyter": { - "outputs_hidden": false - } - }, + "metadata": {}, "outputs": [], "source": [ "africa = world.query('continent == \"Africa\"')\n", @@ -167,9 +147,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "jupyter": { - "outputs_hidden": false - }, "tags": [ "nbsphinx-thumbnail" ] @@ -196,11 +173,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "jupyter": { - "outputs_hidden": false - } - }, + "metadata": {}, "outputs": [], "source": [ "ax = geoplot.voronoi(\n", diff --git a/doc/source/gallery/polygon_plotting_with_folium.ipynb b/doc/source/gallery/polygon_plotting_with_folium.ipynb index 17c541f..50cdc94 100644 --- a/doc/source/gallery/polygon_plotting_with_folium.ipynb +++ b/doc/source/gallery/polygon_plotting_with_folium.ipynb @@ -183,11 +183,6 @@ } ], "metadata": { - "kernelspec": { - "display_name": "stable", - "language": "python", - "name": "stable" - }, "language_info": { "codemirror_mode": { "name": "ipython", diff --git a/doc/source/gallery/spatial_joins.ipynb b/doc/source/gallery/spatial_joins.ipynb index 407441f..ccdbf39 100644 --- a/doc/source/gallery/spatial_joins.ipynb +++ b/doc/source/gallery/spatial_joins.ipynb @@ -99,12 +99,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:26:07.191542Z", - "start_time": "2017-12-15T21:26:04.391570Z" - } - }, + "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", @@ -131,12 +126,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:26:07.211542Z", - "start_time": "2017-12-15T21:26:07.191542Z" - } - }, + "metadata": {}, "outputs": [], "source": [ "pointdf" @@ -145,12 +135,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:26:07.921534Z", - "start_time": "2017-12-15T21:26:07.211542Z" - } - }, + "metadata": {}, "outputs": [], "source": [ "polydf" @@ -159,12 +144,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:26:08.271531Z", - "start_time": "2017-12-15T21:26:07.921534Z" - } - }, + "metadata": {}, "outputs": [], "source": [ "pointdf.plot()" @@ -173,12 +153,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:26:10.561508Z", - "start_time": "2017-12-15T21:26:08.271531Z" - } - }, + "metadata": {}, "outputs": [], "source": [ "polydf.plot()" @@ -194,12 +169,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:26:12.951484Z", - "start_time": "2017-12-15T21:26:10.561508Z" - } - }, + "metadata": {}, "outputs": [], "source": [ "from geopandas.tools import sjoin\n", @@ -211,12 +181,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:26:13.871475Z", - "start_time": "2017-12-15T21:26:12.951484Z" - } - }, + "metadata": {}, "outputs": [], "source": [ "join_right_df = sjoin(pointdf, polydf, how=\"right\")\n", @@ -227,12 +192,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:26:13.961474Z", - "start_time": "2017-12-15T21:26:13.881475Z" - } - }, + "metadata": {}, "outputs": [], "source": [ "join_inner_df = sjoin(pointdf, polydf, how=\"inner\")\n", @@ -250,12 +210,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "ExecuteTime": { - "end_time": "2017-12-15T21:26:14.191472Z", - "start_time": "2017-12-15T21:26:13.961474Z" - } - }, + "metadata": {}, "outputs": [], "source": [ "sjoin(pointdf, polydf, how=\"left\", op=\"within\")" diff --git a/doc/source/getting_started/introduction.ipynb b/doc/source/getting_started/introduction.ipynb index bb7dceb..66ca3b5 100644 --- a/doc/source/getting_started/introduction.ipynb +++ b/doc/source/getting_started/introduction.ipynb @@ -505,11 +505,6 @@ } ], "metadata": { - "kernelspec": { - "display_name": "geo_dev", - "language": "python", - "name": "geo_dev" - }, "language_info": { "codemirror_mode": { "name": "ipython", From 4444f1adb6e1bc2c6aaedc87be2b5627e7061799 Mon Sep 17 00:00:00 2001 From: donlo Date: Mon, 22 Feb 2021 01:42:03 +0900 Subject: [PATCH 115/316] ENH: add option to remove bracket from mapclassify legend (#1605) Co-authored-by: Martin Fleischmann --- doc/source/gallery/choro_legends.ipynb | 229 +++------- doc/source/gallery/choropleths.ipynb | 558 ++++++++++++++++++------- geopandas/plotting.py | 10 + geopandas/tests/test_plotting.py | 25 +- 4 files changed, 510 insertions(+), 312 deletions(-) diff --git a/doc/source/gallery/choro_legends.ipynb b/doc/source/gallery/choro_legends.ipynb index 5855a07..d1c3de8 100644 --- a/doc/source/gallery/choro_legends.ipynb +++ b/doc/source/gallery/choro_legends.ipynb @@ -10,14 +10,7 @@ { "cell_type": "code", "execution_count": 1, - "metadata": { - "execution": { - "iopub.execute_input": "2021-02-19T23:08:44.841969Z", - "iopub.status.busy": "2021-02-19T23:08:44.841058Z", - "iopub.status.idle": "2021-02-19T23:08:45.312297Z", - "shell.execute_reply": "2021-02-19T23:08:45.312723Z" - } - }, + "metadata": {}, "outputs": [], "source": [ "import geopandas\n", @@ -27,14 +20,7 @@ { "cell_type": "code", "execution_count": 2, - "metadata": { - "execution": { - "iopub.execute_input": "2021-02-19T23:08:45.317060Z", - "iopub.status.busy": "2021-02-19T23:08:45.316568Z", - "iopub.status.idle": "2021-02-19T23:08:45.758963Z", - "shell.execute_reply": "2021-02-19T23:08:45.759617Z" - } - }, + "metadata": {}, "outputs": [ { "data": { @@ -42,7 +28,7 @@ "'2.4.2'" ] }, - "execution_count": 1, + "execution_count": 2, "metadata": {}, "output_type": "execute_result" } @@ -55,22 +41,15 @@ { "cell_type": "code", "execution_count": 3, - "metadata": { - "execution": { - "iopub.execute_input": "2021-02-19T23:08:45.763272Z", - "iopub.status.busy": "2021-02-19T23:08:45.762726Z", - "iopub.status.idle": "2021-02-19T23:08:46.553322Z", - "shell.execute_reply": "2021-02-19T23:08:46.553826Z" - } - }, + "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "'4.3.5'" + "'4.4.0'" ] }, - "execution_count": 1, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -83,14 +62,7 @@ { "cell_type": "code", "execution_count": 4, - "metadata": { - "execution": { - "iopub.execute_input": "2021-02-19T23:08:46.558625Z", - "iopub.status.busy": "2021-02-19T23:08:46.558139Z", - "iopub.status.idle": "2021-02-19T23:08:46.792635Z", - "shell.execute_reply": "2021-02-19T23:08:46.793048Z" - } - }, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -205,14 +177,7 @@ { "cell_type": "code", "execution_count": 5, - "metadata": { - "execution": { - "iopub.execute_input": "2021-02-19T23:08:46.796900Z", - "iopub.status.busy": "2021-02-19T23:08:46.796472Z", - "iopub.status.idle": "2021-02-19T23:08:46.803392Z", - "shell.execute_reply": "2021-02-19T23:08:46.803920Z" - } - }, + "metadata": {}, "outputs": [], "source": [ "_ = libpysal.examples.load_example('South')\n", @@ -222,14 +187,7 @@ { "cell_type": "code", "execution_count": 6, - "metadata": { - "execution": { - "iopub.execute_input": "2021-02-19T23:08:46.953675Z", - "iopub.status.busy": "2021-02-19T23:08:46.953147Z", - "iopub.status.idle": "2021-02-19T23:08:46.997924Z", - "shell.execute_reply": "2021-02-19T23:08:46.998497Z" - } - }, + "metadata": {}, "outputs": [], "source": [ "df = read_file(pth)" @@ -239,19 +197,13 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## New default legend formatting" + "## Default legend formatting" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { - "execution": { - "iopub.execute_input": "2021-02-19T23:08:47.016396Z", - "iopub.status.busy": "2021-02-19T23:08:47.015792Z", - "iopub.status.idle": "2021-02-19T23:08:47.383077Z", - "shell.execute_reply": "2021-02-19T23:08:47.383580Z" - }, "tags": [ "nbsphinx-thumbnail" ] @@ -259,7 +211,7 @@ "outputs": [ { "data": { - "image/png": "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pAqKSWlhgoSgXJFEv1GWB15359PQ1NRkWrJkycKqqqpIY2Pjienrt23bZrvrrruqIpGIvHHjRu8vfvGLblmeef/++Z//uejBBx90y7LMf//3f3ddf/31vjez/2w0Nzebrr322lpVVaVEIiHdfffdQ5///OdnRGN+7WtfK/zNb37jVhRF5OXlJe6///6OhoaGGMDatWvrDx06ZF+5cmVg06ZNKX/MVVddVb1ly5asH/zgB50f/OAHx6cf80zICN6/QmZJWeTF//cUIhxm6wObGe2dFHTz187nxLYZzzwA63JMVKxbnLbs9drrHd/cPqvgnSrUlalatxCzCl09WElibFqaUkwVmKf8biaElSGi8vIvdnGiLg9Xvh3FIGO0GwlWzqzKZenxse+55jRJVbakCKnAlhLaxpYxtHwbRrcNh8XIkprcVLs2qTIPl83Eyz/fTnZVDrLLPKPCFIBRVlh84UrqV68EaUpqk4BIyEv4RBuSJGG0mphzzjzMRhm3S6OvaRhV1bC4zBjk5H4S5K8oxbSylHFNYDAptA/4kCUJSQIZCeQJcSwh2wwU1eSgaXplJ9kTwSyS3u5kYeKIx6O/8JM+5njEj9EUB0nB4nBgtQuyC3LJrS7EaDExdLILS0Uh2flZmIwK0biKOuVBm7gDsiRhNRt0K43ZwLVfWMemXx/EaFQwmBVybCYko8LB1hG6R4JYXDmc9R/34PnI9+g5rGugspI+CUp0eqBEj/i1DARomxJEF/YnqFhyNus+dz3jh0YZH5icPEiyRjjZhP6P//cYeWWFLNigR5EHPVHufvw/aN9ziPbDeqGP8b5+cismo41nyz2fng9sMBmoXlZD2wHdTz7eP8If/utnrL3lUkIuC/MrcujxRijOsVJd4GSs348j24JpSvu/v/amCEmhWzrLKlkVlKJpvFXhW15eHp1N6AJ87GMfq7zvvvs6N27cGDz//PPrH3vsMddNN93km7rN/v37LY8//nhuU1PT8c7OTuNFF13UcPXVVx8zGAxntP/pqKioiO/bt6/RarUKr9crz58/f8FNN93kqaqqSjM3rVixIvSP//iPJ51Op/ad73wn/7Of/WzZs88+2wbwuc99biAYDMo//elP07SXp556qv3666+velM3ahoZwftXyGxa8JEX9iFicYpqi9ME70j36xQLe5MvhPbDAzz6tVcoqs/D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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -280,22 +232,15 @@ { "cell_type": "code", "execution_count": 8, - "metadata": { - "execution": { - "iopub.execute_input": "2021-02-19T23:08:47.387398Z", - "iopub.status.busy": "2021-02-19T23:08:47.386835Z", - "iopub.status.idle": "2021-02-19T23:08:47.389204Z", - "shell.execute_reply": "2021-02-19T23:08:47.389948Z" - } - }, + "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "['[ 0.00, 3.21]', '( 3.21, 6.25]', '( 6.25, 9.96]', '( 9.96, 92.94]']" + "[' 0.00, 3.21', ' 3.21, 6.25', ' 6.25, 9.96', ' 9.96, 92.94']" ] }, - "execution_count": 1, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -308,14 +253,7 @@ { "cell_type": "code", "execution_count": 9, - "metadata": { - "execution": { - "iopub.execute_input": "2021-02-19T23:08:47.393317Z", - "iopub.status.busy": "2021-02-19T23:08:47.392851Z", - "iopub.status.idle": "2021-02-19T23:08:47.397099Z", - "shell.execute_reply": "2021-02-19T23:08:47.397634Z" - } - }, + "metadata": {}, "outputs": [ { "data": { @@ -330,7 +268,7 @@ "( 9.96, 92.94] | 353" ] }, - "execution_count": 1, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -343,22 +281,15 @@ { "cell_type": "code", "execution_count": 10, - "metadata": { - "execution": { - "iopub.execute_input": "2021-02-19T23:08:47.401177Z", - "iopub.status.busy": "2021-02-19T23:08:47.400591Z", - "iopub.status.idle": "2021-02-19T23:08:47.402935Z", - "shell.execute_reply": "2021-02-19T23:08:47.403405Z" - } - }, + "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "True" + "False" ] }, - "execution_count": 1, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -371,7 +302,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Note that in this case, the first interval is closed on the minimum value in the dataset. The other intervals have an open lower bound. This is now displayed in the legend." + "Note that in this case, the first interval is closed on the minimum value in the dataset. The other intervals have an open lower bound. This can be now displayed in the legend using `legend_kwds={'interval': True}`." ] }, { @@ -384,18 +315,11 @@ { "cell_type": "code", "execution_count": 11, - "metadata": { - "execution": { - "iopub.execute_input": "2021-02-19T23:08:47.419734Z", - "iopub.status.busy": "2021-02-19T23:08:47.419203Z", - "iopub.status.idle": "2021-02-19T23:08:47.781231Z", - "shell.execute_reply": "2021-02-19T23:08:47.781738Z" - } - }, + "metadata": {}, "outputs": [ { "data": { - "image/png": "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pAqKSWlhgoSgXJFEv1GWB15359PQ1NRkWrJkycKqqqpIY2Pjienrt23bZrvrrruqIpGIvHHjRu8vfvGLblmeef/++Z//uejBBx90y7LMf//3f3ddf/31vjez/2w0Nzebrr322lpVVaVEIiHdfffdQ5///OdnRGN+7WtfK/zNb37jVhRF5OXlJe6///6OhoaGGMDatWvrDx06ZF+5cmVg06ZNKX/MVVddVb1ly5asH/zgB50f/OAHx6cf80zICN6/QmZJWeTF//cUIhxm6wObGe2dFHTz187nxLYZzzwA63JMVKxbnLbs9drrHd/cPqvgnSrUlalatxCzCl09WElibFqaUkwVmKf8biaElSGi8vIvdnGiLg9Xvh3FIGO0GwlWzqzKZenxse+55jRJVbakCKnAlhLaxpYxtHwbRrcNh8XIkprcVLs2qTIPl83Eyz/fTnZVDrLLPKPCFIBRVlh84UrqV68EaUpqk4BIyEv4RBuSJGG0mphzzjzMRhm3S6OvaRhV1bC4zBjk5H4S5K8oxbSylHFNYDAptA/4kCUJSQIZCeQJcSwh2wwU1eSgaXplJ9kTwSyS3u5kYeKIx6O/8JM+5njEj9EUB0nB4nBgtQuyC3LJrS7EaDExdLILS0Uh2flZmIwK0biKOuVBm7gDsiRhNRt0K43ZwLVfWMemXx/EaFQwmBVybCYko8LB1hG6R4JYXDmc9R/34PnI9+g5rGugspI+CUp0eqBEj/i1DARomxJEF/YnqFhyNus+dz3jh0YZH5icPEiyRjjZhP6P//cYeWWFLNigR5EHPVHufvw/aN9ziPbDeqGP8b5+cismo41nyz2fng9sMBmoXlZD2wHdTz7eP8If/utnrL3lUkIuC/MrcujxRijOsVJd4GSs348j24JpSvu/v/amCEmhWzrLKlkVlKJpvFXhW15eHp1N6AJ87GMfq7zvvvs6N27cGDz//PPrH3vsMddNN93km7rN/v37LY8//nhuU1PT8c7OTuNFF13UcPXVVx8zGAxntP/pqKioiO/bt6/RarUKr9crz58/f8FNN93kqaqqSjM3rVixIvSP//iPJ51Op/ad73wn/7Of/WzZs88+2wbwuc99biAYDMo//elP07SXp556qv3666+velM3ahoZwftXyGxa8JEX9iFicYpqi9ME70j36xQLe5MvhPbDAzz6tVcoqs/D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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -416,18 +340,11 @@ { "cell_type": "code", "execution_count": 12, - "metadata": { - "execution": { - "iopub.execute_input": "2021-02-19T23:08:47.798671Z", - "iopub.status.busy": "2021-02-19T23:08:47.798160Z", - "iopub.status.idle": "2021-02-19T23:08:48.222135Z", - "shell.execute_reply": "2021-02-19T23:08:48.222630Z" - } - }, + "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -447,18 +364,11 @@ { "cell_type": "code", "execution_count": 13, - "metadata": { - "execution": { - "iopub.execute_input": "2021-02-19T23:08:48.238749Z", - "iopub.status.busy": "2021-02-19T23:08:48.238230Z", - "iopub.status.idle": "2021-02-19T23:08:48.597017Z", - "shell.execute_reply": "2021-02-19T23:08:48.597497Z" - } - }, + "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -492,18 +402,11 @@ { "cell_type": "code", "execution_count": 14, - "metadata": { - "execution": { - "iopub.execute_input": "2021-02-19T23:08:48.614466Z", - "iopub.status.busy": "2021-02-19T23:08:48.613950Z", - "iopub.status.idle": "2021-02-19T23:08:49.001364Z", - "shell.execute_reply": "2021-02-19T23:08:49.001871Z" - } - }, + "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -524,14 +427,7 @@ { "cell_type": "code", "execution_count": 15, - "metadata": { - "execution": { - "iopub.execute_input": "2021-02-19T23:08:49.005256Z", - "iopub.status.busy": "2021-02-19T23:08:49.004778Z", - "iopub.status.idle": "2021-02-19T23:08:49.009124Z", - "shell.execute_reply": "2021-02-19T23:08:49.009602Z" - } - }, + "metadata": {}, "outputs": [ { "data": { @@ -548,7 +444,7 @@ "(20.07, 92.94] | 42" ] }, - "execution_count": 1, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } @@ -561,14 +457,7 @@ { "cell_type": "code", "execution_count": 16, - "metadata": { - "execution": { - "iopub.execute_input": "2021-02-19T23:08:49.013353Z", - "iopub.status.busy": "2021-02-19T23:08:49.012793Z", - "iopub.status.idle": "2021-02-19T23:08:49.015087Z", - "shell.execute_reply": "2021-02-19T23:08:49.015680Z" - } - }, + "metadata": {}, "outputs": [ { "data": { @@ -581,7 +470,7 @@ " '( 20, 93]']" ] }, - "execution_count": 1, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } @@ -601,20 +490,45 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Categorical Data" + "## Show interval bracket" ] }, { "cell_type": "code", "execution_count": 17, - "metadata": { - "execution": { - "iopub.execute_input": "2021-02-19T23:08:49.032373Z", - "iopub.status.busy": "2021-02-19T23:08:49.031813Z", - "iopub.status.idle": "2021-02-19T23:08:49.594965Z", - "shell.execute_reply": "2021-02-19T23:08:49.595487Z" + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeEAAADlCAYAAABkrE+sAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAADv+klEQVR4nOy9d5wkZ33n/36qqnOa6ZmeHDfnvMrSKiAkEEggJAzYgMHG2NgG2z+H852Nz2BjOOPDdxwHJhmw4SwhkWUkhIRy2l1tzmFyns65Kzy/P6qnp3tmVrvKAvXn9dqd7uoKT1VX1+f5ps9XSCmpo4466qijjjpeeSiv9gDqqKOOOuqo4/WKOgnXUUcdddRRx6uEOgnXUUcdddRRx6uEOgnXUUcdddRRx6uEOgnXUUcdddRRx6uEOgnXUUcdddRRx6sE7ZU8WHNzs+zr63slD1lHHXXU8UuPvXv3zkopI6/2OOp46fGKknBfXx979ux5JQ9ZRx111PFLDyHE0Ks9hjpeHtTd0XXUUUcdddTxKqFOwnXUUUcdddTxKqFOwnXUUUcdddTxKqFOwnXUUUcdddTxKqFOwnXUUUcdddTxKqFOwnXUUUcdddTxKqFOwnXUUUcdddTxKqFOwnXUUcdrBqaU6Jb1ag+jjjpeMdRJuI466njNQACWfLVHUUcdrxzqJFxHHXW8ZiAtSUk3X+1h1FHHK4YLJmEhhCqE2CeE+En5fVgIcb8Q4lT5b+PLN8w66qjj9QAJnBpPvtrDqKOOVwzPxxL+GHCs6v1/AR6QUq4EHii/r6OOOup4wUhkS4hXexB11PEK4oJIWAjRBdwEfLVq8S3AN8uvvwm87SUdWR111PG6gpQSl0ulJ+J/tYdSRx2vGC60i9I/A38OBKqWtUopJwCklBNCiJaXeGx11FHH6wgScGgqTk19tYdSRx2vGM5rCQsh3gJMSyn3vpADCCF+RwixRwixZ2Zm5oXsoo466ngdwJJ2WnTdHV3H6wkX4o6+HLhZCDEI/AdwrRDi34EpIUQ7QPnv9FIbSym/LKXcIaXcEYnUe1LXUUcdS2OuNKleoVTH6wnnJWEp5V9KKbuklH3Au4AHpZS/AfwIeH95tfcDP3zZRllHHXX8SsOSkl92iQ5LSs5Mpjg8HGN4JoOU9elEHefHhcaEl8KngTuFEL8FDAO3vzRDqqOOOl5vKBkWsUyx/E7iVBUa/e4l15VIBAKQIMTcwspn9mJRvdj+pPxm7rNqt7dEEksXK8urBUNcDpWAx1F1XBvxTBHDtCrHyRUMRqJZAJr87spx6qjjufC8SFhK+RDwUPl1FLjupR9SHXXU8XqCZVmcnUwxnSxUljUHXfh9rufYSto0vMDaLFMzVC2XUjI2liKZKvDk0yNs29rB5k3tCAFKmShjqQInx5KoisChKhSqBEM29oXRK/ub36/bpbHn1HyeS9DrAKA34qc97H0+l6CO1zFejCVcRx111PGiIKVEl9DXFqRkWCSyJQCWd4Qq61SIdcHrJfdXtV7JMDEtiM5m+PFPT2BZks1b2zE9GntOTtMT8dPe5MO0LE5PpAAwLYnbIVDEvDXsdS/9mNQ0hY19YQan0qTzesVG1tS6BVzHhaMuW1lHHXW8KrCkRLckElAUwZruBla0B/G5VGYSeQolAyllDek+FwEL5l3MBd3kyFCc/WdmmUgXWb+xFSHA3+jBtGzX9Ny6mZyOVeV/zhYNAh7bqg16HIvcytXvGn1O+lpq65o1tf5YrePCUbeE66ijjlcEUkoMKVGwncnGQleyEDQ3ePC6NQ4OxABoCblrrOJzkXC1hSylZGAiRaFku5QNS6I6VEJBN4WCDppKT8RHW5MPASTL1nftWG2L1uu2a5aj0RzpdJHWVj9ejwNVgEBgmhYzM1nMdJGsYYGmMBbNEgm662RcxwWhfpfUUUcdLzuklFgSTAm6BEPKGssV5kl0Kp6vLMsVDSS21TwVz2Gai3OoRdVfS0pOjyUrbu05ZJMFEskCh3aPIQoGHc229XrkP09y6GvPYo7a7uj2Ri8XrY7g9zgwTMlUvMDodIahoTj33HeSeDyPEOBQFPSSwb/dcZB77j3JsWPTpOIFQl57u2OjiXp2dB0XhLolXEcddbyskGW380L6rKaoaks25HMylbCJuKibHBmMUTJMirqF26kSrErYEgv2pUhJo99FKq+jG1bl+GNjNsm2tAWYHEnyZNFk+5Z2nvzmPjLRHDx4ll//2ttobrNFAXtaA4R8To6NJBiNZtm8roWVK5oIBlxoZff0A48MUNRNLrt2GSXDwu9xkMzpgO0OLxoWbkdd/auO50adhOuo43UCWa7FlRIUJKm8gd+tvexuU9Mqu6EXlAYtjPValmRkJkM8UyTkdSClJORzMTKbraznrCK1Je1MRaG5wUNzgwfTtNBNiwNHpmgMucnldAp5nUy6xOhEmuRwwiZgoKEjQKDJV7OrkN/F8rYgCInH7QC3A1k1fsuSbLuom7xhoSliUUJW3RKu40JQd0fXUcfrCHqZEI+PJTk7meLU+Hzs9KVGrmgAMDKb5cDpWaZi2UqiVTWZVf4KmIjlKJRMkjkdp0OlM+Jnx8oIAY8DTVFwO7VFspYL9zMHVbXXX9Mf5ua3rGH5ijC9/Y00tfhobXBz5o7DlXUT42m+9YG7yVURvmlajMeyTCcKFEtGzb7TeZ2rr+onb9nWttetLbqOY2WCr6OO50KdhOuo43UIVVHIFg2mknlGo9nzb/A8MRrN8sypGcbLxFs0LAamMhUXMVQlUpX/CiFY3zPfljwcsMU6NE1hZWeIbSubatdnQULWgjHMkXKowWMnfXWFwOOgpc3PTLKI+62r6P7gVjqvXwbAW//mWrzNtjWci+b4/p/fRy5ZIJ3XGZ7OVPZbMiwm4jksWa4JbvSQyumYVRnW0rQ4dXKGbG5x0lcddVSj7o6uo47XETQBRrUZCqTzJQzTesnc0lJKxsrEHssUmU0VK585tHMfQwABn5N1PQ2cGksRDrgqy53niK0urB8u6iYuh7qonjiWKmBYEq+mcmxgGktKCkWTpKJgRHxs/bPLadvQOj8Wn4NQdxAZzSO6HBXtD1XYyWX9rQE0ReBxa0gJM8kiumEidQtLtzh6YIKSblHI6Lztzavr6ll1nBN1S7iOOn4FIaWkUDQwTQvDsJiezaJLiVGuj+2O+Aj7naiKIJnTOTISZzSaZWgmw+wFuFFLhnXOmOdEPE++7JqdTRXxOucJ9FxUVE2aQZ+LZW2BJWO+UsoljysB3TA5cDbK0GSq0pFJSkkiXWRwKkODz4EuLVZtaqtsl8vr+P1OjgwneOaZkcq+3S6NFe9Yh9IVtFfMlEhPZ1CFwO1UEcIusbKJ3yiPQXDgmVH27xmjpNsW/9mhOF/79j5mY3XXdB1Lo07CddTxKwhdSiwBP/7ZSb5z9yG+f89xxmezDEykyuIYCl6Xo+JCzRYMTk+kODMc59t3H2JgOF7OarYwq4hPSslMqsBTJ6bInSOW7HXZDjZFsUt+elsDODUFTVHmtZ5Zujxp7hgjsxkODUQplEuU5nDy1Cy7d48Sj+UWkfRssoBlSSbieU6MJDBMi8HJNMdHE5iWRSKro5uSgm6yelUzTodSGYdlSXbvG+eu7x1hdjZLPlEgGi8gozlkyWTi4CR3/OFPGDkwgZQSRYAmbCXpbFYnOpqklCgsabEnU0VS6eKi5XXUAXV3dB11/EpCQaCoClde1stsLE9BSganMzg0hdaCjtftIOB1oAjb1SuQjN6/G/whDMPJ935ynJ3bOrhoZzdmmYAVYStNDU2nsSTE0kV8rtpHSFE3yeTtMp2dq1oQQmBZkga/k0xOJ5vX8ZXVqKq94guFNnJFm+DHo1mWVYl1HDs+w9hEmv6++dgxQKFkMlQVt01kS5waTVRKhk5/7xFatq3C193C1NkEY+MpOlr9jE9liMbzdLf4yeRKTM9mycby/OSTD5FL5NHzBk6vg40f2k42mic1mUFsESAlpwfiOJ0Kh45Nc/p0FICAz7Hk95Erj6OOOhaiTsJ11PErBlsYwxbD8Pld+PwuCkWD+NkoumFxdDjO6u4GZhN5QNjZyAdOc+effJnNN26n99dvYfXKZtavbanZryUhX9DJFGz365nJFFPJPFv7w6iKbVXGMkVOT6YIeefJSALRVBHTkhwZiuNyKIS8Tnpa/SjKvDUqgWiyUNPIIZYp0mdZSAm794wyNpGmKewh0uKvcWFPxhYnl81JUabPjnPP3/8HnqCX6z7xIWKWHWtOpIq4nAqyZBL93jFyiTwrf2Mz+7+xj+REurIfT2eQ5KztTp44PsvGG1eRSBV49Kkh4on5se64uIvx0RTp7GLCzeXrJFzH0qiTcB11/ArBsCw78Ypad6/bpbGiPcjpiRQCODuewqEqldhp9yVr+ff0dzGKOt6GeS1kAeSSBdwBF4oi8LgdXLS6hbFohkSmxPreRnRpZwOPRrNMJ22RjWQ5W9gwTUZnshW3tyUl+ZJJo19UCLgangWWtQu4467DZLIlSmX3d19PA1BrSfe2BnCoCiOzWYxsCdXrIF0w8DpV4ieS6EUdfSbJQ5/4Opv+y4dA08jldTrbAqiTac6WSdc1mcXyOOi/qAuXz8HxXwzgu6qXwVSBDR+5iOF7TnLy0UG0nhCJqslCQ4ML6dLoWtlEz6omBILScJIT3z5IQ1eQdv9zdYSq4/WM85KwEMINPIL9e9CAu6SUfyOE2AJ8CXADBvARKeUzL+NY66ijjueAlJKfP3SWloiPvo4Qo3vHOP3YEL6wl4a+EM5NrYS8DvIlk3zJxNLKcd6SQSyWx9HbiNPjwjIshCpsV7KUfP/P72Pllb1c9BtbALvZQnckQHdk/tgGEGnwUDItpCyiKgLDtJiK54hnCovGminYluGcNTtn0frc85MFPV3kiUNTGFVlTZEmLxft7Jo/5/JfIQSdET+RkIdjI3HyJRNpSWJPjnL6Z0Nsufoi9j/0DPGJGK0RL5aiMRPNYUlJLuii6y2rmH5yhECbn+v+6DIsKbFKBqqmIlr9TKcKHJ/JsOldGxCKYFlvI7e8aTU/ue8kqqpw0SW9RHMlTEtilkdmFAwSI0nWXdNPa8+8S72OOqpxIZZwEbhWSpkRQjiAx4QQPwU+AfytlPKnQog3A/8DuPrlG2odddRxLjy5Z5RjJ2eIJwocOT5De0Zn5KenKp+vvmkVDSvCADjLZUJFw2L85CwTk3Ys1eXSWLeimR//t/vJTGd55/95C9PHZ5g5EyMzm2Pr7RtwuLQK8aVSBY4dn0EAF13UjaoqdIS9xNNFMgWDEyMJ8iWTkNdBUTcp6PNkapoW0UQev8/O0K6UR5WbODT4XTzy2EANAQNceXkvqqKcs7Wh06myeXkzozNpUqki6RYfDf0NuBNu3vKZ7WjNYabiJaBEQ8hNNJanpJsIr0b721YzNnSaM/v99G7uZySe54a/uJJ8Tidf0MnldA6ejaFubGOFlCzvC/O+d23G7dKITWU5+K/7SE9kCHUHSQwlycZyeBvcNPc14nQvHSuuo47zkrC00yLnMh4c5X9zk9dy/j4hYPzlGGAdddQxD8uSzKYLNPhcFTLNZEs8uXukuo89oZ4QsTY/2TLBOhvdCOzG8xLQFIGqKixbE6mQ8KEjU0ydiZHJlcjG89z1R/eglcuL8skC++4+ws73bAZA103+47uH0A2LHVs75g8sRKU8KV8yCXocZAoGpiUJeW1tZYE9ATg1kUIIcDtU1vWGKzXEAlugw+d11pz7VZf30t4ePCcBV7/3ux2MzuagO8jKj16CWxHEZrKMHZkmbEqsoJNC0aCk22O1TJOD3/gBRx7YR98d/XzoC79HvqWZmVMFwn4Xu67qp8Hn5NDRaR56fJBLd3bhcTtoDHkASJ6KMrZ/EmlJgi0+UlMZVIfKu/7nmyik64IddZwbFxQTFkKowF5gBfAFKeXTQog/Au4TQnwWu9TpspdtlHXUUQdSSibiOU5NpFjX3UBLmQAKBYMGU+JJFJGGhQL4L+pi43+7CmfJZOyRIc5KiXv/BCs2toKq2E3rSyaqIljb5GX26TEUp8pQTxDfNf04fnCc9EyOLW9bS6grhZE3kFWKUKOjyYr61f5Dk6xd22I3N1AVWhs8TCXyKMKWrpyLBydzOv6yuEW2LGkppU3Wk9Es3S1+EKJCpNu2dpBKF5FS0tEeYOXypprrkcqW0DSlEkee287UDaJVAiFep0quZOKYyRH77lEAhCJoXhHGsamFlJSk7vsFRx7YB8DggQG61nbjCngZmkqRLRpMJvI4VIXLNrYRCroXWejr3rCcE48MMnJgAqOc2X3JezbhC3sJRmr7DddRRzUuiISllCawRQjRAHxfCLEB+B3gj6WUdwsh3gl8DXjDwm2FEL9TXpeenp6Xatx11PErg1xOx+PRllRVMstZznPND5pCbmLZIkdHEgzNZAj7XSRnsszcfayyzZpb1uDwOzFMC8XvJNroppi1VbGEBV6vhqoIUnk7eWrs3tPEBhMANHevJZHXefNn3kjfsjBCESTH03zj/XczenCK048M4m8LcMnvX8T6tRGOHJtB102eeOA0N75tPSXdJJXME/Q60A07q9mwylFSS5KK5nG5NKRKzfmOxXKE/C6Cvnnr1+FQuf66FUteM8O0GJxOkysa9ET8tIW9lf3d8fFv41vZReulG+x1LYk0LOJ5HdWlYRbtCcXMySj+dJGWXa08/dDBmv3f9dd38xv//F7CATdTiQQhr4Op4SQ/GU6yeX0rgQWJVunZLKpDoeeKXnJtPjqu6GbZrn4yJYOWOgnX8RwQz7fThxDib4As8NdAg5RSCvvuT0opg8+17Y4dO+SePXte8GDrqONXBSfORJGWRDcsikWDoydn0HWL669ZTnd7ACnh5ESS9rAPt1NFEwILiVn+uU5Es5W6WKemYE1lefy//wJ/R4At/+0q9LL12eh3QsEARRAvx2elhFRex+NUMU2L/LFZTt9zksTZOLv++U1YqqAh6Ka3PYiqCB783BMcuucEAP5mL+6Ak3d/8RYUTSGTKfLUdw9z5kcneNPHr2bPUJzpmSybdnailC1Uv1sjUzCQRZNnnx4BYM3aCB6fE+FSEeV48OrOEI1B96JrVe1mnns9NJlioqrvcNDj4Pi37wckd3/qu3Ss7uLWf/9LhBBIKRk/GWVyKoPLqdKqqgx8+wDSlHS/dRUTbo1Gr8LRf7uHkw8+y9v//jcpnVG45Nc2svq65WRyJc5OpsnmdQ49PYKuW2xe38obdi2rGadlSf79uweZiebYubWDtSubaW7yviSSlUKIvVLKHS96R3W85nAh2dERQJdSJoQQHmxr9zPYMeBdwEPAtcCpc+6kjjrqqCCVK6F4NJ55eoToTBa/31mpNx2NZZnKFWlv9DIZz1MomazubsCgNv7Z3uTDtCTpXMkWpGjysOtTb8AKuSiVCXh5W5BIo+2yTudKxIfiJHM6/a0BCrqJQ1Uo6CbqqiZWr7qU6PeOMfPIEIFr+phOFQj6nEQaPFz1excBkvHDUxSzOrHhJNl4nkDEh9/vYvzhQQrpIo99dS+5TRFMBHrewFUm4WzRwK8IsrkSEafKTMnk+LEZAIIBF5FWH229jYxFswR8zkUa1hJITWVwB1xkizput6PSoQlAVQTFvM6zDx/j5IPPAjB0cIDJxw7RfuUm9GSByaly8plTZTSn0/X+LYx8fR9Giw9SReI5i3W//ia233op7bu24EyXeOyfnsDSTcJ9jWxc2cSzR6ZoavSiGyZe7+JEq+mZLCXdpCHk5tKdXTi0ei/hOs6PC3FHtwPfLMeFFeBOKeVPhBAJ4H8JITSgQNnlXEcddZwbqXyJg4MxDEvStbKJ2dlshYBXrW4GValISAJkCzqzyTzNIU+NRWVakqlEvqYrkdngwqmplIoGjT5HhYABiiUTp0PBpSoEvU5aGjyk8yWODicq6+h5g9O/OIr3oQF6b1qFfLPfrsVVBZd/aAf77z7KU/+2H4CDD57B7AiQSheJXNFD6aFBVK/G2rUt7D82Q3Q6Q3vQhVAElm6y+388Tmoig1AEjbeuJVU+lVS6SCDkRkpJpmCSypYIV1nDc5av0+Mgmsjz43tP4HJprN5mJ4NpqsDKGzzx1AjLfv0t5JNZRvbaVrucjXPxaltwZP2qFvY9PUzm2QmyzR4m00Vaf2srTp+TvkYPiUSBeLKAq6Mbl6ZQCjhZ+95NPPD5p7B0iz+4571sX9fK/n3juF0aPV2LS44ee3qYZKrIO966tk7AdVwwLiQ7+iCwdYnljwHbX45B1VHHryoGpzMYZUtVKPDOt29AEXbtrT/gIpPTOTWepGRYuBwKbofKmYk0M4kC6/rClf3MLiBgRYBTU9FNCwGkCwYDEyn8HvsnPpssUNItSrrFif1jbNzRTdDnoingIlpOfooPxQFwtfs5XdQ5+4MjbOxpILd/imMPnCHU5qdzQyux0SSjJ6JlxS1YvTbChst7UIQd590ZcrP7qREMwyKb1YnM5EhN2JaotCTqwSnkJlvScvWaZgKtfoqGhcel1RAwQCZTJJMtcXYgzr6DE0gJlqXjUgRFS6JJwTN7xwDIF0zW/d6vMfkHn+EPvv5RLrntCoRSjqU3eWk1JEceGqTnih6MvIHa7GU26ODt79hIY9jL7GyG737/KDPTGbZs60Asa+Tyf7qRZz/1CMfuO8X6m1Zz283rOHp8msZQ7TiPnZplaDRJe6uf9pZ6DLiOC8fzjgm/GNRjwnW83hHLFDkzkSKvG2xfEUEtu16llJw5E2XFimYAsnmdo8PxSmZxa6OH/tYAlJsGSCkpGRZHh2MUShZBj4NUXsfrUnFpKvFsbVnMivYgumHxxD8+xujecbo2t/Gmv7oaT8jN6fEk00+PMvH4MHrOwHFxB5OFEloxT0tKYeSRwZp9tawIk82WKF5hJ1pu2tKOI1ibqOSwJIlYjtnJDLn7zlBMFdBTRayynFf3m1ay7C2rEJqCadnnsm1Fc00DhFSqwJ13H6ZYMnG7NArVLmhVsPPSHo4dnKRQ0CmW5ickDVPTvOHXLqF19byaSDFb4t9/6/sYRZNCVTOFcE+IWz/3Zk4OxDgzEOPmN69h/4EJ9uwfpyHkpqUtgBc48pW9eG5ayab1raxbG8HnclQ8E5l4nv/80jPk2n286aa1tEZ8F3w/XCjqMeFfXdRlK+uo4xWAlHZSVcDrYOOyJgzDQlUVu2HBQJyDRyYZG0+zbFkTiiLIFGqbxBuGVelAJAGEwOlQWdXZwFQ8j2GaKIodHzUti5DX7pBkSYllSZrLltv4gUkARg9M8tS/7uW6P7mClV0NaMMp9hycAsCVm+DYE3uYGZziirddx5wcgOZz0BDxMX06RmNPCL8pmVVgdjZL+wISFi6Vlo4gA2djGBd34nSqeFWFAFA8GaV1ZZiCJaFkoqmCjrAHp0PFtCym43ncqsIjjw5SLNccN4U9jJWlJdta/GiqYPeTw5imRFEE69a1cPToNB1Fi7EnY3x/7894+2feSOsam4if/sY+MrM5uq/tR4Q9mEEXxd1jvOszN6I6VTZvaifod+F0afQ3eRmLFZi2JKlEgUYpaV7TzES6yGNPDSN9Dpa3BWkuW+2pyQwDPzvNTZ95I5Em70t+79Txq406CddRx8uMfWdncWgKKzobKstUVTA7m+WRxwaZmJrv/nPszCzCqSIQNVnBUxNpJgbibNnSQTAwT3g+t4P+9vkkocODUUCQquras7wtUCHwD9/1bu7843swDMmaG1ZW9t+1pb2yfnHSgbchQLgXsrkUq968HeFQSYWcuBwafO1Z4sNJxGiKyNvX0Le8iWKVR83v0sjrJiXLYsXKZo4cmiJfbvqQBlz9DajL513rhinJFgzOjidJ5koUdQvyBoaULF8Rpq0rBAI0l0o8mmOyqlsSlHsn53VaW3yIeAFTtzD1Enf/6b1c9bs7aeoPs+8HR2nd0sZEUzlOni5yzYd2opbFSBRFsHxFEwJ49o7DDD94FqEIei/pYvCJEW748yvpCLnYs3+cdr+L2XShQsKnnxhi5+0bWLutE0V58ZnQdby+UCfhOup4GVEyzEo7vaA3R0ujl0LR4Oxkily6VEPAXd0h0oYF5VhvyOsgkS4ydGyWaLkpfEvER3CNnWy0UDEKaYtjWBYVdaqeiJ+WRk9lPaffyY4PbicTdhN1qkQMC4emsPvAOL2/sZnoI4OEr+1Hy65HUwVhUWTi4CmEosCaNTiqMpeDrT6aLShYVrkUyEJPlcgEXHaQGvCGvWze1sGBZ21BPbdLpSHkwczpNLX6iYTcZAs6U4lC5Tq5HSqaW6PTo1XOw+1QWbYmwtjZOKn0bM017mgLcHYgXtm/M+SmlCwQ7g3x4P9+CmlJWlaECQTdbLiil30HJkilS/zi0QEsaRFA0Lu+lWg0i1QEnbeupeXNKylOZzj6jX0IRRBqD7B2Qwsul4JeMlndO99KceTAJFd/eCeqVm/PXsfzR52E66jjJYIlJUXDZCZRoCPsRVMVnJpKR9jLeCzHbKpAOOjmxKitqaw5FNra/EyWZSNHR5L0rGyiWCbhZE4nNpoiGsshpSRiweF946xe2YxQFRZmc5RMs/I6VzIrMVZLSorl0p6ZRI5kowtp2Q0Gjg7FcBkW+w7abuq2t65ifNpuC2iYkli2yCNf+D7ekJeLfksjtWIlfe/eiHlkmrGjMxz74XF6RlN0vGMdBw5NUiqZbNzUhrPBthJN08IyJc1hDy6XRjSWZ3I6w+aNbazosYksHHTb9dK6ZfculrLSLnFO5tIwLVQBuUyRSLOXmXJrQVUVxBPz9cKFoonvllW0KQpSEcgTdp/f6dMxOje2sWG9/U8vmZw+Os3xe04y8cgQrSubcIdchHZ0oi1vRCKZemSYlmVNrL2mgdjZOOMHJ9j6zo24F3R6al3RRKg98GJvnzpep6iTcB11vASQUlKyJEJRmEkVGI1miQTd9LX4K9ZjyGvXwK7rbWTvqVkMS9Luc2KcjOIIuslPpEl6nbh3zGsxZzJ2gpVbwNQPjiMUwV1PjnLJ+7fStr4Vp3u+ocJkNIfP5SDocdDV4q8kDp0+HWXvvnE2b20nuUBuMV8yGRtJVt6n0kWaGj1Ey0IYcta2OnPJHM9+66fs/C/tmEkYKcePV1/Tzw1/uYux8RS7y1nKp07Msm5HB2ZOJxXLMzCUWHS9WlvnM4ilhFzRrEhZNvgcUDTtvsgjKSiZ7J1M4fU6yWZKCEGFiLs7g7T1NDAxlmJ4KI60wB9wVSYSDe/fjG8khTGaopAqUEgXK20Zf/HXP0fP28ccPTRFqD1A069twIrlSD4yzNBTtrDImadGWLarj5U7Otn9nYNsun09Tk3B57HVvXa+cwO+qnKwOup4PqiT8AtAJltCN0wUYbd7E+USk8prIRCqqHHdAYssl8pyKc+vqrPEOnPbPWd+u5SVeOCS78+3/AI/M0yLdKqIbchIHE4VzaHanT6krFyXuexej1N9SZSEXiswq76ESMjN2ck0Y7Ec8WyRtT2NtIW9ZAo2oTo0lZ6In+GZDLmTUSYPTFW2bVjZRJNLQxF2mdHyja2stCSxPeMcsSTSkowfneF7f/Eztt66lqs+ckllW5dTZTyWq4lLJpMFHn7MTnA6dnSGjlW1+stSSqJlq1JKCXkd9cgsHU0exoNORNP8+v6GBppMheJ0msiyRhSHyhUf2olQBJ2dQdasaub0mSjhBjfTgwlbvKJk0tHmZ3wyg+ZQWLYszNWX99VkQSuKoCnoJjtjewSMvIExECexb5IzvxigfUsbcmWYbHlCIiUEG9y0dQZxBl3oQhDpDuGbyBAfiKO6HTgk6AIyOZ2A18nUyShTJ6NMn46x9R3r6N7eUSlfmoNlWqQeGODET05gGRbBFh/p2Szrbt9A01W9NDb7YM849/z4OBs3t7N5fSsAoba6FVzHC0edhF8AHnp8kBOno8+5zsXbO9mxo+s516nBeUrF5spSXux259rPOfd/gZ+lUkX+7T8OVJZv2d6BWqUD7HVpNSpHV61v41eHgkFBMjGbRVEFmZxO0OuonJ+qKAhFEPS6kEB8JMmxOw8xeTJKerI2ySi0rJFs0cBTThiaqylu2tEB39xfWc8dcLL1HetrttUUe9KXyBQ5cGgShyoYHk1SLJn4fE6WrY1gYgtcFEom5lSG+NNjBKXEVzQRBZ2RvROkysf0Rby0bm7DF/JzxVvfiJlyEn1snEKmCBLe9fmb8Lf4SCYLBIMurrtmOa0tfh5+bLAyJlUV9K1qpn9NBEsISqbF8HSGZR3BmklYR7OPom5SLOjs/fRjzJ6JAXajBblsPv46h6aIH9MxP8mVwPTecSaPzsBjw3hCLpTrl2EJgaxyV0eHEjz5jX38/H8+AUDn+hbGj88Q6W8knyxy7AfzGtyhFWG2/vUulHIDiLNTaTr6GnhLSxfD0xlOnYlimBbtrQEaQovlNuuo40JQJ+GXCU7XK3NpFyXnvErI5fWa98oCxSB1gdXxq0TAAPFsiaGZeS3nUpXb15ISBdtjcf9nHuHo/Wcqn/mbvRSrano9rX50FjseZiczdL15FfF9E4Savbzjf9yAUmVNGqZFoWTgc6kMHJtlZNR2Mff1NNDVEaBjRRMF0x6TboJ1Ksbuzz+FqiloLo1ipkRkeRihgLTsTORQxMfZn5/l8jfcTGY0j91aHG799BtpXh7G2+AhFs+ze88ok9MZfD5nRR6yvSPIslVNWIpAUWzSl+U7dSZVINLgqWnWIID+drsUyrx5DT//3BOElocJXdeP4tbwzmYxSxZFAaqUKJZkPgJui4BEz8Yr7/PJIj2Jot28YjJD18ZWsvE88dEUDs/8b3PsyDR979+CVTLJPjYEgK/Nz7Y/vJhS0EUBcGNbyYl7TjE+nUVe0okv4OJs2c2+cV0Lb7x6+blvjpcJe/fubdE07avABmw1wzpee7CAw4Zh/Pb27dunl1qhTsIvE5zOV0a2TjJPaC8HGV8oyS+0lCXyV45onwtTz04wfNdh3GEProCL0I3z3X9UMf8drb52WQ0JLyRbNeiidjoDGBYnT86CT4MrunnbB7dXCFgAiWyRM+MpSoatltXU4quQcDZXYmY2R7DRi6dcniPjeU7ccRgkKJqCVSbnmTMxuje1Mn58BodbY/yore8818HJHXBy5Yd20L2j015/NstdPziCWfbFpzMlwo0e+lc24fQ7KRgWlK3quSxnAKdDYTaZJ1fUSWRK9LYGKu0IAda9aRVHHh4guz7CeDwPUuJ/epzUSJJQRwBTNynt7EQw/xuTiTx6Yd7TAiALBqGBBOOnY5VlTq+DYMRPYixdWWaqggnDRMvrbPvIRbjXRyr62z6XRiZTZPI7hxjZM05oZRPZWB5i89b18Oh8TP2VhKZpX21ra1sbiUTiiqK8FubidSyAZVliZmZm3eTk5FeBm5dap07CvyR4rl/YuZqcvxjM7etC93c+5bVMPE8hpyNE2cV4IXHwXyKM7Z9g4rA90fU1eWtIWCjzmcw9OzpZcXkPhVSR2EgSX6MHUxWoLg1FUymZFtIC4VRxO1QEoBuSzq4QQpFIS6AbEgsTp6aAEMzE8xXLWwLOoAuv10GpZBArk4Whz7cTHP6Pw6TKFqueN2hfE2HiuE24MwNxIn2NTJ60wy092zpYc+0y+i7qwtPorswaTp+J8tAjAxUCnkNHVxDcWo0nACCdN3BpAiHsphHTyQKUuat4bJr+9gDB1gBSSpKpAp5dfcyUyU2Wx+30OVAUgdQUhNdZs39zMrv4S8mUyEykaxaVcjp6oXaaUyinPFz08WsoCmpEUlQpGfrys0yVr4+nzc/CIwX9LnI5fcmmDi8zNtQJ+LUNRVFkJBJJTk5ObjjXOnUS/iXBZDSLUfXA62z2opRjgHNLL/SXeC7qW7j8+ZB6c5OX9757c3kfAqdL4cxEmlTZTT0xmmRsfP6BeO0lvb/U/jO9aGAUTXbfdZhAk5eTj9llLk6Pg9RM5twbCoGiKYwespOxcokCXR/cymRZSnF3OSN368VdlVaAaIK2ZY0VacqDg7Zld8laOzFoRVcDyy2LA2djtmdEwNZLuzFMydE9dsZyKlGwy5JyOqqq0LWxtTwe8DR5uOy2dUhLgmFhWZKukkmwI0CwK4jMGTz9b/txB5w4vA5Ul8pMosCGTW0omlKTuOd0afj9TruVopREQh4a/E5mZnOcGoihKAoCC2IFUO1YeUZAqsWPs2SQSRf5yU9PUizMu+iFEAR6QiTHUpSyOv1X9FY+C3o0UnmD3Ghq0aVOTWVITS0mZ9WhoLlUpCrouH4F0aKBQ1PZ89QIO6/sRbfmvTiZoQTxkQQuvwMQBLqCZDVRGZemKaxY1ogUrwoPKnUCfu2j/B2d83FXJ+EXgDWrmmlr81dyomqMwLJMYKTJW0Nq1W7j57sMIJoqkK5yt7U0enAu8bXOJvI4NIVQuem4JW3pwnL5JWo5RrcQ5yLcC3V1u1wOnK55S+CZ3aPMRLP2tRFQKpk1688k8ucUNwh6HDgcte78kmGRzs0/mBUBDX5XWVdqzv29+PVCxIYTmD4Hajk7u3Je5etki05Q2Q9AJOhGVWrHmp7JcvD+w4yfGWfHuku4/k8uR0qJtEB1KvjLXXaWcssvrClViwaLUGtI4tSUyoQGQEhJNlfCV7YIJYJVXSGS2RJjszm8LhVVkWza0cmBPaOk0gUmpzN43BqhzgCj956u7Ovyv7kao9mWW5zr/atiNw3PlkuV0kWdAz8+zsq3riZywwoC5YtkUetqLkhZ0WZuCrhoCrkRQjA4GOdQuRZZkRLHg4O2WxfovLgLtSPAaNJ+v2Z7B6VkgUNliU0AbWcHrp4glpSMSBh5ZJA1ayLQYus0B9+wDK9PwzQlAsnada24I14Egqm7jjD89ChCCEo5ndFD0zhDbtrft5lsXkfk9Yo85uMPnrXH1B5gbCJNRzRPKTt/3SNNXm546xoA9p2OommClrCXgm7he41XKUkpVVPSKJEOgdBVQVwIYZ5/yzpeTtRJ+AWgq7uB58p7XsqVuxTJnYv4llrmcqo1JHwuUpxJFUhmS4S8DtrDPibiOZJViT/dER+dzRfe5eV8ru50vsRkLE/Q66ClcV43d2Q0weT0vBXStKCOcmgmY8cMl8C2Fc2VWOIcMgWdoyOJyvugx4Hf51owqnO9nsfRB8+SNkz8l3Uv+szlUGzJxAXIRUz6q+puwVaL+sZ/+xfe99kP0rOzs2b9hddq4Ui6t7Sz+z8OVd6b8QL45icwW7Z1EGhwUzJMigUDzZSoC7SZc7ECd+87QmdHkCsv68Xl0vC6HXjdDlobPDxzcqay7oZN7Tz1xDAA+YKBr7NqEqCAbPFVrnehZNLgdWJYVkUwo9HvpPdt6/CGvQSu6LYFNSiHIIom/qCbFStDSAtGZ7MUdZOSYeJxapVrNj45b6laQtB4RQ+r2gO4Qm7M/KIoONYCN7ek1k0M1E7iBJTM+btVONXyKUkmD06h5w0aOgKUypMFf0+QsUnbMxMMuHA6VdKZ+d/JnJvdStc2whg8Ns2gaXLVFf1sWdHEnpMzFA2LkFd5TYdYdMtqMyXtVCwyiSHpVoWccCjK5HNu/BzIZDLimmuuWfXkk0+e0LRz08m3v/3t0JEjRzyf+tSnnvNYH/7wh7seeOCB0HXXXZf8l3/5l9ELHcff//3ft3zlK19p0TRNvuENb0h+6UtfWrTtJz/5yZZvfetbESkl73vf+2Y+/vGPTwNMTU2pb3/725eNjY25Ojs7iz/84Q/PRiIR89577/X//u//fq+iKJw6derIhY7l+eK8JCyEcAOPAK7y+ndJKf+m/NkfAn8AGMA9Uso/f7kG+nrHUjXCS65X/pvM6SRziRd3TGpd3UsRcUm3mE0VKiU1i0eyNKxzELB9sCVKqF6CZ9upX5xl4OkRpk5G2XVxFwV1fqcCUM9xkNHZDP0L2tPd9envko6l2XpjbTfPC3Hhd2/roHd7B5ZukY7miD89xrV/fBm+Dj8gUDwa47NZLCTDX3mWfCJPz9X9eC/pxMqbmIZJKa8TbvBwzVX9KEvVo1uyIh0pqqz4UNCFUBWcjW5K8QJYoEkqmcYel0oiV0JTBas7gzT43ZV6Wkerj0LJZGQmQzFeYOBMjFxep3FXP45O2/JvaXBzuNwSUVUFyWSBEydmKBXNighIb18Dnf1hiqaFBFTA73GQriJj03yO+6MMper7W3jPVP9e5sbvDriw1avB3epnblqQShfpaPOjKIJkqoimCWai9gRysi/Eip0dqMdn6d7eQam3gdHBON/70VHedtMaLlrdwvBUGok9gfG8QlURzwdlAu5c4iPFlHRiWbxQIv785z/ffPPNN8efi4ABfv3Xfz1JJQvg3Pj2t78dmZmZ2e/xeC7Yzf7jH/84cM899zQcO3bsiMfjkWNjY4sGs3v3bve3vvWtyLPPPnvM7XZbu3btWvX2t789uXHjxuLf/M3ftF999dXpT33qU6f+63/9r20f//jH2774xS+O3XjjjZn//M//PPWWt7xl5YWO5YXgQu6YInCtlDIjhHAAjwkhfgp4gFuATVLKohCi5eUc6K8ink8wZxE9nGPjl2oiLqr+Low5L0U0C13cJb3Wy7Vwfb1ogEtDUSDocVasnPawt9IQvfo4i9zLS7xd6HmoxoEfHGX/D44RH02x8S2r6W0LMBDPVRKIOpt8dDb75s9VSmaTBQam0vS2BGoe6kcfP0p8Is7mN+8Et4uibncwUoQASaU94bnGJRXBlb+zk0K6SDaW59Ev76Z/bQR3udbUsiSjs1mMwSRTx2yL9vj3jrKy2cvpqXSFb1RVYFoSRbXDDgcOTtIYcjM8miSWyNPSHUQ4NZRy3KIh6CKRsl3FoVvWIA5P0xDxIRUIVUIJ9nkapqQh4K457+aQBykle58eYXRs3rLVqkIHbqeKpioYpsV4NEuzy8HufbZutKYpLO8P09wXolhFshLIpwpEx9MYhkWpZBIKumhvtb0PAnC5NDrbAzXfayDkxu11YlkWsxMZOtsCYFiYI0lE0YBAOXlLCJr7GtCcKl2b2ogNJxC9IUjNtzQcn8zg9zkRUtJmCcyMPSGQiqAwnOSaD2wnGPGx59QMXcvD6CWTg4cneXNHkP62IJPxHC2hWm/FawFlF3T7c61jSto1KaeFEOef+SzAnXfe2fQf//EfZ8+33v/+3/+7ac+ePb5vfetbw+94xzv6AoGAeeDAAd/MzIzjk5/85OgHPvCB+LXXXrsin88rW7duXfv//X//38SHPvSh+Pn2C/DFL34x8ud//ucTc8Td2dm5KL5z6NAhz7Zt2zKBQMACuPzyy9N33HFHw8aNG6fuvffehocffvgEwIc//OHorl27VgNjz+tCvAicl4SlbXLNZZo4yv8k8HvAp6WUxfJ6S9ZA1fHSYKElPDqbRVME4/eeJh/LVyyBkmHZ4UQBbZd14+mxLRQkhAMuWhprY9XJTNHOVEXidzlob/bNrT5/bCBXMBiPZpHYBtYcaRbLZDubLJDN6/i9DtrCPvQqEt55cTdOrwOkZHo0STajk00W8bZorGgP1TRyP5f1ramCoMduz2daFg619nosJPlFrn9FIV5O3ll/w0oam32Ewl5SWdvqczpUhFJN9YLWsJeOJi/agmu/9rK1lBpCpFE4cNbOIg56HaTKOsddzT7amuzrmC/qpLJ2VrjLoVbOtXl5uDLGVdcsq5k1zB0uX1X3ahRNZh4bhpXzwhWmKRkbS9LXF8YwLJ54erjGIBwbT9HdFSLU4KGrPYCmKRUSTmZLKMsbWX9VHyVLkszpSCnJTGXJ53ScLpXSsqYanWQJTE6kawgYQC+ZleFrmsqG3kaODsdZ2REi4HWwcnmYM2djmKaFw6XWJBjOYWYyy2CVvKVDU2qbW5RjtNXoXd1MMldCWpLDh2xDrtGCmZ+cpHVFE5Tj3C2rmhg7MMnsoL3/lku70FVBe6sPaVjkZvOkhK2E1xRwMfPDE5V49Rz8H9xe+V6KhsWWHZ0kJjPoJROPW0MRducql0OrlHS9FmBKGjl/DbFiSho1wXMrEC1AoVAQIyMjrtWrV5fOv3YtpqamHHv27Dm+f/9+99vf/vYVH/jAB+IPPvjgaa/Xu/X48eNHn8++zp4963744YcDH//4xztdLpf87Gc/O7Jr165c9TpbtmzJf+ITn+icnJxUfT6fvP/++0ObN2/OAkSjUa23t1cH6O3t1WOx2CvqzriggwkhVGAvsAL4gpTyaSHEKuBKIcTfAwXgT6WUu1++ob52oHB+K/aFJmGdKzFr4RFnUwUATj00QGJscWYoQGB5I3rzfJw2XNbMrd5TQTcr+7IC0HaOIxumxUx5PUXYLfRgfrDZokG2aBDLFMkVDDbv7MKyJApgKFSEIvJ5g/HJNMWiwbuu6j+v6T53PVxOjXV98+3vltpq4bWrPs9clWrSnBtTUQQN5baAS1n3DiEWiYwATCbyJGTtc606gW1kNstM0nbRx6vi8UGvo0LCcqmNy0iMpzFOxTjz8zO0rAiTSxTIzOYwiwadbQFm4zkKBXuSk8vZk36HQ+WD79vGA784Q0dfI5YlGRlKYOgmhw7NexrnJCTBtrgnR1M0dNgxYjOr2/XIZWzd0EprW7BmmO0dQT7w3q1889v7sMp209h4mrVrW4ilCnhdGm6XZsf1y9/tRds7OTMQR1qSZKKAt8GNKIcvhJDopxMosTzNpkSGPQhVEE8UFl33RRD2t1Z9+VzlyV/66DSedAFnZ5Czjw9XPlc0gbm6mWTc3n9b0SR572k6r+lnLOAgEnQTXyJRbuTZCZZf3c/2Fc2YpsTv1tC65ydE7Y0e0nmdZLZEo/+1YxFL5AXVTdnrPb/Jw+TkpBYIBJbIKjw/br755oSqqmzfvr0QjUZfVG2XaZoiHo+r+/fvP/7www973/Oe9ywfGRk5pFSFYbZt21b42Mc+Nnnttdeu8nq91rp163Lnc6G/UrigKhEppSml3AJ0ARcJITZgE3gjcAnwZ8CdYomsBCHE7wgh9ggh9szMzCz8+JcSFvOJV0v9Y4ll4gKXLbWtBBCCLcua7NrQMnasjOBpeA65vIVfxxK/sepV0jmdkak0+YJhSwhW/TOteU+VJSGd10nn9Zo4qih/Np0skDctFIdCXkr0JSyfZLr4omual7qec8sX4uTDA5XXirr0w0Ys+Jcr6Pz056f4yc9O8qN7T/CDnx7n+/cc49RAWfzBlMjydVlo/RR0syabGRZ7M8517NG94+z930/h9ruYPh0jlyjQvjaCc0cHoxNpVEWhsz1AS5OHwaF4JX7qdjvYtL2TIqArgq4V4YVJ1oxPZuhsDxAMuth5STeR7iABj0YhlufUsdrf59N7xnjo4YFF+Qder5Nfu3Wj3eqwwcNMNMvQSJzT40mODMWZjGVB2LXgBw9PMjScxCp7TiYm0xx5doyLVke4ZG0rF69pY+aRIY5/az+T3ztGUTeZjeURAno6g7S1+HA4lOfmh6rxKeVM5pP3n2H0/gH2/+PjdG1sRS1LXHa+ZXVNomLpdAyzZDJ832nCR2YJrAxz6SevW3SI2aEEqXie8dEkqXiO6ECc/T86Xqmv1lSFRr+r5vf5WoBALM56exHrVcPn81mlUmnJE/6Hf/iHyJo1a9atWbNm3eDg4CKSdbvdlS/tfBoDC3Hbbbf1rVmzZt2uXbtWALS1tZVuu+22hKIoXHPNNTlFUeTk5OQihv3jP/7j2aNHjx7bs2fPiXA4bK5cubIA0NTUZAwNDTkAhoaGHOFw+AVNLF4ontdUQEqZEEI8BNwIjALfK7urnynHE5qBmQXbfBn4MsCOHTte7HP3dYvOsBenU2NlZ4hjI3FWdTagaQq+5yDhhQ99y1p8+asdsLppMRbLkciWKh1t5uBbkHAipQRTopcMMCw8Lo1cUYeyTrK9zuIxGeUYrGFY5HI6Pp9z8UoL8HxumnMlkr33a7cCkI/nUVSFQl7n6PFp2lsDdHQElz6GIjhaZRmC3a+2pFskUgUKBYP2tgArN7SQzus4VFEz4Vh4vRVhx26RdqnYwolY5RhB+5oky+5Xy7CYODZDeH0EBGRzOtmcTmd7gIHhBD9/8AzXX7cCRRE1rl7DlHT3NVZaJc4h0h6g3e/Ews5CXh72sffxYfIFnY3rWhgcTtDX08Cho9NAitNnozQ2uLnlrevQyiSjGyYgiJU9DPf97DQbd3ZiOWBwKkODz46Vp3Iljh6aornJy2w0V/luKjXulmT04LylPhfeyOZ0nE61YhGrikJrxIeqKrbgixC2AEn5OvZ0BoknC3izBsH2AP5Gd0Xxa/TQFE29DZimSSrohHLnJC8wfXT+cTVzbIa1OYOCR+OKL9xE8VSU+Iko+XieIadgz50HAWiyJFN32xrTqkPlff/xTiZTBcJ+Fx1hL3q5R/NrAaogbki6eW6Dy1IFFxR/rUYkEjFN0xS5XE54vd6am/0v//IvZ/7yL//yRVld3/rWtxqefvpp3xe+8IWa+Oxdd901WP3+rW99a+LnP/954C1veUv64MGDLl3Xlba2tkVEOjY2pnV2dhqnTp1y3nPPPQ3PPPPMcYAbbrgh8S//8i9Nn/rUpyb/5V/+penGG29MvJhxP19cSHZ0BNDLBOwB3gB8BjtOfC3wUNk17QRmz72nOl4MXE67ZV3A6+Si1a2V5Vf+7k4u+8D2JbeJFUrMyGpSWGKlC/RALYqxStj7xHDNMlWB9ZvasSxJqWAQLRpICU3dQUQ5WamamFKpwiIStixJOltCVQRer+OCSj6GhuLkCwY9XSG8VftbSMQAnkYPliV56OGzHDs5y46tHbR3BBfucumTBkJBN8lUgUzGjiX3rgyTLRiVRgt+l2Zb2uWDr+wM2ecg7Zrh/adnUQWcPDCJogjWrI6wfl1rzTFOPTRIx/oWLMNi+kwMy7DwNLgxFlyKuWsZbvTMJULTHHBy9uQshbwd1zVyOm4JRSSRJg/XX7+KgdlMpRSrJ+KnIejmXbdtxFGunb4KO85rkzAUSyaT01mmptJ0dAQpFE3ODsYxyha4lJJQ0SR67xmaruxBNLg5O5kiVzAYGkigGxbRWI6ujgCpdBHDtJiMZinoJtbZRCVTvnlthDVX9FJIFpmdzDA6Ph9mKekmUzO1whtvvG4F7rIOtNgwn3v0vT+7l5F9EzXrJibTLHvnegbyBn6fk1DQRTSep/vm1Yz86ASKJui+fQOxRB6vy9bvVpaHaSvLVB6qmii4quqG29c2M5MpEssUKRomXc2+Sn35awFCCFMVcuIc2dEAqIKJF5KUBXDVVVclf/azn/nf9ra3pc+/9vPD6dOnXcFg8Lx1zB/96Ednf+3Xfq1v5cqV6x0Oh/XlL395QFEUBgcHHe9///t7H3744dMAN9988/JEIqFpmib/+Z//eTgSiZgAf/u3fzvx9re/fXlvb29zR0dH6Qc/+MGZ5z7iS4sLsYTbgW+W48IKcKeU8idCCCfwdSHEYaAEvF8+X79CHS8aofZzWHGAmcwzU36Q+d12F6OBidr4sYCqjj82ZamKIFtcsLMLeLC0RPwc3D+xaHlTZ5A5md9qTvV6F1vBs9Es3/3+ERQh+N0PXVQZ1VKIRXMcPT7D6YEo2azOujURwo0etmxqe46t4MTJGY7NWbiqYCaRKx9HVDYT2ERUjXCDm+nZbMXCb20Pki9bnn63hmFYKKqdoAO2tetY0MjCsCyyiSLT5faBGzfURuGT4ynGDk+RK1uAgYiPZTeuwN3fQCji56k9I+RyBk6nUhGY2Lalo3JhfV4XA2djFEsmLgnGvacpZko4vQ6u/qcbaWjwsMHnZGg6TWuDl0B50uJyaTXfsMOpsm51hKMn5o2ZdK7EgTNRCrqJJ+zBCwSLJtkDU0yWk6qMVJHVH9pWEe9Yv7Wdx39xFilhtKyYdtmufganbevc7XfgbfaSm83R94Zl6KZE9TvpXdOMN+Dk5An7e1rq0eJcoh2mNK1FBNy8owNrQwsjRYO+7hBDo0kyZZd0vslDw9pmnJd2M5Yuwqkowck0HV0hvE1edEtSyJZoa/ETifhwuzUcUxnMsTSpqTShVj+FsvWuG/OhCdOSS+YTvBpwKMoklkVtnTBgW8Avqk74Yx/72PQ//uM/tp2PhD/60Y9GwU78uvvuuwerP8vlcvuWen3gwAHvF7/4xZHzjcHtdssf/vCHAwuX9/X16XMEDLB3794TS23f1tZmPvnkkyfPd5yXCxeSHX0Q2LrE8hLwGy/HoF7rON9PK5PXyS7Qp1WEsF2R1fsRi122UkJb2MtCvJDZTfU4VUUhllnErAQW1GcC+NyLbwspbYGM+feLR7RQVWoOyakMhmEhkaiKUik9mZhIEapqAXf06BSPPmln+LrcVeL85zg/w7Q4cHj++XH0+AxOp8LmTbUVGQut4XSVAIPQbHnNpeBe4FL0eBy4R1JYmRIi5KKpeV6AJFMwapSjwL5GCwUcLMt2wc7hyNFpViwLV8qaHvznJyoEDLYyV+iiTlweB2v7wqxa1UypZJLL6fzHXYcIN7gZHIqzfLnd91dRBOFGD9NTGdz7JolmSqgOlTf8yWVEVjYDdqmQIhQOHppkfCyJpqlcdkk3ra21Sl6rVzVz9MQMDQ1u1m1qI2VaFXd0wbBYEfHz7P99pmabxHCCRLZUOeeCadHc7CWRyGMYknUbWilW3TsFh8KO/3Ilj/zpfYiq610wLEJtfpabFmdOxxYJdUDthM4oGsyciuJZ0FKw4/rlzIbdWGXSzeb1mt+cx+/E2NXHTHQ+mTaVLiFHkpiDCQzTqqi9rV/XwprVEQBWbO9ELxiE+xpBSqKpAjPJQnlcgnxRx+9+UflGLykcijKpSTm9hGLWC7KA53D55Zfnd+/enTIMg5c60WkpYn0lce+99/o/+tGP9jQ2Nr6sMeLXRnrYLxnOR4hF3eTsZO2DfeEDGmyyyxYWf7+tS5DwCxmLJSXBsqj8Ofjxee10YaLRpVf18eQjgwBce1U/Pd0hwH4ICUVw5/cOk8mUiM5mK6Ux1QgFXaxZM19e3t3dgPGovT/XEqIHC8m02l05B/cS20VTBSxLUsyXKOZNRsfOqxmwCB2JAvrpOONVVpZPVQldv+yc23Q2+VCqpDHz5Ti7w++sTMA8bq0mY/2aP7iEb37w+5V9hFeGKQKN5YmRqip4PEol5hhLFHj0ySE62wN4yjWz67e20z2U5Inv2pUeW25ew8qr7XEKYGw2y3Qyj6/RzfQB+3zu+sFRVi4Ls21rB8GQm6l4nmRR5/Kr+9GBYjnT3akolMrpXo61zYS6QyRH5q9nZiZL4fA0rhVNmIaJoiqYht1z1zAstqxrwedzYSHtCYmUzJ6J4fY7SQ8laFjeWCFJS0JzV5DB01HQLSqVzNJCEwrJyTSaQ2Xy2DT77jrK1MlZrv//rqBlRRiXz4nSHWTMo9Wor83M5miJ+MjlSvh9LiYmM7hcKi3N3op3AqA57KVQNGrKpI4emyYS9tIU8RFom5+wCCHoaPTSXqUY51BfGzHhagghLLsM6aW10P/oj/7oeZU2/bLgxhtvzJw8efJ5lUu9ENRJ+GXAK1EmOEdIx45PM15281WOWxY4CDR6MMpCDaHn2eEl6HVUGM+yLBwOlVzGrslUyoRgld1tXq/G6tWRRYIdjrmM1J4QoUyJoXKd5hwSyQKpbImgz0m+aFTa7wG4XOdvBekOOLn0qj6QkEkWOHRwchEJl3SToak0RcNCMyWJaBanS6Mh6CaRKoCUBCr9Ze3rVowXyAwl0C1Jq2Hh6AhSPB1nYoGb06yaQLkcCooi8Lk0HJqgo8lH0OeqkGsuWyKdt60xv1Pjve/ejNfrtBONmI9f+5p9rH3nBrJSUhhKsOq9m+345IJrq1cpjmWzOs6yO1koCr1tQQ7kdFa/bS2DPz+NRJKN5fCHvSQyRUZm7dhqwZL4/U4yZbnGU2djON0a7X0NGKbEMCUlKbGkHesuGqZds60IjHKTg6bVTfTs6qOQLNC8qRVnm5+De8dJ765VDfR5HUxMZZiayrBmTe0kcyKWp5Ap0bgmUuFLAZg5nd3PjtPqczHy1Wcr64e7Q8RGknyrPMkItQdITqTRXCrPfPsA8XLJXmAijfOqXkpVl64h6GK6HFv2emxXfLFoEjPzKIrtqXC5FAaGE6xa3sRVl/Zw/FSUE2eiXHtlP03NXhYm+zsUUREVmcNrqVa4jtc26iT8MuBczQNe3D5rrcC511NTGY6fWjofbvXqZvytttxiybAIeR2EvE58Hge5gkEqX8Lv1ljREbJHXA6JlgyLQ4PzPVjHTsySy+nouklvX2PFXW1akiuu6WdVV+OSTSEA/H4ngYgfd9iis7eRUrrImYEY6XSJnds7OTuRorfFz2Q8z3A5Xh1p8vLmN66qIaeFGcRgW2el8rjDrX4uuqzHFnmIZlEVu4I0XzQozmVkqwJfo5eRoQmCARcdHj+WZbfZq4Y+FOfZ/2O7WTWXSvul3Rhb22jb1oZp2e7lNVvbsdTyw1cIXJpCvExmAcWB3+MkmSkyk8gjgZNHppmYSBFu9BJu9LCx7Nas/i4l4PA60FaGGT85C70higUDxa0xHs3hVBXawl6EEOTyOpu2tqOXTI4dma4xblTVbp3YcF0//UWDZ+8+yuTxWW75xxsYma3NlO7pa+To4anK+1Cbv3IeigCnplLQTRTFzvzWTQOvS8UqmbicGm/+sys5eDZKsSwSo3k03vNrm5iYTPOj/6wKwUl7gA88PMDhY9MkEgU0h4JDU2ksX4CxR4bofNd6LGl7cU4dn8GyJBPZEs3b2pl91p4EeRvcxKqsb82pggKR/nClZAggPZ2lazLDZPu85Kjf76x4ZbKxHO1pHculUtg7hXdVE8XuYMULMzgS58xAjP7eBm68djltLX6klKgCzHJTFE0RSxJunYPruFDUSfhlwNI/wFf+V1lNWvmSSb5kEgl5CPldhPwu2vFx5kyUfWfiXHJJT2XdhYQqhK2vC9De6mf5sqaaI7ic87eRZUmGp9NEUwXWbWoHRVSEOopScvH2LnZs7URVBZaEsRPTnCi7hy1L0tfTwJtvXFXT4Uhiuy0nY7kKCQE1MXZVFZiaggkMTWdwO9RKwkwNFPv8JsuJQaGwB6+n9mcgqs7fMiVGo4d4utadXgRsk8geg7Oq9jid10lmipwaT1YsO0tKikWTick02exzCwwVi/PjPrp/gouu6EUqgsHpDPFMkVVdDeQNC0fAhQO44rrlGIbEkgY/+JFtHfauaIKSwdmHBwEYPzLNicE4BSlpCjgJeF04VcHjZ+MIAU1hL01hD06Hgm5YqJqCzOtEp7NkUkWGiwbdayP2BKBo0tnkoyviQwjB+r4wz562J4KrOhvQHCrd3Q3c+ta1fO/HdilPNj9/zvmCgWFa5cQyHeuYve3wY0N0X9eP1exFTxYrFrqmKkSrOipZC3Slo0MJera2M1z2VKgulcZ1LZgFHZHVaS6bro4GdyU5DMBXMhm591Tlvf+ybmJV8Xivx0FDyMnpgTinB+LccOMqulsDhHzOc1q6hmkRzxRpCj5H/X4ddVShTsIvAOejU5dDpa+c5DK3ripsxapqKIJFri2AWGqxWlDQ66wkxVwwlortLhi8lJL9hybx+hxs3NC2ZElQ9bKGgAvXgmYNhmkxFcuRKytmSYlNgqZZc4JblzchlHkVKrEguWvDhla6W2t1mufcyQDRdBFLSpqCHnTDrEnWWZi4c84yEVPWCI8siWoSNixyz4zBZc/VN2vxpR6ZzdQ0gqrOtNaXmhxUodoVXyyZGHK+FWQypzMZyxFNz98jed3kvp+fIhbLV7J+C0em8O6drHQNWnnTKrJl8goH3DSF7KSyt960hlLJwFmeSEk5r0D1ne8eJB6fP47jTIz2FfYErL1qMuTUFCgYlE7FOHosihrxYoVcIKGrI0C4xU+paNDQ5KVYNMhnSzSG3CTTRXTdolQ1wXn8bx9i459eRrJo0tLkRZnNUtJNisvDZEeShFY1UwKaV4SZPW17a0LtAaQlWXbjSvQOPynDJJE30FSFxHePIMvk7G/xEd7cQDKfQfH5sMR8iKZlZRiZKuL0Oyu657m8ztqtbazY2IolJQ6Xit+zdFhHlluYRtNFPE71NemOrrcyfG2iTsIvAOdLzPKUpfuqsdCdfK5lAM+cmFpU07u+t5GA5uTQD48xW9YUlkgKRYPWjD6n4FeRXVI8DrTZHLTVdv9Z+GiQ2AT26BPDhAJuevsaF42nmhQXZtDOJvOcXiJBaikr1LmgXKdi6ZoWEZ+rhoB1w+LIYIySYdaQ2chMlngib/cWFgrSsLB0E31BIsxSD8G2Rg+paJ58lfvZH3LXWL4A6somrvrsDTzyp/fha/bivKST6gpVbQnFrfPdEwsbWlRjUahhwc4WZtVPxnMLOz1iWbJCwADFgkm+KsYeKCfNAYR8tZPBuRp0oBLblMA7376Bu75/hGi5p/D4eJqWziDNET+aZjdpmDgwye7vHGBk/7yl2vvujYwZ8+fbsyZC0bDwld/PDiYYGk4A0Bx0UfA4UDSBZUp63reFY1Ua0sp/nqaU0+l7xzoCV/QwWSZsv9cBp2O0rAgzO5ggOZGmu83PRBWh+9wahapJYGY6S+qpEZ788cOVZVff9ib0WTcCwfCPTuBu8tB+8xoShklzeaIxF87wuR1Llh1Z5YmLqiq0Nrw2mwq/Wq0Mv/rVrzb+wz/8Q4cQgrVr1+Z+/OMfL8p4/spXvtL4j//4j+2WZYnqNoT5fF7cdttt/YcOHfI2NDQY3/3ud88+H53qd77znb0HDhzwSSlZtmxZ4Y477hgMhUI1T9YnnnjC85GPfKQ3k8moiqLIP/uzP6s0jvjUpz4V+dKXvtQ6MjLiGh8fP9De3m7MjfeTn/xk5/Llywu/+MUvTi917OeDOgm/BrGUoXboe0ehYHDs52fIVGVxdm1sZezQ1OINAK9Hw7PhwptbHT42fQ4Snn9d08NVsiQBB8rWwsLSJ8OSOJaKHRsW9/3sFO1tfkIBN4oqcDlVlCXUwErJAg8fqH1m9PSEUP3OCoHnZnNInxOn34HbqbGsLYDbpdkTkLYgXpfGkz8/TbjZi9OtUVii/MWhCNp3duDe0kZBVZiL4EpAy5QwBxMgBJpbpX1tCw5VEPI6GZ9IYVoWTp/ffmCXd72iP8yqZWEKpoWmqUzFcmXlp/n65Lm4vMOp0Nbiw5J2OZOe1+dJEkEJkEk7qQxFIBBoOZ2AlEhFIHxOGhwqs40egm1+VKdGaiRBuNWHJ+RG02yXc7Vwiiz/rwi7mQXY3ZHe9ta1PPToIA5NoGoKIbcDl6ZwdjzJdLKA06fR+6HtZP7nk8TPlPMIFnzHmVgeR7kfsp4uMlZ1z2SKBqXNrVx0+3qGxlOMV2XRa0gKZUt+8O6jeFp9cFWvvV1OZ+c/vIHcoSmmyxaxMZ2FYK1Yy0K4nLUkmS+kaV/RwdQpO8G3EM0z8q/76LphBTmPg86In1i2SNjvpq3BQyyRx+914qzyBr0Wrd5qvFqtDA8dOuT6p3/6p/annnrqeCQSMZdqMTg5Oal+/OMf79q7d++xjo4O49Zbb+374Q9/GLjlllvS/+t//a/mUChkDA8PH/7yl7/c+Cd/8idd99xzz3k7Ns3hS1/60kg4HLYAfvu3f7vrM5/5TMvCfsZ+v9/6t3/7t4GNGzcWBwcHHTt37lz79re/PdXc3Gzu2rUr8453vCN57bXXrq7e5kMf+lC8vb3d+Kd/+qdalZ0XiDoJ/5Jg5JlRpG7R2BGoIeH0AhWhGiz5cDj3A2NwOMF37z5Me5sfqSm4NZUN61t5eiZHd2ewplzDxtL2nyIEyVzthLUj7EVdYEFmskVmBuIky/WVE5MZJsoSi36fk9XbO+aPJCX52TzHjtU262pq9CBNSXQ4SbDBjWVKThyfYeXKZoRHQ8/rJHMlNE2tlPXo0Rz5n59FvbKX3LJwxXtQsQGFoJgsMns8imt1E4VirRXbsH+KPeWHdrg7xMX/emvls0cePEM2p7P5sp6abbZuaMXl1Igl85wYTnB2MnVONbBMTmdyev57dbpUxqpimYqU+J4ZJz68uNTK0+JD39WLGnRT3NnB2ku7EaqC25I8/LGf8lvfuR2A4al0pSEHgMepki+ZCAEb+8J4XBpCCDweBze+cb6dajavc2gwhrtM1KUyka9/32Ye+5tflAdYe17Hjkyx7ZJuDCGQcl66FKhcW2eLDzVZqGkv6JWC6sBMfipL2OcklS3h9ztR/E6Cl3Wj3HkEy7AoTGfoaPExFrCV1lLZEr2/vpGhbx+q7MPWHJrH0z95jD99+p2s8nthNkd+IsPpe05g6ibReJ6Dz46zvD+MUjL5+rf3kc6UWN7fyLVX9BMMvHYaNZwLr2Yrwy984QuRD33oQ9NzylRLtRg8ceKEq7+/v9jR0WEAXHfddanvfve7jbfcckv6Jz/5ScN//+//fRzgAx/4QPwv/uIveizLQrnAess5ArYsi3w+ryz1e9u0aVPlhuvr69PD4bAxMTGhNTc3m5dffnl+0QYvA+ok/EsCacHUqejihg0COje0UMzqzA7Ybuq1t68nsqMDzeNAXRDDKhm1hBJq9HD51f1LErbHpeFxa+y6sq9GTeoCRlvzzqUptIa9iyyGVLLI8MhiIoHFyWGYkmPHpnG7NbZf0m270UsmQhE89diQXWs7nKi4cqsPNTiVwe924NBsK2lmzzj5RIGRp0YouZcuheqO+Gh/9waEW1vUQk9WJQblEnmiZ2M0LQtjmhbZnI5hWBQTBVxV39VcxrywJM8+MczGzW04y8IS0rTAtFBcKlIKTKP2WSgWzHUaJEwvQcAAXWsixEIufF4HiVQBPV3C3ehm8heDALjLCUPFMzESe8fxtPpwbGqlqM+XHh0ciLGux86CF0JUvot0tsSRYfseWxiDF43z5yqzekUhDeza7T1PDBMMuGgKOPFTvpWkZK5AS5oWgYAT0/ChlwwMU+LTLYrdQaRuhxyCy8OkskVUIVi3sQ0TuwS4//IeCtEcs4MJ4vedpv8tqzDLMXQpBF1b2xktx4V1c/FzVZTPm7AHR9jD1rXNHP32QdrXRijpJsdPzmKYVsXd39MVuqASutcCXs1WhqdPn3YBbNu2bY1pmvz1X//1+G233VbjOlu3bl3xzJkz7hMnTjiXLVtW+tGPftSo67oAmJqacvb395cAHA4Hfr/fnJqa0ubcwheC2267re8Xv/hFaMWKFfk5N/e58Itf/MKr67pYt27dYlGDlxF1En4BWNjK0JKSmbKQ/VxsVgKtjR6qmetcdumZs7GKDi/SdtmJcheayjHKv/lCqkjrqiaS42mC7X6mT8VITmRoX9tcWTe0rJGi12Fn8C5wCS+MVSuaUnbHLrZqtbJfvCZRyjAZnkyDEDUdlBafVdUxFIHLsfih5XAoLO9v5Ex58jAHVRX0Lw9Xapst0+LUqShtLXY27vhQgnB3CMqW7WVX9fHkY4M1sdRFs96q97lyjLOU0/G6NXILBFM62gLMJvLkCwZbNraxYnmYfQcmuPmmNXg8Dn4+9QjRcly+kC6RGEvRtCzMqdPRipU3M5lmfcdc/FyQyBZpcXoral3Hj06zdn0r+WyJgYE4hmHxgd/YiupQmPa7GB1LVoUlFmbTLbqUADh9Tq756CXsPTrNVNlrceZUlNBQkpGHB/G3eNHK5HHkrqOMl7WhV9+0ioYbV+Bzq6TzBoqAwak0DlXB5VDoaPajCCoEDHazD4cqKBkWZlrn2MkZ/L0hMkNJhr93lP4/vJiRsmBNMOAinSkRTxTQZvMkvn9s0djTjV6Cm1oJtgWQJYNnnxq1m5hfMp8Q5yhZFL5rbxsvSgLX9YFpMXNillRVk4rY3gmSk+nKdVI0hcbOAPGxNJlEktbeDmITs+ilEg6XE+GqtWgLiqDzjcs5fKK29K+xwc3F2zoJhdw1FQGvZbyarQxN0xRnzpxxPfnkkycGBgYcu3btWnP11VcfaW5urlgCkUjE/NznPjd0++23L1MUhZ07d2YGBwddsLQqnxALp6TPjbvuumvQMAx+8zd/s+frX/9648c+9rElJxpDQ0OOD3zgA8u+9rWvDajqKzvB+uW4k15jWOizsaRcpJAF0NJ4YcpXjz4xVJNUA7aaVLLKNddQtmilJXF6HBQyJQqn5mt5s9E8resiTB2dec4ixe6Ir+anFg64WNvdwLGRRGWZpig0+B2LEql0w2JgIlWpIxWWZHowgdOl0tA53wQhNpUmVnaZW9LOgp46G+eN16+s2V9ba4Ab3xjAMi2ktJOLUukiQ9EsJdOqKIw5VaXGGvV5HYTbAxUSLgKXXdXP7ieGK1nEzgVlR8WSgd/jIDGaJDqnc5zV6Qq40DsDWKb9ozcNCyxJvkzMWza34/M52bB+XuP5st/czqlHhuZ3XiUwMYdkulijkKYogpZGL+ly4pCuWzU62wG/E0+5YUV3dwNXrmzhmePT5MXiTG/HUin1wNv/4Xo8DR66OoIcOmLnCeTyOrkWL01b2tj17s2Ve2MuBgow+NAg23b1gVvDP9egPq/jd2tMJ0tMJwuIggEOxe7SUYZTEZw9PjsvflH+rOWSLkYm03R1BBibSNe4n7OaWDIjsVqyUjg1Vq9u5sQCEpx0CDq2tTP+7ATHfniMlXkdy7RqCBjs7lPN/Y0Vz5BlWCjle3nV+h345DRiuUAIuwStMJhA65/PhVCEYOdF3ezY1oVDU3A51YpOdTSWI9z42ky+Wgp2i8Lz89ZL0crwD//wDzvvv//+EMDx48ePtre3ly655JKsy+WSa9asKS1btqxw5MgR165du3LV+3nPe96TfM973pME+OxnP9s8R4JtbW2lgYEB5/Lly3Vd18lkMmpLS8vzzubWNI13v/vdsc9+9rNtS5FwLBZT3vSmN634+Mc/Pnbdddc9R3zv5UGdhF8CvNi2FRfSdcUfcpP2OylmSkv+pvpvWkVgRwerUkVcASfpc+zSURZymIOiKIvKLtb3NeIpW8zVz0vdMCsEDPaEYGQ0iaYpWKZELf+NRrM1EwjgOcurlPLDWwVCDW5K07UTmoVzimxO5+DuUdasa6m4dAuWZOMl3ai6xTNPDnP4wARbLu+tbBNLF8kcnyUzm8Pf7CU+lsQsWYQ7AuhVesNCwMjx+Yd/Ip4nmSyUdaDtc9YErLp5NdnJDGPPjDF+eIoVV/WxYnkT/f2NIO1s6MNVE5u5c2iJ+HjT9SsxTQvTtDBMC9OQ9PaEaqz36OEp9AfO0H5lL1qqSFvBxNIE05pC1Kmw65/fRHEyw1OffhRFU3jHZ26gbZ2dhOd0qnS0+pHCdmWrmkIq4OTRUzMEJlP4vA7cIRcCiV4w2PmujXR1BhmI2c/GOanTOY+ztCSH9k+gqoIVqyM4gy6kJTmyb4JobN69G9rUSupsHPeqJsjrjI6naY340DQFt0ulUDTJAStuWEEhUaCQLFKI58nHcpUuW5oiUFVBoLeB6Zks8ar9CyFQOgNQFu0YfWqE5mWLEwkdHo3YcKJmWXQoQd+OTobLEx9pzf/qok+P0Vom4bDfxcqOIJ4lLF0pJT6f85yx/NciXslWhp///OfHgErbwVtvvTXxne98J/zRj340OjExoQ0MDLhXr169yNU712JwZmZG/epXv9py5513ngG46aabEl//+teb3vCGN2T/9V//tfHSSy9Nz8WD+/v71w8MDBw55wlZFkePHnVt2LChaFkWP/zhDxvm+gdXo1AoiJtuumnFu971rugHP/jB530NXgrUSfi1gAsg8exoCn/YQ8vyMJlozUSShv5G3Nva0S0JfieqQyWoKWQLOuZcw4CiQeqxEfIdoUUi97GBOBPfOkC4v5HLPritphHD6GyGTN6wSzAWxGkLZaI1DIupqQzBgKsiglENRUqazsS5/zOPVC0VdGxsYf2bV9euvMS1WOqR1xz2EpvO0uLSKjKafo+G6hX0O1SK0Tz5Z8ZQnCrCoZAPunn83/aTnLDH17WxldFDUxSjeZSq62FlSygHplBavTRHfOw7OMHQgrj11p1dNF6/nEag//1b8Ja1n1VNQS0/606diTJ2cpZIi4/W7gYCZTH/SIufyBIJ6wuNQ1M3KaRLjPznvJjE2tvWE17bTFOrn4IlUbuCXPVHl7L2yj7cVecQ8LsYrfIc9HQGiZfd4PFyEhzpEkZZy7pjYystLX6mcyWyBYNULE8qlscKumjvCmEVDTy6hVqwmL3/LM07OyioCrF4bXx1yqnS/ZZ+olUx87n2g8v6GtmyqY1jJ2Zo6W0gsyAE0OB1UDDsSUlRt/+tXtfKU48NgpS0FU2UkgUzOZp6Q0SHkjT1NTCyf5LuTW2MVLUaDLb4SE5mcHgUipl5Ay89ncHtd9Y0yAA76bHzltWsXBmhJeQ+J8kKIZbUJn8t49VsZXjrrbem7r333uDy5cvXq6oqP/GJT4y0tbWZAGvWrFl3/PjxowC/+7u/23306FEvwF/8xV+MzyVLfexjH5t9xzve0d/T07MhFAqZd9xxxxmAiYkJTUr5nDMhKSXve9/7+jOZjCKlFGvXrs194xvfGAJ45JFHvF/4whcid9xxx9DXv/71xt27d/vj8bj2ne98pxng61//+sBll12W/7u/+7uWz3/+823RaNSxefPmdddcc03yjjvuGHqu474Q/HLdUb+iWMqSXhQPkXYGsOpQKeV0uja2kpjJ0PDmVXgWPFTm1LFyjw0zfXCKqWPzUn6XvnPDIhIuJAsM7x6jlCoye3wWRVNw+Z00dIXI5g3i5e5LqiIIuDXOlvcXr3oIOxzKkgQM9sNr7Jmx+SlyGapDWUzCS8DQTTraAvPWqJQkU0VyeR2hCPrXRcgVTTLl+t/CySgje8ap7nbsa/KQjc6Pd+zINF2b2tj/5T1s+/T19iXO6xijaUYeHaL7umXkGzxo2nN7v3RLkhcwUyYbIewWjQcPTxGL51m9sonV3Q3z14IL64hllhY/ExtWN2FFfJWSKglsvmn1ooS3QMCJooDDodIc9pJIFWhv8dsZ4MKWWdzwX67k+ANnUR0KZx4bon19Kxv7mzh2YoYHn7HzV3Zs7aC/3Q4znE0UOfqz0yAg1umnWDLpaA8wXiZ7aVkU9jzLT3/6DNf819+h6Jh/tDidCjdcvxJFEbS3BxmfzZIp1N4rRcMCaetVz0FqglZTknlqtEbpqntTGxl/nqmTtmdx5OA8EbevaWai7MkwSiZtq5sxSiazg3Gcfiepcta5ogmcHieFdJG2Vc1s7msi8Bqt8X2xeLVaGSqKwle/+tVRYFFC1BwBAyxVOwzg9XrlT3/600WZ1w899JDvt3/7t6eX2mYOqqry7LPPHl/qs6uuuip31VVXDQF85CMfiX3kIx+JLbXeX/3VX03/1V/91XMe56XAeUlYCOEGHgFc5fXvklL+TdXnfwr8IxCRUi4tYvwrhoHBmO3OKj8vAo3uSm3sHFLRHKdOzVbVf4pyVmXtJZfANVf1YRjlB6uUPHn342TPphGWRAgFhKCUt+Mk0+VazGwsT+tvbWUyVSTc6CG8xDhL6WINAYPdr9ZYYIXkyi6/yROz3PlH/wmAJ+Rm7Y0r8F3dV1nPtCQlwzpnRvM5cQ5/vVpO1ppJ5BibzYGw47Rnj02jlEXxFUVwy01rKCWLHDs+Q2FBj19LQG5BCZFcImZqGQsUtSzJ2OEptrxvi/0+rzP2/w4TK8cRDSlJJAs4nb6Fu1pkmhcLBnd+73DlvdfjIFdOiFsqgWfhFD6ZKVIyLIQCCvZ5r3jDMnp3dGBZ0o6ZGxbhvkbS2nxLSkvKeYGWmgMIVi5vYmw8XYmlBwOuGiK75a1rWH5lnz3+ksnZ8RQgkdXtBLMlTN1Edaj4m+38Bs3rqPQxzpXL0NRSgeE7/pPTTx3jht+4ldTPB4lcv5wZTdAU9nDrLetqst0jDW6GZ2pJOF8ycVfV3grA69ZYcWUvp0ZSJKvGnozlaN/ezvCTo4RWNpE8FWXk4CS92zuYPl0V8pP2PT2HiaMzdP/WNixg9s4jFLMltrx1Ddd+5GIcS7Tv/FXCL2Mrw3Ph3e9+9/N8AL20+MpXvtL46U9/umPjxo258699flzIVSsC10opM0IIB/CYEOKnUsqnhBDdwPVQY3T8yuO++0/XlGhsv7zX1qWswsDZGM/Gat117759I84l3Fl9fbUU+rW7f8HZffMTwK03bGP1G6/l0MiZmvXmjpjOl5Al057jqkrFnebpCrEQP//s4xVrYA6tK5sWrZdPFhh5doJlV/Qs+mwpPJdvqHkotcgKBlDLD11NUSiZJpZlJ2fFqyx7n9eJw6ly2aW9XHZJD5lMiSeeGeZUWaBhKddhYYm2ic29DRi6yUTVpERaErXJgzWdJfrIEGPVXZL6GyBVZHomS7jRTaxKvlERVDru2DtacC1E9eva8S01HZmI5yvehjmsWtlEeAn94XYpOXA2Sr5kIqUkFs+hCGGXk/nmhSpaW/ycqEq+qhaAWVhmaZgW00n7Xp3LE1akZOIHx/nOvx2gZ1sHl31gGxvfsgZFU3h49wilosF0NEdE0/n5J75GYioBwJP/+QA7r3gTE98/RtflPVx324aKJGbl+EKgFE1MVWDmdXKZEg6HCs3ziYzBudafmsLyt61lfPcYqkul6/b1xARMlExa37eZmWSBwCWdeBwq8QcHaO5trHFNz8HV5KHl8h4myrXRrZd2I0eTXPv7F+P4JXMxv1DUWxm+NPjQhz4Un1PVeilw3rtP2n7RuWmro/xv7lnyOeDPgR++VAP6ZcDCB6lELuqcdK6uQheChQL1m96whWs/dhWrrlzB9/7yZ4ssPV23ePapEQCuuGaZ3dZOSsy1zQhNwRV0sfyNy4mdjOJv9ZP66ama7ZcqBQDw7ezkxN5xpJS4XBobt3XQ1xFkzfu2zZ04lmny0BeeIXc6TovAbqM4d+6KQHNrDO1eioKhZ5utIdAYdHNR0M3RwRhJKdmyvZP9e+1tsrkS6VSRYMgNQuAPuLj2qmVcvKOrUrusOlRKusnwTMZ2xS+IVbrDHnpvX8czn3mUtlVNTJbdmJ4WLwRdFCfTODsDNG9rJ3F8BiNnUG04Rx96isTwFL/xD79J+8oOnC47U3ZwMkUmr4Pz3CUN59WpnruQFwCBXfe6oS/Mk8+OceTgJM+WM4+X9TVWXL4ALZFaudKSPu/9cDo0LOw528ATwzzxjWdZ9keXUIjlmYrl8bhUgseijB2xPXGx4SQb3ryKpmX2ZLGl2cdTe2wPo+Fxkk3PX+9ULInLr1FIFRl9fJhDfQ00XdOPqgp6W4O4nSpnxpPEolmGBhOVzOlQyM2KBjdSFaCbZE05P7GVkkB/A+5r+hmrkqU0y+eaLxiEDTtTPwV0b25jpKyq5o54ab1hBTmnWiNp6e3ws/naZa8bAq7jtYsLugOFLTOzF1gBfEFK+bQQ4mZgTEp54JcpW/ClwLlIqxpL1gRf4GUyFwhqzJVXdG3r4A9/+n4swyQ9nWXv8RlmF1h9EubVqjSFq/7xjSimJOdS8V/eA8NJWEDC4d4G3vqJ6+z65rKLUwInh+OMlrNJszmdZe1BvF4ntXBgpos1ze6r4W8+d5mWsqAEyu1USeUFYoFXYXIqY5NwGZpDpSHkqaEun8dBY8BFvmiy+rM3IgADGCp379EtyfZPX48WKzD58Qftsd20mv2HpwgGnOSR6MsbCRRN4kemmfjxA6RmEwghGNp3mmw8g/j79+KqclsWSiaZgoEiBFdcs6yWSk2LvX/7EI89NMiTqoJQBA0dATo3taE6FDbeshat0jThnJeogupYcr5gcHDfeM12ZwfjjI8l6SrHn03TItzoIZkqoCiCQsGguyNIOlNi1foIB89GcagKo3vHmD0bx/3vB8msayaT1QlbksJsjq5NrWSjOeLjaWZORwn3NyKEYNvWDsYmUoyMpYjnJTd+6ncxcgWkYeLVVaYena4MOrCzk1TZNZ/MztLa6CVXMgl3BmntaeDA06NksyWSyQKnDk0R8DsZm0jjcqk0NXlp7w9TCrlY/ptbF6mleSoJeQ6m75uX8B05MB8jjlzew1jRgGJtCKapr5HO9Rcu6VpHHS8XLoiEpZQmsEUI0QB8XwixCfhvwBvPt60Q4neA3wHo6bkw1+ZrHQsfmktx60tpCVfrNQtFoDo1GrpC+JfQbV6IgqYQCjqgXLOq9TVw1Weu55G/uB+hCm79hzcSG07ib/Ev2naV38neI1MYuoXbreHxLl33Xz0+h1dDz5UfeAK6r+rlxI9OYBmLLUKzZFDK6TjL+/W6HZAs4A+6uPSaZVglk2Q8x9mhGN3dITzn6GAzf3EEHreGp6cBsMuE9NPzMUFTt5hJF+h5/xb0wQSalHS2B0gkC+i6Pb5g0IVnXYS9jx/h7IGTC3e/JCwpsRRBUZ8/R4ciauRFAVx+J49/3W5OH1nRRNdWW5Zz4Fv7mTwxi6IoKJoCAlp/Zwfhi7rnLmMNwcdmsrQniuSCLhLlMUWavJw8HSVXMAg3erAUKtnLpikJ+F2MTaaxLIluWJglkwIm4Y2trAs6GQHyWfse0YUgO5MlOpSga3MbxZzOff/jMTo2thJsDyIUwVtvWsPgYJyDhyZRYxrTDoM8tmBI56pOHIaFS1PJFHS0spvckpDIFCtx/aJhseXiLh5/0A69pNLFirRosWgyPp4mky7R0RVkeDBOW4u/pl7cLHuEfJNZElO1IZaRg5P07Oxk3LF0ZU5vfxi3/7UvO1nHrz6ely9GSpkQQjwE3AL0A3NWcBfwrBDiIinl5IJtvgx8GWDHjh0vsqL2tQkpl8qNOZc+1vmxULZQOYeCy4UT/fx6hiVpiPi46D2bWH/jKoIdATo3t1EsGqiawkwij8epEfA5mE7m2bylw9b+vairfKKLj3njf93FY1/ezfSpmP3g3tSKXjDouKwH5/Z2rtzVx+lvH2TsmVq39N47D9NxZJqL3r8VRVVoDroZnEqjKMIW3VAFvmYfE6ej3Hf/KW5+y9rnPOeFZGUsmMyYRYPBwYT9psUL2RKdQRfZKlGN1GiK+EgSRVl8zY/fO8Dwk7O0rGpCURVKja6KYMiF3NjVrs+nvrmP5KcfxeHRCLb4MfJGTenM09/YB6ak/9KeRftOHZ1m+GdnCLYHaLq2DzXoZno2y0w0x0wsx+qNbRQMk/iP77O1moslPG+8FCtkq6oZuomzPKE58OU9bP6bqxFTGU6U4+Ue3cLZFURaktRkupKNX0iXCJZViKPRHD+9/xRSQrMpMR4cIHzdMmLZEklssZnRVIHQqSjLN7QgNBWHhFzRqPltFA2LSMRXyS5f2OYxlS7imsnicNghgKawp1KbPDmdoas9QDawdGOd4d1j7LioC19fA2633dnM7dbwe500N12YkM6vEnTDUicTucaSYTmcmqK3NXjjDk2ptzJ8lXEh2dERQC8TsAd4A/AZKWVL1TqDwI7XQ3a0lJLLrl1W9R6GT82SThYrJTQArsPTOM/G5128wM+cKtlyTenck/Wd79hAYIEQfNuyNmaHZyrbffUPv8Rlt1+OtzFQq3bVHuCya5fV7M/pVLHmNHLOwQxer5NLP7i98l6oCrFEnsl4jqJusak/zMBE2m5H6NHYcFEXeUtyYjRJe9hLsCxYMEd6qkujkC1VZBBHD9pqTS07OnFiywB2v3cz7rCHM/fOuw2llDz9nYOMHpqiZ1s77eta6egKkMrXPlSzmRLJVJHv3HGAtasjBAMujp2YQVUVHJpCW0eQUJMXIaAr4q8QtUNTWN4erHwvpYJOIVWsJCz5lrDs5y7Ztt+9hQ3yreQnZ+FMApfDx6mHRzGqMrG3/9GlaMttkQePQ6WkW8isztQPj+PwLPHTqvryjJJZqfeOj6boWBepIeGpk1H2fe8oD/zPJyjlda792KU4vRpH7z3N2afteGxqIk2jKRmbnbcCXR4HBdMCIYgOTjJ23F53w6+/ifb2RloiPvqXhSmaFoPPjJKdzmJJiT/iY4vHwfTxGUbuPmjXlgMtyxtxehyMHprCVZX49dCjA5V7PaFCKVMif/dRuq/uY7zZUxFnSaaKPPvECCuWhRkYirN8eRP+Vt988qBLZe2WdnpTBc6ejpHPl3CUuzyFGz24nGqlcYjH7SCeKNAS8eEot1KUQCjsJtvmJ1elnOX0OLj8N7ey/W3rajt/vU5xZjLVNhbNtltyvkRpYCrd3dnkm1jeFnzJWxnmcjlx8cUXrymVSsI0TfHWt741/rnPfW584fZf/OIXw5/73OfawFbg+r//9/8OXXrppXmA22+/ve+BBx4INTU1GadOnTqnMMe58PTTT3s+/OEPV9oU7t+//5jX6615Kn74wx/u+tnPfhZyOByyt7e3+P/+3/8bbG5uNk+cOOHcvHnzhr6+vgLAtm3bMt/5zneGAS6++OJVhw4d8t17770nrrrqqhedIX0hlnA78M1yXFgB7pRS/uTFHviXFVJS6S86B103SaVrY7NKwaiU/szBUzTJL5QBXqKNnlAVDL02hiXKltlCzeqFY3FKhdISrt+afS2xzLJkxZ16ZjxFyTAres9zmeCJbIlEtsTOlRFUTdT2wDWe2xaUQOSmVXTfuJLBHx5n5In5hPqxQ1OVdoybfmMTviq9YJjvupNM2Q0fxhdIhDZ1BJiI27+F2FSGUtHuBtTe5qerq6Fm3cagmxOnoricCg0hd6XcZn6g9nkU3R6wTDztEbSch9SZOJ6gm7maIMuyWL6yqZKspKkKlmHyf9/y70hL4g64CLUHQEryJYP2N6/GqBr3Qk+Jqil4Qi7yyXJNtkNhdiBOvkzM933m0ZrPAdp3dlbc0ZVlHcHK99K2qpPETJrNt+0iq7jZ2NfAmjX23Pn4/ad55n8+UbuxgPGcTs/OTob3jCFNiVAUhGWx82OXcDZXpGUmg8upsnVTO/f+3J5QGQg6L+th9PEhiiMpWlp9JKp+D53tAU6ftbPZT56cpSNTpLUzBC6FTKyEv9GDdGn0r29BVQQn90/g9zgYn8pU2i06HQrTs1ksS1ZkMgGWr2yitTtE+EPbeeaTD9vXYE2Et33iOoKRJcrLXoc4M5lqG5nNLhLrsCTK3PIXSsTnamXodrvlY489diIUClnFYlHs3Llz9QMPPJBcKAu5YsWK4uOPP34iEomYd955Z/DDH/5w78GDB48DfPCDH5z92Mc+Nv2BD3yg//mOS9d13vve9/Z/85vfHLj00kvzk5OTqtPpXPSQuuGGG1L/5//8n1GHw8Hv/d7vdf71X/912xe/+MUxgO7u7mJ1PfMcnn766ZMXXXTR+QUOLhAXkh19ENh6nnX6XqoBvdaxsME62IlCC7GwUfzzgbZEballvYReo/MMLVtOYnE7ll5RWaKp/UIX+lKQgHSrtN66lu7b1mGOJBk/OoPiVFE1hWKqyKmfnGStz4mjqg9yzTVfcOjLruqjevpz+kyUqXIJ1vbN7YtIeO6hXizZspGzVepjbUWTaJUsZyJnAhrtYR/ZZ+xJfNem1oqlX4jmca6u6ivrUHF4HJSyJQrpIoV0EcWh4HnnesaKOuGqJLrq+6Pj2n6kW6Otr4GR+8/gD3twuB3MzPXnLcMTdNeQsEwW4JFhQpd2IQX42gM4fY7KxGz7R26j4aYUhmGRLRhYlkRakie+uoc9dx7GGXITvm0tUwemcIynibb5aDIlQ0+PEmz109gVZGivfd4rgy6KhsXIbBYF2Lm6hQ/8xlZGhuJMTqQJXd1PQ3eQQ98+SJOUtF2/nJFYjq72IKMTtbkL4+NpZmayBP0uovE8HW0BIh0BVI+GicL6bR2VOPEcIs2+Rd2sANo6gxQMC9HiY/Xb1jL59Cjv+NT1+H6J9J1fTuiGpY5Fs8/ZynAsmm3vifinHarykrUyVBSFUChkAZRKJWEYhlgqRHf99ddXSPmaa67J/sEf/EHF3fKmN70pc+LEiYWZoBeE733ve6G1a9fm56zqOaWuhbj11lsrN+ell16aveuuuxbroL7MqOfnP08sZe9p6mJ3l1hi2QXvbwlSX5is9fzw8ofiL3x89g+xZEnoDHLFP78JU9gGqH4yypkfHOPgN/ax9U8uQyl3IapuPl/9M/Z4NLtMpepzR9W18/oWu5unD0zSNp5BC7tRhKCrI1gJ6qfvO1OxPKshteeetWTKco8Dp6P4b19XCSMEkyUsKZmjUv+6Ftz9jWBJNE2hZ2UYKQQTzvl7pesd68g8NryIgAE0l0r72mZmhxJ4Ai6iw0n0ggF3HaVtbYTuS7vJZ3UUUW704XbVNE94/KlhBh4cIL5vnKb1Lfh3dJBVBMWZLAP3nKRjWzvx8nFTUxkaugKVbZ/+zKNc/k83UsSuMxaKwMzpTD4wQCqZx/WOdTSsjQAQPRun9L1j9F3Tx+DE4uRBh0MhUCZggPHJNOOTaRob3PSvb2FmMkOkyctMeYKkAaVoDiElsupB3t4eoFQ1QWu+fhnXfGAbviXqq1+vmEzkGqtd0EvBkiiT8Xxjd7PvJW1laBgGGzZsWDc8POx6//vfP33ttdc+Z3OEz3/+883XXHPNSyLEceLECZcQgiuuuGJlLBbTbr311tjf/d3fTT3XNt/4xjeab7vttsoPb3R01Ll27dp1fr/f/OQnPzl24403Li0J+CJRJ+HniaXKk7QlMjAXltk8H2iuxeSxVHbxhdbctzV6WdU1P6EUAlLZUk3ikmlJAh6tEueT0m4p6NQWu7eXOuxNf301ikPFMi2iZ+M8852DS45l4bbFOdUnwCgaxMp9cg9+/UH2PfoETreT5VdvpfdNV6KoClpVWVM+b5CJ5vCGvVhSIqUkV5Vk5fctnkTnYjlGHx/G1xmgqclLBvtaAISWqveVEnN0nkhM3cJVbqRx9IEz6B1+YuUSnIJhVvYFEOgOMjGZhrLLeyxfmhd5MUw6ekNMLOgAZCmC2XKXpzloLpW2Vc1Mn41Ryur0bu9g7PBUJT7d0BlALxo8819+TvvaSKVGNry8kabr7JwBR95AnIlzuhwG6H7LKsZyJTqDAcxyFvf4sxM09YQQiqCxM8TwsxP07eyk9ape3B0BnG6NYsHg7D1PMfEjg+y4ydShLA63RvObV2I0uIisj2BlSuQSBc5+7xjNt6wmVmX1+3wOtlzcjTQlp45NM1MlHBNPFLAOTZFM2VnSne0BlKxO+uFBJk7HiKxuJr0xgiEEkWYvnauaqudf9ET8hOoEXIOSYV1QK8OSYV7QetU4XytDTdM4fvz40dnZWfWmm25avnv3bvfOnTsXz3KBH//4x4F///d/b37iiSeWlJp8vjAMQ+zevdu/Z8+eY36/37ryyitX7dy5M3fLLbcsdqcAf/EXf9Gmqqr83d/93RhAT0+PPjAwcLCtrc189NFHvbfffvuKo0ePHg6Hwy9KYWwp1En4eUIvWUyfjdfoGKtn44RPl6Usy/92/f7FtP3tdTXb3v+/nkQemyknTdlPD3HzWlig5dzbvQH/u7qhqnPPwz85RdztsDsuSds6vP3WDazsWKyKtQhLuIHGZjM1rfYAQl4Hyer+w0WQBYNjBycxLYllSUzTIiQE69bMu4sloJRd6JmiidLqY+Pv7cSjCJqavAxPZ4hnSigC9MEkst13juzxeehxB7lElnguRuOKGRzlh7XP66Aj7MHYPQFIZs7EcYXcRK7sQQZdNU0FDh+d5pHHh1AUgaoqKIogWCau7FiaplSJVBXvWuXMXIdfYuoGDRL8GZ2pgURlnYljM5WevEXdrBAwLC5dq56wuZzqEvHnxec9ntfpfddGhv7fIQD8zR68IQ+jh+Yn8ZZu1SSIuf2uijxj9RhSkxkoX49Gv5OZqjh89sgMru3tyHQJmSgQag+Qi+dRVIVwV6hyvKIloa+BAlAqGkw+tI+7/vxrAHSs7KS/8yIM3aR4cArnyjBdl3Zz8FsHMMvnqlnSlhjDLv/asKOTQnlSt2pjG/15nQN7xirXJpkqIhS7bebYRJr2tM5sWR1t5sQsoUwJ7fJuVm1qq+wH7O5gLaG6C3ohnJpyQS0KnZr6olsZngvNzc3mFVdckf7xj38cWoqEn376ac9HPvKR3nvuuefUudzGzxddXV2lSy65JN3e3m4AXH/99ck9e/Z4lyLhz3/+80333Xdfw6OPPnpyrkuTx+ORHo/HBLjyyitzPT09xcOHD7tfikSshaiT8POEaVqMjNZ6TJqieaaPL0wMF6gL1HhKqQLxBbrL5hIJTblYkdRkrecmVDDJLFDKUsoKVbVHXfxsX7ppwGISXMppbVX11p3Dw48NsnZNrdBBoWRweixZ0x2nvzWAoijlzjj2b+vIV/bQflk3wUu7ySQKBBrdSAmjg3FCVXNM1S0rLu7Vt+wiUV6ezenInE7q2dpEy9GnRujf1Ue7JZkJOnF4HKQzpZryI7AzbOdQnEjTvK65IniihE3+//b+O0yO6sr/x1+3qjqHmZ6cg6QZSaOcEMEkgU00NhkDNsELXuewtnfXu9792uvfrr1e2/Bh7V1nL842BowDBmwEGJAECJRzmNHkHDqHqvv7o3p6umd6pFFCgXo9zzzTXV3hVnV1nXvPPee8pX+IN9ZvYnmLG7UzxECnCgLKZhdhd9voPzBE2ewiknEdfSxB78+3UvbueQiXjUgwTmV5br51RZkXIUwX7KGOXNfsdJMEnckUDXcsJraxi6G2UUIDE65pb4mb0GBavzfgxOV3ZvSRJ+81FU5S6LYRiiQZDiUoXlzOYHo+e+jgMI11BQS39DKQriBW1VJK147+TDlRALtvwpswvOsQT33ll5n3XXs7uf1fFrPy5mUYUvLk73cRNgyqWsqIhxMMd4yib+vHtqSM4io/DfNKcwIJJRJdU1h2QT3t+wbpbB+ltq6Q2jlFyJTBwM5+el7JLSwz2jmG/fd7ONQTouTiBpQyD0LAqqYSbDOcAnorUVHoHj7YG6w9nEtaERgVAddRl2GcLGWY/VlXV5dmt9tlSUmJHgqFxHPPPef/9Kc/PSX4a+/evfabb7559g9+8IOD4+pJR+Lf//3fSwE+97nP9U+3zvXXXz/2wAMPVASDQcXpdBovvfSS72Mf+9gUd/Qjjzzif+CBByr++te/7vb5fJmbs6urSysrK0tpmsaOHTvsra2tjnwyjCcCywgfJXmrZeUZ1OVbL+/oL896M6nIddzkaUresekMz2NH2/BUt3V6tezpYqEKoimDg69PyVbAPl48QZEkxCjJuGlAo3ZPxqU7XTuT0RR70ulP1efUEJlbxMhoHs9X1vn0rm/HXufPvA+WBHj5CTPCdu1//oyLb7wScIGcEM4obyqmfUvub7nsmmaGB8Zobx9FNySKInLmscEs9ZjbDImeyD/4KEtJWh/ZQtWCMhLRSd6KCi+d28xUsOLawql1kid9XW5V4NQltsEoo31hymYXER6OIoRg9vJKapetYLQ7yCs/2YzUBNX3LkMBOn+8GaEahMf66fzzRkqr6hh5pZ3SyioGO0yjfd297yU+nAJF8MQTO+lOq2h5ByOMpDubvXsHKRVQe0kjiZQO0oy4zv4qkrpBfVMR9Y0B4kxkH5S2lLLzW69OuT6JSJKDf20j0humcE4RhZfPYigYpyLw1sv9PRI2TdGriz3d+aKjx6ku9nQfS1AWTC9l2N7ebrv77rsbdV1HSine9a53DY0LL/znf/5nKcBnP/vZ/n/+53+uHBkZ0T760Y/WA2iaJrdt27YT4J3vfGfj+vXrfcPDw1p5efnif/iHf+j65Cc/ObBr1y7XBRdccNj52dLSUv0jH/lI77Jly+YLIbjssstGb7vttlGAW2+9tf7DH/5w/0UXXRT51Kc+VZdIJJQ1a9Y0w0Qq0tNPP+390pe+VK2qqlRVVT7wwANt5eXlJyWn2jLCR0le+zjTepQzs8F505bytmVmR50x+SUVpy6bLJ0H+aPGM0Y4pWPEUgiHilDEtOc3vteUq58Nv30ps1yfFPR1pPFO5ysdBOr9+T/MOnTt3cvoDsXRwmOENu9EUQSByiKGu4dYcukKZHjq/GK+qPeBvhCdvaHMfG/euIGs4C4tPEbbo39GfdtSaJyVs17VcIyuv5pu4/BghIJyL3aPDSEEQx2j2FdWU7uyCoHZoalbXoH+ejcyJTPHrZxfmpnKsG/tpzWrdnfUqZnBXEDD6lo8JR58lT4e/funcZd7ScwxO/tas8Habz4GfwJVUznv4uuQOlSUzMN5iYu6WXMZPBBi8MAOYm6N7nREvU8yxdvTv2cQ+3dfJ3D5LPZ3j1Fd5UezqWiagrvUjcehoSiCUCpFgdueKbsal7DqE+fy6gPrc78DVVBcW0Dv7gF6dw9wYbmX8iVVU665hcl4+tHkPGFFYBxvnvB0UoarV6+O7ty5c0p6D5jGd/x1Wp+3Ld9600kctre32++6664jjtynkynM1gQ+dOjQtsmfA9x9990jd99998iRjnEisIzwUTJ5hAMg8lmFPA/ifMYrn0GasXE9Cis8fmSZfl1V5KbY5zCLWMSTtG7oIGhTSZE2NKpAJgxS8RQlukQKGDeFWp7jBrwOdF1mZPbMYwpi8RTrX2glGktRV1eA6tQmdjSZcILqhWW4KhtY/YlrQcLY7j6i7UGEIrB57CQjCRQJnsUVCKD8/FpsJW5Iz8VjmMYoLiUjST19jQQI88ztukH9exahADaPjSqvjdRAkr/89M8A1C+sZ7h7iPLqWgJFlfTuGcgYrUC1j969UwNIB4aimRKKkL/josZ1iqRk9yN/ZMdzmwCIjoZYdV8xnsZaQCIGoozuGyKVNmijPaEcMYKCCi8d4fiUrz2VNTK3uTSS0Ykpgcn1kbM7EbGUwVj3GPFwgoK5xaSyR91NczIv9ZSOrcAgMaTg9DmY27Q8k6YFcOC3uyi4Yg6jAqaTsujc0oMioGBWgNa0+9znc7C82k8oy8sxboA1VZDSJcrsIuZfO5fOVzsYS5emrF5QRiKc5MJ7l+MpcrP46uYjxhi81Zld4e+pK/X29QxHA4mUbrNrarIi4Bo+1hHwOKdCynDt2rX7jrzWyWP16tXN7e3tdpvNdkLGQZYRPkqMYBz/q10TE61CkDQkRbUFGfED2+WNvLC7H7GnH4RAEbDhC/+LntQRioKiKniL/Fz/nU/SYeh07Dfnk1UJG//teYyUga/MAxIC9QXU37MMKWAWEwUytm5o55HfbkdN6+4GCl1cc9XcHHlZOek/We8LsurmBvtCvP7fr+SsU1jtY6QzN4ahbHYRffuHcPkd8P6VOZ/NTgeIbdzTTzI9ct3fPYaqCGY1l2QsU/H7ltLzamfmfU7Bj0iKzm191AXq0SrMEosBl5eDX3qeVFynemE5ndtyXcGN711MPJ8W7HA0J5hpnIoyDz0pHY/bRqEQjAXjaGkDqmoqC85ZxbxlK5ARJx1berA5NWoWlRMaDOMOuBnrC1N9cwvCroEw268FXOjjUd4KyC29SClM268IpAC9fYzhzT3s27Az05ZYNEmisJjhdA3winCSofGymnkY7QkRAPKGd45fw0mdusgkl3y2EV67dj+947nLi8up8zs4lH5fKjVWXfE2Xn3qRQAKy31ENVPHenIRjFgwQelIjNGAM/N9+ss8+MrMADxFFcSCCdo39VBX4QWfnYICB3OXVRFK6ngcWiY3fZzszq53URneA8Oomqlr3Lm9j7kXNXD+ew9bvsBiEjZVMY42DWkmvNWkDDds2LDnyGvNHMsIHyV6Qj/sgxLAEU6gZ/XMNU2hI10+cJxAVZGZnpM1CrArgpHO3OAdd4nbzKkFxk2WgCkBR1pWab6j7Z7lrdqVz3euCCrnl6LZVZ75yl/RXBpiSTn1dYU0NpqVo7wujeF0wYvxvToLc926ybZRUttzFXEAjIXlAHRt7KLqlgVmh6LQSfGsInp39h/Vmal50o2qK310dgcpLXHTPxDB73MQCieIvmJGIl9263WMHhj/Psyo4mQsRcfW3pwiHaOGJBybuP4umRu8pj/fNuWaVs4rIRlNsfrKi/nrY08DcMEnb2U0PWp1OFVmXzqLxgvriXYGQcDItj6Ck++H1lHG6v2Zkd/kAeDk4472BLnov6/JvBeGQbR9jJ62EXSbit9nZyxofl96+xiVCR2bEBxYexA7pVxzx3tZ+IlzGVjXya5HzQ5EeCiKp8hFZDSCkTLdw4lYEId0UjgaJ17iwuGxZ+aua5ZUZObUh17rQr2knsbZxRn3fTyloymCVFbb9bjOwG934an20/qXAwT7wlzzDxfxwg82UruonHd84vwp36+FxZmIZYSPkrz5upOYPHs/U5WlvJIP+QKo8i47dndc3jna/FFadO+cCEhUNIHiUNixu5+SIjfzmktwT6pUlK9Z7gIHxfUFDLaNotoVShuLGO0JZdZ1B5wIMeHWdXjNCN3J87HL7l+J3evAaVcIRZNkB48LIVCViaAwVTHzUAHs6YIehiFxOFSGRswYj9HBQTSKp7TX7rYx0pVVcnLS55Pnw/PNCcfTCkVeRxlCCHOdrHkMr9dh1nz22lHnmm0QB4fpTUcujx+089VO6ldVgaaY10uCvH0R7Y/swEjouPwOvCUecwQuJZpNJbZ3EDGnaPzC4GoM0NU6DIMRPG4bNR47yZEYbU/vN9tS4sYdcBIZjtF47TySTjvllzZmjPBIdxBPrc6mtWtx+92MDoySfC7BNR+4g/07zWtZUD5R6COUVWYyNBDh3CWV4LOb6Xe6QSopKShw5qTMJfcNceCF3KnCnc8e4L6Hb0Kzq5b72eKswTLCR8lMyzMe6RGh5EunmGHQV74H0PE8kmYaCDa5fYZuRnlIiangs+4Q1ZU+yhsKEWlDN8VgxVKEggkGD41SWOUjOhanZ/cAqk1BSRc9GesMYkMwPvtpT+dRDxyYiMUQmoJjcRnBlA4p06WpG5JYUkcmUuzf1Y/bbScaS5JKSQoQxCJJEGTqfAvTY8zsd15E45qVqLEUw8/1ZuZUCyq9+Eo99O0fmiJLmHNZsozu+JTEZKJjZgcgHkzQuLCJ9t2t7HjkWervuI5UyqCyKjeQTEpJoidM/Yoq9JTBYOtwpmRlX3+YbD+IqgowDFSbQmgoSmgwt2Y5mkL1uBE2d555qYQTHHp8N0V1BVTOL6F75wDh4TBRtYvm916JvdGs4hcDmq5p5uCf91M5r5Sunf2cf+m1HNj/Bn1tvVTOqWJwRzBzb8bDCWxOjeLmYpKTXM0Ov4OYBJnU0xrCDrwLyvC5bOiGQSSu424qQnOoOfnQhVW+HCUqC4uzAeuOPkqONBJWVDHFSObrtI8nhR+JvKPjfMuOIkVy8vZJVTDvhvlIg3SxEYOkLrHXFWSCnQxD4nJpsC8r2DCPsdF1gy2vdhIodOIvcFIQcIFNAUUQH4uzZ1c/XqcGkpzRpZ400BMT19YYjkLajT1+/ZLJFLX3LEMADqeWEwAVjqdIjcYZGY7S0TmaCZQqcKh4hqK0P7OfiiUVlNYV0BdK4JKQHIxQHkww7LLhSdhJdsYoriukd98gtYvL6dk1yGj3RCZEw6pqlt+9nI27+ygcv5KCnFG7NCTGkoqJ65Nu+3hwVTycZP7i1dTVLGFEdGJTBakU+AudOTWwZW+Yto2dVM4tpXtXbjrk5K9a1yXuKh+Fl89GDMfo/MMejKxpjp7d/dj2DGAoCi63jYhNMefq6wOM/uUAwymDgQPDFFb7sfsF+/e9zqEdbRTffCVGxyjVc0uQhsRb5sHusmXOJTykUx6YT7B+hOZ5q0llJY2kkgbn/eslxL12VEUw9JcD7Hp0J+6Ak64nduNfXsGu7iDxuE4wlEBoChWzAjhtKl6nRkJTqF1cwVD7KAvePoe6pZXULTtsCWSLIxCNJdUdu/sDoXDS5vXYki1zS4ddTpslZXiKsYzwUeKpK+Cih67Otaxiwh4JYGlTac42hm4gnro9Z1lZUxHnzivLsWORaBL5zWty1nOoCuMzrOMP+gKPjQ/+zaqJAyLInzuVn8lrDqV0Ci5tzFnWuXuAwd7cVLy4U0O83I7M8vuKSYdOpQxSKYP+gQj9WaPHmkofHekC/NN2GLJ21PrHPdTcvthsa9oNrbrthAyDYCRJQBMEUjogiI3GiEVTRMOJjOwdgEtC8NFdDKbdnN1vdFMZSxEcd6mXupEFTlwtJcT3D9O3awBfiRtvkYtkTKesqYjRriDBgQhv//TbmH/FHAxD8sRz+3OabbMpJNMKVEJAcnNuxoe3JDd/NdgXoWJuKUqrgn/3EIGAk2R/mNRonHhfGKkbDGzpAwmqferFUqSkcjjOQMBJUoDLqVF6VTOHhiKgCfzvWYi7M0h4ez/eIhcIgfF6D51VZiGR8y5q4N7z67FrKs9s6qELQIC70InDJ6iWs1hwxxVEkzrDI1EquoIc+NlWhtpGKKoryJFclEhmL28mGu/D5SklFRaUzSnmPf/zTqSEDbv70A1JwaWNXPS2el79wnPs/csBtBfb8F43N9Px8Lk1nDYViaS+1IeqKjR/aDXugAt3gVWK8nh5YV1bxRtbeipTupG5oV5c3167bHFF90Xn1Z9wKUOAgYEB9c4776zfvXu3SwjBd77zndbLL788pwrR4aQMq6urF3k8Hl1RlJz84ZkQi8XEnXfeWb9lyxa3EIKvfe1r7ddee+2UmMZ169a5PvjBD9ZHIhGlpqYm8cgjjxwYL005nRTiqZAytMhCsavmgyPb8mS9VBQxZe5SQSE8yUUYr0yCmBT+JERWEJaJ3S6IT6pYJeVUd7ZAzDhsaXIFrXxBWPlG79FYitrr5tL1x73miM+QCHLnRAeGopkAqBySOh7MA7vnFFOnKhBL0bm1Fz1pEKjxU7mgjM50wFbHug5m3dBC3KnhW1JOXaWXiICRdNDX8EgMY1sfo1nKRDWVuS7dgs4gHWkDfNnHz6NyQRnb/rgnM68d7I+QjOuIgUhGuKGg0kfH1l6C/eZvq3JeCbPOr6XlyibAdP06nRqx7O8k+/vPc+GcXnuOO7tqflmmyEZnOoe3eFaAkW39HHwxdx60e2c/TVc3ITSFcG+Y1HCU1MYeOtpGcPrslM0ppq+xgENZ7QlFkgS8DsKQuZ5Ov4P5b59FoNhNArCna3BfeN9K4mnFp/FAKn9pFdFAqXmfxXW6/riHobYRiheX411RxdAP38gcy1EgWfvYCwA0LGqkungpq+9YbN7bAmpLPbSn54RjmsgEzKXiOr6oTshlvo9EU8z1O+gYjLC9fYQFtYWUNgSmXEuLo+eFdW0Vr77RNaVYR0o3lPHlx2qIp5MyBLj//vtr3/GOd4z96U9/OhCLxUQoFJrSozyclCHA888/v2e89OTR8I1vfKMEYM+ePTs6Ozu1d7zjHU1XXXXVTlXNDdi87777Gr7yla+0X3PNNaEHHnig+Atf+ELFgw8+2HU4KcQ3XcpQCOEEXgAc6fUfkVL+qxDiq8A7gQSwH7hHSjlyohp2unKkeJCZzs0aecpVztyIHn9QSiKSZNNvthEZiuG/qA4mpfnknXdWoGplDRWNRRkt2sSvpubjtwmw3Tg/R/FG3znA6HOtAIwCdrfG3z5+J3pCR1EFik0l1BvitV9to7ixEE1T2fv915lz9zKSARddB6fm5k8OgOroHqO+1s/IaNyMIO8wI9Iv/ci5LHznPJCSwdbc/cTG4mYu7kgPxY2FGaM1zkhXkCs+d3HOstIiF+1ZrvScDk2e62Zz2ahZXM74N6fYFAoqvIxmiTeM7h4gmEdxyFPhpfLqZuJSEgCir3ay5eHNAERH40Q3dlFX4mLI7yA7GUkPxRnN6gg5fQ5chsyMPKWUCCFwBVxc88XL+PE9j2bWLVtcjlFTAEiiT+2n/8AwZfNKiC0ppzMUp3BeCSPpMq0li0u48fx7qT+vhfD2YXpe6SYWTNC/d4BAfSGj4ay8cSFovnUhr//3BgCG1rfDpQ00NAYorSugzO9iMBjHrqnYtOkyji2Ohmgsqb6xpeewfvw3tvRUnrOsus/p1E6YlOHQ0JCyYcMG3yOPPNIKpr6w0+mc4vo+nJTh8bBjxw7XmjVrxgCqq6tTfr9ff+GFF9yXXnppzsi1tbXVedVVV4UArr322rErrrii+cEHH+yaqRTiiWAmI+E4sEZKGRJC2IAXhRBPAs8A/yilTAkhvgL8I/D3J6uhpwtHMoAzDdrMO7c8Q5fyTI6hG5KeoTBOm0rxpML2Enjkk3+kf/8QgRo/y9c0kAQ8Tg1VUYgndeqbiunKeojPaSqmrLaAeMpA+O1c9JW3s/Eb6whPUgECKKz2E5rcyEnvL/3YeQhFoGUZ/2Q8RemsAJGRGOGhKO4iJ22/3IbitlEhJaLQSXeWPKHLacuk14xz2SVzcLnNdXYUuPjr9zay8JpmwIyGLpxbjH9eCYXNJRixFIee3EPffjMCuXh2MYNZYg0A1YvKKZgUNOXx2Kmu9GXuhMqGQCbaXaYM2neM1xE3pfdsdpWDWVWrKuaW5BhggB0vv0xweJSKonnosYlrNefauSSyzLx7VTWFL7QxkpUm1/1CG4GGAAV+R8bLMVnzebhzlO2/WIvi11AUhaobL6FuRS1gGsdLP/M2nviHp1nxoXOgoTCz3b7kHpLRFPYiF4PRJEIIfOfXMrJrgIV3LsF3bjU+l43RSJLRA60MHBxm5zP7eObrZlpXz+4BlnzwHLTZAaLdg3Tv2IHqkKhOF+XXNHMokqC6MUAsZdA2EGJhXQCP86gFfSymYcfu/kC2CzofKd1Qtu/uD6xYUnnCpAx37drlKCoqSt18880NO3bscC9evDj83e9+t93v909r6PNJGV522WVNQgjuueee/k9/+tOTC/RPy5IlSyK/+93vCu+7776h/fv327dt2+Zua2uzAzlGuKmpKfqzn/2s8M477xz5yU9+UtTT02OHY5NCPFaOaISlOdwYf2LY0n9SSvl01mrrgZtOfPNOQ07USDiP/m7e4OijHPVKKRkci9HWFyKZMrCpCgVexxTN4+ZLGlh12yLmXGLOBQ8FY+ydlJNaXVNAIpakeVEFMd3IKb4fd9tY+sFVvPSva6e2wZC8+5p5pmES5kO+48VDtK+dqEJXOb9synb9+4foz4qAjgzFSJal6H6jGwCbW6NyWRVGysDZVISuKVRVeBl3sEsJoVA8Y4Rbrmqm5YomMz8J04UfuKSReMogBThiKaoun03kid2s/LslIA32/Dl3vnfZTQuntLOnL5xTl7psdgAjbYQNxJR6zrXjgVppJkf42kuStG3romNXO6ONI8ydex56eve+uSXEJs182P2OnO2lAX07c4O36pZWUr2gjGQiRd/eIUZTB3j5OxPykvKQg5bLByi6tB5dCJJujVVffQeaOkm60pbAXmAw3NqFqDI7M72hBAs/uApPSymGnOg7htNKV/G0nKPUJam4zr7fbOaN9Wvp3mvWC7/qw+/Btmoeh8IJ3C6NjgPDzFtQRmmByzLAJ5hQODmjCxqOJE6olGEqlRI7d+50P/jgg4fWrFkTvueee2o///nPVzz44INTi8aTX8rwpZde2tXQ0JDs7OzU1qxZ07xgwYLY+Kj1SHz84x8f2Llzp2vRokUt1dXV8eXLl4fyucx/8IMftH7kIx+p/Y//+I/KK6+8cmS8CtbRSiEeDzOaExZCqMBGYA7wTSnlhkmr3Av8csqGZyEeh8bqtILQX9buz4wWx92Q9k09bEpr4pqqg5JbH7qWjz1zd85+3l92B39+7JdodhuaXeOLa/+d0sYKzk3v+3Bj4nxmeXx9w5Ds65owpkndoLM/TH2FL2f9Ve9ZknOMfAo0tU3FOGxKjjJSNnqxi+pV1cQHwtjddlRNwdANEtEUtkiSsuaSiXY05s7vuQtnFmwz3DmGu9BJZCRGMpIi2hlkoHWYyniK/qaiKevnzNUKs/xmNtldH+m145sVYO4nziUFeIHzPneReYHT8/Vdewc4uK4daRgZWUlfPMmIJ/8zS1GVKfWxjaxAtpIGM/o60wYpGRvrp2NXOwC9B3sQYj2NC5qRUrLzty/SeMOFOccoKPEwmtY0Bqi+dQGHfrolEzCn2hUMw6Bzex92t43y5mL2PrUuZx/SkKz/ySYuPK86Jw7BaVNRFTO+QEh44Te/Z6THrFZ14Tl/h7TZKEoZ7P7RGzRe3EjhO2aRcmjmeaSD4uzpTlB/6zC1iyvwNRay6JOf56d3/ycdWw7SO9hLQWS22VZVobbCy6wyL27XCfFEWmTh9dhmJFHocdtPqJRhQ0NDory8PLFmzZowwK233jr85S9/uSLfutNJGTY0NCTBdCdfc801I+vWrfPM1AjbbDa+//3vt4+/X7Zs2bz58+dPUXRZtmxZ7KWXXtoLsGXLFsfTTz9dCEcnhXi8zMgISyl1YKkQohB4TAixUEq5DUAI8U9ACvhpvm2FEPcD9wPU1dUdc0N3dYzk1CUeJ7a9j+0/Tffwx3vlUk4YmHQh+9LGADd+4+rDHmPj650sbCnHka8MYhbjBjcaSxEM5XpiPKPxKTmlhi6nzBWGhnPvJc1hG9+5+e+wLZgeVVWoK/VyqH9i/93DEWyaoNDryIw0Jht5v8dBocfOSJYofVI3UPMUFQEgZdDfMYZS6WUgy9U6jrso1wWuarm/1W1/3EOi1k8iZWAYEkNKkokU7nIvkawI51gwTlGdWRK0sMpPJK2PmwxN8YABZj7uWE8QaUg8JW5sdm2ifKeUpLI8EA6bSjBr1Ke4bBiVuVKEDr+D176VW9LTU+KGSxvyXxdAc6g59Zv15MR0UiSt3RsPJdLzsvDkL3P7tD0Huuk5YI7+ryovY+zZg5na2DanRtv6dkoaAzjnFpPyO+iKJKi5ayldP92Kv9RNsD+Sqe6ViCQRmsI//+n/46G7vs6+V/eiqAqxMfP6pYJx8EwYv2giRTKr06C5zc6SntIRne2U1jTQ+/s96EmDPX/aS3nbCPX3L0dGU1SuaWRs/xAi/V0nwkl8FV7WfGg1r+7p5z3f+xSH1m3nqa/8mksuWs4wDoKhBJ1dQVZYAgwnhZa5pcMvrm+vPZxLWlMVY8Hc0qlBF0fgcFKGdXV1qYqKisTmzZsdS5YsiT/99NP+uXPnTjGC00kZjo2NKbquEwgEjLGxMWXt2rX+f/qnf+qCmUkZBoNBRUqJ3+83HnvsMb+qqnLFihVTjt/Z2alVV1endF3nX//1Xyvf//7398HMpRBPBEcVHS2lHBFCPAdcCWwTQtwFXAtcJqfR35NSfgf4DsDKlSuPtqJiBkPKKVJ5YOrxRobzSNZNIh7O/9DOZiwY5/m/HuSSixux2498aWZaaUrM4KwV9cQFolQWu+noD+WM+g71h9ENiTtthCdHSAPUl/kYaxvEMICkDjaVWFLH77YxNl7NSDcI9ofZt28Iw5CUlOaXj0uEkzAxEEbaBNXnVJudJEOy99UOvFotB/tyOyPeK2fjfLEdPat6krvAic2hMdw5RiwdDe2q8Wc0hrN55f+tZzDt0n7PN99J2dySzLkOB+OZKk0kdPqHo6iqYs5L25S8c+1xl0bFsgp63jhM8Oik7TSHRiqh4y/z4itxE8vqMBTVFeSIHwhFsHzNubz+7HqEouD0uUnFkyRjcZxeN2rKzc7HJjIzKuaWkIgk6dreR2VTEf3p+7o7GKfm1gUktvczPEm3+JIPrqa8qZSbPnkXL3znNYQQVMwtoXffIFv/62Vu/eY78aQ7TbFQgk0HBzPFVipb6tFTOlKXbH/sBRYuMtDT6VgIcCwsY/OGDnRdUj2niLDHhuaxUzcrwKFHd7LqPYtRFQVNUUi5nFSvWcHNFUX86mP/wyUfv4nGty1mwbzSKdMlFicGl9OmL1tc0Z0vOnqcZYsruo8lKAumlzIEeOihhw7dcccdsxKJhKirq4v//Oc/b4WZSRl2dHRo119//RwAXdfFjTfeOHjTTTeNAcxEyrCrq0u74oormhVFkRUVFcmf/exnmbmwbCnDH/zgB0Xf//73ywCuvvrq4Y997GODcHgpxBPNTKKjS4Fk2gC7gMuBrwghrsQMxLpYSnncuVJHor7Ui5QwMBY7Jgm/mWwTi6Y40DZMSYmb5cumvWcn9jnjQlOTV5y6Yd4KWseIEIKmmgJ2d0zcMxUBFzWlE6O8fE13OTUKHTZ27+zj0KFRlq2qQWiCvVuHiEZTuFwao6OxnNH/YDBO+dvq6H3xUM6+dvxxD2/74DkT+64poOa9S3LWsWsKB5/N/S2FIkmq5hRx6KkJoRRvsStHvUgogpEs419d6QNp5s8ezJpTHjeOpnPELDoiUwbJUIKD+4cIZXXM6moLsNUVZOaPsyleWE48msJW4ETz2rAVuqDSh0AgOsfo/vFWkpEkyXACu9uGHjeN1mh3kNHuIGVZ1apSidwgS2lIXKKS27/7L3SmP8vOvba1jkBbfg+YljDMQihpOqNJfJP0hzW3Rs+hESJDEQYODqe9RRI9ZZAIJ0mEk2z/w25Wv88UQ1j3vdfY83wrsz+wkjhQcs3lrPjbAkKRJP39YdweO+XhBOhgCzhpG4uBTk5a2mg4gavSy6wPrsRd7gEBK5pL2LR/gHjSwNfSyHu+9WEGO0YxDEl5aa73weLEMp5+NDlPWFMV43jzhKeTMgQ4//zzo/lye2ciZdjS0pLYvXt3XinEmUgZzp07N9Ha2ppXpjBbyvDzn/983+c///mpheyZXgrxRDOTkXAl8H/peWEF+JWU8vdCiH2YaUvPpF2t66WUf3uyGupx2lhQFyAST/Havn4yg9CZ+m1nYDCj6aL8617pYMu2Pu68bTGabfoRat7Bf77h1BFssLfYx0A4SUiEM7sYd0qXFx2bUHlPxxijXUESiRSXXNSIz+OYss54SyWQTOq8/kYXb2zuzhTWP7hngGAoniPTV13pyzHCUsJQlZfKSxvoXtuaWf7G4zuoWFDGnIsaALDbphq3RMrA4VSJx3INU8iXOzcYGY5R1lRMX9oQSykpK/GQ1BQEMDIaIxxJUuDN3S57CuDRx7fTNxDBMCQXrJlFYlIVqkPto5RX+ijw5V6n1j0DHIglKb64nsGhKB63zRTPSBucsuEoXVnu+MJqP4lJhtC3uALXiiqklGYe8a6pQZ4xp5YR85ASSord3PiuFl76zmv0vToRy5Kdg24MhMFTMHFsr52BHeZ5lSyvxL2kgqQC+7f30v7HvRRkudq7tvfh8NqIh5LMPr8uc10PbOggHkowOhLNKCxV1hdiqILoq53YnRqi0Eln5xjVHhuuRAopJQVFLnr7QqT0iR/moYEwTz2zj2uvnosQgmVzStn86n6iXi+upjoufZuPqhLLAL8ZXHRefc85y6r7tu/uD4QjCZvHbU8umFs6fKwj4HEsKcPjZybR0VuAZXmWz8mz+knH7dCoKfFwaLwo/AxzgmZSHzlbCSccSfDwwxspbB2j+/Uu84EuzIegEAJFEVz2qfN51zvnZ7YRwPdu/aUp9ZcV3OOdxmU7TlFtGb2RFERyR4UCKPDYsdvVvEUgpmNwMMKzL0xEIm/Z1MMFF9RP2ff4FenuHuPpv+zPGRmCadwmF97o6glS4HfkFMkQhsTptlOdVWzDW+Glt2OUBt1AUxXcDhuqIjIGfpx5fhcH/7oHR8CFUleAfXYh7kiK7O7ncOcYNYvKJxZI6H9qH95LG+jLaoduSBzFLuLjhVGEaVj+8OTujAFesKiceMpg5dvqKbBpODQl0xvx+BwMBuP0j01Mb4TTwgvjUerJpJGjPMTkOfN84g2FDnrG61Uj8c8KMJY9YpcwFMyNd7j5+gUoqkJJfUHO8nhWB8hXW8DsixvTh5V07h7AffdSwAyOak3/RhS3hqvAgSfgAleE4f5+IsEQUvVTf/tFvLF3AHv3GIYuKVhSTvgvBzEODFM1vxS7zw6qIKlL5i435201XdLZOZa5L1asqgGXxqqLGhnpC7EzK9f6UMcojz6+g3e8fQ4yGuPBqz+Pw+vE7ffwuef/M6+QicXJwenUjKNNQ5oJlpTh8XFGVsyqK/HSPRQlqRsnoGzFBNFY7ggmmpIU+h05ReSzURRlSsBVdCw+JQdYTK4TLQTfHfolIm2khSIQisJIKE77wERVNwlsOjCYiZjObA7o46OqLAzDYNfufl54Kde7s2lbD01NxZSVeTPbZ5uKQMA1xQBnzlFTcLk0oulAIynBnq56JKWkMmEwsr6Dg31hlt+7nDn3ryClKRlZutf29LOwoQiPU8NlQFAaiKy6ldq8EsI/2mTKQ77Rzdu+eQ26lCx631K2Prwps15oIELFvBJ60qPIsQPDjB0cpvK+5fSnYwJCkSSV182j88ebMFJmMFwqZSCZ0KctLPFk0q2q6304Js39G5BjhMdJpsx7IJHUSaZ0qiq8dPWEplRHy3sNs1OMJHBBLdVNxXSmXe6lKyoZzlqneU5xZnpi/lXNFNUH2Lalm3AshaIJ9Jc7UN0apauqTTnMNF2DEVLpe68yyytgCEFZUwmR3hCxVJR1v3sh85nz4uV0HZq4vyvTQVrda1uZV+SmYH6pmeuskgnYat2X+8zt7wtRWl9IQjdw+R3M9tgJZbWrpy/E7x/bynP/+BCh4RCh4RBjjlHUsSAU52oTW1i81TgjjbCmKiybVcyh/hAjzVOl5/IxTdxYBsOQxPMY25DPRs0FdSSGo/TtyHVhHo+cWoHfNWWZEOQY4emQwM7WIVwODZ/bRs9wFJumEImlMHRJZZWf4FiM0dGJ0dW6De28+53zzfnRSftzOm2sXlHNho0TblW7XWXZqhpSqqCmPsC6F1szn/UPRKh3aAy/1E5HViUrZ7WPmCJg0mh3X+coejDB+lfacbttlJZ4KChyYfM7kLFUJmiuckUVKcOcQQ+cUwU/2ZTJKRrpDlKT5VHQ3BoVty1CcWgoAoqL3DgcGtFYktK7ltL7/TcQwlQcGo/wLix0Mal7NOXaTveNxtJKQJXlXlwuG4sXljM6EGH/E7uoWVyOcGiI2gJUm0JBMIHeMWZaXAHKJPd0JJaioMpMGbMHnDiy0scK/A4uuWiijreiKlQuKmffaJQ923shBbbVVRS4bKScuVMl03l7pJR0b+lBT+gUVhdz6c1XY5S50Pwuyir8CKcTJZ5CPziCEZ5oq7PQvEcTKYNCt51IIoUcixPvCeEQmB0AIdATOp27B6gs9tD39D7a1rWbEeSX1Gc8VSNRncU3XsLz33wMALffjdt/bFMtFhZnE2ekEQbTLT2vppDO0TiaXZ0S8DKFI3ijY9PkwgaFIFjlRVZ6KJ1fQqDQSWlNAbt+vgUEpNLu1jebSEInGEvRly4akdHOVQXljQHqNIW2vYN0to8yt6mYNRfPyoj65LsUS5dUsnFTFyldMq+ljMJyL8l0Ok9CgfIKL709ITQkVWNJ9j81NWZi32M7afzAyinLw8EI23/8Z9TG2USAtkMjcGiE+S1luFwT+baVq6ozbYtLmHXZbA48s5/KFVU0vWcRQkpm6RIjqTMcjLP74DAE4yiKoH9wIjawpMTNwg+sRDhUFEHGbRooNnWKC9x2DEMyFIwyNhBhdDSOkTb+iaSOFIJkOq3o4gvqiUSSrH+lHWSCnr4Q1ZU+qqsLKHTbaVcVDmzpJbCglKAKGAYBl0p/VsGOugovFOTONRsKaD47JTfMpyftUrfbFG6/ZXHeIL3sPmQyaTCQjFOnG4isdXO+17hOsW52AmwGdKR/HyOdIcBB+TuXMBiM0zWcxC+TqFv76N89QMOqasrmFJOMJUkORdB6Q9hL3ARjSXRDYiQNomtbCQ9G8JV78TcUoiLoRJKMJuldZ6Zmhgci+PceIBgJkYrFqbvyAgYWLeDyz3k5+KeXuf2Ld+Ivzq1EZmHxVuSMNcLjVC8o55p/vJjffuHZw653pJFwLHb4XHUhBCG7wvyV1cRTBvM/fh5hIXh93wDVRW5KC13YbeqMy1ZOd4xjZfLpxVMGDU3FLF9UQV1t4cR6ebYdCyc42DPG6gsb0BSFUErPGOBxZs8tRbSOMPjXQ8SqfHn2ArOvm8fkKI9o7zB//NT/0LblIOfffSW2VSsyn+3c0UfLYYr0V11Yj7++EP/Sihy3K9jwFjqpSup0dYxlXM2ZdiwqJ6VLUm4bw6Mxiopc6CmDyuoCNFVhNGKOvIOxJB27+unty/U+lJV66EvPp779ktkgYN/+QQaGckU4PAEXS29oYdezB3Lc0pO/xWzVqXH0PYNUv2seY4akzG1DGY5RGDdY9/3XzXtITNwPZc3FjAanusjTA+2JfeoGVYMxhCoYWtuayVcvnWVe48CCUjz1AVDA7rUTSeqIaIrg7/eQTHdC46EEfWl383DHGMrvduO8uYUFK6pMr0OBg4ZLG9n+yHaCvSFSsSSuWj8IGAknKD+vlt517YjAGAfWdbH7lZ2omoprxRIMmwO9uo7lfz+fprc1Tzkfi5NLdCymbntqXyA0GLF5i93JhVfMGXb5p9ZztnhzOSuS8+Zd0sjlHz0XRZv+dI6UTjTdSDibVefXZ0o3Jg1JUDcLTbQPhNnbefwpZCc6RCWWMqiumjraGD9OMmVwoHuMHYeGiSZ0YoYknNJxTIpkNvrC7P7vV+j43R6iIzGiY1OLpiDANsk4D23Zz09v+xJtW8wgsS1PvDjFZbqjdZj69y4GAapNIeCx4XNq+F023JVeipdNNsATFE0XOZ5e/UBPkLFokurmEmwODUNVCE8SmLcdJvp9/LyAnI5Mzsdp45sz7z+5uUkDO5JCCYUSinWJZ14p3UlTS1frCNLxxG62PbGL1361lVd/uZVXf7GVV36+hVd+voW1D60n0Tt1mmK0N0zXnkE6dw/QvrOfkiI3icZC4nUFhIcnOgypuI6iKfiXVNDj0ehxaRzqDlLgtKG+0pkxwDDVpe0tcZNI6rTuHkBKiYylUG0KjqoYKU8/YaOLcNw09rouGSp3Mqoc5MXH/sLuV8zslOYLF6K6Tde2EOD12CjwT43Wtzh5PPftVyq+dcsvFj/7rQ31r/xya9Wz39pQ/61bfrH4uW+/kreK1UwJhUJi1apVc1Opqc/Pf/u3fytrampaMGfOnAVf/OIXp9apBfr7+9W3v/3ts5ubm1sWLVo0/9VXX82U0hsYGFCvvPLKWY2NjQtmzZq14M9//vNhAwj+53/+p6i5ubmlubm5ZdmyZfPWrVuXmfN75JFH/A0NDQvr6uoWfu5zn8t7zoZhcPfdd9fW1dUtbG5ubnnxxRfdAJs3b3bMmzevZfzP6/UuGz+fD3zgAzUlJSVL/uVf/qU83z5nwhk/Eh5nxQ0LaFhZzaOf/zNDh/IYxCNY4dJiN1UVPrp68udkLl1RNa0xAAjHkhza009VS5n5IMtYVMGm32xHHTds4xWxFHOko9pUFlxljgo0VaG5uiC9FRP7mCx5OLGbI55e50CYuvJc4yiBkWCM/d1jOdWRxj+zqQrxpIFdU3BIeO6rL5HKelAPd4zhDjiJDMeonFeK5lBBwOgb3TjmlyAcGgefeInf/svDmRrZQgj+4+X/ori+nMHBCOs2HKKzJ4TXa6equZTzv3c9xZU+VLvK+p0TxSwK3DaI5PdSTOc5yLc4Fk2gApP3NFPvQ1NTCT6fgz88lRsYKTLfZ9ZIePJ3MxaDbb05I2l5YwuHL6s/QXgoij+anFKCMxiK52g25xwzy5gOd47RsLIKJZigxKZgKGBPGDjaRtC9dirnl2bOxdBzB0aFi8qJCGGmZUno+tlWOt7opmd0H/vf2AvAeYUO7OeaOeHSZqN0+XxYu4naZU0se/d5zLvhQoQiUCU0VfopDlhzwW8mz337lYoNv9g6Vcowrivjyy/5wDknVMrw1VdfdT788MOlr7/++k6n02lcfPHFzddff/3ookWLcnrw//zP/1y5ePHiyDPPPLP/jTfecH7oQx+qW7du3R6YmRRiNtPJIqZSKT75yU/WPfXUU3tmzZqVXLJkyfwbb7xxZHIFrV//+tcFBw4ccLa2tm5bu3at50Mf+lDdli1bdi1ZsiS+a9euHQCpVIqKioolt9122wjAt7/97Q6Px3NcaV5njREGKK4rZM2HVvPoPz2TU68XTIWecfm2bMbnSG0OjXdfN59XX+vg1ddza4zXNxSieeyHnVY2JHTpBpW3tBB8tYvYYJTuTT3EgnE6tkx/f9ucGi3jRlhTKPLnr6k8+djmechpPx+nayhCbakXRcnVG9ZUZYoBHicUS1HoMZVxEhLm37SArT/ZnLNORUspwZ4w3Vn5tt27BljxH5fjd9nY9PjLOSIVX9v0EOVzqsYbT1dviNISNzZNRVUFZfWFmXUDXgfD6RKlh+s7TTZ2ZcVuRkOxdNR41rUJJXjb6nq8hc4cd0PfSBR7Q4DSSh+h1mFCaQUlLTpKVUJHKIL1P3o9pwNU1h9BLXLx0sttaJpCJB1JrWdNZxh2lbqbWtIHB1vKILIp9x5IZu1UVHiou2WB+Rrw+ey4C1xI3TB1m+M6tho/lYpANwyCbSMk+iPYesM0eO00rqxGURUURaAIQSyeYu+k66YasP9Rcx7f5XdkvBllc4ro22cmhJXOChDsj+AtceNrKCSxqIyhpE5DmZdwJEnH7gGS6c6GnjXy2fTblzi/pZnChkocDg0qlnDD92YxGIPqBWWkJKBLkoChiLy/Q4uTQ3Qspm58bMdhpQw3PrajcvXtS/pcPscJkzLcunWra/ny5SGfz2cAXHDBBcFf/vKXhYsWLcop/bh7927nP/7jP/aAWce5o6PD3t7ernk8HmMmUojZTCeL+Nxzz3nq6+vjLS0tCYAbbrhh6JFHHilcsWJFzo/yt7/9beEdd9wxqCgKl112WXhsbExra2uz1dfXZ37cTzzxhL+uri7e3Nx85BKMM+SsMsIAs1fX8p5vXMOv/+EpElkjqPBgdFoDnHkvBOesqqWmuoDHfme60nw+B5WNgWkN1mSE34n/sln4gdIr57Dtqy8RGZm+rOZM8pfzsWx2Sab2MJjGKp40eOOx7YT6xot+CFAEsaoCXAW5xl1TFZJjcTS3BupEqpXboaIbkpGsKNmiFZWov96Gno4ev+ALl6IVOnn+409m1nEWOpl38wLcdpWxaJL571hOzZxKXvzFC3x5/deoWTBRN9zl1JCSzChucDjCksWVaOnpBJ/LlmWEDdClKRUESCGQwszbVQQUB1woqsBh0+joHqMo4CKW1HO+67bWYYoKXJTaVJzjgWAS9naNYiggXBrKaJxDT5oju/FRfsW8Ejb8KbcugKvQScJnQ6T1hG02hdWfuQDFpiCLXEgJ4dE4u3anOycCKoon1dG2q7nzQMXujBBIRbkXd3NxJn0NoMhtdojGJcz0XQMceGI3AA3nVNPyvuU5+9+ytYeuSTZOsQk81T7CXcGcYiLZPwmnz2GqWAVBK3ETSuckj4zFGQuawWueBaXUzyvh0Ddez2wXHYvwxn//gisf+kxOTjlAIq6TffajkQQ2TaXQk1tYxeLksO2pfYFUXD+8lGFcV7Y9tTew6qaFJ0zKcOnSpdEvfvGL1T09ParH45HPPPNMwZIlS6bMqSxcuDD661//uvCKK64IrV271t3d3e1obW21q6oqj1YKMZtsWcT29nZ7dXV1po01NTWJDRs2TKkS093dbWtoaMisV1lZmZhshH/+858X3XTTTSc0L/qsM8IANYvKueozF7LlyT20b+omldCxZYkyjBvf6cxfVZWf979vOY88sZ2Fy6uJ5dP+nQHC76Dhslns+E3e6mvAkQPGpkNRBILc0a1bVeha30HXJGH6Ap+D1XdN1FvRdYOnn9lLe1q6sKTYTXVtIarPhioUIslcp21MU2i5ZSFbf7yZeTfMJ1XkIgW87YtrUH12dLuKUCCRkkTSnYoF77mMlXPLuO3f7qS0IXe6xOd3YLepJNIRyPG4ztBQJJPHrBsT13vbxm6GhqM5wVdOh5ZJGQKzildHt3kuQ8NRCjvGMnnN40Zmx84+4vEUixeZ00Ep3SDrMDiLpqaM5aNkeSXdWZZLUQTUFeQEpNknReobkwyi02snJsZj1c22jJeqLCxyHXGUmH3LKOm5aEM3zL+UZP/vdyMCDmTWfgxDUrigHLsQObWls93o092LiYROSZGbvoEwkVCUA7/+A4aeonl1M3vSdQsS0ThGOIo9PceeSOoIATZNQRoycxxVUfAcQSDF4sQRGozMTMpwhutlczgpw+XLl8c+/vGP96xZs6bZ7XYbLS0tkXwVtb74xS9233///XXp+dbovHnzIpqmyWQyeVRSiNlMlkXMd18LMbWi/zTrZV7HYjHx5z//ueDrX/96x5HacDScFYFZ+Zh3SSO3fOUKbvryO7A5NdwBcyQ4XYrOZJwuG3fcsgSn4/geGO5JEn6TOdaRMExzHnkWRkdzR+I7d/ZlDDDAwGCEzZu62PVaFyPT5CmXn1tD/UX1lF06kcMqSt3ENIWkIaekaaWzY6YYYDBv7JLi3HnBdRsyqmOZ0odGXGdgMDIl+vlIVZai0STdPUG6e4J0dQdRVYWuniA2m8KhQyOEQ3EOdI0iUwYyoWPEU8SycqrTg276DwyjuXIDt6KTjHW+Yh1Cmh2D8T/3pHuoYkUV8Swnd29fmKpKc94+lczX4Zs+AMDQDUIDYfb9tZVfffQP/OW/XuTQXw5QORBlCjVe02vgtTFRL2WaefWs8woUOulL3xdKVxe7/rqNzt2dDHYMMu+8eZQ3lhMaCtG1fguJpE4iqeN0aJSVeNi5q5/dr3cRGYhgxFNoisgrm2lxcvAWu2cmZTjD9XK2OYyUIcAnP/nJgR07dux87bXXdhcVFelNTU1TXIJFRUXGI4880rpr164djz766MHh4WFt7ty58XxSiJs3bz5iMMG4LOLjjz++b1wWsa6uLtHZ2ZlxvXR0dNirqqqmnG9VVVWytbU1s153d7e9rq4us94jjzxS0NLSEqmtrT1yFO9RcNZ3SeuXVXHfj2+iu20Ew5BHVSZPCEFxwmCwbRR1UvnAw1EZMFOWhAAai2io8PGXB9cx3D41YOyEFB/N2d/UPfrKJoIKpZS0ZRngbCLRJG0HhmhcVD6hj6wpODSVYCxJ0/uWEsxyZRpZxkDIPNc1S5ZxcqtKSzw5QXDdvUHaD41QW1dIyjDMAhOtw+RjcgGyyTufXElMT89NP/u8GaVdV+tncDBqBhsBdXUFlJZ7WP3pCwDY+iPT1aondAqrfMgCiafIjaIKoukCFVJKqkNJlLhOdDBCX0/IrPktBHabkuOWLZpUj3r+OTWoiRQHss6vsytITaWP7q4x/JXeSaPhScFzWZ2S1lc7+eGdj+AudBIaiNC/fyjfJQHAGI4x2DZxDyqqOSpuuGcZISS6otBQ4CQ5HEV1aPhGE0iHguwYo8ahEbIrJP1ubG4HyUicwc5BBjsHsad1gMdzlgOFToZHYrgS5uMlHEmyc4fpnWmqsHKD30wWXjFn+IXvv1Z7OJe05lCNhVc05f+xHYbDSRnChEzg3r177X/4wx8KX3nllV2T1xkYGFC9Xq/hdDrlN77xjZJzzjknWFRUZBQVFRnTSSFOJ2U4nSzixRdfHG5tbXXu2rXL3tDQkHz00UeLfvrTn06Zx77uuutGvvWtb5Xdd999Q2vXrvX4fD492xX9i1/8ouiWW2454YIOZ70RBvCVeLAXOHn9wAAuu0aBx47Pbcfj1A7r+ut4vYvf/X/PkoylWPy+pThXHDa+gSWzinHZ1SkRQ9VLK1nwjjm8+P2NU7bJl0N6XOTZ3d4XWll47TwcXjvDwTjFdQUUl3rY+OpUr8rwSIzGpIHUBFpKkhRkJCSD0SQ+l41IPIlumFHUqXQ0bW/7CKmUQUGFF6Eq2LXcIhIi6zVASUnuiFLXJUo6+jeZMpAxnZ7e3FraYI4wh4YnjfLSOw8UONE0ZYrGs02bNJqNpPB47BkjXD2nOEcm0+ayA+P1pwWjPUFGe8y21JZ5GC1yogCH/rQPp89OhyN3/5UVudNNxiQ3V+2SShgM5xhhcz3TYOljCTwlbuyaku705N5Pk71mRspAs+e2oeGqJuocmtnxdKjo0STtD29Gc6iZMqyGLilaWUVnOJ7ZZ4WUdG4zDWbZnCIG20Yy0oX1ty+is6CE87/6aTRVYLepFASjhN/oQaiS7vb92MbCKOcuAuy403naSEllJIVhU3LiNCxOPi6/U19xfUt3vujocVZc39J9LEFZcHgpw+uuu272yMiIpmmafOCBBw6VlpbqkCtluGnTJuf73//+RkVRZFNTU+ynP/1p6/j200khTidlOJ0sos1m42tf+9qhK6+8slnXdW6//faBlStXxia35ZZbbhn9wx/+UFBfX7/Q5XIZ3/ve9zJtCQaDyosvvuj/v//7v7bJxz1e3hJGGEwBd7fDDPgZF65XFUGB247fY8PvtuNyTBjl3X/Zz9NffTFTB3rzj96guSdE4ZWzc6oUZaMqIm9+jNQNXvt1XlWt42J8hJl9xBu/dpU5UkrL1SmqAlKipV2iI2kDpXlsFJe4qasvxO1zMDIUZdf2XnRdEhqI0NUdJBROsPz8uoxIO5iGuCAdKGTXFKLp+U9VVdi9ewDl4DCapqAqgvk1hZmKWMmEzo4ndzPUNkr9jS0It40VaYWl8XSswnTeb1KXCHUileu8Cxt5OT2KBbDbFVTNTlmxm/PPraNnKEJ9U7GpFSwlGybVzna7bVx4fh379g9ht6u0tY9m5i6BKR0XT7mH0bTXYvLX2fl8K3VXNdH/cruZ7pTn+54825QtWlFQ6cNf6sGWpz61z2dH9EJ31xjXLKkkkdTZ1TmaaaBNVagt8dBR4eO8O5aw58U2BttG0BwqDr8D20gMQzeQuiTlsZnVQ1WBYUhSnUE6t/RSWOlDSslYf5iiBWUwJ4BMR0oXSElHWpJS0QR9+4dyrk2iM4gsNTtPKR1SegpV0wj1RUlGU+zfs4uhriHOMwzsq1eZVcikpLIjRPt6c7phT1Iy+zMXTjl3i5PHePrRxsd2VGaPiDWHaqy4vqX7WNOT4PBShhs3btydb5tsKcPLL7883NbWlvfhOJ0U4nRShtPJIgLceuuto7feeusUV2R2WxRF4cc//vGhyesA+Hw+Y2RkZFO+z46Xt4wRBij1T6S+gPlwHArFGUov01TTKMuROH/6jxembL/nT3up7glRfcciRL7gkmkGtUbWKO9EIif9BzPydpx8X+5YxDzXlCFpaDHz52OGxFno5MLLZtPfHWT71oksgt2bupm7pCIj8g7myM7vsuV4EcbzoA1Dkkgb5udeOMjFb6un9YU21v94E8F01La9pQSlesItOd6RcKZHlCndwO+1c8EljWbUt5Scn1YLqix2U17iyTn2SCzFcDyVUa46/+JG9mzrZdHCchrrA4RDSQxp8NeXzd9XRZmXeDxFYjQ9IkzoOTm4c25aQNdrZvxHVUsZDrednj2mcISRMojs6CecLpNpc2p40qpSbpeNupoCFreUsX5jJ739IdwuG7FYiks+sIr969spKDdHyZXlXvw+B2Np9SRFEfi9Dmw2lcsubCQUSjAUjFHpc1Lgt1Fb4sWmKaanZW4JO/60l7LZ5kj1/H+9FL3AkRHNmHxPAATTdc9HuoOUzikicMVsRiNJyCq84gmnGA/7rGopo2NLTjYJPS8fonxuCYP7hyiZV0pwdoAxIFBTwMDeQRTV/P6GDnRRsyTC6KhKVU84Y4BhanyCxZvDJR84p2f17Uv6tj21NxAejNg8xe7kwiuaho91BDzOW1HKMJsPfOADNU8++WThhz/84d4jr52fI141IYQTeAFTO1gDHpFS/qsQogj4JdAAtAK3SCmPel7hzaQi4KZ/NMbwNIpBKV0yGIzj1KdPR+vc1E24P0zTB1agBMxRgcuh4XGo0xravs5Rqi+om3A9i/HRn7n+aNgM0wn3jdC/Nx38J2UmWk9i9tIURVDRVEVJfd7iM0ekbziCXVOJ5Qn+sWsKwVgKZ8DF+Rc18PILrYDpHt23rY8lK6pR7AqReIpgOvLYl1X3OZ9b/0DrMH1dY4z+fFvOPGZ4zyC+6klzg3LCzZpMGbhcNmJZUcbjhVJaB8IU+p05AXOx5KRoZAXmLKpAOlScThtOpw1dN3C7bESiSfoHwgQKnZSVeKiq9aOrAp/LlpnvjntsLP2b5ZSUeFhxhZnD/eqvt7H2f19BGpK+/UN4ilxmEY1SD+94RzOqplAUmIhsrqnyoxum0tXIaIyigIvVty3OVKfyeR3ccM08/u+Xm6mq8PHOK5qJJ3SWL6pANyR2u0pdRf7yoHULyqmcXcz+De1mPnyBA1UVuBwamipMT88kK9y3bSJi3lvlQ+8K4pWY96AiiPjsKOm5c6fPgaqp1C4xI8nDQ1GG2kfxl3joSe+n+41ubLv6KaotoD+t86ymPUS7X9zG7he3cdu/fpz2F3MHFgeztJct3lxcPodxtGlIM+GtJmWYzbe//e0O4LiipWfSdYkDa6SUISGEDXhRCPEkcAPwFynll4UQ/wD8A/D3x9OYk40iBPNrA6zb1Xv4gKgjDFpHOsfY8tWXWPS3q1DrCphbXXDYKOpRVVB0xfTyyzsPjQAQa+3mW+/818Me+/N/+sIxG+H+0ViOOzkbp03NzIvGgXktZexKB9PMai4mYhgQyzXeAy8dItQ+Rnw0hqPCC86pJSBDCZ3SuSX07ZyIoejf2ocvK8papjscTz61h1TSwJCSoN+BrzK/ERoci1FdOjHv6rKrZPf+7JpKKJbCo2iZwhCqqnDrzYt48k976OkLZapXNS0sI2bIzHVRFUE0oVN4fh2LG4oy+1x180IWXdVE28Yunvl/66hdXEFkNMYNX7och3tqzqsQAi3dKSsKTMx/25xmm4ZGYgwOR7n7tqUECp0IIfAcRSEpm1Nj3sWNzLu4kUg8RVt/iFK/k9a+YMYtb0RTpspR5xgjWcF40d4wPbsHpuzTubgCRRPY3TbaJhWsSbh66BvuwcFExT89adC/Z+L5Oz4SHifcF6FgdpEpdBJLEe4YI5XQGR2JUlA4s5QwC4uznSMaYWkOx8YnwcfrBUjgXcAl6eX/BzzHaW6EwRzx2W0q8eThiq8c2XUcDybY+LWXWXzXUpg9MznFE4EyJTT48K0d72zEk3pmpDcaSeJ32xhLG+J8RrkwnYqzbGU1/nTu6vj2mqqQjCTY/dhOoiMxqhaUER+L43a6KRyOgRAMFzqIAh4J7kl1gvv3DlK7awA14EQUuji4u59oNIWuGyTTHYFwOIG3YnKUsEnPSBSXQ8tUF3PYFDwOjWgyxeKGYhQh6B+N0jkYQTckiWTKdHF7HMyZXcTQcJREUsduV0lIiT3t5tUNiW5I0wh77DlR1lJKNu7oxVvsYtXnLmL1iprDXPXDI4SgOOCiOHBiDJHboTGvuoBwLEVTVQHdQ2G6h6Jses0cdZYN57qAh9pHEYrIeCdsTg1FU1A1QeW80kxgVjaGbtDf2cvsOWXER4T5vUyKEDvn8ksxLjYj9BVVkFxSTiTt/aksclE8ECW8f4h9rcOsWGoZYQsLmOGcsBBCBTYCc4BvSik3CCHKpZTdAFLKbiHEsQ3P3mSklEcwwEexL0Oy+YdvUFnuY+7ls0/IPqfj65v/m6p5NXnrIudU/Zrm/fAkFZ6xSBKPQ6X30CiyyJUz5wvgdNs4f80s4imDUCxFid/B3JpSVNV8ABuGpOLTF/DEP/8FRRV0rWtHT+iMj7c0h0blhXUMvt7NqHtqHYDXv/kKNVc10eOd+Ky60kdvf4hUSrJiWRXNTSVTPBa6LkFI3A5b5vzKizyUB9ymqlA6Ba261IuqCPa0jxCOp9ANSV2pB0+xm/MubiAeNYUIdCFw2lVGI0kzxQgwYileXdfOTk8PLUsqMaIp9u4bZP/BIRrqCrlgda050gTU06T8ohACr8tGSjdwOTSqityM17SyVfqwe2043HbzGklJ5fxSDr3RhSfg5m8evhHNpqKoCoOHRvjLNzfQ+lqu29jQdQ5tb+XQ9laWrlmBx6hFZqWl1SwqpyMdS1C7uIL2LT34l8hMD1FqKt0K0FTEngNDrFha9SZcFQuL058ZGWEppQ4sFUIUAo8JIRbO9ABCiPuB+wHq6uqOsPbJRwiBw2YKFJwo/vTlF4gMR1l204L86gEngJK6krw6s0dCAr1DEVp7QzmjX2lIultH2Lt3EI/bxryllZCOgnbbVULxVM5Ap38kSrHbQSA9elMUQXGdWYgkFkygT6oSlYqnaP+zmYoXGYpSvaCMzkmVvCZXqOnsDqKqgndd2UxtfSD/lMFE1cnMf4FZznLypY8nDcbSo3ebqjAaTmC3qVQUe4gnddoHwoBES6UjsQVoisLwUJTevhDRAgddQxGiQ1GqqnxcftlsNEWgCoEuISUlinJ8EpQnGk1VqCvxcqBnwv3cGUtSvbqWtr9MpEYGByIUVvqYe3ED9qwgu5KGALf85xXsfPYAz35zQ0aNSc+Kk9j07EbOe6eH4sJZSGkw0hFEK3FR0BjA77PTPl4rPeuy9PSFqKzw0t0ToqsnSDAUx+e1lJTeTIKDY+qzDz8bGOoeshVVFiXXvG/NsK/Yb0kZnmKO6qkupRzBdDtfCfQKISoB0v+n+rDMbb4jpVwppVxZWlp6fK09QVQXHVYR65g0BV/49qtsenT7SSlB5vK5cHgP776brsk9Q2EO9prZA2ORJN50VLeMJNmbDqgJR5Ls2dIDKQOHTSGpGzkGWErJ4KEx/vjUHvr6QhMBY+n/A63DOH2HrwUcqCvgvl/eygd+8x7+9rHb+eBv7+BdHzmPSy9syFmvtNjNrIZpDPBR4nKoONIjfLtNYTSSpH80ht9rp7LEk7kWbofGufPLOWduOUtnl3DheWZncWw0jqZLXEUuuvvD7NjZhy5NGUs9K2judEMIQWWhm6ZZE3Pa2VXHFFWw4oYW3vs/13HR36ycWlNdCFoum81t37g6c2N5vLnz868/u4E7v/survjsRZSfW0NXqQf9ghrEvBJKV1SiubTMPWmzKXg99pyqaqFpgiMtTg4/+vsfVtxTe/fi73/qe/WPffXRqu9/6nv199TevfhHf//DEyZl+PLLL7uWLl06b86cOQuam5tbvvvd72bKBe7atcu+ePHiefX19QuvueaaWbFYLO8j66GHHiqur69fWF9fv/Chhx7KzPOtWLFi7riUYFlZ2eLLLz+y6/GDH/xgdVNT04KmpqYF2W257rrrGhsaGhY2NTUtuPnmmxvi8Xjetky3/Th33XVXrdvtztQD/u53vxuoq6tbeOmll04fAJSHI9oMIURpegSMEMIFXA7sAp4A7hpvD/DboznwqaS2xHNC69fWL6tkxY0LqF9ciV1VsCsCTQhsivlX7HNQ4LZTU+zJiSieKZ4CzxFHW1Pdtgbt3aMc7BrLiUwOxVIUeR1oPjtVNRMRysFQgt7WEfSEPkWsIj4co+3QCCOjMR55fDsvrzMjXguqfMw6r4ZAtZ+KuSWZ3N7JFFR42fXsAVyFTjyFThw+B3aPHZtTo2CSapTdrpmqO5g3pyLM7KHxv5n0j0T6r6bYQ2OZlwKPnWwxyL6hKKFIgpb6AEJAQ4WPsfBEqpDbbefWGxeiKLDhpTbsqsLuXf288lon69YfYjSdVmQ7iuprbzaplMHShebztSxpMLZ7gJrF5TRf1MD7f3Qjl3/0PNwFzsN6V0rqC5l/6SwAHKIo57OL77wURVOpaCmj4h2zMaQkFtfpkpLhWQHKb1+EIqCm0odhSELhBEPD0UywWlue6nEWJ4cf/f0PKx79z99UJ6K5JSYT0YTy6H/+pvp4DHG2lKHX6zV+/OMfH9y3b9/2p59+eu/nPve52oGBARXgU5/6VM1HPvKR3ra2tm0FBQWpBx98sGTyvnp7e9WvfOUrVa+88srO1157bedXvvKVqv7+fhXMnONdu3bt2LVr145ly5aF3/3ud48crl2/+MUvCjZv3uzesWPH9o0bN+588MEHK4aGhhSAO+64Y+jAgQPbdu/evT0Wi4kHHnhgSlsOtz3ACy+84B4dHc0xIvfdd9/wt771raMu5jGTgVslsFYIsQV4FXhGSvl74MvA24UQe4G3p9+fEQghKJ1GMvDodgR3f/fd3Pb1q7n8I+dSOc8c6StCZNyWqhDUlnhZNquYOZV+5lbNvPzlOP7SmZf6k0BX9xg//tkmnnhiF6+/dIi2HX2ZUavfbRYsMSTUNRVTV1+Iw65SXeGjo2uMrRu7kFmuZSOSZPu2iRQ4KWHrjl5GRqIgBAUVPoY7xmh9rYuCCh9FtVPPLzQY5eL7VqIANkXJMaRqluEuL/Wg6wa9PUEcikh3aBRsWX/2dMfmSPbPnpb1K/Y5WdJQRHNWSlTHYJgdh0bYenAIr0NjR9swOw6NMDg2UYmrpMTDXbcv47ZbFpHQDRpmBYhEk7y+uZt169oYHYlCOgXpdMTjtiGl5OIV1SybV8Y1n72QOx68luu/cBlFNTO/B6/41AWce/sSEiI3+7C0bsKrle8a9I7FUf1OOrqD5jw+psfFm1ZP2vxG+zGLl1jMnODgmPr7h3532FJ/v3/od5XBoeAxOfF+9atfFd9yyy0jAIsXL46P6wU3NDQki4qKUt3d3ZphGKxbt853zz33DAPce++9g7/73e8KJ+/r8ccfL7jooovGysvL9dLSUv2iiy4ae/TRR3Nu1uHhYWXdunW+22+//bDpsNu3b3e+7W1vC9lsNvx+v9HS0hIZ39ett946aqZ8KqxcuTLc0dExxY13uO1TqRSf+cxnah588METIuQwk+joLcCyPMsHgctORCNOBXWlXqJxnd7RPIXuZ8i8Sxopn3N0kdFel42ljcVsbRvKqaQEMGthHd868D3zoaYoKEIgFNjXPsKe9mFAIJEZV7FNU9B1malZrAioLPbQH4xnSjICDA5FmZOSKC4lMycMZmWqwoCTrs4xOtN1nCORJM01hZm5377+EFte78ppq65LXtvSzZymEkJZkbfjaTDVC8vRPRpqwEXnn/ahJ3V8JR4cdg1DTlS3TiZ1QqEkLXNLWbW0aoqoQz6EEKiYAVFSSnRJzj7B7IgYQEd/iKFgnNkVpohCY7kv45oXmKlMwWgyU1Zyb+cYhiEpLTTb4fbYcbltqH0hqusDtB4YRlUEK5ZUUVrkJpkyUKdmZZ0WqKpCfW0h9bWFx7Ufh8fOxfet5OEvfTNnuSZcHFx3iKqsOuOTSSSm1rnve/qvBHsGeWX9Ti5s+QItF7QcV/ssDs+zDz8bmDwCnkwimlDWPvxs4LpPvOuESRmuXbvWnUwmRUtLS7y3t1fz+Xy6zWZ6ARsaGhK9vb1TDF9nZ6etpqYms6/q6upEZ2dnjuvwpz/9aeD8888fKyoqOmxQz7Jly6Jf+tKXqoLBYG8oFFJefvll//z583OiU+PxuPjlL39Z/PWvf739aLb/j//4j7Krr756JLuu9PHwlqqYlY0iBPNqCij02mkfCBGJZ8UnzHB0s/KmGcen5VDosVMRcNE3EiOZJXzvL/RQ6JsarGKLSIZCU+fQXHY1UzZynL7RGM48buFX1h9i3rwyXMVORDrNSeoGu3f2k5ok1ViUJadXUe7j1psW8rNfbc18XlHpw1/moWckim6b+vvu3NaL/72LicRSzLp/BTHdYNtYlNkpA1UV6LEU23b14XLamNVQyMJ5xxYrIIRAS9e8zC5sItKfVQZcjIYT9I/FmF3hp9TvpNBtZygUZyyaYDjPNd3fHTRVngrMTogqBAtqCzmUrmOtG5In/7KPqy9vonqaPOazkeVXruCp7/wp875/W4Qnnv4LCCiZXUTB0nIiikB1qOi6JJk08HocBApdDA1HiaaLlHRvPUDrpv0APPHAby0jfJIZ6h6a0fzXTNfLZjopw7a2Nts999wz6/vf//5BVVVPmJQgwK9+9auie++9t3/KipO44YYbxjZs2OBetWrVvKKiouTy5ctDmqblHOCuu+6qO/fcc0NXXnnllDrU023f2tpqe/zxxwPr16/PW5LzWHhLa4qZD2o3SxuLjzqoWSiCkrrCYz52U2UB580rM8sQpsmTAnxYjsaZJyV0dY7itk/81oY6xojHc434eOGInGUBN5ddMivzflZTMeMD48rzcyPeFU1Q/94lRNIP3aRdpW8szuBwlLGgKQ6/58AQixeUs3hBOV7PiYmQFUKkvQEiSwFKZXFDEbPTyj1uhyne0VjuozIw/ah7X9cYQ+nazgbgdttZ1FjEx+47h9kNAcaCcR77w05C4QTJE5Tudrrzof/9MPd89V4AmlcsZLQrLXkpYWDfEIOP7KRoJEEspuPzOKip9NE/GKazO4jNpmZ+X7XnL0RJC2rs29xKcOzYPVEWR6aosmhGo7WZrpdNPinDoaEh5aqrrprzL//yL52XXXZZGKCioiIVDAbVZFqnvLW11V5WVjbleDU1Ncls13BnZ2eO5GBPT4+6ZcsWzy233DKjgIKvfOUrPbt27drx8ssv75VS0tzcnKnR+nd/93eVAwMD2ne/+90po+DDbb9+/Xp3W1ubs6GhYVF1dfWiWCym1NXVHdtoLM1b2giPY9dUljUWH1XQ1NvuXobDe/iI4COhCFPkwJEeTXqcR9kZndYK5+9R3PiuBSxpKuHc+eWsnlfGULr+8TiaJnA5bfT1T1UvmtdcQlGRiwsuaSSetTxV4mLWO2ajeWy4yj3UXDefztjE7ysUiqMognhCp7c/xOhYnGWLKnAd7bmeQFK6QSiWpKHUw+xyH4Weqd/j6KToXUUR2Gwqq5ZVU1dTgBDw7f/byM9+s5Xd+wbo7M4vD3m2IITg3X93Pdd86J3Mmbs07zrSMD0qQyNROrqDmWmTsWCc6kofNZV+yi5cRdMl5uxW5aLZ9A5aRvhksuZ9a4btLvthXbd2l9249H1rjkvKEEz39DXXXDPntttuG7z33nsz+1MUhXPPPTf4wx/+MADwgx/8oPjaa68dmby/d7/73aPPP/+8v7+/X+3v71eff/55/7vf/e6MwX344YeL1qxZM5Itm7h27Vr39ddf3zB5X6lUip6eHhVMjeFdu3a5b7jhhlGAr3/96yXPPvtsweOPP35AnWY+abrtb7vtttGBgYHNnZ2dWzs7O7c6nU7j0KFDx6XOYxnhNH63nRWzSzh/XhkVbjuq7fCTfYWTax8fx3FXzi6lrtSTqb17vCgKeCd1EN6xZjYud26t55tvXJgRd/d77Xjcdrp6gjz1zF5isdyOak9/mOYlFcSMqZa//Ko5BG5bSPKieromXbZgOElluZcrL5tNNJqisOAEBMQdJ4oiSKYkQlHoG4tRW+KhJB2oV+J3cvGCCpoq/ZnoZ5HV26mu9HHzdS1cckEDZaUeBoai/P7pvTz+5O6cNKCzESEE7/3/vQ+HK4/3QjBVYzGLzq4gw6NRBoaizL/5Mt75jY/ReOX5vLH1mAV8LGaAr9ivX/vRd3Yfbp1rP/rObl+R77ikDAF+8IMfBF599VXvz372s5LxdKKXX37ZBfC1r32t46GHHqqoq6tbODw8rH384x8fADPK+NZbb60HKC8v1z/zmc90rVixYv6KFSvmf/azn+0qLy/PuJoeeeSRottvvz1Hz7e1tdXhcrmm3HiJREJccMEF82bPnr3g/vvvr/+///u/A+Nz0p/97GfrBwYGtJUrV86fN29ey6c//enKyW053PYnGvFmRiiuXLlSvvbaa2/a8Y6Htte72PnsAXY9f5D4pLnDqz57IQvfMeeYimdMhyEliWke4lsODBKJTw1ycUxTftPr1AjHU9gRtB8cRpGSa6+amzPXbUjJwa4xxsZi7N7WSyiUIJ41v1xfW8DVV85FUUSm6lZ7X5DOSaNnmdTp+cV2YrU+hvKELBcVurjystkkUwY1lX6U0yitR0pJPGUQT+gMheJ0DoVZ2liMNz1Kl1ISNySGbuCyqVPc9NFYkp//ZhtOp0Z3b4hliypYc2FjvkOdVXRs7WXPi60Mto1wYIMZIFp311K6IofP/fX7HCAlY5N+T3fetIjyMu80W1kACCE2SilXZi/bvHlz65IlS6YWAc/Dj/7+hxW/f+h3ldlBWnaX3bj2o+/svvsr9xxzT+ill15yffWrX614/PHHDx557RPPBz7wgZp77713cPXq1aeFS+X3v/+972tf+1r5ZKWnzZs3lyxZsqQh3zZv2cCsI1G/vIr65VXMOreGP/z7CyRiSZDQcvlsFl/VfMKPpwhBIpZg5+4BDCkxjIk/f4mbgpzSjxMVnpx5AqNURRCKQRxJWUMhAa8dgwm3h24Y7OscZTiUwKkqjI7FSKVyOwDReIqOvhB15V5k2vjUlvnQVIW2vnSQ0qFR9v5kC6PdQaqVWqidGqi0eEEZpSWenEINpwtCCJw2FadNxe+20VCWW6taCIFdAUXN/zNxOW2866q57NgzgN2uMvcoI+XPVGoWlVOzqBxDN3jwXT8hEU5id6iocZFJR8pHKJygrMQ9xQhveL2Tqy6bg+0I3ieLY+fur9zTc+Pf39S3Nqti1qXvWzN8rCPgcU6FlGE2aRWj04Lvfve7gS9/+ctVixYtihx57QmskfAMSCV09q07xMFXO7j4vlW4T5JLdXQsxvd+8saU5csvqEPkMWJ2TckoH2WTLcs3Tnmhi8ZKP8mUwZ6OEYLRJIoQbHulnWg0d5Rd3xigvL4Q3ZD43TZa6nMLNfT0jLHxR2+w788TZRA9RS7UNQ1EsoyY3abyN+9ddkrnf082/QNhHA4Nt9t2WnY0Tja79w0wmEiRMCR2VeHQ3gEG+8IYSJCmLKXAnB4ZC5rGt7rCl0mJA7MzecO182k4znSqs5njHQlbnFqskfBxotnVjGzcycTrsVNb5ae9a1KQzwnoJ/WORHHaFfpGYpm0JkNKlq+u5aXnDrJ4QTlVlT4O9QRxF7syecFjkSRDY7GMYhFAqiuUY4DB1JzlkZ2U3jifYUVQVuLh2iuazmoDDFBS7D6take/2cyZVUzwwACJWIqEbtC8oJyWayY6bd/5/qskU0bGAAOMheI5+5ASdu7pp6rCh90aDR8NhmEYQlGUszsY4QzHMAyBmWiRl7de1/00RlWVTN3ibE7UI76tLzxlWcyQ3Hj9Ai58WwOzZxdzyXn1lE3Sej3UlxstnYxOn80Q++shVs4v4z03LCRQcPbL1b2VDTCYZUXt2oThHIsm6RqYuM8mWwchoMDvoKrCS1HASUmRCyHgQOswoUnG2eKIbOvv7y9IP+QtTkMMwxD9/f0FwLQR1NZI+DSjosyL3+dgLDjxQJLI/Ib4KKcSygqdNJT72XJggJQhSemSRQ1FeLJSs0S61nXv8EScQyypEwzH8aVzehPRFIqmYOgGSLOq0vw1syiuL6R6YRmVc08PoQ6Lk48QIlNxbJzCPKl7Po+NYNicAhkZjWcEHEpL3FRX+EFIEknD1Hm2RsMzIpVK/U1PT8/3enp6FmINqE5XDGBbKpX6m+lWsIzwaYYQgtUrqnnmuQl3b32ZD5tj6lclMCs4mTq4E+oGqhCUF04q5SglZQE34WiSlG5+Vuxz4M4jZGFkOU6KfQ6qij14XTYUzDuqblklF71/Bet+upm6JRXMPq+OWatr8L7FXbNvVTp/uY1tT++jsMpP0ewAfOx8GI8wT09rjN8XTqeGz2snHk8hpWR0NEZFmZeu3jDrXm0HIXhXOirf4vCsWLGiD7juVLfD4viwjPBpyOKWcvbsH8wozVSWejNi9TNhPKUoHy6nhqoI4imDwWCcsnACn9ue89CLx5LIpI7NaaOpphCYKAdpUwSFpR6aL2xg0VXN6EkdT8B1QtO1LM4sRntCIM3a4SOdY0T7wqy4dRGzLqhnvCs4nn0XjiRz6pqjSyLRJKmUwerl1Wzd1c/gUITSkiPIjVpYnCVYT87TlCULyjOvT2TUhSIEVVkPuJ3tI+zIEpNobR3i8Sd28sb6dlq39zI0ODG/p2M+TIUQFFb5cHrt+Eo8lgF+izOWjjUQqkBza9gWlrFlzwDJhJ6ZMTlcH3JgKEpZqYfuvhCqIti6M680uYXFWYk1Ej5NKSvxoCpiitLSiaC0wEVHfzgjHhGKpdhyYAAZSrJuw0Qp1d6+ML/9w25uvX4B7rSwhEiPiYUQ0+oHW7x1CIbixC6uQ8vKD+4CSOmoNgUpTe/LkaILFQGt7SPU1xSy4BgFPSwszkSOaISFELXAw0AF5pTgd6SUDwohlgL/CziBFPAhKeUrJ7GtbykK/E5a5paelFGBogiqit2ZohsAsWiKLRs7M+8XtpRRUealqMhl5sAKMw7MmvO1yGbP/sFpC3Q8+9wBFEUQi6fwF3ppXl6VGRln7qLxF7EUG1/pYOXS6rM+rc3CIpuZjIRTwN9JKV8XQviAjUKIZ4D/BL4gpXxSCHF1+v0lJ6+pbz0uu6gRn88OUpqBV3k41nFyWaGLzsEwqfQDdKhrLCNpqCqC5Uuq8PsdSMybRAKaIiwjbJHDvtZh1HRhjmwqK3zs2TchT9vbE2JkJMqSc+vQjaygwXF3tWKOmts7RqmvKcDC4q3CEY2wlLIb6E6/DgohdgLVmD+fcRWDAtJeKIsTh6oqnLuihlRavP5EoqkKK5tK0Q1JPKljn1PCwdZhtu/qo7rchy8dDQ0gBWjCMsAWuaR0g/LZRcgNnbSty1WEO6QpKNfPy1kWj+nERmLY/FMFIMbnjLfv7uP8c2qt6GiLtwxHNScshGgAlgEbgE8ATwkh/gszwOv8E904i7RwPaBPkxM83aMq3/L9XaPEkwYIcGgK5QEXHpcddzqwqqmphKY5xSjCnPk1/0u0oxU6tnhLMC4qkreM6zT3664dfSxZXoVhz80FTqSruIXCSVoPjTCrIXBiG2thcZoy46erEMIL/Ab4hJRyDPgg8EkpZS3wSeD702x3vxDiNSHEa/39/SeizW85TCGB6d3Rk/+mWx6KpRiNJBgNJ+jpDbFrZz/Dw5PER9IGWM3KObawyEc4nsKuKVz+odWUNxXjK52Iup+ujkwiodPdeXjt5c3be09kMy0sTmtmZISFEDZMA/xTKeWj6cV3AeOvfw2ck29bKeV3pJQrpZQrS0utqMdjRRHTzQofGzs397D+1Q5+8chW1q0/RDgUR+oGarrmhzQkirACsSymJ5bQSaQM9g2GWXLtXC7/6Lkz2q6jfRRtkmoXukQFNCSd7SNERmMnvsEWFqchRzTCwnwKfx/YKaX8etZHXcDF6ddrgL0nvnkW2dhO4DxZPGG6Eg1D8vrmbn70003s2TOAJgR6UicSSVoG2OKwlBe68Dg1Al47y66bT/euCUEfeYTUug0vt5E9MzzyXCvxX+8g9uudhH+5nXU/2XRyGm1hcZoxkznhC4D3AluFEJvSyz4H3Ac8KITQgBhw/0lpoUUGRQhsCiSPM3dYSpnXXfjSK+3YbAoej8OKULU4Im6HxoLaAKoi2PXcQdb/bPNRbd95aISSukIANFfuo2jz73dz8X0r0exWKQOLs5uZREe/yPTxPytObHMsjoQqBIrCMUdM2zWBYQjOu6iBdS+0AqayjaoIhDATwUuL3Se0zRZnL26HRjKls3EghOPWBZknhUBw/70r0t4Uc46ja2svv/n0k+kVBOHZRbQeGB7fgKqWUrp39yN1SMZSdO/sp3ZJ5Sk5LwuLNwurm3kGIoRAZfqI6SNsTSqt0LDiooacTwrcdkoCLtwuq1iCxcyQUvLyKx0IwaTqbqb2V/aUhhBg6BOhg4Yu0ZN65vOuHf1UzC2hZ/cAQhHsX99uGWGLsx4r9+QM5UTN1o5PMyuKwOuyYdOsW8Li6PC4bfT2BBFSgpTI6TqHk2Ia4uEEqi33fhu32dKQ7Hru4PT7srA4S7BGwmcoxmE+G1c8Gn99OKqLPQSjSTxODY9Dpcg7tZCChcV0CCFYubSKg7/YyoENHQAU3txCCNi2vQckxNM5wMZYPGfb0e4ggWofw53B7B1OfN4TontnP1UtZSf9PCwsThWWET5DUTBzeXWZf1Q8bnyzP5tfV4g0IBxPIiUEvA5URaCmc4OFlFZEtMUx4fRN7by9tL4dI8tFXTxpHYlkqHOM6pYyunaYNQSM1ET30ubU6N07YBlhi7May/d4hiKEyNSTnq5gxzjjy2yait2uUuRzUuR3IhSBASSlRCKtUoEWx8zbP34eqs2sgjXy6x2kHtkx9UacdHupgTAvP/c4j33vB9hLTI1haUhUm4LNqSEUwbqfbiEWjGNhcbZiGeGznJnOqI2XqrSwOBacXgdNF9RNLMieE0mTmSKREq04yl8fewaAVCKFLhNULyyjb/8QetIgGUuRiCQJ9od55Vdb35RzsLA4FVju6DMYRTAjK3uk1dJJJBYWx8WSa+ey96U26pZV0r1rgOZwih3P7Et/KkhWu3l1/R/QU/qUgCtfZTFjwTjeOv+U/fZ2B6css7A4W7CM8BmMIgSaMHOGjweR3pdhRaJaHAd1SytZeGUznVt7uP2Bq/nRfY9npSSZ872JWCLvtqK5gqiaPz+9166i6waqajnuLM4+rLv6DEdTxHF/iQZYBtjiuFFUhTUfPIe5FzfiL/fmBGUBIEHV1Cnb2Zx2YoPTizrEEzpdPdZo2OLsxBoJnwUcaRQ7E/NqyJzsEAuLY8LusnHBXcvo3TOIw2MHQLOppJI6qk1Bc5iPHKEIhKKgpOW6pHG4pDtTu9jC4mzEGgmfBaiZUoH5mbw8n1HWpUQBjCM8DC0sjoSeNAgNRUjGUhTXFxKPJIiHEhgpSTwcR0/ppBIpkrEE8XCceDg+vfZhGodVQ9riLMUywmcBQpgu6ekeY0fIFMmsI4Sw8oQtjhvNruL0Olh67VwSkSSpuFmsQyJRbSo2hw1l0vzukVSXHPapbmwLi7MBywifJWjT5PjOdHQ8fiNYM8MWJ4LSWQEu+8i5FGWpcUXCo+hJnWQ8ybzz5k3a4vAeGIfDGglbnJ1YRvgsQQB2RaCJIwdqSUwd4ezAmVhSZyQcJ56Ymj5iYXG0ODx2FFXh6s9eCIDNK1n76O+m3+AIt5w1ErY4Wzli91IIUQs8DFRgdle/I6V8MP3ZR4GPACngD1LKz57EtlocBrOClpk7LOWE1OF0z7ZgJMGO9hFcdhWnXWMkFKci4KK5qoB4UsdpzcFZnAAcXju2qlH2vb43p3MnAafXiaZpCFXB2w/Dr+5Kfygz/xRV4C31oP7t6lPQeguLk89MnrQp4O+klK8LIXzARiHEM0A58C5gsZQyLoSwCryeJggh0AA1LSenSznV2Zf2R0cTOtF0gf1EykBYlbMsTjC+Eg8du9pzlu18cUfuSjK3bvQ4uiHNzqViOe0szk6OaISllN1Ad/p1UAixE6gG7gO+LKWMpz/rO5kNtTg6soOsFGkKPRypqMdgMM5wKI7bmn+zOIFUzqmawVrT35vekvxFPCwszgaOqnsphGgAlgEbgGbgQiHEBiHE80KIVSehfRYnACEEmiKwZ/0Vuu0sqAtQW+LJWbdrODJtkJeFxbFwxf1XUju/9rDrHK576Jt0j1pYnE3MeMgjhPACvwE+IaUcE0JoQAA4F1gF/EoIMUtOiuoRQtwP3A9QV1eHxalDyUo/smsqpX6VUr8TKaFjMIzboVHqd5LUJaoVB2NxgrA5bJx3w/nYn3yN9p0dJKJTVZGEkGgOlUC1P1PQAyA0GKFsTtGb2VwLizeVGRlhIYQN0wD/VEr5aHpxB/Bo2ui+IoQwgBKgP3tbKeV3gO8ArFy50ppuPA2ZXeHD57Jh1xQC3qm6sBYWx8udX3ovd37pvYz0jfDEA7/lD//9e6LBaOZzKSEV1+k/MDxl2+oF5W9mUy0s3lRmEh0tgO8DO6WUX8/66HFgDfCcEKIZsAMDJ6ORFicXIQTlha5T3QyLtwCFZYW879/v4tpP3cAjv99tpskJcA9EGdq/d8r6Do+dynmlp6ClFhZvDjMZCV8AvBfYKoTYlF72OeAHwA+EENuABHDXZFe0hYWFRT4Um414yiCRjsz3a/nDUy65fxWalSNscRYzk+joF5m+8NKdJ7Y5FhYWbwW8XnvO+3zdd1+ZhyXXzn2TWmRhcWqwku8sLCzedDRVYU7jRMBVvuz0stlFCCtS3+IsxzLCFhYWp4SWuaUT8pl5RsJjveE3tT0WFqcCywhbWFicEkqKXLzv1iXUVftRCp1TPp9z5RxGRmOnoGUWFm8elhG2sLA4JWzd0ceLGw5xweo6yMphtzk1AjV+ypdWUuC3UuYszm6s+oQWFhanhDmzith3cIiXX2ln1dvqaQ640RwaC94xh5HhKKFY0tK3tjjrsYywhYXFKaGkyM2dNy+eWNBs5gOnUgaxlE59beGpaZiFxZuI5Y62sLA4rUilDKor/ae6GRYWbwqWEbawsDitcDotB53FWwfLCFtYWFhYWJwiLCNsYWFhYWFxirCMsIWFhYWFxSnCMsIWFhYWFhanCMsIW1hYWFhYnCIsI2xhYWFhYXGKsIywhYWFhYXFKcIywhYWFhYWFqcIIfOpaZ+sgwnRD7S9aQfMpQQYOEXHPhFY7T/1nOnnYLX/1HI87a+XUpaeyMZYnB68qUb4VCKEeE1KufJUt+NYsdp/6jnTz8Fq/6nlTG+/xcnBckdbWFhYWFicIiwjbGFhYWFhcYp4Kxnh75zqBhwnVvtPPWf6OVjtP7Wc6e23OAm8ZeaELSwsLCwsTjfeSiNhCwsLCwuL04qzzggLIW4WQmwXQhhCiJWTPvtHIcQ+IcRuIcQVWcufSy/blP4re/NbntPOYzmHFUKIrenP/p8QQrz5LZ+KEGKJEGJdum2/E0L408sbhBDRrGv+v6e6rfmYrv3pz/J+F6cTQoilQoj16Wv8mhDinPTyM+X6521/+rPT/voDCCF+mXWdW4UQm9LLz4jvwOIkI6U8q/6A+cBc4DlgZdbyFmAz4AAagf2Amv4sZ91T/XeM5/AKcB4ggCeBq071eaTb9Spwcfr1vcC/pV83ANtOdfuOo/3Tfhen0x/w9Pi9AFwNPHeGXf/p2n9GXP885/M14F/OpO/A+ju5f2fdSFhKuVNKuTvPR+8CfiGljEspDwL7gHPyrHfKOdpzEEJUAn4p5ToppQQeBt795rX4sMwFXki/fga48RS25ViYrv1nyv0kgfHRewHQdQrbcixM1/4z5fpnSHunbgF+fqrbYnH6cNYZ4cNQDbRnve9ILxvnh2mX0OdPF1duHqY7h+r068nLTwe2AdelX98M1GZ91iiEeEMI8bwQ4sI3v2kzYrr2H+l+Ol34BPBVIUQ78F/AP2Z9diZc/0+Qv/1nyvXP5kKgV0q5N2vZmfAdWJxEtFPdgGNBCPFnoCLPR/8kpfztdJvlWTYeGn6HlLJTCOEDfgO8F3M0edI4wedwuHM76RzuXDBduP9PCPEvwBNAIv1ZN1AnpRwUQqwAHhdCLJBSjr0pjc7iGNt/Sq95Nkdo/2XAJ6WUvxFC3AJ8H7icM+f6T9f+0+b6w4x/z+8hdxR82nwHFqeOM9IISykvP4bNOsgdhdWQdm1JKTvT/4NCiJ9hurVOqhE+wefQkX49efmbwgzO5R0AQohm4Jr0NnEgnn69UQixH2gGXjuJTc3LsbSfw9xPbzaHa78Q4mHg4+m3vwa+l97mjLj+07Wf0+j6w5HvISGEBtwArMja5rT5DixOHW8ld/QTwG1CCIcQohFoAl4RQmhCiBIAIYQNuBbTBXk6kvccpJTdQFAIcW7alf4+YLrR9JvKeKS5EEIB/hn43/T7UiGEmn49C/NcDpyqdk7HdO1nmu/i1LTysHQBF6dfrwH2wplz/Zmm/Zw513+cy4FdUsrMtNEZ9B1YnETOyJHw4RBCXA88BJQCfxBCbJJSXiGl3C6E+BWwA0gBH5ZS6kIID/BU2gCrwJ+B756q9sPRn0N6sw8CPwJcmNHRT775Lc/Le4QQH06/fhT4Yfr1RcAXhRApQAf+Vko5dCoaeATytv8I38XpxH3Ag+mRWAy4P738TLn+edt/Bl3/cW5jakDWmfIdWJxErIpZFhYWFhYWp4i3kjvawsLCwsLitMIywhYWFhYWFqcIywhbWFhYWFicIiwjbGFhYWFhcYqwjLCFhYWFhcUpwjLCFhYWFhYWpwjLCFtYWFhYWJwiLCNsYWFhYWFxivj/A4rD9wXd8R/5AAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" } - }, + ], + "source": [ + "ax = df.plot(column='HR60', scheme='BoxPlot', \\\n", + " cmap='BuPu', legend=True,\n", + " legend_kwds={'loc': 'center left', 'bbox_to_anchor':(1,0.5),\n", + " 'interval': True})" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Categorical Data" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, "outputs": [ { "data": { @@ -634,19 +548,9 @@ " legend_kwds={'loc': 'center left', 'bbox_to_anchor':(1,0.5),\n", " 'fmt': \"{:.0f}\"}) # fmt is ignored for categorical data" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { - "nbsphinx": { - "execute": "never" - }, "kernelspec": { "display_name": "Python 3", "language": "python", @@ -663,6 +567,9 @@ "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.1" + }, + "nbsphinx": { + "execute": "never" } }, "nbformat": 4, diff --git a/doc/source/gallery/choropleths.ipynb b/doc/source/gallery/choropleths.ipynb index 7ca4c55..b167e63 100644 --- a/doc/source/gallery/choropleths.ipynb +++ b/doc/source/gallery/choropleths.ipynb @@ -28,12 +28,6 @@ "ExecuteTime": { "end_time": "2017-12-15T21:29:37.736444Z", "start_time": "2017-12-15T21:29:37.716444Z" - }, - "execution": { - "iopub.execute_input": "2021-02-19T19:18:04.695356Z", - "iopub.status.busy": "2021-02-19T19:18:04.694550Z", - "iopub.status.idle": "2021-02-19T19:18:05.468831Z", - "shell.execute_reply": "2021-02-19T19:18:05.469324Z" } }, "outputs": [], @@ -49,25 +43,186 @@ "ExecuteTime": { "end_time": "2017-12-15T21:29:39.866422Z", "start_time": "2017-12-15T21:29:39.846422Z" - }, - "execution": { - "iopub.execute_input": "2021-02-19T19:18:05.473838Z", - "iopub.status.busy": "2021-02-19T19:18:05.473318Z", - "iopub.status.idle": "2021-02-19T19:18:06.370313Z", - "shell.execute_reply": "2021-02-19T19:18:06.370935Z" } }, "outputs": [ { - "output_type": "stream", "name": "stdout", + "output_type": "stream", "text": [ "Observations, Attributes: (49, 21)\n" ] }, { - "output_type": "execute_result", "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
AREAPERIMETERCOLUMBUS_COLUMBUS_IPOLYIDNEIGHOVALINCCRIMEOPEN...DISCBDXYNSANSBEWCPTHOUSNEIGNOgeometry
00.3094412.440629251580.46700319.53115.7259802.850747...5.0338.79999944.0700001.01.01.00.01000.01005.0POLYGON ((8.62413 14.23698, 8.55970 14.74245, ...
10.2593292.236939312144.56700121.23218.8017545.296720...4.2735.61999942.3800011.01.00.00.01000.01001.0POLYGON ((8.25279 14.23694, 8.28276 14.22994, ...
20.1924682.187547463626.35000015.95630.6267814.534649...3.8939.82000041.1800001.01.01.00.01000.01006.0POLYGON ((8.65331 14.00809, 8.81814 14.00205, ...
30.0838411.427635524233.2000014.47732.3877600.394427...3.7036.50000040.5200001.01.00.00.01000.01002.0POLYGON ((8.45950 13.82035, 8.47341 13.83227, ...
40.4888882.997133675723.22500011.25250.7315100.405664...2.8340.00999838.0000001.01.01.00.01000.01007.0POLYGON ((8.68527 13.63952, 8.67758 13.72221, ...
\n", + "

5 rows × 21 columns

\n", + "
" + ], "text/plain": [ " AREA PERIMETER COLUMBUS_ COLUMBUS_I POLYID NEIG HOVAL \\\n", "0 0.309441 2.440629 2 5 1 5 80.467003 \n", @@ -91,11 +246,11 @@ "4 1.0 0.0 1000.0 1007.0 POLYGON ((8.68527 13.63952, 8.67758 13.72221, ... \n", "\n", "[5 rows x 21 columns]" - ], - "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
AREAPERIMETERCOLUMBUS_COLUMBUS_IPOLYIDNEIGHOVALINCCRIMEOPEN...DISCBDXYNSANSBEWCPTHOUSNEIGNOgeometry
00.3094412.440629251580.46700319.53115.7259802.850747...5.0338.79999944.0700001.01.01.00.01000.01005.0POLYGON ((8.62413 14.23698, 8.55970 14.74245, ...
10.2593292.236939312144.56700121.23218.8017545.296720...4.2735.61999942.3800011.01.00.00.01000.01001.0POLYGON ((8.25279 14.23694, 8.28276 14.22994, ...
20.1924682.187547463626.35000015.95630.6267814.534649...3.8939.82000041.1800001.01.01.00.01000.01006.0POLYGON ((8.65331 14.00809, 8.81814 14.00205, ...
30.0838411.427635524233.2000014.47732.3877600.394427...3.7036.50000040.5200001.01.00.00.01000.01002.0POLYGON ((8.45950 13.82035, 8.47341 13.83227, ...
40.4888882.997133675723.22500011.25250.7315100.405664...2.8340.00999838.0000001.01.01.00.01000.01007.0POLYGON ((8.68527 13.63952, 8.67758 13.72221, ...
\n

5 rows × 21 columns

\n
" + ] }, + "execution_count": 2, "metadata": {}, - "execution_count": 2 + "output_type": "execute_result" } ], "source": [ @@ -122,25 +277,19 @@ { "cell_type": "code", "execution_count": 3, - "metadata": { - "execution": { - "iopub.execute_input": "2021-02-19T19:18:06.375604Z", - "iopub.status.busy": "2021-02-19T19:18:06.375107Z", - "iopub.status.idle": "2021-02-19T19:18:06.570919Z", - "shell.execute_reply": "2021-02-19T19:18:06.570247Z" - } - }, + "metadata": {}, "outputs": [ { - "output_type": "display_data", "data": { - "text/plain": "
", - "image/svg+xml": "\n\n\n\n \n \n \n \n 2021-02-19T22:27:18.985781\n image/svg+xml\n \n \n Matplotlib v3.3.4, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", - "image/png": "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\n" + "image/png": "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\n", + "text/plain": [ + "
" + ] }, "metadata": { "needs_background": "light" - } + }, + "output_type": "display_data" } ], "source": [ @@ -167,37 +316,32 @@ "end_time": "2017-12-15T21:29:54.097280Z", "start_time": "2017-12-15T21:29:53.766283Z" }, - "execution": { - "iopub.execute_input": "2021-02-19T19:18:06.598910Z", - "iopub.status.busy": "2021-02-19T19:18:06.598332Z", - "iopub.status.idle": "2021-02-19T19:18:06.799060Z", - "shell.execute_reply": "2021-02-19T19:18:06.798559Z" - }, "tags": [ "nbsphinx-thumbnail" ] }, "outputs": [ { - "output_type": "execute_result", "data": { "text/plain": [ "" ] }, + "execution_count": 4, "metadata": {}, - "execution_count": 4 + "output_type": "execute_result" }, { - "output_type": "display_data", "data": { - "text/plain": "
", - "image/svg+xml": "\n\n\n\n \n \n \n \n 2021-02-19T22:27:19.389656\n image/svg+xml\n \n \n Matplotlib v3.3.4, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWYAAADtCAYAAACMJt+5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAABusElEQVR4nO2dd3gU1frHP2e2ZDfZ9EYSQhIglNClW6gqiCIqFsR61Yt67b397A2vXnu5145drIAiTUVURAGlF+kQkpBet++c3x+7ICVlN9lNNjif55lnd2Znzjmb7H73zHveIqSUaGhoaGiED0pbD0BDQ0ND41A0YdbQ0NAIMzRh1tDQ0AgzNGHW0NDQCDM0YdbQ0NAIM/RtPQANDQ2NtqSrENLq57mFMF9KOT6kA0ITZg0Njb85VmCan+c+CEmhHMt+NGHW0ND4WyMAXVsP4jA0YdbQ0PjbE26LbZowa2ho/K0RaMKsoaGhEXaIth7AYWjCrKGh8bdHmzFraGhohBnajFlDQ0MjjBCEnxCG23g0NDQ0Wh1txqyhoaERRmheGX6SlJQks7Oz23oYGhoaYc7KlStLpZTJLW1HE2Y/yM7OZsWKFW09DA0NjTBHCLErKO0Eo5EgEpbCrKGhodFaaCHZGhoaGmGIZsrQ0NDQCCO0xT8NDQ2NMESzMWtoaGiEGdqMWUNDQyOM0EwZGhrNYMaMGVRWVmIymTCbzZhMpkO2g49FRUWRlpaGEOF2c6oRrmheGRoazeC2W2/mlBP6EmE0Yne6sDlc2B0u7E4XdrvT+9zhwu5wsqewmG+//Y7jjjuurYet0Y7QZswaGgGSndWJK88bw7D+uU2eO+bSx3E6na0wKo2jiXC7vwq3HwoNjSPIzs5m594Sv85VVYlOF243phrhzH4bsz9ba6HNmDXCnuzOXdmZv8evcz0eVRNmjYAJtxmzJswaYU/nzl1YuXi1X+dKKbnlphuItkThcrtwu9243R5MpggslmgsFgtRlmiio2OwRMcQHR3N4MGDGTNmTIjfhUY4E26mA02YNcKe7OxsPiso8+vc/z5wKXuKytDrFAx6PXq9gk5RcDjd1Frt1NTZqLXaqbNWUltTxNq1Rcz64lOWLlse4nehEa4E2ytDCBEHvA70BiRwGbAZ+BjIBnYC50opKxpqQxNmjbAnJyeHnXuK/Tq3d7dMenfL9Lvtleu2c+XDHzZ3aBpHCUGeMT8HzJNSni2EMAKRwN3At1LK6UKIO4E7gTtaaTwaGsEnKyuLPYXFeDxq0Ns2m4zY7fagt6vRfgjm4p8QIgYYAbwBIKV0SikrgUnADN9pM4AzGmunyb6EEG8KIYqFEOvqee1WIYQUQiQ1cO1OIcRaIcQqIYSWYFmjWZhMJhLi4ygsafDOr/ltRxiw2TRh/rsj/NyAJCHEioO2aYc11RkoAd4SQvwhhHhdCBEFpEopCwF8jymNjccfU8bbwIvAO4e8ESEygZOA3U1cP1pKWepHPxoaDZKTncWO/BI6dkgMarvmCCN2hyOobWq0P4Tip1+GKkullIMaOUMPHANcJ6X8VQjxHF6zRUA0OWOWUi4Byut56RngdrzGbQ2NkJKTk8OOfP/szIGgzZg1hACdTvFr84N8IF9K+atv/1O8Qr1PCJHm7U+kAY1+mJtlYxZCnA7slVI25cMkgQVCiJX1TPkPb3Pa/tuDkhL/ggk0/j5k5XRhl59BJoFgNmkzZg0QQvi1NYWUsgjYI4To7js0FtgAzAYu8R27BJjVWDsBe2UIISKBe4CT/Tj9OCllgRAiBVgohNjkm4EfgZTyVeBVgEGDBmmzcI1D6Ny5Cz9+82vTJwZIhNGA0+lCVVUURVsL/3si/Ddl+Md1wPs+j4ztwD/wToJnCiEux2v+PaexBprjLtcFyAFW+35BOgK/CyGG+H4tDiClLPA9FgshvgCGAPUKs4ZGY2RnZ/Pu3uAvVQghiIgw4nA4MJvNQW9fo30QzGyEUspVQH126LH+thHwFEFKuVZKmSKlzJZSZuO1qRxzuCgLIaKEENH7n+OdYR/h2aGh4Q85OTnsDIGNGcAUYcRms4WkbY12gPAu/vmztRb+uMt9CPwCdBdC5Pum4g2dmy6EmOvbTQV+EkKsBn4DvpZSzgvGoDX+fmRmZlJYXIbL5Q5622ZThObL/DdGEDwbc7Bo0pQhpTy/idezD3peAEzwPd8O9Gvh+DQ0ADAYDHRISWZPURmdM1OD2rY2Y/6bIwSKfx4XrUZ4jUZDoxFycvxP/xkIWvSfhqIIv7bWQsuVodFuyMnpzI784AuzNmP+e7PflBFOaMKs0W7IyunCzvw1QW/XHKHNmP/WiAAi/1oJzZSh0W7o3LkzOwvrC0JtGd7oP23G/Hem3S3+aWgcjpSSffv2sXPnTnbt2sWOHTvYtXM7u3ZsZ+euXYDgg49m0r9//6D2m52dzc784PkySymxO1zodIo2Y/5b07qucP6gCbNGwPzwww+MHj2aXrlZ9OicRlZqDHnpCZzSqydZacexbmsBJ584hhtvvpXBgwcjpWT16tVsWLuKuIQkunXvcWAGotfrMRgMB6Lu3G43VVVVVFZWUlVZQWVlOXarFYfDQWVlJZu27mrx+F//5DtuePQdHA4nRqOBSLOZuLi4Frer0T4RgrDzytCEWSNgRo4cyWX/uITdm//g3YcvIsJoOOT1Prkdye2Uwrtff89jsz9EEQo9c5IZlJNKZfVuVn3vjTNSpYrbI3G5PUhfEL5OEcRaTMRGGUmzmOmeaSbSFEeEUY9B34mzfviJyupa4mIszR7/7oJSbr31Nh544AGtPqAGoC3+aRwFCCH436uvc945k7n0/nf58PHLjjhnUK9sBvXKDnrfHZJiWbZqK+NH9G92G06Xh0SLRRNljQO0piucP4TX/F2j3aDX63n7nff4YlHr1j/ISk9ixfrtLWrD6fZgNBqDNCKNdo+fC3/a4p9Gu0BKSUQrC1y3rFQ2bt3bojYcTrcmzBoHEGjuchpHEU6n8wj7cqjpnpXCzhYGmThdHiIiIoI0Io12jwBFJ/zaWgttxqzRbJxOJ0ZD636EsjOSKKuqbVEbTpdmytA4FG3xT+Oowel0YjS2sjCnJ1JdY21RGw6XW5sxaxxCuzNltLBK9nghxGYhxFYhRMAFCTXCm7aYMedkJFFd2zJhdro0G7PGXwgEivBvay38sTG/DYw//GBTVbKFEDrgJeAUIA84XwiR1+yRaoQdTqcTg751hTk1MQaXR6WopLLZbWimDI1DCMNE+f7kY14ihMiu56X9VbIbKio4BNjqy8uMEOIjYBLewoQaRwGxsbEUFJdTUFxJekpcq/QphCA5PpqptzxPt5x0LGYTMRYT0VFmoi1m4mIiibVEEh8TRXyMhfjYKOJiIg+p5+d0ujRThsYhHBU25oOrZDfyhjKAPQft5wNDG2lzGjANoFOnTs0ZlkYrk5mZybXXXseVj37I7GevarUPt8PuYMe2fJKEh912F1anC5vDTZ3Thd3pxuZ043C5cbg8OD0qbo+KXqegVxT0OoGUUF4e/GRIGu2ToyIkO4Aq2fV9Sxusfq1VyW6f3Hvf/QwdPJv3vl7GRacNb5U+UxJiuP3kPlx8Qk+/zldVid3lxuoT7bNeXEiHDh1CPEqN9kP4JTFqzs/EwVWyd/JXlezDP+n5QOZB+x2BguYMUiN8MRqNPPTIY7w1+7dW6zPaYmZftf8LgIoiiIwwkBRtJjMxmkhzBBs3bmTz5s2Ulpbi8XhCOFqN9kC7j/yTUq4FUvbv+8R5kJTy8HyMy4FcIUQOsBeYAkxt/lA1wpWTTjqJK/95Oas27aF/j8ymL2ghyfEWCiqb75lxcs903nruCf7zyP2UVtdSXWcj1mIhMT6OxIR4EhMTSUxKJiElhcSkFJKSkkhMTCQpKYnk5GTy8vIOsVlrtHMEiDD7fzYpzL4q2aOAJCFEPnC/lPKNBs5NB16XUk6QUrqFENcC8wEd8KaUcn3whq4RLphMJm674y6ueOhFHrnmNJLjo4m1mOmSmRySWUZ6Sjz5e4qaff09Ewdwz8QBB/Y9qkpFnYOyWvtfW00pZfvyKdvuYJfVTZnVRVmtnVXbC5n52eeMGzcuGG9FI0wIpinDN1mtATyAW0o5SAiRAHwMZAM7gXOllBUNtRGyKtm+/bnA3Kb60Gj/XH/99cTExPDIq6/gcDgoKS2jrq6Oq88dwQNXnRbUGWZ2eiJr12wNWns6RSEp2kxStLnJc8995Tuqq6uD1rdGOCC8K4DBZfRhVoQ7gW+llNN9MR13Anc0dHF4zd812i06nY7LL7+cpb+uYOWqtezOL+CP1WtZvLaEa6fPDEofqqry7pxfmDHrZ7bta3CyEVLMRp1W7eQoQwhQ9Dq/thYwCZjhez4DOKOxk7WQbI2Q0alTJ+Z8/Q2dMjvy9C2TMUU0nfDI6XRz/u2v8vuGnZRU1OL0eJPoRxh06ITAYjJw7qDOvPFT2wizSa9o9QGPQgIwuSUJIQ7Odfuqz6PsYCSwQAghgf/5Xk+VUhYCSCkLhRApNIImzBohJT4+nrwe3fhlzTZGD+7R6LlWm4P+Zz9IvEHw7OTBDMpOIj4yAkUIKm0Oah1uOidF4/KovPjdOlRVbfVFOLNBmzEfdQgB/tuYS6WUg5o45zgpZYFPfBcKITYFOiRNmDVCztiTx/Pdb2sZPbgHu/aW8vBrX1NTZ6Omzk6dzYnd7sLhdFFYUsmAzES+vPpEIgyH3jamGiJJ9T036nUY9Tr2lNWSlRzTqu8lQie0GfNRSDC9MnxrbUgpi4UQX+CNgt4nhEjzzZbTgOLG2tCEWSPknHDCCJ566GsA3vnqF76Yv5yzB3ehk8VAdKIJS4SBaJOB9LgoTsrLwOBHFFas2cjW4spWF2azQRPmo5FgeQ8JIaIARUpZ43t+MvAQMBu4BJjue2wolQWgCbNGKzB06FCWr9tGeWUtlTU2dDqF/15wXIvaTLCY2FFSE6QR+o/JoKfaWtfq/WqEDiEEQh+0GXMq8IVP6PXAB1LKeUKI5cBMIcTleBO/ndNYI5owa4SchIQEIo0G0sfeSk5yDJf7GUrdGDohePTzX3lnyQaMBh0mg44Igx6zQYfJqCfSaCDSoMMcoScqwkhkhJ7oCANRJoN3hm42Em0yEhtpJNpkIMZs9MtebTboKba1LO2oRvghRHCE2Ze0rV89x8uAsf62owmzRqvQo0cPrulj4axjcoLSntvloQfQy+bEaZXYJDikxK5CjZQ4VIldVXGo0repOKXEqaq4VIlTlbikxK1K3FLiwes7qlcEa5+4kC6pcfX2azLqsFn/Eubt27fzxx9/4HQ66908Hg/p6elkZmZSXFxMWloao0aNCsrfQCNIiPBLlK8Js0bIyc/PZ+269Rx7xulBazMuKoJeBh1Xp8cHpT0pJS4Jo9fsZntxdcPCbNDjqP3Lxnzd1VdSW7yLtMQY36KkcsgmgA0/WMkvrcHlchER14FRS34Oypg1gocmzBrtFlVVsVqtREVFBbRY8siDD3D5cd3oEBvZ5Llut8qeir9q+imKIC3WjPGwhPwdYs3sK6ryf/BNIITAKMCsU6i01u8OJ6Xko+U7GX+hNxxbVVWWLvuV9a9eTYeE6Cb7mLd8C4/P2cj69eupq6s7YrPb7Qgh0Ol0KIpy4PHg55GRkUyYMAF9KxcoOLoRECRTRrDQ/rsafvPYo4/ywIMPIqUkOjqa6GgLU8+fyhP//neD1xQUFPDJzI/ZeP8ZR7y2ZV8Vry7ZyKKNBXx9/TjS46KY8MI8fvyzEL3P3iuROD0qekVBpwiMOgVFCDyqJNXQokisevEKs7Pe1z75dQtFDoXrrr8BgI0bN5IQE+mXKAMkx0ayZ9cOzp44jiiTEYs5gkiT1+4dFaHHZNAhJahS4lHlX4/qX/tb95by+v9e4aNPPiMysukfOg0/0EwZGu0Ft9vNpNNPR6fTkZCQQHx8PMt+/ZXpD9/LjdddRU1NLUt+WsqV192GwWCge48ejBo1iszMQ7PL2e12LCYjiRYT4J1lPvz1H/x38UaqbU4Gd0xk7d5yRj35Nb0z4li6dR8fnT2MU3L/yiLrcHuwuT043CrVDheqhN8LK7jn2+DnxDLrFKrqEeYqq4NbZ/7GzC/nYDB4Ixh//vlnju3lf1GHgd0y2D7jhhaNz+ly88/nvmbMyBOY/fU3pKQ0GkCm4QeCoyBRvsbfA0VR+H7xYp576lEMBgPl5RVEjTyWU8adiF6vJz4+jlNPOZlXnpOsXruOzz/9mCeemM6HH36E2WwmKysLvV6PXq+ntKKawY98CUKyu7SWKKOe58f1Y0JuBww6hbX7qlhRUMHvRVUcn5XMsZmJh4wlQq8jwpenINUn8AC2EORRNisK7/28keO6pZEeF8X46V8SGaGn0upkxNhxHHfcX25+S39czPDurZtw32jQ8/Ytp/Pgez+Q16MbN9x4EzfdfAsWi6VVx3FUIQS0t7SfGn9PFEXhkosvZueuPTz64D31nqPX6zlz0qmcOelUpJScd9EVnD/lPGrr6tizJx9VVRFC0DUxmqk90nBLycCR8QzvmIjuoFvHPqmx9EmN5R8BjC/VEoHNFXxhHhlr5oOiSh74fBnnDetGZVUd53WIY6FHpXe//oec+/PPP3PTnRODPoamEELwwEWjuHBMH+5/bza5L73A8y+8zDnnntvqYzlaCDdThpCy8SpOQog3gdOAYillb9+xh/FmS1LxhhZeuj8M8bBrd3JYXlJ/BjVo0CC5YsWKpk/UCCk7duxg0KBB7Nmyqln2TCklg4aO4pR4lXtOaDxPRnPajp0+ix/7diLBENz5xScl1Ty8uxRVwoXpCdyZHsf88lqetir0692L6qoqyioq2LZnN5Vf3tPmSfNn/rCWV77fyQ8//9qm42gLhBAr/dWVhugXb5Hzxx7helwvaZ8tbXF//uDPJ+ptYPxhx56UUvaVUvYHvgLua+T60VLK/q3xZjSCS05ODoMGDmTWnG+adf0nn81i06bNXNQ3+MV1hRDEmYxstbuC3vaJ8VFMz0nhp/5Z3JkeB8DouCj+ZfJw4va1XFyZT3ppIYN7dGxzUQbIzUiksjJ4Hip/O4RAKIpfW2vRZE9SyiVA+WHHDs4UHkUjRVY12jdTpkzhy68CF+YdO3ZxxT//xSunDqCTH25yzSE5ysQOW/0eFC0hXq9jQoKFuIPy7xoVwaSkaE5OsHBsbCR7VBg/KDfofTeHuCgzVVry/mYjAKFT/Npai2bfAwohHgUuBqqA0Q2cVl9e0obamwZMA28eX43woFNWFiUlZQFdU1xcwnEjTuTCvp04p1fHEI0MOkSb2WNtm4RCRR6VkX2z26Tvw9lXWYvVpqUibTZh6C7X7J8AKeU9UspM4H3g2gZOO05KeQxwCnCNEGJEI+29KqUcJKUclJyc3NxhaQSZ6Ohoamprmz7xIMaedBpDk6OYPqZXiEblpWOMib1Od0j7qI+ddie1DhcDuqa1et+Hs3VvGec8+inPvfBSWw+lHdMOTRl+8AEwub4XDs5LCuzPS6rRjoiJiaG62v8sbus3bGLr9p28dEo/v9J3toQMi4mSEHhmNMVnJTUM6paBoWWlhlrM7F82csKtb3P/Q49x/vmNlubUaAIhhF9ba9EsU4YQIldKucW3ezpwRIb+RvKSarQjMjMzyd9bgMPhICIiosnzP/j4M+xuD91enE+0UU+s2Ui8OYIEs5GkSCNJJgPxJgMWo54oo44og56c+Cj6d4gLeGwdLBHUtkEo7TKbi3MGt719efonv/LiK69yzjmNZpDUaApBIBVMWoUmhVkI8SEwCm+tq3zgfmCCEKI7Xne5XcBVvnPTgdellBNoIC9pKN6ERuiIioqib98+zFvwLZMmTmjy/EcfvId77riJXbvzyd+7l/z8QgqKiti3r5iS0jLWlJZRU12F3WrD6XDgdDrYU1jMzhtPIc5kDGhsqVEm2iIBZ4GqMiIM7MsGvY60tLY3pxwNtKaZwh+aFGYpZX33SG80cG4BMMH3vN68pBrtj9tvu50nnnzCL2EGiIyMpGePbvTs0c2v8zMzc/l5dxmndgtMZDpYIrB51ICuaSmFDpc3lLxbRqv2Wx9GvQ6nM/heKX83hBBaSLZG+2PY8OFs274jZO337NOH73cVBCzMKVEmbK7WXfz7rLSGfl3SiTC2zVenoKyaOruLH9fuZEdBqSbMwaIV7cf+EF4/ExphSUxMDDU1gXlmBMLkM09n/rZ9AV+XEhWB1eVBVVtv1vxTnYNxg7q0Wn8Hk19SRf+r/8uEBz7l/eXFXHPzHQwbNqxNxnK0IRTh19ZaaDNmjSYxm83Y7XaklCFZmb7ognO5/qbbKbc5STD7b2eOMurRK4JCp5uMAO3TzWWvhFH9mleF5b9zfuXXTfnERpmIs5hIiDZj1Ouos7uwOd3YHC7s+x9dbhwuNw6nx/vocrO1sJJrr7+RBx7U1tCDivBtYYQmzBpNoigKRqMRh8OByWRq+oIAiYyMJDUxnh93lTKpR3pA1yZERrDN7moVYS5xuimptvLpkvV8+fNGpJRIvHk79udRlkik6tvH+4jvvM+XrGdUXkfKSquptjmptTtxeVQiDHpvBj2Db9PrMBv0RBgUYk16TJYIrE4Xv2zM58677g7a+1m5ciU7d+48kAVQCEFGRgbdunXDbDYHrZ92QZiZMjRh1vALi8XC/z3wOE8+/kBIZs29+vbju127AhbmFIuJHXYXDUYuBZGPi6uRwJ69pT6/1r/K3ns9rv46JvjrNUWAQHDR8T155sLj0TXDA+CL5VvZoyT69cNYUVHBjBkzGDp0KLm5uSQmJlJUVER5eTlOp5PS0lI2bNjAjTfeyKDOaXSIteBWVVQJ+RV1bC0qxWyKYO68BRx77LEBj7U9Ema6rAmzhn/MmzePq666knc/mMnFF5wX9PbPnjyJR+6uP71oY6RFm8mvrAv6eOrjF6uD208bxGPnDm+V/g7mxy37GDG23jiuQ3A4HJx52gT0FXt55wUP2/dVouh0CKmSGmfBqNcRHxlB5zgTc68cw8k9jlxwlVLy2ML1zPzog7+FMAshELrwUmZNmDX8YtCgQTzxxL+55l9Xc8GUs9Hpghv1dsGUyfzr2psoqXOQHNV0IMt+Okab2FlcGdSxNES+CqN6to2b3JItxbx8X0MpabyoqsqlF04l0V7CR1ecgKIIPKpKcY2DDjEmv+90hBBkxUfyx7ZtwRh6+yDMpsyaV4aG34wZM4a4+Hg+nPlZ0Ns2mUx0SErgp92lAV2XYTFR1gpeGZVuN2VWO8O7tm7FEoCKOjtbC8sYOHBgo+fdfcft7Fr9KzPOG4Ti8yDQKQppseaAzU8T8jKYu3ARTeVrP2pQ/Nz8QAihE0L8IYT4yrefIIRYKITY4ntssrS7JswafiOE4PnnX+CWO+9nz569QW+/z4ABfLszMGFOtURQ1wof4y9La8ntEE90AF4jweLnPwsZOnAARmPDfb/y8kt88cEMvrh4GOYg+Fg73Cpx0ZZWzQ/RlgQ5V8YNwMaD9u8EvpVS5gLf+vYbRRNmjYAYMmQIN95wIxf84yrc7uAGd0w550wWBujPnBplwtYKk7rvq22M65sV+o7qYcmfRYw48eQGX583bx4P3Xs3c/5xLEmW4HjNqD5Pk78F3pVa/7ammhKiI3Aq8PpBhycBM3zPZwBnNNWOJswaAXP7HXcQn5DEuInnsmDR97zx9nvEpubgcrWsmsi5Z59BcZ2Notojcwu7VZVf88tYsK2Izzbk89YfO3nh1y3M3VJItTP4VUwOZ7eEUT0D8xgJFku2ljBqVP325Y0bN3Lx1Cl8dMFQuiRFB63POevzGTnihKC1F+4InfBrw5szaMVB27TDmnoWuB1vHqH9pEopCwF8j02WNtcW/zQCRqfT8fkXX/DIww/z72dfITYmlurqGqqqqklKSmy6gQZ44JEniBAK3Z/7hmiDHlVK3wZuqeKUECcEBiEwAgbhnVmEOl9GnVultM7OcbmtL8w1Nicbd+9jyJAjM+aWlZUxcfzJPDE+j+M7N/ldD4hah5uOOW1zh9Am+G+xKW2oTJ4QYn9t1JVCiFEtGY4mzBrNQqfTcf8DDxzYz87Ooqa21m9hdrvdlJdXUFZeQVlZOZ/P+oq3/vc6g+Kj2FBWw4ORRvQCDIBeCK6usnKTlPSRkoPvsd3AJYBTVTGGKEPYnLIaspJjiQvAWyRYLN1SyMB+fY7wX7bZbEyaMJ6zuidw8ZDOQe93S4Wd/id3D3q7YUnwci0fB5wuhJgAmIAYIcR7wD4hRJqUslAIkYa3gHWj+JP2syVVsscDzwE6vOlAp/v7DjXaF9HR0X7l05g7byGTzpqKW0oMQmDQKZh0Cmadjmf65yAl/F+1jZ6GQ93xrKqkvhRHeiAC2GV3kRsZGuFcVGXl5KFtk395yeZCRow96ZBjUkouOPdssqji0fGDQ9LvL7vKuervlIcjCLospbwLuAvAN2O+VUp5oRDiSbzzh+m+x1lNteXPjPlt4EXgnYOOPSmlvNc3gOvxVsm+6uCLhBA64CXgJCAfWC6EmC2l3OBHnxrtDJPJhN3uaPB1VVXZsWMXz7zwX07JSOLlAdko9cxSdtc5qHIfWpXEISUeIKGBtqOFYJvdGTJh3iHhhh5t47/84/ZSHrz+UPvy448/zh+//syG20854BYXbHaWVNK9+99kxkzIa/5NB2YKIS4HdgNNVjbwJx/zEiFE9mHH/KmSPQTY6svLjBDiI7yzbE2Yj0JEE1OOHj0GsHtvIWmRETzeu1O9ogzQMdKIW1UpcKuk672miUpVEiEESgNuAnGKwm57aNJ/2lWVEquD47u3vn3Z6nCxenshw4d7Iw2tVis3Xn8tr73xFhcO7oIxhKWtUmItFBQU/H3EOci6LKVcDCz2PS8DxgZyfSirZGcAew7azweGNtKeViX7KGPjpj+pramlvLKSnXsLWDNuADGGxj9yihB0jo5kqcvF2XrvDLhSeoW5If+tBCDfERrPjLlltaTFR5EU3fpJfZZtKyKtQyrbt2/H4XBw6YVT6Zts5IqReRSU+l+HsTl07xDHtm3b/hbCLP5mVbLre6cNekZqVbLbPwdHib3y6lv0OeZYTj5xAlPPuYAzOqU0Kcr76RsXxRrXX54WlarE2MgXJ0FVKQpRwvz5FXWc2LttvBMSLSZyE02cN3Ecp407kZtHZPHOP0eTmxbPvhpbSPsWgMfT+oVu2wxF+Le1EsHwyvgA+BpvLcCDyQcyD9rvCByxQKhxdJDXK48LLrqC5OQkjKYI1q3fhCrhhKQYTIqCGZWH1u/GoleI1Omw6BWiDTosOh0xBj0xBh0xej2xRoU+MWZW7vtrzlAnJZVuDzfpdURIuMXj4eCf7ngp2eMOTTTEdgRX5rWNfblfp2TmXH9kYElOcgwl9fh6B5Nd5bVkZf193OXCLcAxZFWygeVArhAiB9gLTAGmNmuUGmHP1Vf/ixkz3mF0yT48eH+FnWYjjso6qoB90ruIZ5cSh++5Q0qcUuLyPbql1/0NwKIIvP4WMMKoJy02kkopeaLWziY4RJjjgJoQ+DI7VZV9dXZOaAP7cmN06xBPeV1ohTkvJYYff/yRvn37hrSfsMDPqL7WJGRVsqWUbiHEtcB8vO5yb0op14fmbWi0NUOHDmVQXh65u7czrIW5GipVyeTKOtyqil5R0AtxwH0uVqfDqR5qtogFrO7gC/PCijqSos10iIsKetstoWtqLFanG4+qNiu3sz8c3ymG9WtWhaTtcCTMdDl0VbJ9+3OBuc0enUa74vLrruOTu+5gGC0TyThFEKUI1rpVBhgPFR69gMOX+WIBuxp8e+i8ilrG9skOerstxWTUY9ApVFidQcuNcTiKENjtoZ2VhxVhtvinRf5pBI3zzz+f22+6iUqTjrgWftC7GAz85nQz4LDZt0EI9teFfkcIVut1OFWJR/UwdNUu3+qyNwHPfqvzgUcpD91nv6OHr0SU7+CB50juiA+v2TLAy4vWEGsyEhvCTHdju3XgmXe/DVn7YUUYemVowqwRNGJjYzltwgQWzfuas02GFrXVQ4GN9ZgnDIgDM+bfdTrOijTSP8LA1cVVfNgvi0i9gkD4yjn5yj3xVwIxxedxvf91IQTKYa8J32snLN3MiABLXYUaVVV59MvlPD6xPwZd8M0YqqryR34FczfuZefeQq649GI2b1jP7fc+wMSJE4PeX9gQZrYMTZg1gso/r72Wq75dxGTpaVH+gY4CvnSrXFdZh0QghXcWu8utskfAKkWh0uNmXFQ0GXodkYpArwi6RgXn1r7Y4cLmURnds2NQ2gsW0+esJEInuGBg8yp170dVVVbtrWDh5iJ+21XK9vI6SmodVFjtGHUK3ZJjuXxwF/qWrcPlLuenJUuOamEWYZZnUxNmjaAycuRIag0GplXUYhL7TQJ/CfQBM8KBQ+KA6cAlJYoi0AtBjUfFjWRIlPmAs73O15JOgA6vHTrdN2uM1enYbnWQF6RAkN8q60iJjkQJ0eJac1BVlefmr+LlyYPR+zlbVlWVdYVVzF6fz+q9FWwtraO01k651Y5BUeiWHMOAtHjGHJNMz+Ro8lJijyjt9d4qPd/t3B6KtxQ+aDNmjaMZRVE4ftQoZn76GdPiIg+YETji8a8g7v2mg/eqbfSIj2ZcxyQAHvl9G5OjTCTomxahBL2OPTZnk+f5y/yyWgbnpgatvWBw58dLSY6K4My+mUe8tl+AF2wu5LddpWytclJidVNRXeu9cxGCKb3SuXxAInkpMfRMjiGliYXDaruL537ZypxtZWT1aihTyVHAwR/SMEETZo2gc8ddd/PrwoVcEWsMyJwxx+pkatc0zu/qteu+s6WQn+0OJlqangUn6hQK7MEJy65xe1i4r5Ll158SlPaCgdPt5o3F63n3wuFs2FfJgk2F/LqrjK2VDkqsbspratHpdHTr2oVjBozgn/360CuvO7169qCquprBx53If08fEFCfa/dV8c7mMl5/+x2OP/74EL2ztkcgECGw17cETZjDkN9//527br4RnaKg0+kwRETw2FNP06NHj7Yeml8MGDCAMoeTGtVATABl4d1SYj6o+na/pBhWFpUz0dL0tSmKYF+Q8mV8va+KtFgLeRnNT/ofDJxuN/PX7OHrVdv5etUuXOg4791fEYqgW9cu9O93HJf160OvvB706tmd1NSUen8Iq6qr62m9aRIjjUQY9Jx00klNn9ze0UwZGk1RXFzM3j838uCwLnhUyUeb/+STmTO597772npofiGEQK9TAvZmdkuJ6SAhH5Bg4cPCcr+uTRKwzdlyX2aHR+WlXaVcNr5fi9sKBLdbZdGG3Xz1+06W7yimoKKWshobiRYTOYnR7Kuq45Ybr+Wm666iQ4fUgO5EpJTNulNPjoqgpLyiGVe2M/a76YQRmjCHIbm5uVS7PIzv7LVxSiRvfLsQ2okwA3RM7UCBrZy4AG4RXRLMB6Wy7BVvwV9ZiNcp1LRQmKWU3LelCEOkkf+bFJoE9Afz/PxVfPjLnxRU1FFSYyXeHMGg7GTO7pPBMZmJHJOZQJzZyKTXFnPs0EH8+7EHmtWPlLJZM0LvZeElWKFBhJ1bhibMYUhWVhbFVbXY3R5Meh3DMxKZtmgJbrcbvb59/Mt69+3DD98twFVPqs4IIegRcaSfs0dKTAcJeV68hQqnC1VVm/SOSFBEi8Oyn9tVyoLSav6YfkHIvTF+31nMPTOXcvfJfRmU5RXhxHpc/T79YydLd5SwY+v3ze5LyuatbdncHgx6PXPnzsVms2Gz2bBarUgpiY+PJzExkYSEBBITE0lNTSUiovVLbwWNMPsBah/f8r8Zer2erPQObK+sIy8phkSzkYxYC2vWrOGYY45p6+H5RVJGR16stjHLfeQstsLm5MmkGEYc5pblkRLTQTPmZLORCEVho8tDr4jGhTJep2D3M02l3a2ysc7G+ho7W+sc7LI62GVzss/lJj0hmnOe/waDzlv2KsKgJ8Kgw2TQYTboMRm9j6lxkdxxWr01Of1i2hvfc8Vx3blrXJ8GzymttXPlR8t46qkniIuLa3ZfzWVXhZXi8kqef/wezBEGIk0GzBF6BIKKWjvlVXWUV1kpLCln4KBBzJ23sNXHGBQ0U4aGv+TmdmVbRS15STEADE+LZcmSJe1GmOPi47jz+B7cN7LnEa+NnvEjW2qsRwizW0LkYVU5uidEs9Rmp1c9M+yDiVcOFeY5RZUsKq2m0uWh2q1S6fJQ43Jj9XhwSIgEEhWFFCHooKrUCEGnuEguz+uI06Pi8G12j8Tu9mC3ubDXOqh2q9g9Ki/vKGJcnyz6ZwWeO3zpnwX8WVjO3GkjGz3vX5/8RveePbnisosC7uNgZAMFBpqixuEiIyWOuc9Oa/S8H1b+yf0zljarj/BAgC501WCagybMYUpuz15sXfVXroIRHWJ47YP3uOGGG9qF3S8vrxcfz/6w3tcyYswUVBxZuNXDoV4ZAMckRrNmW9NFXuN0AofqFaC3d5cyfUshx+l0xKsqmVKSBCTiTReagO+Dr/5l+tisU7ggL5Mr+zcdUVdpd9HrzRKOe3AmekXx3QWLA3fDAq9jdkP/JYfbww2je5HSSDDMrvJa5q7bw57t85scT1PExcZgczjJe+UHxnS0cNvxPcjyIweI28/sdYqioKqhyYfdaoTZd0oT5jClW888fvt53oH9M7ql8czq33jv3Xe56OKL23Bk/tG3b1/uL6m//FHHGBPL68kG55FgPiyYpG+ChQU7m57NRAmBCryzxyvKdwD9AqjAIVSJx4+ZpZSS8+asoHNyDHOuHA1CICWoUiKlRJXexVq1CXN3TmLjPoCRvmovSUktd9lLS+vArs1/8NU3C3jj7fc48YPf2HJNfdXgDsWg1+H242/orfoV/LSrrYYAwijCE/zLx/wmcBpQLKXs7Tv2JDARcALbgH9IKSvruXYnUAN4ALeUsvlGub8Zubm5fFj9V9VpvaLw3IjuTLn5JvJ69WLgwIFtOLqmycjIoKiyfmHuFGPmdbfKGaU1jNEJro/3ipQKRB0mzHnxFir9EgeBScBjfxZyIxCos5siVb+E2a1Klu0to+7pqRhDuBCbGBWB0+3BarUSGRnZ4vZSUpK57JIL6Na1C+eef4lf10QZdLj8WFBVhEBt6pco3AmzGbM/PxNvA+MPO7YQ6C2l7Av8CdzVyPWjpZT9NVEOjNzcXLaVHRoYMCgtnoeGZDHxxDGcc8bpbN68uY1G1zSxsbHYnC7s9Sz+/fOYHBZcdAJjOqewyufipkpv6k3jYTOXbrFR1Djd1Dbxxd/udOORcCXe8uyBIqRXdJvCIyWKECEVZQBFEUSbjGzavKXpkwNqV2m48OZhRBr0uOv5/9XbZru2ZAjvjNmfrZVosicp5RKg/LBjC6SU+8tILMNbSUgjiGRmZlJeZ6XWeWi1jql5may6+Hj6VGznuMEDOWHIIJ5//nkKCsKrnGJRURFxUeZDvCz2Y9ApHJMWT058FDrfN9qN98N4uJtahE4hLcrEL43kwXCqKteU1HCKotD4clrDKIDLD2FWm+cSHDC1Dhduj4rHD2EMBCEE/ipztFGHy09TRrueMR/I9erH1lRTQpiEEL8JIVYLIdYLIR70HU8QQiwUQmzxPcY31k4wfgIuA75p4DUJLBBCrBRCNLq0K4SYJoRYIYRYUVJSEoRhtW8URaFLp0y2VdQd8VqUQc8tg7vw52WjuD5Dx7I3n6dXt1x653bhysv/wTvvvMOWLVtwu0NTOdof1q9fT4/UxhPfWIx67D4hdsuGP4x9k2L4rZE8GDeU1pIoJVNbIA46/J8xt8ZN74s/bCItrQODBwfXC0cI4SsLcCR2l5t5W4q4c95qTnrrByZ+/Jtf77WZ8SthhM8rw5+taRzAGCllP6A/MF4IMQy4E/hWSpkLfOvbb5AW3Y8JIe7BO9l5v4FTjpNSFgghUoCFQohNvhn4EUgpXwVeBRg0aFC7vjEKFt26dWNLRQn9UmPrfT1Cr2NClw5M6NIB1+ierC2pZtmOFcxZ8SP/V1BOYUU1D9x3L/fcd3gB89CzevVq8hIaz142KD2eJ6Rks8NNuao26Ep6TIKFz4vqjwF8p6qOzXYnz+IV1+birzDrhEARgtHPLeD7G46sYB0Mqm1Onli0jg/enxH0thVFQaqSX/eUsWjrPn7NL2dXnYsyq4OKGiuJsRZ652YwfOQxTOuazuBeTVfKdjhd7Ty4hKD9skivb+J+NyKDb5PAJLy1UwFmAIuBOxpqp9nCLIS4BO+i4FjZgKOkrwYgUspiIcQXeM1/9QqzxpF079OXLT/O9utcg07hmA5xHNMhjn/5jq3aV8k/3ni9QWGWUvL6668TGxtLTk4OOTk5JCYmBsUdb/GCeZyTVv8Pyn76d4jD4fFwRWEF0REGOsfU76nQK97C6/WMaa/LzRtVNm4BGr0v9AOvKaPpGXekQccvF45g4IzFuN0qej9SkgbK80s206FDGqdNCL7wFxQWUllTw8QPl9GzcxoDj+nB5NwM+nTNIK9zByyRgRcacLjc7VuYCai0VJIQYsVB+6/6JpV/tSWEDlgJdAVeklL+KoRIlVIWAkgpC32T1QZpljALIcbjVfuRUkprA+dEAYqUssb3/GTgoeb093elR8885s77rNnX90uJpa6mhrlz5/L7ypXs3PonRfuKmfX1XHQ6Hdu3b+f2m25gRE4au6tt7Cyrwq2qZGWke4U6txs5XXPJzs4mMzOTjh07kpKS0mS4sqqq/Lj0F164fESj55n0Ol45bSBXzlnJI0O6Mblzh3rP6xVvodJ5qCnjsxobT1TUkQYElsyyfnR4zSn+0DXeglGnUFRjo2OQawJW2Zw8tWgdM2e+G9R291NdU0OnDgls/uKBoLXpcLZ/YQ4gV0ZpU44MUkoP0F8IEQd8IYToHehw/HGX+xDvFDxJCJEP3I/XCyMCr3kCYJmU8iohRDrwupRyApDqG9T+fj6QUs6rpwuNBjjhhBO45bp9FFu7khIZ+AdfCMG4nGTOOess/tG3E31jzbyxaA1utxudTseGDRtItZh5bFgO2bFegam0u9hdbWVnVTW7Nyzhz9++5Vubm701NvZW1lBls5OenERGWhqZWVl0zO5MZlbWAeHu2LEjbrcbk15Hqh8VnCf3zEABps35nTm7S3hzRK8jhL9DZARCCLY63dSpKk/XOtjrUZnUPZ31W4vA0/KFJz3egAp/Mel17KuxB12Yn128iYyMdE45+cSgtrsfXQgi3LzCHJpq3a2CECEJyZZSVgohFuP1atsnhEjzzZbTgOLGrm1SmKWU59dz+I0Gzi0AJviebydwd1KNg+jcuTMXXXoJD/08nxdH5zWrjbsG5XBdv050S/CaCW78du2BREjDhw9n/DnnM+q9d+mTHMut/TMZ2SmJOFMsfVPqN0PY3R4Kau1eoa7Zxd7fNrN+iYcFNjcFNTbyK2sor7OSmxjj9xjP7JlBvw6xnP/Zcrp/+jPZFjOj0+IZ1zGJOKMBl6oSa9RzVVkNbuCyYzpzy7CuvLt6N5u27mvW3+Vw/PXK2E+UQU9RtRVvPGFwqLQ6efq7dXzxWf0Rk8FAEUqzQ7Qb4mgwZQQrJFsIkQy4fKJsBk4EngBmA5cA032PsxprR4v8C3Puf+gR+vf6jLfW7uYffToFfH36QWG/UkpiI03s2LGDrl27kpSUxLMvvMj0J5/i7bff5sYH7+WPC5Iabc+k19E5LorOcQ3PFP8sr2H4Oz/gVlX0fvp+do63sPSyUawoKGfxrlLmbt3Hm3/uxeWbDXdNjGZq70wu7pdFrK8Ct1P1tGjB72B0BCbMFqOeklpH0ycGwDOLN9KpUyYnjR2N3W5n9lfzmLfwO+645Tq6d8sNSh86nQ412MLc3mfMEEy3kjRghs/OrAAzpZRfCSF+AWYKIS4HdgPnNNaIJsxhTlxcHIt++JFRxw0nyqDj3B4ZzW5LCMFtg7sycdzJfDp7Dj179uS9d9/ljVdeYuwpE9hVVkmx1dEss8nBdEuIJtKoZ11xNf07xPl9nU4RDO2YyNCOidxxXPcmz3d5ZFCFORBTRpzJSFG1LSh9Syn5aVsxTy1aS8f0DDqkZFFWW0eiQY+QEpvNxofvvBaUvkIRDKJKiVKPv3q7wU8fZX+QUq6hnmUPKWUZMNbfdjRhbgd07dqV+d8t5sSRJ6ATMLl788X5hoE5JJr2MOq44XRITSXSUce/eqezZPb7mPQ6tlXUtliYAdItZn7eXRqQMAeKR6rs8nh4S1FIVlVOABr3A2kYr43Zf8VKMDdfmCusDj7+fSffrM9nw95K9lVbEUC/yAiG2KroExdBr7RoYnQKMyvq+HzlH83qpz50Ol3QTRlHBe0tV4ZGeNCrVy/mLvyWyRNPY/6eCqYf140Es7FZbV3YK5OBHeLYXWXl5JyeCCE4u0cGz47qiRKkmcPUvAyeXraFfw7sjDFEhS6vH9oVq8vD9vJaPtxeQpKUDGtmW3oCM2UkmY2U1NqbPE9VVb7fUsSsNXv4ZXsJu0trqHK6yIwwMjgqgmmRBvolJpNh0NXrptjLZOClvcGL6lQUEXRTxlFBmEXIaMLcjhgwYABrNm3m7ttvY+gHH/CfEd05PTetWW31TIymZ2L0IceCJcoANwzqykt/7OTV33dw7eAuQWv3YJIiTTx1snd9ucP0WaR6mi84OsARgCkj2WxgTdWR6UjXFlTwye87WbJ1HzuKayits2NWBH2iTIwy6enbIYY8kwGznzO03AgDNU4npaVlQck0p9PptRnz4WiJ8jVaisVi4fmXX+HcqRdw+UUX8Nn2Ep46oTvJQTA/BJv/jOrF5d/8jpRw3ZDQiDN4Z6V1HpXAU9b/RSCmjHK7k8JaG+uLKjnrte/ZW1FHflkttU43HinpGWlioEnPuXFmeqfFkNQC+6tREXQyGfnsizlc+c9Lm93OfhRFaMJ8BFqifI0gcfzxx7Nqwybu/797GPbG6zw0vAvn52UGddbbUibmpjErchhnf/kb2yvreGRUHlHG0HzkUswRPOdwcaeqNmtBsL6Q7Eq7k+92l/JzfhlrS6opqLZTbndg86ik6BQy9TqUrcUMQvKHzcmHOUn0iDAEvZBBf7ORBd9+HxRhFopo55ngQkQYfW9AE+Z2jdls5t//eZpzz5/KNf+8gtc3ruDfx3VlcFpLA5SDx/CMRH66YARnfPEbH63dzVMn9WVqn8ygipeiKKy+9mSynvqKvUCgToU2oADYVFLF+JlL2Vtto9zmwOpRSdIpdDbo6S5gvE4hx2KioyLQHzb+TxxuKt0qwtSy97XF7uLhfdWMjDLSzWQgN8JAH6OOj/5Y3aJ296MPweJfu5+BC6Et/mkEn0GDBvHLyt959513uOD2WzmpYwIvjO4RNrPnnLgoVv9jNB+s38Mdi9bx+h87eWlCf3omRQdNoC1GPVEGHTXOhjPqWYHVwAZgJ1Ch01GjqlilRAWiHU66VNRyoiLIiYogU6dg8HN86Xod62xOhvsR7djo+9AJVlkdlMcl4K6xUrG3EpeqEmVqeqHRHxRFCfrin9XmJDIyLqhttjph8l3ZjybMRwmKonDJpZdy1uTJpKWm8MixXYg3Nc9rI1RM7ZXJWd3TuGzuH5zw1mJMOoWhmUmMykpkcHoCFXYnG0qq2VJhZUxWEuf06hjQj4vZoKfW6aYWWAOsB3YBlT4BtklJghBkKQq9PB6yPB46AkbgRuB/0ZFkNDMpUbJOId/V8tzJaQY916bE8EldLfn5W9Dr9axbt4HS8vKmL/YDr7tcUJo6QI3VTkxCXHAbbW00YdYIJdHR0Qi86SnDEZNezwenD/YmOsov4/PNBXywNp+nf9lKhF5HamQE6ZYIbl24li83F/HOGQMxNOBuV1RrZ9G2ffySX8764ipK6+w8hzcPbYIQZCsKfT0eOnk8ZOINyTJICYclf/8S6KjXN1uUAcyALUiKd3lCFN/uLufs8y7hy8/ep3fv5oXj14c3wCS4ylxjdZKU7X8IftjRHmv+abQ/PKqKLszcfw5HURRGdkpmZKf6fSnKbU6GvPsDtyxYw5CMeNbuq+bPsmr2VNkprbVT5XDhkpJ4RSFVCFI8HtLxZoaZDuTUI8ANUaYodPC74FL9mIGyIFWK1gnBf9JimTxvAV/M+pozJ50alHYBdErwbcw1Nic50dFNnxi2BC/yL1howhwmSCkpLCxk27ZtB7ay0mKsdbVcfOnljBkzJoDWBNct3kynSB3pURFkWMykR5tIt5hIjowIG9tzYySYjcyZPIyhb3/PjN93kKPTkSAlWapKfyAJb5SfcpDvsR34DHgTeDiAvmqFwNLCHzITElsQqyt1NOq5PTWWyy6dxthdG4mJCc6MNBQ25hqrk+h2Lcy0P2FuYZXs8cBzeL2RXpdSTg/e0Ns/27dv59X//ZdlS39izbr16BSF3Ow0OndMonN6PD3jLWyqLOLlF58LSJi/W7yYTZs2sWfPHjbt3M63u3eRv3kve4uKqK61khYfQ3pMJJd3T2VKz+aHd4eanonRDEiNJ6K4kpP8mP2agERFwRNgiak6oGMLv5cRgDPIgndWrJlFtQ7GT5jM0p8WBqXNUOTKqK5zBO2Ho81ob8KMt0r2i8A7Bx1bCNwlpXQLIZ7Am5/5kDIpvuxKLwEnAfnAciHEbCnlhmAMvL2iqirz5s3jpRee5bfflnPJpOHcffGx9Mk9h9SkIzM9FBRX0O/sh/F4PH7n0h02bBjDhtUfnGy32ykoKOCLL77gkzdeCmthBrhzeC4XffkbY/GvQKVNCKxAJRDnZx91QGwLv5geKYNu1xdC8EiHGE5ftZoXX3mda6++osVt6nQ6mqPM5VW1rN6ylw3bCvlzdzG7CssoKquhqs7OvrJqptQeGQXZvmhnwiylXCKEyD7s2IKDdpcBZ9dz6RBgqy8vM0KIj/DWvfpbCnN5eTlvvvkmr7z0AvEWI1efewIzHz4LcxOeE+kp8aQmxrJq1SoGDhzY4nGYTCY6d+7MqaeeyitPhv8NzNisFNxANf4JbW+Phx8VhctVlQydjuf9mGlbpSS6haLqAMo8Hj4pr8ODxIO3orYHUJGoEtxSHjgmkbglOH3HXVLikuCSEjfe527pPSdawC233sVZk04lPb15Ifj7OTxXhtPpZsOOQtZuLWDzzn1s31vC3pIqKqpt1Fjt1Nkc1NkcuN0eEmKjSEuOo2NqAtnpyRx/TC7pKfH899OfDuT4breEly4HxcZ8GfBxPcczgD0H7ecDQxtqxFdFexpAp06B5x0OV9atW8fT/3mSL774glNH9OO9Ry9iSJ+cgPx3xwzpzqJFi4IizPvp3Lkz+eVVOD1qyJIMBYPnVmwlXlGI89M8kQvkqio24EmPBysQ2cQ1dimJbaGNeacq2eH08JlHogiBgkAR3vwj3s37XKeIAwVdFQFGRcGgKBh0gihFwagIjDoFgyJ8r3nP+XJbEfc//ASvvfJsi8Yp8N61pY+7kzqbA6vdiSXSRGpCDB1T4+mUnsjYoemkJ8eRkeLd0pPjSIyLavAzu3z9LgoKgpdoqdU52gJMmqiSXd9/scF7qKOtSvaePXu45647mD9/HjdcMIaNsx4iJYCqHgczdmh3Xpn1DXfc0WBR3YAxGo10TE1mZ5X1QHWTcOStNbsYFKDNGLxeEhYh2CAljRZow7toGNfCGbNUJdf178wjx/ZoUTsNkRsXxb1ffQ0tFGa9Xk+N1cG8V24kPTmOtKRYDIaW5YnISI5hz+5dLWqjzWmHNuZ68aNKdj6QedB+R7yRr0c1tbW1TJ/+GK+8/DJXnTOCP796mOgoc9MXNsLIQd25+O43sdvtmEzBqxSR27UrWytqw1aYd1TWUVBjY0ozr09UFP70eJoUZkcQZszRQlDuaDjqsKVMyEnlmu/Xsmr1Wvr369PsdvQGA5bICIb17Ry0sXVMTeCNN+aQlJxCp06dsFqtZGZmMmDAADp0qL/AbvhxFAizP1WygeVArhAiB9gLTAGmNmuU7YT58+dzxWWXMmJgF1Z+fA+d0oJTDy4uJpJeuZn88ssvjB49OihtAnTp0ZOtG38MWnvB5uZv15Kr02H20x/5cJKlxJ95nBOIb6EwxyjerHOhwqzXcVqXNO5/aDqzPqvvBtU/lBAkMZo4si8Op5t1m39gzU81RJoMvPrnXmweHavWrMNgMAS3w1AQXrocuirZPo+Na4H5eN3l3pRSrg/R+2hT6urquO3WW5gz63Nef+AiTjq2V9D7GDM4l0WLFgZFmO12O489/DAfffA+b5wUcGX1VuHxpZtYsrOYf7agjURVZZOiQCOmEDfexbiEFvQDEC8EBQ5XC1tpnHO6dOCmX39rURuhiPyLMkdwyenDDzkmpWT8tS/z4osvcNNNNwe1v5DQ3kwZza2S7dufC8xt9ujaAcuWLePiC6cyJC+DVZ/cS3xscMvZ72fssJ7c88o8Hn30Mb/Ot9vtlJSUUFJSQnFxMZmZmfTq1QspJYP796ODp46fzxtOx5iWmVlCwYy1u3jylz+5iJbVoE7A683RGFbAgFewWkKColDpx4xZVVWcqkqtS8XmdmN1e4jU68iMbmqJErrGRVFTW9eicep1+hbGOPqHEILnbp3MiCse5vzzp4a3SUPQ/oRZo36cTicPPnA/b7z+Ks/feR5nn9yUJbMlfbnRKYLfV6/l/fffx+VyUVVVRWVlJZUV5VRVllNaXOwV4ZISSsoqsDscJMfHkpIQw4Zte7jmmmt5+plnEEJw0aWX8saz/8GgC68PI8DsLQXcuGA1Z+NdlGgJCYC1iYXDOvA7g1xjxAjYU2Oly9vf4pESVZXeR9/mUX2uclJ6c5koAr0i0CsKTo+KxagnKyaS87qmcWWfrHp/KDpGm6h1OnE6nRiNzUtQFYoZc0P0yOnAP04fxu233sw7733QKn02DwHiKPLK+Luybt06LrrgfDISjPw+8//oUE9gSCCUVdSwZsteflu7nW2797GrsJx9pdVUVluprrNRa7UTHWmiW2YyH/3vSeIsZmIjjcRFGUiPMtEj2URybgeS47qSEh9FcqyFWIsJIQSf/bCWO99czIMPPXSgv9vvvAu73c7EV1/m6zMGtkr1E4fbw7KCCnolRZPUQH/vrd/NdfNWcTrQLQh9xuH1L27MZS5YwhwnoM7lYdGFI7yubjoFo05Bryh/ub/pvK5xh+cxcasqfxRV8v2uUl5evZMnVm7jxMwkHhzenQzLX3c0ETodAoHVam22MOv0rVuM9f+uOIVBFzzBzJkzOffcc1ut34DRZsztF4/Hw9NP/4d/T3+cx244g8vOPL5B305VVSkqrWL91gI27Shk255idhWUsa+smspaO3VWB1af877H4yE+1oLb48GgCC4aN5CcYd3JSUsgJy2erNR4TBGBL6AUldVw7XNzmP31vCNyGdx7/wPYbTZOf/9tvp40sNmFXRtje2UdC3cUs6iwhp92FmGxWJjSOZGHj+9+xLnP/LaFh3/cyJl4Z7qr8Joh9L7N4HsUeMXW6XssVhSsqooRb/rOCLyh2fufG4A5QD+8Qh3vO76fYAlzpKIQbdTTNyXwH2m9ojA4PYHB6QncNiyXxbtKeW7FNvq//wMpUSZOzEjk4eN6EGM0oAhwOptvyw7F4l9jREeZ+OCxSzn1X1cxaNAgOncOnjdIUAkvXdaE2V++++47rr3mav7cspWRg7rx8Te/8fpnP2KzO7E6XDicbpxOFw6nC6fTjd3pwqDXER9roUNyHBmpiWRldGDYwF6kpSSQlhxPWko86SnxxMdavOG3L37Cgu9+5d9XByeb2LaCMrI6dWLo0CPjeoQQPDr9CRwOB2d8/jFzJh1DbDPE/3C2V9bx0urdLNpTjtUjGTduPJdeOYn3TjyR7du3c8HEU3j4+EOvOe/L3/h6WxEAsw0G0pKT6T9gAEP79MFeV0ddbS11tbVYa2tRVZX4+Hhifdujjz3Gtf1y8AA1TjfVLg81Tjc2t4cKl4csl4slbpV5Lu8xh0dFEQKDIjAoCgKJ261yU42NQXqFkyMMJDfD3hyF8LtmYGMIIRidnczo7GSqHS4W7Sjmld93kPv2d/RMjMGtSpyu5guzTtHRSDhBSBiYl8Xdl53MlHMn89PSX5s92w8pQZoxCyEy8aav6ACowKtSyueEEAl4A/Gy8dZpOFdKWdFQO5ow+0FhYSFnnnE6Bp3CaWMGkxQfTVJ8NAmxFmJjooiLiSIu2vcYE0lcdBSx0ZEYjYEJXYzFjK2RChyBkpkSy97CwgZfF0Lw1DPPcp3DzplzZjPr9GOIbmFNvkU7i1mri+ez+Z/Qt2/fQ+4o4uPjqVNhc1kNcSYDc7YW8eWuSjZUOLjkkkuYNm0affv2xWLx3696zqefcHbXZPon+zdTlVJic6vUutzUutw8vnwLs7cV0ctiZondyVuVViJ1OpJ1gu7AaKOegXqlycXBKAVczQiEaYyYCANn9cjgrB4Z7K6ycvOitZjKdDjsjma3GYpE+f5w3fmj+W7FVu668w7+8/QzrT+AJgnalNkN3CKl/F0IEQ2sFEIsBC4FvpVSThdC3AncyWH5hQ5GE+YmqK2t5bQJ44mzRJDVMZXPX749ZH1ZoszYg1AFYz/piTFIj5u5c+cyYcKEes8RQvD8S69w5eUOzv5qId+cObBFaUG7xEVhtKr069ev3r4mnj6JMz//hCqHm1PGj+P6Jy5i/PjxmM3N8w7pmZfH5oodfguzEIJIg45Ig44UIkiOjGCIxcxNiVFAFC4p+dPhZrXdxQqnh0fq7NhUSaJBT4ZU6atXMErJHhWKVEm1QU+dENhUFX0Qc2AvLyhnZ6UVq8tNnctDnctDj0QLi3YUMeaUSSQnJSF8od3g8yrZvy8EQgiEUPDuChRFQQiBx+PB7fYw+oqncHtUVI/ErUoyU+N479HLMIWo6o0Qgjfum8qgC55g1OgxTJw4MST9NIsghmRLKQuBQt/zGiHERrzpKSbhdTsGmAEsRhPm5uF2uznvnMn0z4mj38k9efur5SHtL8YSiSOIwqzX65j5wPlMunAqewuKGowaVBSFhx+fTm7nj3F6VEz65ofodo23sPXHhguH3nXvfZw66QxOPPHEoEQx5vUfwOY5zc+LpeC939yPQQh6mQz0Mhl80VDRFLs9rLG7WOXw8FFVHTGREQzpmMQJsWY6xZjpGGMmI9pMdlzwXCWnfrWKYwYPISk5mShLNFHRMcRFR9PL8Tm7d2zjhqmjkXi9P6SUSAmqVL2PB455PUKkz0tE9T0O7zkRo0GPQa/DoNeh1+uY/d3vZI6/i8Q4C4oQCEX4hN/7+TDoFQw6HUaDjgijHo/Hg6pK6uwubHYXdqd3czjd5HVO4/vXbzniPSXGWXj/0UuZfPmlrFi5iszMzHreeRvh/29qkhBixUH7r/rSSRzZpDf52wDgVyDVJ9pIKQuFECmNdaIJcwMUFxdz8YVTEfYyXn5oGp8sWkmdLTgFMQ9HVVV2F5SyfXcRTldww3qP7Z2N0+di1ZgQfvD++0zqntEiUQboGG2mtLISq9VKZOSRvhCdOnUKapKqXr1789ZHzbe5CiGQTdhcU/Q6TrToONECG51uTu2XzV3HhyYnxn5UCf97awbp6emHHO/Zsyfvvvofbrz0lKD2d9Olp7Dg57VUVNXhUVWvu5/v0e3x4HC4sDtc2BxOrDYnT77xFTdeeCKZqfHERJuJi44kzueLPfHaF6iutRJjOfL/f2z/Ltw0dRRTzp3M4iU/h09UoP93iaVSyiZ9Y4UQFrx1G26UUlYHWnRYE+Z6+Pbbb7n4wqlcctpgHrhyGnq9joSYSGwhCrm9+bG3ee2jhSTFRzOib3bQ21dV2WQu57df+x/T+6a2uC+dIshKjGPr1q307du3xe01RV5eHpvLa5p9vSIOnTE3hQfQt0I2PiGo161t4MCB3LR+ewj6E4w73r//V3FZFc/M+IanbjmnXq+knl3S+c87i3jwX6fXe/2tF5/ED7//j3vuvot/P/lUi8YdPIJnhhJCGPCK8vtSys99h/cJIdJ8s+U0vFXQGkQT5oNwu93cf9+9vP3ma7z1wEWcOKzngdcS4yw4HKER5gijnhF9s/jmqZYEIDeMx+M5YvGqsLCQpUuXsvTnn1iy+Dt27tnNCac2fxa4r87OzE0FfLC1BBu6oCZbaoyuXbuSX1mN3e1p1mxfEYG5j6lSBtWW3BACUa8w5+TkYDSaWPrHnxw7IBje3oHjdHkDnhqaBf5z8vHc/O+ZvPLJD+h1OvR6BaNBz8nDe/LUTecQaTYy48GLGHjBdEaOGs2ppwavpmGzCZ5XhsAbGb1RSvn0QS/NBi7BW5LyEmBWY+1owuxjz549TJ1yDmZhY8X7d5J6WIrOxNgo7C3wH22MtOR4vq8OjZkEvGLyxx9/sGLFCpb9vISlS3+hpraGYb07M7xHGo9fPIwp92/lm+37OLWL/6GzNpeHr7cV8cHWUn7bW8qk00/n+funMWLEiBaHOPuLwWAgp2MGW6vq6N2MtKp6ReAOQJlVCa0RMNnQjFkIwa2338H012cw+6W2Eeb0lHhcbg9Olxuj4UgJmTZ5BCcNy/Ml2XditTvZV1bNCx9+R9qJtzKodxciIiJASq66chp78ve2wbs4CBHUYqzHARcBa4UQq3zH7sYryDOFEJcDu4FzGmtEE2Zg1qxZTLviMm66YDS3XnxivaKSEBuFPURJalIS46ixhy4BTpwlkmmXTGF4XiZje2Zw78SpdMtMPmTGM+XEAby88s8mhVlKyS97y/ngz33M2lLAwGOO4ZL/e4TPzzyTqKjQ5Alpip49e7K5oqBZwtw1NoqPAlhw9SAxtEZhAVH/jBngsssu55GHH2LN5t307d76RSUURcFkNFBeVVdv1KsQgs4dj6x+fv4pQ7j7+c/ZVGpk2pVXEh8fT0ZGmJQ2C5IwSyl/omG7yFh/2/lbC7PD4eC2W29h9hef8vlTVzC8X5cGz421mHG7PVitdiIjg3ubnpoUS10z7Ndut5uZ369h7rJNvH772Zgi6nd1KvziniYrppw3ph8fLvy9wdd3VNbxwca9fLSlGHNMLBdfMY1HLrooLL5Yef0HsGn+1mZdOygljpIAFlxVCfpWCN/dX2mkPkwmEzfedDP3v/g5nz9/XUDVcIJFhNFARbU14HQE8dGRpEckN+i+2WaEWUh2eGXuaEW2bNnC8KGD2LPxV1Z+cEejogw+/1ezkR35jdrsm0VqUhxWP4V5z74Kbn1pDn0ufYb40x7krtcX8OO63Vz7bMMmK3++uMN7dQIhmOeLwAOotLt4a80uTv7id8Z8toLafqP55JsFrNuyjTvuvDMsRBmgV+8+bLE2z5slJ8aMS0pmVlr5oc7OOruTQpcbZwOi6EFiaAUzjWhkxgxw7bXXUVDu5KGXvgz5WOpFgMsduGvn2ScP4uOPPsLpDF3u6max35zR1NZK+JOP+U28lUqKpZS9fcfOAR4AegJDpJQrGrh2J1CDdzHb7Y+bSWvw6aefcvWV/+SBKydw1Tkj/J5xxEVHsiO/mF7dgnv72CEpDlsD0VyqqjJn6QZen/Mbq7bvo7SihqH9unLl+Scy/oR+dM1K5aeVmzn1yqd4+pqJxFiaN5tXFIXzxvTnhT+2IITgw60lLNxexNjRo7jjmYc45ZRTwse16TDy8vLYVNG8Ks37AzPecbpRXIJapxuby43DrfoSD+kw6Lzh2wZFwSrg4WVbeHH1bnQC9AJ0QmAQXh9oo04hQqdgMihEKDpMBgWzXodJr2DS64g06L0BLnodkUY9kXodUUYdFoP+wGO0UQ8+/+OGiIyM5Ku58xg+bAiZaQlcNnlkc/98AZNfVEad1U737MC9eHIykpCqSk1NDYmJwSkkERTCbMbsjynjbeBFvPHf+1kHnAX8z4/rR0spSwMfWvBxu93cdecdfPrx+8x94V8MzMsK6Pr42Ch2F5QEfVwJcRacLjfVtXZiLCaKK2p56fOfmb10EzsKy4gwGpg0dhBXXjyBMUPziDQfmp3t+IHdGdSnM9Oe+oyPHrig2eMYP7Qb7y9Yyb932Lj4ypv53/nnk5DQ0hTyoadbt27sLKvE5VEDtv9W+xZ0t9wy4RA3OFWV1LncVDvc1Dhc1Pgez3x/KZed1J9e2Sk4nB5cbg8Ol9u3ebC73Ngc3uc2p5tqp4sSp/e43erA6bJ6z3W6cfoW0JxuDy63isvtweVRcXs8SAllZWWNJv1JTU3lm3kLGDnieNJT4hh/wpHRlqFg4dJ1ZKcnExFgyoH9mCKM2Gy2II+qJQjCLYuRP4nyl/giWA4+thH8u0UOF/bt28eUc8/GqNbw27u3kxgXeJ27pLhoCoobzDvSbMorazFFGDnznrfZVlTJvrJq+vXI4oIzTmDCiP707JLe5N/6ydvOZ9RFj1BaWUtSM94bwMeL13P1tTcw/YknmnV9W2EymeiYmsr2aivd4wN77yv3VZEYFXGEb7KiCKIjDERHGPCWdvUSZTJy4dh+9OuSFoyhN8jpD35Cfn4+gwcPbvS87t2789nnX3LGpNNY8Ppt9OsR2GSjOZiMBlTZvLwgG7YVYHM4cDian+8j6PwNE+VLYIEQQgL/ayh0EUAIMQ2YBgQ1Mgzgl19+4dyzz+LS0wZz37QL0DVzVT0lPprCAIVZVVU2b9/LirXbWPfnbv7cWcDeonIqa+qoqbVRU2fD5XKTlBBDRmYa/7r0NE4c3otYPypaHMwxedmMHtaLf0z/hDnT/xHQtQDf/76VhSu2su2TbwO+NhzI69mDTRVlAQvzqpIqsgK4RkqJrhVszL0z41mzZg1nnnlmk+ced9xxvPDiK0y65gZ+/uD/yEgN7V2OJdKEvZnJth55Yz7XXncjXbo0vqbTuggQLYt4DTahFubjpJQFvrjwhUKITVLKJfWd6BPtVwEGDRoUlPxXUkpefvllHrz//3jt3qlMHNmyW73kBAs7CqsO7LvdbkoraigqqaS0opqKqjoqq2vR6XVs3LqXVRt38/OKdegUQXpqAtkZyXTtlMoJA7qSmZZIVnoSndISSUmMCYrf753/PI0zrgk8c9f3v29lysMf8/Ennx+Rt7m9kJLZide/+YMqh4u8BAu9E6Mx6b0f7x1VdZzy9UoQ+yuHKCh4bcPVDic9kv1/z1K2TuRf7+xkZq1a6ff5U6ZMYceO7Uy8+lm+e/sO4mJC57oYbTHjbKYwe1RJnz7Nr/IdMv5OM2ZfDUCklMVCiC+AIUC9whxsrFYrV027gtUrfuGnN2+ha6dGc4YcQnllLT+v2sbKTbvZsHUvu4oqKa+uo6KqDofTRWSvKd4sXR4Vo0GPOcKA2RSBwaBjT2EZo0edwIknjefGSZfz3emn417/TquYffrkZlJZY8XpdGP0I33nxp37eOS9H/juj+18/MnnjBkzJuRjDDbLli3jiUcf5scff6RfViIvby2kqLKWaqsTs1FPVIQBl9vD6L7Z3HTaQGxON3affdflUVm6aS/zVvof4qxK2ew7rkDok5PKo599E9A1d955F0VFhYz751PMf+3WkIlzdGRE0HO6tDl/l9JSQogoQPGlvosCTgYeauKyoLBt2zbOOuN0+mTH8fNbtxAZYHWO9JNuJzkhhs6ZKXTPSWdI/+7kZKaQ0zGZ5PhooswRmCIMmCIMh8x0n37rGxat2sc38xcihMDlcqHT6VrNFm+JMhEXHcnP63Yy+piuDZ63s7CcB2Z8z/zlW7jpllt57fPrAsqBHA4sWbKEe++6nV3bt3HzhH688+JlRB2UstLtUSmqrGNveQ2FFXWM7tWJ2KgjS1plJ8fy8c+b/O5XSom+FUwZ3TsmsXN3Pna73e/wdiEEzz77PDfeeD3j/vkU8169NSTFgQ16PWpbJHUOKe1sxiyE+BBvHtEkIUQ+cD9QDrwAJANfCyFWSSnHCSHSgdellBOAVOALnyjpgQ+klPNC8zb+Ys6cOVx+2SXcd8V4rj53ZMCi6HS6cbs97Fn8fMB9P/3OfBYsWnygT28eXMHPv//Jcce0Tvhszy4ZLP5jW73C/OeeEl74fBkffbeaa6+7ni0fLSAmJvBouXDg0Qfu5YQ0hQXXXYyhnhwZep1Cx8RoOiY2bqbo2iGOKqsDVVX9Mid5Z8yh/xIbDXq6dExl48aNDBgwwO/r9ovzrbfczPEXPMKsl26ga1YYV6gOC1rXR9kf/PHKOL+Bl76o59wCYILv+Xa8pdZaBY/HwwP338fbb77G50/+k2P7N39xwWwy8uOKzZww6MjadI1RWV1LTk7OgX29Xs8777zLOddfQ8EPzzV7PIHQr0cWKzfvOrDvdnuYs3Qjr8xZwdrtRVx2+RVsfOVTUlL8N+2EI7k98oiv21SvKAdCQrQZnU5hS1kt3ZOb/pGSklZZ/APonZ3CunXrAhJm8Irzf55+hq65uZxw4f+x9MN7yenYvv/fIUUQdot/4WVYaSZlZWWceso4flzwJb+9e3uLRNlo1HPNlNFcdk+DDiT1oqoqdvuROY/PO+886qx2Kqvrmj2mQOidm8H2ogpm/bSea56dTeepT/HM1xv5x/V3szu/gMenP9HuRRkgr3cfNhU1P93nwWQlx/DjTv9c7VUpW2XxD6B3ZhxrVq9q9vVXX/0vJpx6GvOWNFy4QMNHe4v8C3dWrVrFmZMmEmsW3HLxScz9aS3H9utC9+zm375dc+4onv/guwZfX752O8tWbcFoNGA06Ikw6imrqKFb185H5D12uVzExcWyq6A0pCvl+8nrksG+8hpeXridcadOYsEj/yMvLy/k/bY2PXv25MP/VgalrR4dk/hjbwXqQBW7W8Xqi/yzu1VvAVe3B5vLW8hVVVV0rZD2E6B3Tir/+/GPFrVx7HEn8MPX73P11CANqoWUVtTiakEx2dDQDgNMwp2FCxeQ1SmTqKgo5qwsY9uOXazbWsh/bjm72W0mxllwudxIKeu1UT/zzkIqnCY6dcrE5azDYfc6zN9626ElvNxuN+efdw4De2bSq2vHZo8nEHp0TkNFYcF3P7SrAKBA6dmzJxt3Bydvic3u5I3VO3h9xXYU37qAThHoFMW76bwudjqdgsPlweMJbtHVhuiT3YF1/22ZX/nIkSN55MF7G/wstwbVtVaenLGAd2f/wp59FVxwRThF/fn4u3hltBa33XY7t932V4HUJ554grJNi1vUptGgIAGXy1Ov25nV4eLqa27hjDPOaLSd0tJS5s6bz8pPH2oVFyuAKHMEdocDl8sVnmXig0RqaipuVVJSZSU5NrBgnMPR6xSunjiU568+pVHxcrrcmCc+zPUvfU1FrZWSKhsIgc3pDbE+EJrtdHPN6UN44p/jm+zb5nDhdHtdL12+x/2b0+2hpKyciooK4uPjm/XecnNzcbpVtu3e12qLgNW1Vr75aT3f/baJH1f+yc6CMnplJXPvOccy44dNZGWFPjoxYMJsEtPuhflgpJQs/3UZAzKan5bT6XQzcOpjHJOXjV5fv5hWVtcRG9t0usMOHTrw0EMPMfDs+3C53MRGR/Lrxw/QOTN0Nt7Vm3aT16PbUS3Kqqry0ksvIpA4m5Hh7HBioyKoqnM0OaNUFMHlpwwCCYv+2Ead3cUzN55BfHQkcRaT79HM9Pe+48/8sib73VFYQY/LnyPSbEKv02EwGHwVP3To9Xr0Oj09u3fDZrM1W5iFEFx11dWced0LPHX7eZw4vHdQJwlut5sFv2zgy+9WsWFbAbsKyiipqCEtMZr+nTtw7fj+nDGsO+k+75h3lvzpTZIfdmjCHDJmz57NokULee3rRxs9b8bspbw9eymqyoGCk/srCBeUVJLTMYVvXr2tQfepopJKvzOt7Z/Rf/TRR9x+y/WkJITWPW3l+h0MGjwkpH20NY8/9iifv/MqPz10HhlNuMP5Q3yUiZ0VTd9e63U6Xr1hIgD5JZX07pbJ1Wced8R5ybFRFBeXN9leWY2Vvnk9WLl6XeCDDoD7H3iQzl26cu8zT3Hl/W9z3ilDGNgrm349OpGWHIdep0OnUzDodYd85qWU1NTZWL5mO8vXbefPnUWUV9ZQUFyJw+Gk04m3UVpVS1yUiWE9MxnfuyODzxrCcT0zsTQQO+BW1fDLUigEQgkvr4yjSpjHjRvH8OHDmfboB0w781gMeh19u3U8UL13Px988xtVdQ7OOmmwz4aooNd5H80mIxdPOr7BpPMAd087lannn8evv60gLc2/ZDYxMdFkdsomfeT1DMjrzFO3ncvgPg1nDmsuKzbs4dhxU4LebriwYsUKnnv6Pyx/bAqZScH5kUu0mFidH1gOFINewdHAbD3KbOCn9XvoeulzeNcJBYrirePnXdwXCMDp9qA3tU5gz0UXXcRFF13E6tWr+fLLL5n5wwrufm4WJaVleFQVt9uNoij06JJJpCmCPYWllJRXAqC63fTvkkbnDvFkRpvp1zuDi47NpUfHRPrlpJIS5/+ittujoteHo+xoM+aQYTKZ+GLWHK6/7hoe/2A5NpuNfUUFzHrmSnp1+asM/KnH9+G1L5fyf1ef0ax+Lp50PN/9uonPP/+ca665xq9rJkw4lQkTTqWoqIjc3K4hc7lasW4H198TFmmvQ8LjDz/A/ZMHB02UARKjzVRbA6u5aNDrcDZQkurqs47jmO6ZvrswFY8q8XhUJBzYV1XJlj0lfPNH69a769evH/361R9eYLVa2bBhA1arlaysLJKTk1m3bh3X/mMKy6YHx62jsRzTbYfQFv9Cjclk4tXX3jiw/847Mxh75U28/+gljB3qrXo95ZTB3PbMp9jsTsym5tlih/bN5o/f660P0Cgvv/wSk8YMZEBedrP6bYxtu/dRXF4dnkligoTq8ZAawAzNH1JiI6mxBpaG0qjX4XTXny8iJT6aicf3arKNlZv2MH91YUD9hpLIyEgGDTr0R91isVBrC161EYvJSG1t84oahJbwmjGH189ECLj44kt46JHH+M/7Pxw4lpIQQ1ZGMrc/9VGz201NjKW0ODB3rcLCQl568QUevq7pVI7N4e0vfuKCCy4MPxteEImIiMARQPFUf3CrapvM5ExGA/YGKteECxaLhZoA7yYaIzrSSHV1ddDaCxphFmBy1AszwAknnMCO/EMrj3zz4rXM+HIJi3/b2Kw2k+NjKCkNTJjvv+9eJo0ZQKf04JfUsTuczJj1M5ddfkXQ2w4njBERQfHEOJgPftzIsb0Cc+HyqGqLkxmZjPqwF+Z335lB76zgeRHFR0VQWhoWBY0ORSj+ba3E30KYTSYTFdW1rN6858DMqEtmCpPHDuCpN+cG3J6Ukve/+gUpA/sFTUlJZv7SjXQ++TauuPdNPvz6F/aVVjV9oR88+cY3DB4y9Kg2YwBUVVYSGxlcd6t5q3awYnM+0z9awuc/baCs2trkNS632uI8HRCuNlcva9as4dmnn+KVK8cGrc3huSl8v3B+0NoLDkIT5rYgOzubS/9xOZPvmEHX0x/g5v98yuIVmxkxsBvb9+wLuL3Siho+/PoXZs35OqDrHnn0cfL3FjJ/0WIGjDyTT37YSc/T7mLA5Pu59d8f8s2S1dTWBX7buH1PMc+/v5Bnn38x4GvbG1u3bWsyY1ygfHjjaQztksqsnzcy7dnZ3P/u901e41HVBv3c/cXmdBEZaW76xDbA6XRy8QVTmH7RCDolN+2z7y8TBnZl3oIFeDzBvetpEYKgCbMQ4k0hRLEQYt1BxxKEEAuFEFt8j006pYe6SvZ44DlAhzcd6PQm31kI0Ol0/PvJp3ji30+ydu1avvzyC2578TPWb9xEpMnIG58tZtTgnnTOTPErbNVo0KMoCsnJyQGPRQhBjx496NGjB9dddx1ut5sVK1awcOECnnx/Pufd/BIDe3dl7NBujB3ei8G9O6NvZGbm8ahccd9b3HHnXeEZURVESkpK2PDnNq58w4UQHOJ/fsFx3bhjUvO8Uc4e3oOzh/cA4NrXFvDl0o2kxkWhUxSEAEUInG4P1VYH1VYHNVYHv23eS7fO6U203DhWuxOzn7mWW5uHHryfjha4dGzfoLabmRxDx6QYZs+e7VfZrNYjaPbjtzmyePWdwLdSyulCiDt9+3fUc+0BQlYlWwihA14CTgLygeVCiNlSyg1+9BkShBD07duXvn37ct9997N161beffcdvl+3iftf+jc6ASMH92Dk4NxGhdpo0OMMUiIWvV7PsGHDGDZsGPfeex91dXX8+OOPLFwwn2se/5Sdu3YzYkgeJw7pztjhvejR+dDCrE+//Q3SEMMtt9walPGEM0lJSaxevRqXy+XLda2gKArLli1j5v+e5o5JLe8jMTqSylo7i9bsPiD6UkoMeh0WcwRRZiPR0VGce9JAzh7dsqy2NocLszn8ZszLly/ntf++wu9PXxKS/BpPXzqSKVf8g/KyMi6/IhzWRIK3sFdf8WpgEt6c9gAzgMW0VJhbUCV7CLDVl5cZIcRHvgG2mTAfTteuXXnwQW9RFSklW7Zs4fvvv+f7779tVKiNBj0OhzMkiWGioqIYP34848d78ywUFxfz3XffsXDBPP5z9fO43U7GDuvF2GE9SE2M5T8zFrB8xe9HZLU7Gtn/w3o4P/30E50Sg+NCl5eZSHpSLD+87J9/ekuw2l1ERrYsz0ewsdvtXHLh+Tx7+RjSEkJT/3FUnywWPzKFU+69C3OkmalTLwhJP4Hht1kqSQhxsIXg1caKTPtIlVIWAkgpC301UBsllH7MGcCeg/bzgaENnRzKKtn+IISgW7dudOvWjSuvvBIpJVu3buX7779n8fff8sDLTyKkysghPRk5KBfwJucPdRRTSkoKU6ZMYcqUKUgp2bZtGwsXLmTOwnn8suxLnnv+xaPehNEUUkoMQagqUl5j47EvfiMuunVmseEYBfefp54kLzWS804IbarYHh2TmH33mZx03TVkZ+dw7LHHhrS/JvHfw6ZUShnyCK5Qfirq+6Y0uAQdiirZLUEIQW5uLrm5uUybNu2AKC5evJjF3y1i4ID+bTKmrl270rVrV66++upW7z9c6du3L28+X9L0iU1wymOfk9EhgQ8evCgIo2oanSLCaxEM+HPTBoZ0aZ1CCn2yU3jz2vGcO/lMNmze0oZlzgQh9oPYJ4RI882W04Am/WxDOZp8IPOg/Y5AQQj7Cyn7RfGKK67gvQ8+YvnK38NutvN3Zfjw4ewuqWZncctcD/PLa7jz4rGtNmPW63S4G4gebCtuvOV2nvlqJXX24EX7NcaEQV0Z168Td9/ZqMk19IQ2wGQ2cInv+SXArKYuCKUwLwdyhRA5QggjMAXvADU0goper+fiSy7m0S+XN7uN/LJqyqqt9OvaMk+LQNDrlbCr5jFgwABGjBzFQx/93Gp9PnHxCD6d+RHLlzf//9dyhJ9bE614i1f/AnQXQuQLIS4HpgMnCSG24HWGaNI7rUlhrq8jIcSZvorZw/FWyZ7vOzddCDEXQErpBq4F5gMbgZlSyvVNvjMNjWZw3wMPMW9NPj+s39P0yYdx9wdL6Hnjm1xy6lBiLa3nJREfbaaisrLV+vOX51/6L7NWFfDsrNYRyoRoMw+ffxw3X39t2wTcCII2Y5ZSni+lTJNSGqSUHaWUb0gpy6SUY6WUub7HJnPCNinMDXT0he95hJQyVUo5zndugZRywkHXzpVSdpNSdpFSNp4kWUOjBcTGxvLam29z4UvzyS8LrEjrJ8u28sLNk/nf7c0vR9YckuMslJY1nbe5tUlNTWXR9z/wzNzVzFq2uVX6vHRsX0oL9/Dzz603U/8Lf2fLWjFWDY2AmTBhAtfeeAvnPvsai++bjNHgnwuh3eUiJz2hRX273B5sDhc2hwur3XnguXffhc3512t23/GqWjslZeVtWo+vITp16sSnX8xi4oRx9OiYRPeOwc/vcjA6ncLEQZ1ZuGABxx9/fEj7qhcRXu6mmjBrHFXccedd/PLTj9z2/o/ccuox2F1uHC5vpWu7043D7fHuu9zYXd7nNoeLr37ewC9rd3rF0+HB5nRjc3qwOlzYHG6vsB4iuE6sNgc2hxOb3YGqSiLNJsymCCIjzZhNJsxmE5HmSMxms3eLjCQyMgqTOcb7vKOFZ589I+xEeT9Dhw7lkceeYPL0B1n8yBSSYkLrc31sj3T+t/THkPbRIGH2P9CEWeOoQlEUZrz/ISePGcUJD3+BKSKCCKORiIgIIiIiMJkifM9NmEwmIkxR9Ok3AFtsN6piYomMjKJD5F9iGunHc7PZjMFgCFuBbQnTrrySXbt2kHX5M3RIjCUtIYaUuChizAaiTXqiI/RYTHriLWbSEiykJ1hIT4gmIzE64L+HQa+gqq1TgfxQWtdM4Q+aMGscdcTHx7P8j9VtPYyjhkcfm849/3cfhYWFFBUVsW/fPqqrq6mpqaG2tpbq6ip2lxQz//d8Cgo2kl9QiNvtYmiPTqTHRyGRvrwmeMPcpe+5L9eJ9B0vLKsiMTO3bd5kmP2oasKsoaHRJJGRkXTp0oUuXbr4df7evXtZtmwZZWVlh+Q1qW87+PW8vNBGHDaMJswaGhpHORkZGUyePLmth+E/2oxZQ0NDI4wQWjFWDQ0NjTBEE2YNDQ2N8EIzZWhoaGiEG5owa2hoaIQRmh+zhoaGRtghtMU/DQ0NjTBDszE3zcqVK0uFELta2EwSUBqM8bQi2phbB23MrUNrjDlIddU0YW4SKWVyS9sQQqxojdpcwUQbc+ugjbl1aDdj1vyYNTQ0NMIRbcasoaGhEV5oNuZW49W2HkAz0MbcOmhjbh3ayZjDz5Qh2qTGloaGhkaYMOiYfnLFj9/4da6wZKxsDbv50Txj1tDQ0PAPzZShoaGhEW6ElzCHl2ElSAgh4oQQnwohNgkhNgohhrf1mBpDCNFdCLHqoK1aCHFjW4+rKYQQNwkh1gsh1gkhPhRCmNp6TE0hhLjBN9714fo3FkK8KYQoFkKsO+hYghBioRBii+8xvi3HeDgNjPkc399ZFUKEsducz8bsz9ZKHJXCDDwHzJNS9gD6ARvbeDyNIqXcLKXsL6XsDwwErMAXbTuqxhFCZADXA4OklL0BHTClbUfVOEKI3sA/gSF4PxenCSHaqJZRo7wNjD/s2J3At1LKXOBb33448TZHjnkdcBawpNVHEwgCTZhDjRAiBhgBvAEgpXRKKSvbdFCBMRbYJqVsaeRja6AHzEIIPRAJFLTxeJqiJ7BMSmmVUrqBH4Az23hMRyClXAKUH3Z4EjDD93wGcEZrjqkp6huzlHKjlHJzGw0pQISfW+twNNqYOwMlwFtCiH7ASuAGKWVd2w7Lb6YAH7b1IJpCSrlXCPEUsBuwAQuklAvaeFhNsQ54VAiRiHfME4AVbTskv0mVUhYCSCkLhRApbT2go4WVv6+eL8xJSX6e3iph8UejMOuBY4DrpJS/CiGew3vbd2/bDqtphBBG4HTgrrYeS1P4bJyTgBygEvhECHGhlPK9Nh1YI0gpNwohngAWArXAasDdtqPSaGuklIebYNqco86UAeQD+VLKX337n+IV6vbAKcDvUsp9bT0QPzgR2CGlLJFSuoDPgWPbeExNIqV8Q0p5jJRyBN5b7y1tPSY/2SeESAPwPRa38Xg0QshRJ8xSyiJgjxCiu+/QWGBDGw4pEM6nHZgxfOwGhgkhIoUQAu/fOawXWQH2mwCEEJ3wLky1l7/3bOAS3/NLgFltOBaNEHNURv4JIfoDrwNGYDvwDyllRZsOqgmEEJHAHqCzlLKqrcfjD0KIB4Hz8JoD/gCukFI62nZUjSOE+BFIBFzAzVLKb9t4SEcghPgQGIU3beY+4H7gS2Am0Anvj+I5UsrDFwjbjAbGXA68ACTjNXetklKOa6MhtiuOSmHW0NDQaM8cdaYMDQ0NjfaOJswaGhoaYYYmzBoaGhphhibMGhoaGmGGJswaGhoaYYYmzBoaGhphhibMGhoaGmHG/wPgGut2L8rX8wAAAABJRU5ErkJggg==\n" + "image/png": "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\n", + "text/plain": [ + "
" + ] }, "metadata": { "needs_background": "light" - } + }, + "output_type": "display_data" } ], "source": [ @@ -228,35 +372,30 @@ "ExecuteTime": { "end_time": "2017-12-15T21:30:30.408917Z", "start_time": "2017-12-15T21:30:30.088920Z" - }, - "execution": { - "iopub.execute_input": "2021-02-19T19:18:06.869222Z", - "iopub.status.busy": "2021-02-19T19:18:06.868648Z", - "iopub.status.idle": "2021-02-19T19:18:07.299027Z", - "shell.execute_reply": "2021-02-19T19:18:07.299650Z" } }, "outputs": [ { - "output_type": "execute_result", "data": { "text/plain": [ "" ] }, + "execution_count": 5, "metadata": {}, - "execution_count": 5 + "output_type": "execute_result" }, { - "output_type": "display_data", "data": { - "text/plain": "
", - "image/svg+xml": "\n\n\n\n \n \n \n \n 2021-02-19T22:27:20.144274\n image/svg+xml\n \n \n Matplotlib v3.3.4, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", - "image/png": "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\n" + "image/png": "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\n", + "text/plain": [ + "
" + ] }, "metadata": { "needs_background": "light" - } + }, + "output_type": "display_data" } ], "source": [ @@ -271,35 +410,30 @@ "ExecuteTime": { "end_time": "2017-12-15T21:28:00.376417Z", "start_time": "2017-12-15T21:27:57.039Z" - }, - "execution": { - "iopub.execute_input": "2021-02-19T19:18:07.320276Z", - "iopub.status.busy": "2021-02-19T19:18:07.317934Z", - "iopub.status.idle": "2021-02-19T19:18:07.569566Z", - "shell.execute_reply": "2021-02-19T19:18:07.570663Z" } }, "outputs": [ { - "output_type": "execute_result", "data": { "text/plain": [ "" ] }, + "execution_count": 6, "metadata": {}, - "execution_count": 6 + "output_type": "execute_result" }, { - "output_type": "display_data", "data": { - "text/plain": "
", - "image/svg+xml": "\n\n\n\n \n \n \n \n 2021-02-19T22:27:20.495801\n image/svg+xml\n \n \n Matplotlib v3.3.4, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", - "image/png": "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\n" + "image/png": "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\n", + "text/plain": [ + "
" + ] }, "metadata": { "needs_background": "light" - } + }, + "output_type": "display_data" } ], "source": [ @@ -322,35 +456,30 @@ "ExecuteTime": { "end_time": "2017-12-15T21:28:00.376417Z", "start_time": "2017-12-15T21:27:57.045Z" - }, - "execution": { - "iopub.execute_input": "2021-02-19T19:18:07.603173Z", - "iopub.status.busy": "2021-02-19T19:18:07.601948Z", - "iopub.status.idle": "2021-02-19T19:18:07.877554Z", - "shell.execute_reply": "2021-02-19T19:18:07.878113Z" } }, "outputs": [ { - "output_type": "execute_result", "data": { "text/plain": [ "" ] }, + "execution_count": 7, "metadata": {}, - "execution_count": 7 + "output_type": "execute_result" }, { - "output_type": "display_data", "data": { - "text/plain": "
", - "image/svg+xml": "\n\n\n\n \n \n \n \n 2021-02-19T22:27:20.797058\n image/svg+xml\n \n \n Matplotlib v3.3.4, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", - "image/png": "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\n" + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAVUAAAD4CAYAAABc+XWqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAB+BUlEQVR4nO2dd3yTVRfHvzc76Z50QVtm2QjIEJElW1EUVFQEFHHvvX2duF63iAPn61acqExBkI3svSktbelu08znvn+k1AIdaZq0BZ/v55MmefI895407ckd5/yOkFKioqKiouIfNI1tgIqKisrphOpUVVRUVPyI6lRVVFRU/IjqVFVUVFT8iOpUVVRUVPyIrrENqIro6GiZkpLS2GaoqKioVMnatWuPSiljqnqtSTrVlJQU1qxZ09hmqKioqFSJEOJAda+p038VFRUVP6I6VRUVFRU/ojpVFRUVFT/SJNdUVVT+zTidTtLT07HZbI1tyr8ek8lEUlISer3e62tUp6qi0sRIT08nJCSElJQUhBCNbc6/Fiklubm5pKenk5qa6vV16vRfRaWJYbPZiIqKUh1qIyOEICoqqs4zBtWpqqg0QVSH2jTw5XNQp/8qpy2KorBixQqEEJhMJkwmE2azueKxyWTCaDSe+g5MKuB2AAqgAa0BhDpeaizU37zKacuhQ4cYMGAAd9x+K1MmT2LshRcwcOAAunbtQnJyMmFhYWi1WsxmMxEREcTHx9OqVUtWrVrV2KZ7j8sK9nxwlYKrzHNvz/cc9xNr166lc+fOtG7dmltvvZWqNJhzc3MZNGgQwcHB3Hzzzce99vnnn9O5c2e6dOnCiBEjOHr0aI39VddWcXEx3bp1q7hFR0dz++23n3T9qlWrKs7p2rUrs2fPrnjN4XAwbdo02rZtS1paGt9++20dfxu1o45UVU5b4uLi0Gg0LF3wMzpd1X/qiqJgt9spK7Nhs9m4aurNZGRkNLClPuKyehxpla+VH9dZ6t3NDTfcwDvvvEOfPn0YNWoUv/32GyNHjjzuHJPJxJNPPsnmzZvZvHnzP2a4XNx2221s3bqV6Oho7r33Xt544w0ef/zxavurrq2QkBDWr19f8bxHjx5cdNFFJ13fqVMn1qxZg06nIzMzk65du3L++eej0+l4+umniY2NZefOnSiKQl5enu+/mGpQR6oqpy1Go5HY2BjSD1fvJDUaDWazmcjICBIS4jEaDWi12ga00kekUr1DPYarzHNePcjMzKSoqIi+ffsihOCqq67i+++/P+m8oKAgzj77bEwm0/FmSomUktLSUqSUFBUVkZCQUGOf1bVVmV27dpGdnU3//v1Pes1isVR8idpstuOWd2bNmsUDDzwAeD776OjoGm3xBdWpqpzWpCSnsP/AQa/PVxTl1HCqbod/z6uGw4cPk5SUVPE8KSmJw4cPe329Xq9nxowZdO7cmYSEBLZu3co111xTL5vAs6Rw6aWXVrsevnLlSjp27Ejnzp15++230el0FBQUAPDII4/QvXt3xo8fT1ZWVr1tORHVqaqc1qSmprJvv/dO1e3+x6m63W7sdjslJSUUFxejKPUb9fkXb22pn81VrZ/WZWPP6XQyY8YM/v77bzIyMujSpQvPPvtsvWwC+OKLL5gwYUK1r/fu3ZstW7awevVqnn32WWw2Gy6Xi/T0dPr168e6devo27cvd999d71tORF1TVXltCY1NbVOI9XgoCBGjx6NoigIIdDpdBXZNFarFbPZTHBwMMHBQZ77oGBCQkIICwvjjTffJCamSjW4AODteKh+46akpCTS09Mrnqenp9c6fa/MsTXQVq1aAXDJJZcwffr0etm0YcMGXC4XPXr0qPXc9u3bExQUxObNm+nRowcWi4WxY8cCMH78eN5///162VIVqlNVOa1JSU1l0fzfvT7/68/ex+12o9Pp0GiOd0iKomC1WikpKaWktJSSklKKi0soKS3ljnsfYdeuXQ3nVLUGz06/N+fVg/j4eEJCQlixYgW9e/fm448/5pZbbvH6+sTERLZu3UpOTg4xMTHMmzeP9u3bAzB79mxWrVpV55Hr559/XuModd++fTRv3hydTseBAwfYsWNHRXba+eefzx9//MHgwYNZsGABHTp0qFPf3qA6VZXTmtTUVGbVYaSq1WqrXVPVaDTlo9Tgk157/r9vNGyuvtCAzlzzZpXO7Jd41RkzZjB58mTKysoYOXJkxc7/jz/+yJo1a3jiiScAjw5yUVERDoeD77//nrlz59KhQwcee+wxzjnnHPR6PcnJyXz44YcA7Nmzh9DQ0Cr7rK4tgK+++oo5c+Ycd35lW5YuXcr06dPR6/VoNBreeuutig2p5557jokTJ3L77bcTExPDBx98UO/fz4mIqtZMGpuePXtKVaRaxR8c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\n", + "text/plain": [ + "
" + ] }, "metadata": { "needs_background": "light" - } + }, + "output_type": "display_data" } ], "source": [ @@ -364,35 +493,30 @@ "ExecuteTime": { "end_time": "2017-12-15T21:28:00.386417Z", "start_time": "2017-12-15T21:27:57.048Z" - }, - "execution": { - "iopub.execute_input": "2021-02-19T19:18:07.901216Z", - "iopub.status.busy": "2021-02-19T19:18:07.900716Z", - "iopub.status.idle": "2021-02-19T19:18:08.038149Z", - "shell.execute_reply": "2021-02-19T19:18:08.038837Z" } }, "outputs": [ { - "output_type": "execute_result", "data": { "text/plain": [ "" ] }, + "execution_count": 8, "metadata": {}, - "execution_count": 8 + "output_type": "execute_result" }, { - "output_type": "display_data", "data": { - "text/plain": "
", - "image/svg+xml": "\n\n\n\n \n \n \n \n 2021-02-19T22:27:21.116842\n image/svg+xml\n \n \n Matplotlib v3.3.4, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", - "image/png": "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\n" + "image/png": "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\n", + "text/plain": [ + "
" + ] }, "metadata": { "needs_background": "light" - } + }, + "output_type": "display_data" } ], "source": [ @@ -415,40 +539,35 @@ "ExecuteTime": { "end_time": "2017-12-15T21:28:00.376417Z", "start_time": "2017-12-15T21:27:57.042Z" - }, - "execution": { - "iopub.execute_input": "2021-02-19T19:18:08.070486Z", - "iopub.status.busy": "2021-02-19T19:18:08.066165Z", - "iopub.status.idle": "2021-02-19T19:18:08.265868Z", - "shell.execute_reply": "2021-02-19T19:18:08.266452Z" } }, "outputs": [ { - "output_type": "execute_result", "data": { "text/plain": [ "" ] }, + "execution_count": 9, "metadata": {}, - "execution_count": 9 + "output_type": "execute_result" }, { - "output_type": "display_data", "data": { - "text/plain": "
", - "image/svg+xml": "\n\n\n\n \n \n \n \n 2021-02-19T22:27:22.905376\n image/svg+xml\n \n \n Matplotlib v3.3.4, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", - "image/png": "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\n" + "image/png": "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\n", + "text/plain": [ + "
" + ] }, "metadata": { "needs_background": "light" - } + }, + "output_type": "display_data" } ], "source": [ "# Compare this to the previous 3-bin figure with quantiles\n", - "tracts.plot(column='CRIME', scheme='fisher_jenks', k=3, cmap='OrRd', edgecolor='k', legend=True)" + "tracts.plot(column='CRIME', scheme='natural_breaks', k=3, cmap='OrRd', edgecolor='k', legend=True)" ] }, { @@ -465,18 +584,178 @@ { "cell_type": "code", "execution_count": 10, - "metadata": { - "execution": { - "iopub.execute_input": "2021-02-19T19:18:08.851870Z", - "iopub.status.busy": "2021-02-19T19:18:08.851381Z", - "iopub.status.idle": "2021-02-19T19:18:08.865819Z", - "shell.execute_reply": "2021-02-19T19:18:08.866393Z" - } - }, + "metadata": {}, "outputs": [ { - "output_type": "execute_result", "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
AREAPERIMETERCOLUMBUS_COLUMBUS_IPOLYIDNEIGHOVALINCCRIMEOPEN...XYNSANSBEWCPTHOUSNEIGNOgeometryMax_P
00.3094412.440629251580.46700319.53115.7259802.850747...38.79999944.0700001.01.01.00.01000.01005.0POLYGON ((8.62413 14.23698, 8.55970 14.74245, ...0
10.2593292.236939312144.56700121.23218.8017545.296720...35.61999942.3800011.01.00.00.01000.01001.0POLYGON ((8.25279 14.23694, 8.28276 14.22994, ...0
20.1924682.187547463626.35000015.95630.6267814.534649...39.82000041.1800001.01.01.00.01000.01006.0POLYGON ((8.65331 14.00809, 8.81814 14.00205, ...2
30.0838411.427635524233.2000014.47732.3877600.394427...36.50000040.5200001.01.00.00.01000.01002.0POLYGON ((8.45950 13.82035, 8.47341 13.83227, ...2
40.4888882.997133675723.22500011.25250.7315100.405664...40.00999838.0000001.01.01.00.01000.01007.0POLYGON ((8.68527 13.63952, 8.67758 13.72221, ...3
\n", + "

5 rows × 22 columns

\n", + "
" + ], "text/plain": [ " AREA PERIMETER COLUMBUS_ COLUMBUS_I POLYID NEIG HOVAL \\\n", "0 0.309441 2.440629 2 5 1 5 80.467003 \n", @@ -500,11 +779,11 @@ "4 1000.0 1007.0 POLYGON ((8.68527 13.63952, 8.67758 13.72221, ... 3 \n", "\n", "[5 rows x 22 columns]" - ], - "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
AREAPERIMETERCOLUMBUS_COLUMBUS_IPOLYIDNEIGHOVALINCCRIMEOPEN...XYNSANSBEWCPTHOUSNEIGNOgeometryMax_P
00.3094412.440629251580.46700319.53115.7259802.850747...38.79999944.0700001.01.01.00.01000.01005.0POLYGON ((8.62413 14.23698, 8.55970 14.74245, ...0
10.2593292.236939312144.56700121.23218.8017545.296720...35.61999942.3800011.01.00.00.01000.01001.0POLYGON ((8.25279 14.23694, 8.28276 14.22994, ...0
20.1924682.187547463626.35000015.95630.6267814.534649...39.82000041.1800001.01.01.00.01000.01006.0POLYGON ((8.65331 14.00809, 8.81814 14.00205, ...2
30.0838411.427635524233.2000014.47732.3877600.394427...36.50000040.5200001.01.00.00.01000.01002.0POLYGON ((8.45950 13.82035, 8.47341 13.83227, ...2
40.4888882.997133675723.22500011.25250.7315100.405664...40.00999838.0000001.01.01.00.01000.01007.0POLYGON ((8.68527 13.63952, 8.67758 13.72221, ...3
\n

5 rows × 22 columns

\n
" + ] }, + "execution_count": 10, "metadata": {}, - "execution_count": 10 + "output_type": "execute_result" } ], "source": [ @@ -524,35 +803,29 @@ { "cell_type": "code", "execution_count": 11, - "metadata": { - "execution": { - "iopub.execute_input": "2021-02-19T19:18:08.885642Z", - "iopub.status.busy": "2021-02-19T19:18:08.884016Z", - "iopub.status.idle": "2021-02-19T19:18:09.098414Z", - "shell.execute_reply": "2021-02-19T19:18:09.099540Z" - } - }, + "metadata": {}, "outputs": [ { - "output_type": "execute_result", "data": { "text/plain": [ "" ] }, + "execution_count": 11, "metadata": {}, - "execution_count": 11 + "output_type": "execute_result" }, { - "output_type": "display_data", "data": { - "text/plain": "
", - "image/svg+xml": "\n\n\n\n \n \n \n \n 2021-02-19T22:27:23.805586\n image/svg+xml\n \n \n Matplotlib v3.3.4, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", - "image/png": "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\n" + "image/png": "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\n", + "text/plain": [ + "
" + ] }, "metadata": { "needs_background": "light" - } + }, + "output_type": "display_data" } ], "source": [ @@ -568,14 +841,6 @@ } ], "metadata": { - "nbsphinx": { - "execute": "never" - }, - "kernelspec": { - "display_name": "stable", - "language": "python", - "name": "stable" - }, "language_info": { "codemirror_mode": { "name": "ipython", @@ -586,7 +851,10 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.5" + "version": "3.7.6" + }, + "nbsphinx": { + "execute": "never" } }, "nbformat": 4, diff --git a/geopandas/plotting.py b/geopandas/plotting.py index a21e948..9c39568 100644 --- a/geopandas/plotting.py +++ b/geopandas/plotting.py @@ -560,6 +560,9 @@ def plot_dataframe( A list of legend labels to override the auto-generated labels. Needs to have the same number of elements as the number of classes (`k`). + interval : boolean (default False) + An option to control brackets from mapclassify legend. + If True, open/closed interval brackets are shown in the legend. categories : list-like Ordered list-like object of categories to be used for categorical plot. classification_kwds : dict (default None) @@ -752,7 +755,14 @@ GON (((-122.84000 49.00000, -120.0000... fmt = "{:.2f}" if legend_kwds is not None and "fmt" in legend_kwds: fmt = legend_kwds.pop("fmt") + categories = binning.get_legend_classes(fmt) + if legend_kwds is not None: + show_interval = legend_kwds.pop("interval", False) + else: + show_interval = False + if not show_interval: + categories = [c[1:-1] for c in categories] values = np.array(binning.yb) # fill values with placeholder where were NaNs originally to map them properly diff --git a/geopandas/tests/test_plotting.py b/geopandas/tests/test_plotting.py index ccee108..2f59958 100644 --- a/geopandas/tests/test_plotting.py +++ b/geopandas/tests/test_plotting.py @@ -1054,9 +1054,9 @@ class TestMapclassifyPlotting: ) labels = [t.get_text() for t in ax.get_legend().get_texts()] expected = [ - u"[ 140.00, 5217064.00]", - u"( 5217064.00, 19532732.33]", - u"( 19532732.33, 1379302771.00]", + u" 140.00, 5217064.00", + u" 5217064.00, 19532732.33", + u" 19532732.33, 1379302771.00", ] assert labels == expected @@ -1089,7 +1089,7 @@ class TestMapclassifyPlotting: column="NEGATIVES", scheme="FISHER_JENKS", k=3, cmap="OrRd", legend=True ) labels = [t.get_text() for t in ax.get_legend().get_texts()] - expected = [u"[-10.00, -3.41]", u"( -3.41, 3.30]", u"( 3.30, 10.00]"] + expected = [u"-10.00, -3.41", u" -3.41, 3.30", u" 3.30, 10.00"] assert labels == expected def test_fmt(self): @@ -1102,7 +1102,20 @@ class TestMapclassifyPlotting: legend_kwds={"fmt": "{:.0f}"}, ) labels = [t.get_text() for t in ax.get_legend().get_texts()] - expected = [u"[-10, -3]", u"( -3, 3]", u"( 3, 10]"] + expected = [u"-10, -3", u" -3, 3", u" 3, 10"] + assert labels == expected + + def test_interval(self): + ax = self.df.plot( + column="NEGATIVES", + scheme="FISHER_JENKS", + k=3, + cmap="OrRd", + legend=True, + legend_kwds={"interval": True}, + ) + labels = [t.get_text() for t in ax.get_legend().get_texts()] + expected = [u"[-10.00, -3.41]", u"( -3.41, 3.30]", u"( 3.30, 10.00]"] assert labels == expected @pytest.mark.parametrize("scheme", ["FISHER_JENKS", "FISHERJENKS"]) @@ -1125,7 +1138,7 @@ class TestMapclassifyPlotting: legend=True, ) labels = [t.get_text() for t in ax.get_legend().get_texts()] - expected = ["[ 140.00, 9961396.00]", "( 9961396.00, 1379302771.00]"] + expected = [" 140.00, 9961396.00", " 9961396.00, 1379302771.00"] assert labels == expected def test_invalid_scheme(self): From d8dfa01cfca4a83f61dae87c8253e5594c5b3264 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Tue, 23 Feb 2021 12:59:27 +0100 Subject: [PATCH 116/316] Add pygeos to geopandas.show_versions() (#1843) --- geopandas/tools/_show_versions.py | 1 + 1 file changed, 1 insertion(+) diff --git a/geopandas/tools/_show_versions.py b/geopandas/tools/_show_versions.py index 500b517..4798515 100644 --- a/geopandas/tools/_show_versions.py +++ b/geopandas/tools/_show_versions.py @@ -98,6 +98,7 @@ def _get_deps_info(): "psycopg2", "geoalchemy2", "pyarrow", + "pygeos", ] def get_version(module): From f7d8bd13e7484ccc84e0eac548957487fdef99e9 Mon Sep 17 00:00:00 2001 From: Flavin Date: Thu, 25 Feb 2021 16:04:27 -0600 Subject: [PATCH 117/316] REF: Implement to_crs and estimate_utm_crs in GeometryArray (#1785) --- geopandas/_compat.py | 7 ++ geopandas/array.py | 164 +++++++++++++++++++++++++++++- geopandas/geoseries.py | 61 +---------- geopandas/tests/test_array.py | 36 +++++++ geopandas/tests/test_crs.py | 7 +- geopandas/tests/test_geoseries.py | 6 +- 6 files changed, 217 insertions(+), 64 deletions(-) diff --git a/geopandas/_compat.py b/geopandas/_compat.py index 8690d90..2be985b 100644 --- a/geopandas/_compat.py +++ b/geopandas/_compat.py @@ -5,6 +5,7 @@ import os import warnings import pandas as pd +import pyproj import shapely import shapely.geos @@ -202,3 +203,9 @@ try: HAS_RTREE = True except ImportError: HAS_RTREE = False + +# ----------------------------------------------------------------------------- +# pyproj compat +# ----------------------------------------------------------------------------- + +PYPROJ_LT_3 = LooseVersion(pyproj.__version__) < LooseVersion("3") diff --git a/geopandas/array.py b/geopandas/array.py index bc1e302..c0a6797 100644 --- a/geopandas/array.py +++ b/geopandas/array.py @@ -18,7 +18,7 @@ import shapely.geometry from shapely.geometry.base import BaseGeometry import shapely.ops import shapely.wkt -from pyproj import CRS +from pyproj import CRS, Transformer try: import pygeos @@ -708,6 +708,168 @@ class GeometryArray(ExtensionArray): crs=self.crs, ) + def to_crs(self, crs=None, epsg=None): + """Returns a ``GeometryArray`` with all geometries transformed to a new + coordinate reference system. + + Transform all geometries in a GeometryArray to a different coordinate + reference system. The ``crs`` attribute on the current GeometryArray must + be set. Either ``crs`` or ``epsg`` may be specified for output. + + This method will transform all points in all objects. It has no notion + or projecting entire geometries. All segments joining points are + assumed to be lines in the current projection, not geodesics. Objects + crossing the dateline (or other projection boundary) will have + undesirable behavior. + + Parameters + ---------- + crs : pyproj.CRS, optional if `epsg` is specified + The value can be anything accepted + by :meth:`pyproj.CRS.from_user_input() `, + such as an authority string (eg "EPSG:4326") or a WKT string. + epsg : int, optional if `crs` is specified + EPSG code specifying output projection. + + Returns + ------- + GeometryArray + + Examples + -------- + >>> from shapely.geometry import Point + >>> from geopandas.array import from_shapely, to_wkt + >>> a = from_shapely([Point(1, 1), Point(2, 2), Point(3, 3)], crs=4326) + >>> to_wkt(a) + array(['POINT (1 1)', 'POINT (2 2)', 'POINT (3 3)'], dtype=object) + >>> a.crs # doctest: +SKIP + + Name: WGS 84 + Axis Info [ellipsoidal]: + - Lat[north]: Geodetic latitude (degree) + - Lon[east]: Geodetic longitude (degree) + Area of Use: + - name: World + - bounds: (-180.0, -90.0, 180.0, 90.0) + Datum: World Geodetic System 1984 + - Ellipsoid: WGS 84 + - Prime Meridian: Greenwich + + >>> a = a.to_crs(3857) + >>> to_wkt(a) + array(['POINT (111319 111325)', 'POINT (222639 222684)', + 'POINT (333958 334111)'], dtype=object) + >>> a.crs # doctest: +SKIP + + Name: WGS 84 / Pseudo-Mercator + Axis Info [cartesian]: + - X[east]: Easting (metre) + - Y[north]: Northing (metre) + Area of Use: + - name: World - 85°S to 85°N + - bounds: (-180.0, -85.06, 180.0, 85.06) + Coordinate Operation: + - name: Popular Visualisation Pseudo-Mercator + - method: Popular Visualisation Pseudo Mercator + Datum: World Geodetic System 1984 + - Ellipsoid: WGS 84 + - Prime Meridian: Greenwich + + """ + if self.crs is None: + raise ValueError( + "Cannot transform naive geometries. " + "Please set a crs on the object first." + ) + if crs is not None: + crs = CRS.from_user_input(crs) + elif epsg is not None: + crs = CRS.from_epsg(epsg) + else: + raise ValueError("Must pass either crs or epsg.") + + # skip if the input CRS and output CRS are the exact same + if self.crs.is_exact_same(crs): + return self + + transformer = Transformer.from_crs(self.crs, crs, always_xy=True) + + new_data = vectorized.transform(self.data, transformer.transform) + return GeometryArray(new_data, crs=crs) + + def estimate_utm_crs(self, datum_name="WGS 84"): + """Returns the estimated UTM CRS based on the bounds of the dataset. + + .. versionadded:: 0.9 + + .. note:: Requires pyproj 3+ + + Parameters + ---------- + datum_name : str, optional + The name of the datum to use in the query. Default is WGS 84. + + Returns + ------- + pyproj.CRS + + Examples + -------- + >>> world = geopandas.read_file( + ... geopandas.datasets.get_path("naturalearth_lowres") + ... ) + >>> germany = world.loc[world.name == "Germany"] + >>> germany.geometry.values.estimate_utm_crs() # doctest: +SKIP + + Name: WGS 84 / UTM zone 32N + Axis Info [cartesian]: + - E[east]: Easting (metre) + - N[north]: Northing (metre) + Area of Use: + - name: World - N hemisphere - 6°E to 12°E - by country + - bounds: (6.0, 0.0, 12.0, 84.0) + Coordinate Operation: + - name: UTM zone 32N + - method: Transverse Mercator + Datum: World Geodetic System 1984 + - Ellipsoid: WGS 84 + - Prime Meridian: Greenwich + """ + try: + from pyproj.aoi import AreaOfInterest + from pyproj.database import query_utm_crs_info + except ImportError: + raise RuntimeError("pyproj 3+ required for estimate_utm_crs.") + + if not self.crs: + raise RuntimeError("crs must be set to estimate UTM CRS.") + + minx, miny, maxx, maxy = self.total_bounds + # ensure using geographic coordinates + if not self.crs.is_geographic: + lon, lat = Transformer.from_crs( + self.crs, "EPSG:4326", always_xy=True + ).transform((minx, maxx, minx, maxx), (miny, miny, maxy, maxy)) + x_center = np.mean(lon) + y_center = np.mean(lat) + else: + x_center = np.mean([minx, maxx]) + y_center = np.mean([miny, maxy]) + + utm_crs_list = query_utm_crs_info( + datum_name=datum_name, + area_of_interest=AreaOfInterest( + west_lon_degree=x_center, + south_lat_degree=y_center, + east_lon_degree=x_center, + north_lat_degree=y_center, + ), + ) + try: + return CRS.from_epsg(utm_crs_list[0].code) + except IndexError: + raise RuntimeError("Unable to determine UTM CRS") + # # Coordinate related properties # diff --git a/geopandas/geoseries.py b/geopandas/geoseries.py index 82c6bd9..9d78eb2 100644 --- a/geopandas/geoseries.py +++ b/geopandas/geoseries.py @@ -6,15 +6,14 @@ import pandas as pd from pandas import Series, MultiIndex from pandas.core.internals import SingleBlockManager -from pyproj import CRS, Transformer +from pyproj import CRS from shapely.geometry.base import BaseGeometry from geopandas.base import GeoPandasBase, _delegate_property from geopandas.plotting import plot_series -from .array import GeometryArray, GeometryDtype, from_shapely +from .array import GeometryDtype, from_shapely from .base import is_geometry_type -from . import _vectorized as vectorized from . import _compat as compat @@ -927,27 +926,8 @@ class GeoSeries(GeoPandasBase, Series): GeoSeries.set_crs : assign CRS """ - if self.crs is None: - raise ValueError( - "Cannot transform naive geometries. " - "Please set a crs on the object first." - ) - if crs is not None: - crs = CRS.from_user_input(crs) - elif epsg is not None: - crs = CRS.from_epsg(epsg) - else: - raise ValueError("Must pass either crs or epsg.") - - # skip if the input CRS and output CRS are the exact same - if self.crs.is_exact_same(crs): - return self - - transformer = Transformer.from_crs(self.crs, crs, always_xy=True) - - new_data = vectorized.transform(self.values.data, transformer.transform) return GeoSeries( - GeometryArray(new_data), crs=crs, index=self.index, name=self.name + self.values.to_crs(crs=crs, epsg=epsg), index=self.index, name=self.name ) def estimate_utm_crs(self, datum_name="WGS 84"): @@ -988,40 +968,7 @@ class GeoSeries(GeoPandasBase, Series): - Ellipsoid: WGS 84 - Prime Meridian: Greenwich """ - try: - from pyproj.aoi import AreaOfInterest - from pyproj.database import query_utm_crs_info - except ImportError: - raise RuntimeError("pyproj 3+ required for estimate_utm_crs.") - - if not self.crs: - raise RuntimeError("crs must be set to estimate UTM CRS.") - - minx, miny, maxx, maxy = self.total_bounds - # ensure using geographic coordinates - if not self.crs.is_geographic: - lon, lat = Transformer.from_crs( - self.crs, "EPSG:4326", always_xy=True - ).transform((minx, maxx, minx, maxx), (miny, miny, maxy, maxy)) - x_center = np.mean(lon) - y_center = np.mean(lat) - else: - x_center = np.mean([minx, maxx]) - y_center = np.mean([miny, maxy]) - - utm_crs_list = query_utm_crs_info( - datum_name=datum_name, - area_of_interest=AreaOfInterest( - west_lon_degree=x_center, - south_lat_degree=y_center, - east_lon_degree=x_center, - north_lat_degree=y_center, - ), - ) - try: - return CRS.from_epsg(utm_crs_list[0].code) - except IndexError: - raise RuntimeError("Unable to determine UTM CRS") + return self.values.estimate_utm_crs(datum_name) def to_json(self, **kwargs): """ diff --git a/geopandas/tests/test_array.py b/geopandas/tests/test_array.py index 4cc6e68..fcc5ec1 100644 --- a/geopandas/tests/test_array.py +++ b/geopandas/tests/test_array.py @@ -4,6 +4,7 @@ import numpy as np import pandas as pd import six +from pyproj import CRS import shapely import shapely.affinity import shapely.geometry @@ -883,3 +884,38 @@ def test_isna_pdNA(): t1 = T.copy() t1[0] = pd.NA assert t1[0] is None + + +class TestEstimateUtmCrs: + def setup_method(self): + self.esb = shapely.geometry.Point(-73.9847, 40.7484) + self.sol = shapely.geometry.Point(-74.0446, 40.6893) + self.landmarks = from_shapely([self.esb, self.sol], crs="epsg:4326") + + def test_estimate_utm_crs__geographic(self): + if compat.PYPROJ_LT_3: + with pytest.raises(RuntimeError, match=r"pyproj 3\+ required"): + self.landmarks.estimate_utm_crs() + else: + assert self.landmarks.estimate_utm_crs() == CRS("EPSG:32618") + assert self.landmarks.estimate_utm_crs("NAD83") == CRS("EPSG:26918") + + @pytest.mark.skipif(compat.PYPROJ_LT_3, reason="requires pyproj 3 or higher") + def test_estimate_utm_crs__projected(self): + assert self.landmarks.to_crs("EPSG:3857").estimate_utm_crs() == CRS( + "EPSG:32618" + ) + + @pytest.mark.skipif(compat.PYPROJ_LT_3, reason="requires pyproj 3 or higher") + def test_estimate_utm_crs__out_of_bounds(self): + with pytest.raises(RuntimeError, match="Unable to determine UTM CRS"): + from_shapely( + [shapely.geometry.Polygon([(0, 90), (1, 90), (2, 90)])], crs="EPSG:4326" + ).estimate_utm_crs() + + @pytest.mark.skipif(compat.PYPROJ_LT_3, reason="requires pyproj 3 or higher") + def test_estimate_utm_crs__missing_crs(self): + with pytest.raises(RuntimeError, match="crs must be set"): + from_shapely( + [shapely.geometry.Polygon([(0, 90), (1, 90), (2, 90)])] + ).estimate_utm_crs() diff --git a/geopandas/tests/test_crs.py b/geopandas/tests/test_crs.py index a804d4b..14f4f71 100644 --- a/geopandas/tests/test_crs.py +++ b/geopandas/tests/test_crs.py @@ -392,7 +392,7 @@ class TestGeometryArrayCRS: assert df.column1.crs == self.wgs assert df.column1.values.crs == self.wgs - def test_to_crs(self): + def test_geoseries_to_crs(self): s = GeoSeries(self.geoms, crs=27700) s = s.to_crs(4326) assert s.crs == self.wgs @@ -412,6 +412,11 @@ class TestGeometryArrayCRS: assert df.col1.crs == self.wgs assert df.col1.values.crs == self.wgs + def test_array_to_crs(self): + arr = from_shapely(self.geoms, crs=27700) + arr = arr.to_crs(4326) + assert arr.crs == self.wgs + def test_from_shapely(self): arr = from_shapely(self.geoms, crs=27700) assert arr.crs == self.osgb diff --git a/geopandas/tests/test_geoseries.py b/geopandas/tests/test_geoseries.py index 1ffb649..95b7eef 100644 --- a/geopandas/tests/test_geoseries.py +++ b/geopandas/tests/test_geoseries.py @@ -1,4 +1,3 @@ -from distutils.version import LooseVersion import json import os import random @@ -19,9 +18,9 @@ from shapely.geometry import ( Polygon, ) from shapely.geometry.base import BaseGeometry -import pyproj from geopandas import GeoSeries, GeoDataFrame +from geopandas._compat import PYPROJ_LT_3 from geopandas.array import GeometryArray, GeometryDtype from geopandas.tests.util import geom_equals @@ -29,9 +28,6 @@ from pandas.testing import assert_series_equal import pytest -PYPROJ_LT_3 = LooseVersion(pyproj.__version__) < LooseVersion("3") - - class TestSeries: def setup_method(self): self.tempdir = tempfile.mkdtemp() From 6e8f6f91cbe0c40ca72efecaed95912beb23548d Mon Sep 17 00:00:00 2001 From: Imanol Date: Thu, 25 Feb 2021 23:51:52 +0100 Subject: [PATCH 118/316] TST: expand assert messages in assert_geoseries_equal (#1808) * expanded assert messages. Refactor of duplicated code * black formatted * fix forgotten if * fix forgotten ifs * reformat code, add indeces to error and full first geometries * fix typo * expand tests and check for error message * truncate string Co-authored-by: ImanolUr Co-authored-by: Martin Fleischmann Co-authored-by: Joris Van den Bossche --- geopandas/testing.py | 64 ++++++++++++++++++++++++++------- geopandas/tests/test_testing.py | 17 ++++++++- 2 files changed, 68 insertions(+), 13 deletions(-) diff --git a/geopandas/testing.py b/geopandas/testing.py index 437af0d..7e0daa7 100644 --- a/geopandas/testing.py +++ b/geopandas/testing.py @@ -133,15 +133,58 @@ def assert_geoseries_equal( if not check_crs: with warnings.catch_warnings(): warnings.filterwarnings("ignore", "CRS mismatch", UserWarning) - if check_less_precise: - assert geom_almost_equals(left, right) - else: - assert geom_equals(left, right) + _check_equality(left, right, check_less_precise) else: - if check_less_precise: - assert geom_almost_equals(left, right) - else: - assert geom_equals(left, right) + _check_equality(left, right, check_less_precise) + + +def _truncated_string(geom): + """Truncated WKT repr of geom""" + s = str(geom) + if len(s) > 100: + return s[:100] + "..." + else: + return s + + +def _check_equality(left, right, check_less_precise): + assert_error_message = ( + "{0} out of {1} geometries are not {3}equal.\n" + "Indices where geometries are not {3}equal: {2} \n" + "The first not {3}equal geometry:\n" + "Left: {4}\n" + "Right: {5}\n" + ) + if check_less_precise: + precise = "almost " + if not geom_almost_equals(left, right): + unequal_left_geoms = left[~left.geom_almost_equals(right)] + unequal_right_geoms = right[~left.geom_almost_equals(right)] + raise AssertionError( + assert_error_message.format( + len(unequal_left_geoms), + len(left), + unequal_left_geoms.index.to_list(), + precise, + _truncated_string(unequal_left_geoms.iloc[0]), + _truncated_string(unequal_right_geoms.iloc[0]), + ) + ) + else: + precise = "" + if not geom_equals(left, right): + unequal_left_geoms = left[~left.geom_almost_equals(right)] + unequal_right_geoms = right[~left.geom_almost_equals(right)] + raise AssertionError( + assert_error_message.format( + len(unequal_left_geoms), + len(left), + unequal_left_geoms.index.to_list(), + precise, + _truncated_string(unequal_left_geoms.iloc[0]), + _truncated_string(unequal_right_geoms.iloc[0]), + ) + ) def assert_geodataframe_equal( @@ -212,10 +255,7 @@ def assert_geodataframe_equal( "GeoDataFrame shape mismatch, left: {lshape!r}, right: {rshape!r}.\n" "Left columns: {lcols!r}, right columns: {rcols!r}" ).format( - lshape=left.shape, - rshape=right.shape, - lcols=left.columns, - rcols=right.columns, + lshape=left.shape, rshape=right.shape, lcols=left.columns, rcols=right.columns ) if check_like: diff --git a/geopandas/tests/test_testing.py b/geopandas/tests/test_testing.py index 582c01b..e3cec21 100644 --- a/geopandas/tests/test_testing.py +++ b/geopandas/tests/test_testing.py @@ -46,6 +46,14 @@ s4 = s1.copy() s4.crs = 4326 s5 = s2.copy() s5.crs = 27700 + +s6 = GeoSeries( + [ + Polygon([(0, 3), (0, 0), (2, 0), (2, 2)]), + Polygon([(2, 2), (4, 2), (4, 4), (2, 4)]), + ] +) + df4 = GeoDataFrame( {"col1": [1, 2], "geometry": s1.copy(), "geom2": s4.copy(), "geom3": s5.copy()}, crs=3857, @@ -63,8 +71,15 @@ def test_geoseries(): assert_geoseries_equal(s3, s2, check_series_type=False, check_dtype=False) assert_geoseries_equal(s1, s4, check_series_type=False) - with pytest.raises(AssertionError): + with pytest.raises(AssertionError) as error: assert_geoseries_equal(s1, s2, check_less_precise=True) + assert "1 out of 2 geometries are not almost equal" in str(error.value) + assert "not almost equal: [0]" in str(error.value) + + with pytest.raises(AssertionError) as error: + assert_geoseries_equal(s2, s6, check_less_precise=False) + assert "1 out of 2 geometries are not equal" in str(error.value) + assert "not equal: [0]" in str(error.value) def test_geodataframe(): From e0981ab14eb4aae38fa4e71ae72a1d68a94fd87b Mon Sep 17 00:00:00 2001 From: sangarshanan Date: Sat, 27 Feb 2021 14:04:34 +0530 Subject: [PATCH 119/316] ENH: Add GeoPlot accessor (#1465) Co-authored-by: Martin Fleischmann Co-authored-by: Joris Van den Bossche --- .gitignore | 1 + ci/envs/37-latest-conda-forge.yaml | 1 + ci/envs/38-latest-conda-forge.yaml | 1 + ci/envs/39-latest-conda-forge.yaml | 1 + doc/source/docs/user_guide.rst | 2 +- doc/source/docs/user_guide/mapping.rst | 37 +++++++++++- geopandas/geodataframe.py | 32 +++++----- geopandas/plotting.py | 49 +++++++++++++-- geopandas/tests/test_plotting.py | 82 ++++++++++++++++++++++++++ 9 files changed, 185 insertions(+), 21 deletions(-) diff --git a/.gitignore b/.gitignore index 8eefebd..5e9c00e 100644 --- a/.gitignore +++ b/.gitignore @@ -34,6 +34,7 @@ nosetests.xml coverage.xml *.cover .hypothesis/ +result_images # Sphinx documentation doc/_build/ diff --git a/ci/envs/37-latest-conda-forge.yaml b/ci/envs/37-latest-conda-forge.yaml index a0d148a..1ca1293 100644 --- a/ci/envs/37-latest-conda-forge.yaml +++ b/ci/envs/37-latest-conda-forge.yaml @@ -18,6 +18,7 @@ dependencies: - rtree - matplotlib - mapclassify + - scipy - geopy - SQLalchemy - libspatialite diff --git a/ci/envs/38-latest-conda-forge.yaml b/ci/envs/38-latest-conda-forge.yaml index 5ebdc26..a9ecb78 100644 --- a/ci/envs/38-latest-conda-forge.yaml +++ b/ci/envs/38-latest-conda-forge.yaml @@ -18,6 +18,7 @@ dependencies: - rtree - matplotlib - mapclassify + - scipy - geopy # installed in tests.yaml, because not available on windows # - postgis diff --git a/ci/envs/39-latest-conda-forge.yaml b/ci/envs/39-latest-conda-forge.yaml index 1f85652..bb8c8f3 100644 --- a/ci/envs/39-latest-conda-forge.yaml +++ b/ci/envs/39-latest-conda-forge.yaml @@ -19,6 +19,7 @@ dependencies: - matplotlib - descartes - mapclassify + - scipy - geopy # installed in tests.yaml, because not available on windows # - postgis diff --git a/doc/source/docs/user_guide.rst b/doc/source/docs/user_guide.rst index 02b0210..1086f58 100644 --- a/doc/source/docs/user_guide.rst +++ b/doc/source/docs/user_guide.rst @@ -13,7 +13,7 @@ Advanced topics can be found in the :doc:`Advanced Guide ` and f Data Structures Reading and Writing Files Indexing and Selecting Data - Making Maps + Making Maps and plots Managing Projections Geometric Manipulations Set Operations with overlay diff --git a/doc/source/docs/user_guide/mapping.rst b/doc/source/docs/user_guide/mapping.rst index dbad330..f2a96b5 100644 --- a/doc/source/docs/user_guide/mapping.rst +++ b/doc/source/docs/user_guide/mapping.rst @@ -11,7 +11,7 @@ plt.close('all') -Mapping Tools +Mapping and Plotting Tools ========================================= @@ -222,6 +222,41 @@ We can set the ``zorder`` for cities higher than for world to move it of top. @savefig zorder_set.png world.plot(ax=ax, zorder=1); + +Pandas Plots +----------------- + +Plotting methods also allow for different plot styles from pandas +along with the default ``geo`` plot. These methods can be accessed using +the ``kind`` keyword argument in :meth:`~GeoDataFrame.plot`, and include: + +* ``geo`` for mapping +* ``line`` for line plots +* ``bar`` or ``barh`` for bar plots +* ``hist`` for histogram +* ``box`` for boxplot +* ``kde`` or ``density`` for density plots +* ``area`` for area plots +* ``scatter`` for scatter plots +* ``hexbin`` for hexagonal bin plots +* ``pie`` for pie plots + +.. ipython:: python + + gdf = world.head(10) + @savefig pandas_line_plot.png + gdf.plot(kind='scatter', x="pop_est", y="gdp_md_est") + +You can also create these other plots using the ``GeoDataFrame.plot.`` accessor methods instead of providing the ``kind`` keyword argument. + +.. ipython:: python + + @savefig pandas_bar_plot.png + gdf.plot.bar() + +For more information check out the `pandas documentation `_. + + Other Resources ----------------- Links to jupyter Notebooks for different mapping tasks: diff --git a/geopandas/geodataframe.py b/geopandas/geodataframe.py index 78fc3a3..d3d18d7 100644 --- a/geopandas/geodataframe.py +++ b/geopandas/geodataframe.py @@ -1312,20 +1312,6 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} return self - def plot(self, *args, **kwargs): - """Generate a plot of the geometries in the ``GeoDataFrame``. - - If the ``column`` parameter is given, colors plot according to values - in that column, otherwise calls ``GeoSeries.plot()`` on the - ``geometry`` column. - - Wraps the ``plot_dataframe()`` function, and documentation is copied - from there. - """ - return plot_dataframe(self, *args, **kwargs) - - plot.__doc__ = plot_dataframe.__doc__ - def dissolve(self, by=None, aggfunc="first", as_index=True): """ Dissolve geometries within `groupby` into single observation. @@ -1617,6 +1603,24 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} ) return self.geometry.difference(other) + if compat.PANDAS_GE_025: + from pandas.core.accessor import CachedAccessor + + plot = CachedAccessor("plot", geopandas.plotting.GeoplotAccessor) + else: + + def plot(self, *args, **kwargs): + """Generate a plot of the geometries in the ``GeoDataFrame``. + If the ``column`` parameter is given, colors plot according to values + in that column, otherwise calls ``GeoSeries.plot()`` on the + ``geometry`` column. + Wraps the ``plot_dataframe()`` function, and documentation is copied + from there. + """ + return plot_dataframe(self, *args, **kwargs) + + plot.__doc__ = plot_dataframe.__doc__ + def _dataframe_set_geometry(self, col, drop=False, inplace=False, crs=None): if inplace: diff --git a/geopandas/plotting.py b/geopandas/plotting.py index 9c39568..7159aa2 100644 --- a/geopandas/plotting.py +++ b/geopandas/plotting.py @@ -115,7 +115,7 @@ def _PolygonPatch(polygon, **kwargs): path = Path.make_compound_path( Path(np.asarray(polygon.exterior.coords)[:, :2]), - *[Path(np.asarray(ring.coords)[:, :2]) for ring in polygon.interiors] + *[Path(np.asarray(ring.coords)[:, :2]) for ring in polygon.interiors], ) return PathPatch(path, **kwargs) @@ -254,7 +254,7 @@ def _plot_point_collection( vmax=None, marker="o", markersize=None, - **kwargs + **kwargs, ): """ Plots a collection of Point and MultiPoint geometries to `ax` @@ -488,7 +488,7 @@ def plot_dataframe( classification_kwds=None, missing_kwds=None, aspect="auto", - **style_kwds + **style_kwds, ): """ Plot a GeoDataFrame. @@ -508,6 +508,21 @@ def plot_dataframe( If np.array or pd.Series are used then it must have same length as dataframe. Values are used to color the plot. Ignored if `color` is also set. + kind: str + The kind of plots to produce: + - 'geo': Map (default) + Pandas Kinds + - 'line' : line plot + - 'bar' : vertical bar plot + - 'barh' : horizontal bar plot + - 'hist' : histogram + - 'box' : BoxPlot + - 'kde' : Kernel Density Estimation plot + - 'density' : same as 'kde' + - 'area' : area plot + - 'pie' : pie plot + - 'scatter' : scatter plot + - 'hexbin' : hexbin plot. cmap : str (default None) The name of a colormap recognized by matplotlib. color : str (default None) @@ -683,7 +698,7 @@ GON (((-122.84000 49.00000, -120.0000... figsize=figsize, markersize=markersize, aspect=aspect, - **style_kwds + **style_kwds, ) # To accept pd.Series and np.arrays as column @@ -820,7 +835,7 @@ GON (((-122.84000 49.00000, -120.0000... vmax=mx, markersize=markersize, cmap=cmap, - **style_kwds + **style_kwds, ) if missing_kwds is not None and not expl_series[nan_idx].empty: @@ -899,6 +914,30 @@ GON (((-122.84000 49.00000, -120.0000... return ax +if geopandas._compat.PANDAS_GE_025: + from pandas.plotting import PlotAccessor + + class GeoplotAccessor(PlotAccessor): + + __doc__ = plot_dataframe.__doc__ + _pandas_kinds = PlotAccessor._all_kinds + + def __call__(self, *args, **kwargs): + data = self._parent.copy() + kind = kwargs.pop("kind", "geo") + if kind == "geo": + return plot_dataframe(data, *args, **kwargs) + if kind in self._pandas_kinds: + # Access pandas plots + return PlotAccessor(data)(kind=kind, **kwargs) + else: + # raise error + raise ValueError(f"{kind} is not a valid plot kind") + + def geo(self, *args, **kwargs): + return self(kind="geo", *args, **kwargs) + + def _mapclassify_choro(values, scheme, **classification_kwds): """ Wrapper for choropleth schemes from mapclassify for use with plot_dataframe diff --git a/geopandas/tests/test_plotting.py b/geopandas/tests/test_plotting.py index 2f59958..884d64e 100644 --- a/geopandas/tests/test_plotting.py +++ b/geopandas/tests/test_plotting.py @@ -29,6 +29,13 @@ matplotlib = pytest.importorskip("matplotlib") matplotlib.use("Agg") import matplotlib.pyplot as plt # noqa +try: # skipif and importorskip do not work for decorators + from matplotlib.testing.decorators import check_figures_equal + + MPL_DECORATORS = True +except ImportError: + MPL_DECORATORS = False + @pytest.fixture(autouse=True) def close_figures(request): @@ -42,6 +49,8 @@ try: except KeyError: MPL_DFT_COLOR = matplotlib.rcParams["axes.color_cycle"][0] +plt.rcParams.update({"figure.max_open_warning": 0}) + class TestPointPlotting: def setup_method(self): @@ -1466,6 +1475,79 @@ class TestPlotCollections: ax.cla() +@pytest.mark.skipif(not compat.PANDAS_GE_025, reason="requires pandas > 0.24") +class TestGeoplotAccessor: + def setup_method(self): + geometries = [Polygon([(0, 0), (1, 0), (1, 1)]), Point(1, 3)] + x = [1, 2] + y = [10, 20] + self.gdf = GeoDataFrame({"geometry": geometries, "x": x, "y": y}) + self.df = pd.DataFrame({"x": x, "y": y}) + + def compare_figures(self, kind, fig_test, fig_ref, kwargs): + """Compare Figures.""" + ax_pandas_1 = fig_test.subplots() + self.df.plot(kind=kind, ax=ax_pandas_1, **kwargs) + ax_geopandas_1 = fig_ref.subplots() + self.gdf.plot(kind=kind, ax=ax_geopandas_1, **kwargs) + + ax_pandas_2 = fig_test.subplots() + getattr(self.df.plot, kind)(ax=ax_pandas_2, **kwargs) + ax_geopandas_2 = fig_ref.subplots() + getattr(self.gdf.plot, kind)(ax=ax_geopandas_2, **kwargs) + + _pandas_kinds = [] + if compat.PANDAS_GE_025: + from geopandas.plotting import GeoplotAccessor + + _pandas_kinds = GeoplotAccessor._pandas_kinds + + if MPL_DECORATORS: + + @pytest.mark.parametrize("kind", _pandas_kinds) + @check_figures_equal(extensions=["png", "pdf"]) + def test_pandas_kind(self, kind, fig_test, fig_ref): + """Test Pandas kind.""" + import importlib + + _scipy_dependent_kinds = ["kde", "density"] # Needs scipy + _y_kinds = ["pie"] # Needs y + _xy_kinds = ["scatter", "hexbin"] # Needs x & y + kwargs = {} + if kind in _scipy_dependent_kinds: + if not importlib.util.find_spec("scipy"): + with pytest.raises( + ModuleNotFoundError, match="No module named 'scipy'" + ): + self.gdf.plot(kind=kind) + elif kind in _y_kinds: + kwargs = {"y": "y"} + elif kind in _xy_kinds: + kwargs = {"x": "x", "y": "y"} + + self.compare_figures(kind, fig_test, fig_ref, kwargs) + plt.close("all") + + @check_figures_equal(extensions=["png", "pdf"]) + def test_geo_kind(self, fig_test, fig_ref): + """Test Geo kind.""" + ax1 = fig_test.subplots() + self.gdf.plot(ax=ax1) + ax2 = fig_ref.subplots() + getattr(self.gdf.plot, "geo")(ax=ax2) + plt.close("all") + + def test_invalid_kind(self): + """Test invalid kinds.""" + with pytest.raises(ValueError, match="error is not a valid plot kind"): + self.gdf.plot(kind="error") + with pytest.raises( + AttributeError, + match="'GeoplotAccessor' object has no attribute 'error'", + ): + self.gdf.plot.error() + + def test_column_values(): """ Check that the dataframe plot method returns same values with an From 14155eef803b0973d34d391e503a3505dceb809a Mon Sep 17 00:00:00 2001 From: Flavin Date: Sat, 27 Feb 2021 02:45:09 -0600 Subject: [PATCH 120/316] BUG: Override shift in GeometryArray to preserve CRS (#1744) --- geopandas/_compat.py | 1 + geopandas/array.py | 37 ++++++++++++++++++++++++++++++++++- geopandas/tests/test_array.py | 17 ++++++++++++++++ 3 files changed, 54 insertions(+), 1 deletion(-) diff --git a/geopandas/_compat.py b/geopandas/_compat.py index 2be985b..635aecc 100644 --- a/geopandas/_compat.py +++ b/geopandas/_compat.py @@ -17,6 +17,7 @@ import shapely.geos PANDAS_GE_025 = str(pd.__version__) >= LooseVersion("0.25.0") PANDAS_GE_10 = str(pd.__version__) >= LooseVersion("1.0.0") PANDAS_GE_11 = str(pd.__version__) >= LooseVersion("1.1.0") +PANDAS_GE_115 = str(pd.__version__) >= LooseVersion("1.1.5") PANDAS_GE_12 = str(pd.__version__) >= LooseVersion("1.2.0") diff --git a/geopandas/array.py b/geopandas/array.py index c0a6797..a25e01b 100644 --- a/geopandas/array.py +++ b/geopandas/array.py @@ -1077,6 +1077,41 @@ class GeometryArray(ExtensionArray): def nbytes(self): return self.data.nbytes + def shift(self, periods=1, fill_value=None): + """ + Shift values by desired number. + + Newly introduced missing values are filled with + ``self.dtype.na_value``. + + Parameters + ---------- + periods : int, default 1 + The number of periods to shift. Negative values are allowed + for shifting backwards. + + fill_value : object, optional (default None) + The scalar value to use for newly introduced missing values. + The default is ``self.dtype.na_value``. + + Returns + ------- + GeometryArray + Shifted. + + Notes + ----- + If ``self`` is empty or ``periods`` is 0, a copy of ``self`` is + returned. + + If ``periods > len(self)``, then an array of size + len(self) is returned, with all values filled with + ``self.dtype.na_value``. + """ + shifted = super(GeometryArray, self).shift(periods, fill_value) + shifted.crs = self.crs + return shifted + # ------------------------------------------------------------------------- # ExtensionArray specific # ------------------------------------------------------------------------- @@ -1142,7 +1177,7 @@ class GeometryArray(ExtensionArray): pandas.factorize ExtensionArray.factorize """ - return from_wkb(values) + return from_wkb(values, crs=original.crs) def _values_for_argsort(self): # type: () -> np.ndarray diff --git a/geopandas/tests/test_array.py b/geopandas/tests/test_array.py index fcc5ec1..ef3cd14 100644 --- a/geopandas/tests/test_array.py +++ b/geopandas/tests/test_array.py @@ -886,6 +886,23 @@ def test_isna_pdNA(): assert t1[0] is None +def test_shift_has_crs(): + t = T.copy() + t.crs = 4326 + assert t.shift(1).crs == t.crs + assert t.shift(0).crs == t.crs + assert t.shift(-1).crs == t.crs + + +@pytest.mark.skipif( + not compat.PANDAS_GE_115, reason="crs only preserved in unique after pandas 1.1.5" +) +def test_unique_has_crs(): + t = T.copy() + t.crs = 4326 + assert t.unique().crs == t.crs + + class TestEstimateUtmCrs: def setup_method(self): self.esb = shapely.geometry.Point(-73.9847, 40.7484) From f780228ca330bd9b18d3cb44955d8878ced68097 Mon Sep 17 00:00:00 2001 From: sangarshanan Date: Sat, 27 Feb 2021 14:18:09 +0530 Subject: [PATCH 121/316] BUG: Add quotes to tablename in COPY (#1825) --- geopandas/io/sql.py | 16 +++++++++------- geopandas/io/tests/test_sql.py | 15 +++++++++++++++ 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/geopandas/io/sql.py b/geopandas/io/sql.py index 250478e..4aa3767 100644 --- a/geopandas/io/sql.py +++ b/geopandas/io/sql.py @@ -306,7 +306,9 @@ def _psql_insert_copy(tbl, conn, keys, data_iter): dbapi_conn = conn.connection with dbapi_conn.cursor() as cur: - sql = "COPY {} ({}) FROM STDIN WITH CSV".format(tbl.table.fullname, columns) + sql = 'COPY "{}"."{}" ({}) FROM STDIN WITH CSV'.format( + tbl.table.schema, tbl.table.name, columns + ) cur.copy_expert(sql=sql, file=s_buf) @@ -399,14 +401,14 @@ def _write_postgis( # Convert geometries to EWKB gdf = _convert_to_ewkb(gdf, geom_name, srid) + if schema is not None: + schema_name = schema + else: + schema_name = "public" + if if_exists == "append": # Check that the geometry srid matches with the current GeoDataFrame with _get_conn(con) as connection: - if schema is not None: - schema_name = schema - else: - schema_name = "public" - # Only check SRID if table exists if connection.dialect.has_table(connection, name, schema): target_srid = connection.execute( @@ -429,7 +431,7 @@ def _write_postgis( gdf.to_sql( name, connection, - schema=schema, + schema=schema_name, if_exists=if_exists, index=index, index_label=index_label, diff --git a/geopandas/io/tests/test_sql.py b/geopandas/io/tests/test_sql.py index c9e6465..90e5c25 100644 --- a/geopandas/io/tests/test_sql.py +++ b/geopandas/io/tests/test_sql.py @@ -344,6 +344,21 @@ class TestIO: df = read_postgis(sql, engine, geom_col="geometry") validate_boro_df(df) + def test_write_postgis_uppercase_tablename(self, engine_postgis, df_nybb): + """Tests writing GeoDataFrame to PostGIS with uppercase tablename.""" + engine = engine_postgis + table = "aTestTable" + + # If table exists, delete it before trying to write with defaults + drop_table_if_exists(engine, table) + + # Write to db + write_postgis(df_nybb, con=engine, name=table, if_exists="fail") + # Validate + sql = 'SELECT * FROM "{table}";'.format(table=table) + df = read_postgis(sql, engine, geom_col="geometry") + validate_boro_df(df) + def test_write_postgis_sqlalchemy_connection(self, engine_postgis, df_nybb): """Tests that GeoDataFrame can be written to PostGIS with defaults.""" with engine_postgis.begin() as con: From 369445456b2679387e607e38271213be2e3b8401 Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Sat, 27 Feb 2021 08:53:37 +0000 Subject: [PATCH 122/316] DOC: document sindex API (#1749) --- doc/environment.yml | 2 +- doc/source/docs/reference.rst | 1 + doc/source/docs/reference/sindex.rst | 50 +++++ geopandas/base.py | 49 ++++ geopandas/sindex.py | 320 ++++++++++++++++++++++++++- 5 files changed, 410 insertions(+), 12 deletions(-) create mode 100644 doc/source/docs/reference/sindex.rst diff --git a/doc/environment.yml b/doc/environment.yml index 584cbef..11b5559 100644 --- a/doc/environment.yml +++ b/doc/environment.yml @@ -39,4 +39,4 @@ dependencies: - pygeos=0.9 - pip - pip: - - sphinx-toggleprompt \ No newline at end of file + - sphinx-toggleprompt diff --git a/doc/source/docs/reference.rst b/doc/source/docs/reference.rst index 473df63..66bda92 100644 --- a/doc/source/docs/reference.rst +++ b/doc/source/docs/reference.rst @@ -15,5 +15,6 @@ The API Reference provides an overview of all public objects, functions and meth GeoDataFrame Input/output Tools + Spatial index Testing diff --git a/doc/source/docs/reference/sindex.rst b/doc/source/docs/reference/sindex.rst new file mode 100644 index 0000000..ffed1c9 --- /dev/null +++ b/doc/source/docs/reference/sindex.rst @@ -0,0 +1,50 @@ +============= +Spatial index +============= +.. currentmodule:: geopandas + +GeoPandas offers built-in support for spatial indexing using an R-Tree algorithm. +Depending on the ability to import ``pygeos``, GeoPandas will either use +``pygeos.STRtree`` or ``rtree.index.Index``. The main interface for both is the +same and follows the ``pygeos`` model. + +``GeoSeries.sindex`` creates a spatial index, which can use the methods and +properties documented below. + +Constructor +----------- +.. autosummary:: + :toctree: api/ + + GeoSeries.sindex + +PyGEOS STRtree +-------------- +.. currentmodule:: geopandas.sindex.PyGEOSSTRTreeIndex +.. autosummary:: + :toctree: api/ + + intersection + is_empty + query + query_bulk + size + valid_query_predicates + +rtree Rtree +----------- +.. currentmodule:: geopandas.sindex.RTreeIndex +.. autosummary:: + :toctree: api/ + + intersection + is_empty + query + query_bulk + size + valid_query_predicates + +Furthermore, the ``rtree``-based spatial index offers full capability of +``rtree.index.Index`` - see the full API in the `rtree documentation`_. + +.. _rtree documentation: https://rtree.readthedocs.io/en/stable/class.html diff --git a/geopandas/base.py b/geopandas/base.py index a4edd73..878fa53 100644 --- a/geopandas/base.py +++ b/geopandas/base.py @@ -2578,6 +2578,55 @@ GeometryCollection @property def sindex(self): + """Generate the spatial index + + Creates R-tree spatial index based on ``pygeos.STRtree`` or + ``rtree.index.Index``. + + Note that the spatial index may not be fully + initialized until the first use. + + Examples + -------- + >>> from shapely.geometry import box + >>> s = geopandas.GeoSeries(geopandas.points_from_xy(range(5), range(5))) + >>> s + 0 POINT (0.00000 0.00000) + 1 POINT (1.00000 1.00000) + 2 POINT (2.00000 2.00000) + 3 POINT (3.00000 3.00000) + 4 POINT (4.00000 4.00000) + dtype: geometry + + Query the spatial index with a single geometry based on the bounding box: + + >>> s.sindex.query(box(1, 1, 3, 3)) + array([1, 2, 3]) + + Query the spatial index with a single geometry based on the predicate: + + >>> s.sindex.query(box(1, 1, 3, 3), predicate="contains") + array([2]) + + Query the spatial index with an array of geometries based on the bounding + box: + + >>> s2 = geopandas.GeoSeries([box(1, 1, 3, 3), box(4, 4, 5, 5)]) + >>> s2 + 0 POLYGON ((3.00000 1.00000, 3.00000 3.00000, 1.... + 1 POLYGON ((5.00000 4.00000, 5.00000 5.00000, 4.... + dtype: geometry + + >>> s.sindex.query_bulk(s2) + array([[0, 0, 0, 1], + [1, 2, 3, 4]]) + + Query the spatial index with an array of geometries based on the predicate: + + >>> s.sindex.query_bulk(s2, predicate="contains") + array([[0], + [2]]) + """ return self.geometry.values.sindex @property diff --git a/geopandas/sindex.py b/geopandas/sindex.py index 0716bc9..03eab7c 100644 --- a/geopandas/sindex.py +++ b/geopandas/sindex.py @@ -82,6 +82,14 @@ if compat.HAS_RTREE: ------- set Set of valid predicates for this spatial index. + + Examples + -------- + >>> from shapely.geometry import Point + >>> s = geopandas.GeoSeries([Point(0, 0), Point(1, 1)]) + >>> s.sindex.valid_query_predicates # doctest: +SKIP + {'contains', 'crosses', 'intersects', 'within', 'touches', \ +'overlaps', None, 'covers', 'contains_properly'} """ return { None, @@ -96,7 +104,10 @@ if compat.HAS_RTREE: } def query(self, geometry, predicate=None, sort=False): - """Compatibility layer for pygeos.query. + """Return the index of all geometries in the tree with extents that + intersect the envelope of the input geometry. + + Compatibility layer for pygeos-based ``sindex.query``. This is not a vectorized function, if speed is important, please use PyGEOS. @@ -121,6 +132,29 @@ if compat.HAS_RTREE: ------- matches : ndarray of shape (n_results, ) Integer indices for matching geometries from the spatial index. + + Examples + -------- + >>> from shapely.geometry import Point, box + >>> s = geopandas.GeoSeries(geopandas.points_from_xy(range(10), range(10))) + >>> s + 0 POINT (0.00000 0.00000) + 1 POINT (1.00000 1.00000) + 2 POINT (2.00000 2.00000) + 3 POINT (3.00000 3.00000) + 4 POINT (4.00000 4.00000) + 5 POINT (5.00000 5.00000) + 6 POINT (6.00000 6.00000) + 7 POINT (7.00000 7.00000) + 8 POINT (8.00000 8.00000) + 9 POINT (9.00000 9.00000) + dtype: geometry + + >>> s.sindex.query(box(1, 1, 3, 3)) + array([1, 2, 3]) + + >>> s.sindex.query(box(1, 1, 3, 3), predicate="contains") + array([2]) """ # handle invalid predicates @@ -202,11 +236,16 @@ if compat.HAS_RTREE: return np.array(tree_idx, dtype=np.intp) def query_bulk(self, geometry, predicate=None, sort=False): - """Compatibility layer for pygeos.query_bulk. + """ + Returns all combinations of each input geometry and geometries in + the tree where the envelope of each input geometry intersects with + the envelope of a tree geometry. - Iterates over `geometry` and queries index. + Compatibility layer for pygeos-based ``sindex.query_bulk``. + + Iterates over ``geometry`` and queries index. This operation is not vectorized and may be slow. - Use PyGEOS with `query_bulk` for speed. + Use PyGEOS with ``query_bulk`` for speed. Parameters ---------- @@ -230,6 +269,36 @@ if compat.HAS_RTREE: ndarray with shape (2, n) The first subarray contains input geometry integer indexes. The second subarray contains tree geometry integer indexes. + + Examples + -------- + >>> from shapely.geometry import Point, box + >>> s = geopandas.GeoSeries(geopandas.points_from_xy(range(10), range(10))) + >>> s + 0 POINT (0.00000 0.00000) + 1 POINT (1.00000 1.00000) + 2 POINT (2.00000 2.00000) + 3 POINT (3.00000 3.00000) + 4 POINT (4.00000 4.00000) + 5 POINT (5.00000 5.00000) + 6 POINT (6.00000 6.00000) + 7 POINT (7.00000 7.00000) + 8 POINT (8.00000 8.00000) + 9 POINT (9.00000 9.00000) + dtype: geometry + >>> s2 = geopandas.GeoSeries([box(2, 2, 4, 4), box(5, 5, 6, 6)]) + >>> s2 + 0 POLYGON ((4.00000 2.00000, 4.00000 4.00000, 2.... + 1 POLYGON ((6.00000 5.00000, 6.00000 6.00000, 5.... + dtype: geometry + + >>> s.sindex.query_bulk(s2) + array([[0, 0, 0, 1, 1], + [2, 3, 4, 5, 6]]) + + >>> s.sindex.query_bulk(s2, predicate="contains") + array([[0], + [3]]) """ # Iterates over geometry, applying func. tree_index = [] @@ -249,11 +318,61 @@ if compat.HAS_RTREE: coordinates : sequence or array Sequence of the form (min_x, min_y, max_x, max_y) to query a rectangle or (x, y) to query a point. + + Examples + -------- + >>> from shapely.geometry import Point, box + >>> s = geopandas.GeoSeries(geopandas.points_from_xy(range(10), range(10))) + >>> s + 0 POINT (0.00000 0.00000) + 1 POINT (1.00000 1.00000) + 2 POINT (2.00000 2.00000) + 3 POINT (3.00000 3.00000) + 4 POINT (4.00000 4.00000) + 5 POINT (5.00000 5.00000) + 6 POINT (6.00000 6.00000) + 7 POINT (7.00000 7.00000) + 8 POINT (8.00000 8.00000) + 9 POINT (9.00000 9.00000) + dtype: geometry + + >>> s.sindex.intersection(box(1, 1, 3, 3).bounds) + array([1, 2, 3]) + + Alternatively, you can use ``query``: + + >>> s.sindex.query(box(1, 1, 3, 3)) + array([1, 2, 3]) + """ return super().intersection(coordinates, objects=False) @property def size(self): + """Size of the spatial index + + Number of leaves (input geometries) in the index. + + Examples + -------- + >>> from shapely.geometry import Point + >>> s = geopandas.GeoSeries(geopandas.points_from_xy(range(10), range(10))) + >>> s + 0 POINT (0.00000 0.00000) + 1 POINT (1.00000 1.00000) + 2 POINT (2.00000 2.00000) + 3 POINT (3.00000 3.00000) + 4 POINT (4.00000 4.00000) + 5 POINT (5.00000 5.00000) + 6 POINT (6.00000 6.00000) + 7 POINT (7.00000 7.00000) + 8 POINT (8.00000 8.00000) + 9 POINT (9.00000 9.00000) + dtype: geometry + + >>> s.sindex.size + 10 + """ if hasattr(self, "_size"): size = self._size else: @@ -266,6 +385,32 @@ if compat.HAS_RTREE: @property def is_empty(self): + """Check if the spatial index is empty + + Examples + -------- + >>> from shapely.geometry import Point + >>> s = geopandas.GeoSeries(geopandas.points_from_xy(range(10), range(10))) + >>> s + 0 POINT (0.00000 0.00000) + 1 POINT (1.00000 1.00000) + 2 POINT (2.00000 2.00000) + 3 POINT (3.00000 3.00000) + 4 POINT (4.00000 4.00000) + 5 POINT (5.00000 5.00000) + 6 POINT (6.00000 6.00000) + 7 POINT (7.00000 7.00000) + 8 POINT (8.00000 8.00000) + 9 POINT (9.00000 9.00000) + dtype: geometry + + >>> s.sindex.is_empty + False + + >>> s2 = geopandas.GeoSeries() + >>> s2.sindex.is_empty + True + """ return self.geometries.size == 0 or self.size == 0 def __len__(self): @@ -302,17 +447,29 @@ if compat.HAS_PYGEOS: @property def valid_query_predicates(self): - """Returns valid predicates for this spatial index. + """Returns valid predicates for the used spatial index. Returns ------- set Set of valid predicates for this spatial index. + + Examples + -------- + >>> from shapely.geometry import Point + >>> s = geopandas.GeoSeries([Point(0, 0), Point(1, 1)]) + >>> s.sindex.valid_query_predicates # doctest: +SKIP + {'contains', 'crosses', 'covered_by', None, 'intersects', 'within', \ +'touches', 'overlaps', 'contains_properly', 'covers'} """ return pygeos.strtree.VALID_PREDICATES | set([None]) def query(self, geometry, predicate=None, sort=False): - """Wrapper for pygeos.query. + """ + Return the index of all geometries in the tree with extents + that intersect the envelope of the input geometry. + + Wrapper for pygeos.STRtree.query. This also ensures a deterministic (sorted) order for the results. @@ -334,9 +491,32 @@ if compat.HAS_PYGEOS: matches : ndarray of shape (n_results, ) Integer indices for matching geometries from the spatial index. - See also - -------- + Notes + ----- See PyGEOS.strtree documentation for more information. + + Examples + -------- + >>> from shapely.geometry import Point, box + >>> s = geopandas.GeoSeries(geopandas.points_from_xy(range(10), range(10))) + >>> s + 0 POINT (0.00000 0.00000) + 1 POINT (1.00000 1.00000) + 2 POINT (2.00000 2.00000) + 3 POINT (3.00000 3.00000) + 4 POINT (4.00000 4.00000) + 5 POINT (5.00000 5.00000) + 6 POINT (6.00000 6.00000) + 7 POINT (7.00000 7.00000) + 8 POINT (8.00000 8.00000) + 9 POINT (9.00000 9.00000) + dtype: geometry + + >>> s.sindex.query(box(1, 1, 3, 3)) + array([1, 2, 3]) + + >>> s.sindex.query(box(1, 1, 3, 3), predicate="contains") + array([2]) """ if predicate not in self.valid_query_predicates: @@ -358,7 +538,19 @@ if compat.HAS_PYGEOS: return matches def query_bulk(self, geometry, predicate=None, sort=False): - """Wrapper to expose underlaying pygeos objects to pygeos.query_bulk. + """ + Returns all combinations of each input geometry and geometries in + the tree where the envelope of each input geometry intersects with + the envelope of a tree geometry. + + Wrapper to expose underlaying pygeos objects to pygeos.query_bulk. + + In the context of a spatial join, input geometries are the “left” + geometries that determine the order of the results, and tree geometries + are “right” geometries that are joined against the left geometries. + This effectively performs an inner join, where only those combinations + of geometries that can be joined based on envelope overlap or optional + predicate are returned. This also allows a deterministic (sorted) order for the results. @@ -385,9 +577,39 @@ if compat.HAS_PYGEOS: The first subarray contains input geometry integer indexes. The second subarray contains tree geometry integer indexes. - See also - -------- + Notes + ----- See PyGEOS.strtree documentation for more information. + + Examples + -------- + >>> from shapely.geometry import Point, box + >>> s = geopandas.GeoSeries(geopandas.points_from_xy(range(10), range(10))) + >>> s + 0 POINT (0.00000 0.00000) + 1 POINT (1.00000 1.00000) + 2 POINT (2.00000 2.00000) + 3 POINT (3.00000 3.00000) + 4 POINT (4.00000 4.00000) + 5 POINT (5.00000 5.00000) + 6 POINT (6.00000 6.00000) + 7 POINT (7.00000 7.00000) + 8 POINT (8.00000 8.00000) + 9 POINT (9.00000 9.00000) + dtype: geometry + >>> s2 = geopandas.GeoSeries([box(2, 2, 4, 4), box(5, 5, 6, 6)]) + >>> s2 + 0 POLYGON ((4.00000 2.00000, 4.00000 4.00000, 2.... + 1 POLYGON ((6.00000 5.00000, 6.00000 6.00000, 5.... + dtype: geometry + + >>> s.sindex.query_bulk(s2) + array([[0, 0, 0, 1, 1], + [2, 3, 4, 5, 6]]) + + >>> s.sindex.query_bulk(s2, predicate="contains") + array([[0], + [3]]) """ if predicate not in self.valid_query_predicates: @@ -416,11 +638,37 @@ if compat.HAS_PYGEOS: def intersection(self, coordinates): """Wrapper for pygeos.query that uses the RTree API. + Compatibility wrapper, use ``query`` instead. + Parameters ---------- coordinates : sequence or array Sequence of the form (min_x, min_y, max_x, max_y) to query a rectangle or (x, y) to query a point. + + Examples + -------- + >>> from shapely.geometry import Point, box + >>> s = geopandas.GeoSeries(geopandas.points_from_xy(range(10), range(10))) + >>> s + 0 POINT (0.00000 0.00000) + 1 POINT (1.00000 1.00000) + 2 POINT (2.00000 2.00000) + 3 POINT (3.00000 3.00000) + 4 POINT (4.00000 4.00000) + 5 POINT (5.00000 5.00000) + 6 POINT (6.00000 6.00000) + 7 POINT (7.00000 7.00000) + 8 POINT (8.00000 8.00000) + 9 POINT (9.00000 9.00000) + dtype: geometry + + >>> s.sindex.query(box(1, 1, 3, 3)) + array([1, 2, 3]) + + >>> s.sindex.intersection(box(1, 1, 3, 3).bounds) + array([1, 2, 3]) + """ # convert bounds to geometry # the old API uses tuples of bound, but pygeos uses geometries @@ -452,8 +700,58 @@ if compat.HAS_PYGEOS: @property def size(self): + """Size of the spatial index + + Number of leaves (input geometries) in the index. + + Examples + -------- + >>> from shapely.geometry import Point + >>> s = geopandas.GeoSeries(geopandas.points_from_xy(range(10), range(10))) + >>> s + 0 POINT (0.00000 0.00000) + 1 POINT (1.00000 1.00000) + 2 POINT (2.00000 2.00000) + 3 POINT (3.00000 3.00000) + 4 POINT (4.00000 4.00000) + 5 POINT (5.00000 5.00000) + 6 POINT (6.00000 6.00000) + 7 POINT (7.00000 7.00000) + 8 POINT (8.00000 8.00000) + 9 POINT (9.00000 9.00000) + dtype: geometry + + >>> s.sindex.size + 10 + """ return len(self) @property def is_empty(self): + """Check if the spatial index is empty + + Examples + -------- + >>> from shapely.geometry import Point + >>> s = geopandas.GeoSeries(geopandas.points_from_xy(range(10), range(10))) + >>> s + 0 POINT (0.00000 0.00000) + 1 POINT (1.00000 1.00000) + 2 POINT (2.00000 2.00000) + 3 POINT (3.00000 3.00000) + 4 POINT (4.00000 4.00000) + 5 POINT (5.00000 5.00000) + 6 POINT (6.00000 6.00000) + 7 POINT (7.00000 7.00000) + 8 POINT (8.00000 8.00000) + 9 POINT (9.00000 9.00000) + dtype: geometry + + >>> s.sindex.is_empty + False + + >>> s2 = geopandas.GeoSeries() + >>> s2.sindex.is_empty + True + """ return len(self) == 0 From 14e16c17aa99497a93473c49f2c2c2eca89cd4c3 Mon Sep 17 00:00:00 2001 From: Brendan Ward Date: Sat, 27 Feb 2021 06:52:23 -0800 Subject: [PATCH 123/316] TST: Fix sindex query predicates used in benchmarks (#1801) --- benchmarks/sindex.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/benchmarks/sindex.py b/benchmarks/sindex.py index 7b3a8f1..d48bd29 100644 --- a/benchmarks/sindex.py +++ b/benchmarks/sindex.py @@ -1,8 +1,13 @@ -from geopandas import read_file, datasets -from geopandas.sindex import VALID_QUERY_PREDICATES +from shapely.geometry import Point + +from geopandas import read_file, datasets, GeoSeries -predicates = sorted(VALID_QUERY_PREDICATES, key=lambda x: (x is None, x)) +# Derive list of valid query predicates based on underlying index backend; +# we have to create a non-empty instance of the index to get these +index = GeoSeries([Point(0, 0)]).sindex +predicates = sorted(p for p in index.valid_query_predicates if p is not None) + geom_types = ("mixed", "points", "polygons") From 919a8f26b55b7d30c25803fc4d940f782d941a61 Mon Sep 17 00:00:00 2001 From: Giacomo Caria <44147817+gcaria@users.noreply.github.com> Date: Sat, 27 Feb 2021 22:26:07 +0100 Subject: [PATCH 124/316] BUG: Create unintialized GeoSeries (#1798) --- geopandas/geoseries.py | 2 +- geopandas/tests/test_geoseries.py | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/geopandas/geoseries.py b/geopandas/geoseries.py index 9d78eb2..8444d97 100644 --- a/geopandas/geoseries.py +++ b/geopandas/geoseries.py @@ -200,7 +200,7 @@ class GeoSeries(GeoPandasBase, Series): s = pd.Series(data, index=index, name=name, **kwargs) # prevent trying to convert non-geometry objects if s.dtype != object: - if s.empty: + if s.empty or data is None: s = s.astype(object) else: warnings.warn(_SERIES_WARNING_MSG, FutureWarning, stacklevel=2) diff --git a/geopandas/tests/test_geoseries.py b/geopandas/tests/test_geoseries.py index 95b7eef..bdb44d5 100644 --- a/geopandas/tests/test_geoseries.py +++ b/geopandas/tests/test_geoseries.py @@ -390,6 +390,10 @@ class TestConstructor: s = GeoSeries() check_geoseries(s) + def test_data_is_none(self): + s = GeoSeries(index=range(3)) + check_geoseries(s) + def test_from_series(self): shapes = [ Polygon([(random.random(), random.random()) for _ in range(3)]) From 9ae42ff0da8a7cc090bfe90b2dfc5919e703adee Mon Sep 17 00:00:00 2001 From: bretttully Date: Sun, 28 Feb 2021 20:29:03 +1100 Subject: [PATCH 125/316] ENH: Add back make_valid to overlay and use to skip the buffer(0) calls (#1802) --- geopandas/tests/test_overlay.py | 23 +++++++++++++++++- geopandas/tools/overlay.py | 43 ++++++++++++++++++++++----------- 2 files changed, 51 insertions(+), 15 deletions(-) diff --git a/geopandas/tests/test_overlay.py b/geopandas/tests/test_overlay.py index b828112..f0c095a 100644 --- a/geopandas/tests/test_overlay.py +++ b/geopandas/tests/test_overlay.py @@ -2,7 +2,7 @@ import os import pandas as pd -from shapely.geometry import Point, Polygon, LineString, GeometryCollection +from shapely.geometry import Point, Polygon, LineString, GeometryCollection, box from fiona.errors import DriverError import geopandas @@ -571,3 +571,24 @@ def test_keep_geom_type_geometry_collection(): intersection = overlay(df1, df2, keep_geom_type=False) assert len(intersection) == 1 assert (intersection.geom_type == "GeometryCollection").all() + + +@pytest.mark.parametrize("make_valid", [True, False]) +def test_overlap_make_valid(make_valid): + bowtie = Polygon([(1, 1), (9, 9), (9, 1), (1, 9), (1, 1)]) + assert not bowtie.is_valid + fixed_bowtie = bowtie.buffer(0) + assert fixed_bowtie.is_valid + + df1 = GeoDataFrame({"col1": ["region"], "geometry": GeoSeries([box(0, 0, 10, 10)])}) + df_bowtie = GeoDataFrame( + {"col1": ["invalid", "valid"], "geometry": GeoSeries([bowtie, fixed_bowtie])} + ) + + if make_valid: + df_overlay_bowtie = overlay(df1, df_bowtie, make_valid=make_valid) + assert df_overlay_bowtie.at[0, "geometry"].equals(fixed_bowtie) + assert df_overlay_bowtie.at[1, "geometry"].equals(fixed_bowtie) + else: + with pytest.raises(ValueError, match="1 invalid input geometries"): + overlay(df1, df_bowtie, make_valid=make_valid) diff --git a/geopandas/tools/overlay.py b/geopandas/tools/overlay.py index 9aebbb3..5b95c92 100644 --- a/geopandas/tools/overlay.py +++ b/geopandas/tools/overlay.py @@ -137,7 +137,7 @@ def _overlay_union(df1, df2): return dfunion.reindex(columns=columns) -def overlay(df1, df2, how="intersection", keep_geom_type=None): +def overlay(df1, df2, how="intersection", keep_geom_type=None, make_valid=True): """Perform spatial overlay between two GeoDataFrames. Currently only supports data GeoDataFrames with uniform geometry types, @@ -159,6 +159,9 @@ def overlay(df1, df2, how="intersection", keep_geom_type=None): if False, return all resulting geometries. Default is None, which will set keep_geom_type to True but warn upon dropping geometries. + make_valid : bool, default True + If True, any invalid input geometries are corrected with a call to `buffer(0)`, + if False, a `ValueError` is raised if any input geometries are invalid. Returns ------- @@ -179,9 +182,9 @@ def overlay(df1, df2, how="intersection", keep_geom_type=None): >>> geopandas.overlay(df1, df2, how='union') df1_data df2_data geometry 0 1.0 1.0 POLYGON ((1.00000 2.00000, 2.00000 2.00000, 2.... - 1 2.0 1.0 POLYGON ((2.00000 2.00000, 2.00000 3.00000, 3.... + 1 2.0 1.0 POLYGON ((3.00000 2.00000, 2.00000 2.00000, 2.... 2 2.0 2.0 POLYGON ((3.00000 4.00000, 4.00000 4.00000, 4.... - 3 1.0 NaN POLYGON ((0.00000 0.00000, 0.00000 2.00000, 1.... + 3 1.0 NaN POLYGON ((2.00000 1.00000, 2.00000 0.00000, 0.... 4 2.0 NaN MULTIPOLYGON (((3.00000 3.00000, 4.00000 3.000... 5 NaN 1.0 MULTIPOLYGON (((2.00000 2.00000, 3.00000 2.000... 6 NaN 2.0 POLYGON ((3.00000 4.00000, 3.00000 5.00000, 5.... @@ -189,27 +192,27 @@ def overlay(df1, df2, how="intersection", keep_geom_type=None): >>> geopandas.overlay(df1, df2, how='intersection') df1_data df2_data geometry 0 1 1 POLYGON ((1.00000 2.00000, 2.00000 2.00000, 2.... - 1 2 1 POLYGON ((2.00000 2.00000, 2.00000 3.00000, 3.... + 1 2 1 POLYGON ((3.00000 2.00000, 2.00000 2.00000, 2.... 2 2 2 POLYGON ((3.00000 4.00000, 4.00000 4.00000, 4.... >>> geopandas.overlay(df1, df2, how='symmetric_difference') df1_data df2_data geometry - 0 1.0 NaN POLYGON ((0.00000 0.00000, 0.00000 2.00000, 1.... + 0 1.0 NaN POLYGON ((2.00000 1.00000, 2.00000 0.00000, 0.... 1 2.0 NaN MULTIPOLYGON (((3.00000 3.00000, 4.00000 3.000... 2 NaN 1.0 MULTIPOLYGON (((2.00000 2.00000, 3.00000 2.000... 3 NaN 2.0 POLYGON ((3.00000 4.00000, 3.00000 5.00000, 5.... >>> geopandas.overlay(df1, df2, how='difference') geometry df1_data - 0 POLYGON ((0.00000 0.00000, 0.00000 2.00000, 1.... 1 + 0 POLYGON ((2.00000 1.00000, 2.00000 0.00000, 0.... 1 1 MULTIPOLYGON (((2.00000 3.00000, 2.00000 4.000... 2 >>> geopandas.overlay(df1, df2, how='identity') df1_data df2_data geometry 0 1.0 1.0 POLYGON ((1.00000 2.00000, 2.00000 2.00000, 2.... - 1 2.0 1.0 POLYGON ((2.00000 2.00000, 2.00000 3.00000, 3.... + 1 2.0 1.0 POLYGON ((3.00000 2.00000, 2.00000 2.00000, 2.... 2 2.0 2.0 POLYGON ((3.00000 4.00000, 4.00000 4.00000, 4.... - 3 1.0 NaN POLYGON ((0.00000 0.00000, 0.00000 2.00000, 1.... + 3 1.0 NaN POLYGON ((2.00000 1.00000, 2.00000 0.00000, 0.... 4 2.0 NaN MULTIPOLYGON (((3.00000 3.00000, 4.00000 3.000... See also @@ -262,12 +265,24 @@ def overlay(df1, df2, how="intersection", keep_geom_type=None): ) # Computations - df1 = df1.copy() - df2 = df2.copy() - if df1.geom_type.isin(polys).all(): - df1[df1._geometry_column_name] = df1.geometry.buffer(0) - if df2.geom_type.isin(polys).all(): - df2[df2._geometry_column_name] = df2.geometry.buffer(0) + def _make_valid(df): + df = df.copy() + if df.geom_type.isin(polys).all(): + mask = ~df.geometry.is_valid + col = df._geometry_column_name + if make_valid: + df.loc[mask, col] = df.loc[mask, col].buffer(0) + elif mask.any(): + raise ValueError( + "You have passed make_valid=False along with " + f"{mask.sum()} invalid input geometries. " + "Use make_valid=True or make sure that all geometries " + "are valid before using overlay." + ) + return df + + df1 = _make_valid(df1) + df2 = _make_valid(df2) with warnings.catch_warnings(): # CRS checked above, supress array-level warning warnings.filterwarnings("ignore", message="CRS mismatch between the CRS") From af867de8c5e3a10e6acf7d0820df1ed7f3fbb4fb Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Sun, 28 Feb 2021 14:46:12 +0100 Subject: [PATCH 126/316] DOC: only include common spatial index interface in the docs (#1847) --- doc/source/docs/reference/sindex.rst | 27 +- geopandas/sindex.py | 712 +++++++++++---------------- geopandas/tests/test_sindex.py | 13 + 3 files changed, 306 insertions(+), 446 deletions(-) diff --git a/doc/source/docs/reference/sindex.rst b/doc/source/docs/reference/sindex.rst index ffed1c9..3201106 100644 --- a/doc/source/docs/reference/sindex.rst +++ b/doc/source/docs/reference/sindex.rst @@ -18,9 +18,13 @@ Constructor GeoSeries.sindex -PyGEOS STRtree --------------- -.. currentmodule:: geopandas.sindex.PyGEOSSTRTreeIndex +Spatial Index object +-------------------- + +The spatial index object returned from :attr:`GeoSeries.sindex` has the following +methods: + +.. currentmodule:: geopandas.sindex.SpatialIndex .. autosummary:: :toctree: api/ @@ -31,20 +35,11 @@ PyGEOS STRtree size valid_query_predicates -rtree Rtree ------------ -.. currentmodule:: geopandas.sindex.RTreeIndex -.. autosummary:: - :toctree: api/ +The concrete implementations currently available are +``geopandas.sindex.PyGEOSSTRTreeIndex`` and ``geopandas.sindex.RTreeIndex``. - intersection - is_empty - query - query_bulk - size - valid_query_predicates - -Furthermore, the ``rtree``-based spatial index offers full capability of +In addition to the methods listed above, the ``rtree``-based spatial index +(``geopandas.sindex.RTreeIndex``) offers the full capability of ``rtree.index.Index`` - see the full API in the `rtree documentation`_. .. _rtree documentation: https://rtree.readthedocs.io/en/stable/class.html diff --git a/geopandas/sindex.py b/geopandas/sindex.py index 03eab7c..80f0059 100644 --- a/geopandas/sindex.py +++ b/geopandas/sindex.py @@ -1,3 +1,6 @@ +from textwrap import dedent +import warnings + from shapely.geometry.base import BaseGeometry import pandas as pd import numpy as np @@ -21,22 +24,288 @@ def _get_sindex_class(): ) +class BaseSpatialIndex: + @property + def valid_query_predicates(self): + """Returns valid predicates for this spatial index. + + Returns + ------- + set + Set of valid predicates for this spatial index. + + Examples + -------- + >>> from shapely.geometry import Point + >>> s = geopandas.GeoSeries([Point(0, 0), Point(1, 1)]) + >>> s.sindex.valid_query_predicates # doctest: +SKIP + {'contains', 'crosses', 'intersects', 'within', 'touches', \ +'overlaps', None, 'covers', 'contains_properly'} + """ + raise NotImplementedError + + def query(self, geometry, predicate=None, sort=False): + """Return the index of all geometries in the tree with extents that + intersect the envelope of the input geometry. + + When using the ``rtree`` package, this is not a vectorized function. + If speed is important, please use PyGEOS. + + Parameters + ---------- + geometry : shapely geometry + A single shapely geometry to query against the spatial index. + predicate : {None, 'intersects', 'within', 'contains', \ +'overlaps', 'crosses', 'touches'}, optional + If predicate is provided, the input geometry is + tested using the predicate function against each item + in the tree whose extent intersects the envelope of the + input geometry: predicate(input_geometry, tree_geometry). + If possible, prepared geometries are used to help + speed up the predicate operation. + sort : bool, default False + If True, the results will be sorted in ascending order. + If False, results are often sorted but there is no guarantee. + + Returns + ------- + matches : ndarray of shape (n_results, ) + Integer indices for matching geometries from the spatial index. + + Examples + -------- + >>> from shapely.geometry import Point, box + >>> s = geopandas.GeoSeries(geopandas.points_from_xy(range(10), range(10))) + >>> s + 0 POINT (0.00000 0.00000) + 1 POINT (1.00000 1.00000) + 2 POINT (2.00000 2.00000) + 3 POINT (3.00000 3.00000) + 4 POINT (4.00000 4.00000) + 5 POINT (5.00000 5.00000) + 6 POINT (6.00000 6.00000) + 7 POINT (7.00000 7.00000) + 8 POINT (8.00000 8.00000) + 9 POINT (9.00000 9.00000) + dtype: geometry + + >>> s.sindex.query(box(1, 1, 3, 3)) + array([1, 2, 3]) + + >>> s.sindex.query(box(1, 1, 3, 3), predicate="contains") + array([2]) + """ + raise NotImplementedError + + def query_bulk(self, geometry, predicate=None, sort=False): + """ + Returns all combinations of each input geometry and geometries in + the tree where the envelope of each input geometry intersects with + the envelope of a tree geometry. + + In the context of a spatial join, input geometries are the “left” + geometries that determine the order of the results, and tree geometries + are “right” geometries that are joined against the left geometries. + This effectively performs an inner join, where only those combinations + of geometries that can be joined based on envelope overlap or optional + predicate are returned. + + When using the ``rtree`` package, this is not a vectorized function + and may be slow. If speed is important, please use PyGEOS. + + Parameters + ---------- + geometry : {GeoSeries, GeometryArray, numpy.array of PyGEOS geometries} + Accepts GeoPandas geometry iterables (GeoSeries, GeometryArray) + or a numpy array of PyGEOS geometries. + predicate : {None, 'intersects', 'within', 'contains', 'overlaps', \ +'crosses', 'touches'}, optional + If predicate is provided, the input geometries are tested using + the predicate function against each item in the tree whose extent + intersects the envelope of the each input geometry: + predicate(input_geometry, tree_geometry). If possible, prepared + geometries are used to help speed up the predicate operation. + sort : bool, default False + If True, results sorted lexicographically using + geometry's indexes as the primary key and the sindex's indexes as the + secondary key. If False, no additional sorting is applied. + + Returns + ------- + ndarray with shape (2, n) + The first subarray contains input geometry integer indexes. + The second subarray contains tree geometry integer indexes. + + Examples + -------- + >>> from shapely.geometry import Point, box + >>> s = geopandas.GeoSeries(geopandas.points_from_xy(range(10), range(10))) + >>> s + 0 POINT (0.00000 0.00000) + 1 POINT (1.00000 1.00000) + 2 POINT (2.00000 2.00000) + 3 POINT (3.00000 3.00000) + 4 POINT (4.00000 4.00000) + 5 POINT (5.00000 5.00000) + 6 POINT (6.00000 6.00000) + 7 POINT (7.00000 7.00000) + 8 POINT (8.00000 8.00000) + 9 POINT (9.00000 9.00000) + dtype: geometry + >>> s2 = geopandas.GeoSeries([box(2, 2, 4, 4), box(5, 5, 6, 6)]) + >>> s2 + 0 POLYGON ((4.00000 2.00000, 4.00000 4.00000, 2.... + 1 POLYGON ((6.00000 5.00000, 6.00000 6.00000, 5.... + dtype: geometry + + >>> s.sindex.query_bulk(s2) + array([[0, 0, 0, 1, 1], + [2, 3, 4, 5, 6]]) + + >>> s.sindex.query_bulk(s2, predicate="contains") + array([[0], + [3]]) + """ + raise NotImplementedError + + def intersection(self, coordinates): + """Compatibility wrapper for rtree.index.Index.intersection, + use ``query`` intead. + + Parameters + ---------- + coordinates : sequence or array + Sequence of the form (min_x, min_y, max_x, max_y) + to query a rectangle or (x, y) to query a point. + + Examples + -------- + >>> from shapely.geometry import Point, box + >>> s = geopandas.GeoSeries(geopandas.points_from_xy(range(10), range(10))) + >>> s + 0 POINT (0.00000 0.00000) + 1 POINT (1.00000 1.00000) + 2 POINT (2.00000 2.00000) + 3 POINT (3.00000 3.00000) + 4 POINT (4.00000 4.00000) + 5 POINT (5.00000 5.00000) + 6 POINT (6.00000 6.00000) + 7 POINT (7.00000 7.00000) + 8 POINT (8.00000 8.00000) + 9 POINT (9.00000 9.00000) + dtype: geometry + + >>> s.sindex.intersection(box(1, 1, 3, 3).bounds) + array([1, 2, 3]) + + Alternatively, you can use ``query``: + + >>> s.sindex.query(box(1, 1, 3, 3)) + array([1, 2, 3]) + + """ + raise NotImplementedError + + @property + def size(self): + """Size of the spatial index + + Number of leaves (input geometries) in the index. + + Examples + -------- + >>> from shapely.geometry import Point + >>> s = geopandas.GeoSeries(geopandas.points_from_xy(range(10), range(10))) + >>> s + 0 POINT (0.00000 0.00000) + 1 POINT (1.00000 1.00000) + 2 POINT (2.00000 2.00000) + 3 POINT (3.00000 3.00000) + 4 POINT (4.00000 4.00000) + 5 POINT (5.00000 5.00000) + 6 POINT (6.00000 6.00000) + 7 POINT (7.00000 7.00000) + 8 POINT (8.00000 8.00000) + 9 POINT (9.00000 9.00000) + dtype: geometry + + >>> s.sindex.size + 10 + """ + raise NotImplementedError + + @property + def is_empty(self): + """Check if the spatial index is empty + + Examples + -------- + >>> from shapely.geometry import Point + >>> s = geopandas.GeoSeries(geopandas.points_from_xy(range(10), range(10))) + >>> s + 0 POINT (0.00000 0.00000) + 1 POINT (1.00000 1.00000) + 2 POINT (2.00000 2.00000) + 3 POINT (3.00000 3.00000) + 4 POINT (4.00000 4.00000) + 5 POINT (5.00000 5.00000) + 6 POINT (6.00000 6.00000) + 7 POINT (7.00000 7.00000) + 8 POINT (8.00000 8.00000) + 9 POINT (9.00000 9.00000) + dtype: geometry + + >>> s.sindex.is_empty + False + + >>> s2 = geopandas.GeoSeries() + >>> s2.sindex.is_empty + True + """ + raise NotImplementedError + + +def doc(docstring): + """ + A decorator take docstring from passed object and it to decorated one. + """ + + def decorator(decorated): + decorated.__doc__ = dedent(docstring.__doc__ or "") + return decorated + + return decorator + + if compat.HAS_RTREE: import rtree.index # noqa from rtree.core import RTreeError # noqa from shapely.prepared import prep # noqa - class SpatialIndex(rtree.index.Index): + class SpatialIndex(rtree.index.Index, BaseSpatialIndex): """Original rtree wrapper, kept for backwards compatibility.""" def __init__(self, *args): - super().__init__(self, *args) + warnings.warn( + "Directly using SpatialIndex is deprecated, and the class will be " + "removed in a future version. Access the spatial index through the " + "`GeoSeries.sindex` attribute, or use `rtree.index.Index` directly.", + FutureWarning, + stacklevel=2, + ) + super().__init__(*args) + @doc(BaseSpatialIndex.intersection) + def intersection(self, coordinates, *args, **kwargs): + return super().intersection(coordinates, *args, **kwargs) + + @doc(BaseSpatialIndex.size) @property def size(self): return len(self.leaves()[0][1]) + @doc(BaseSpatialIndex.is_empty) @property def is_empty(self): if len(self.leaves()) > 1: @@ -74,23 +343,9 @@ if compat.HAS_RTREE: [None] * self.geometries.size, dtype=object ) + @doc(BaseSpatialIndex.valid_query_predicates) @property def valid_query_predicates(self): - """Returns valid predicates for this spatial index. - - Returns - ------- - set - Set of valid predicates for this spatial index. - - Examples - -------- - >>> from shapely.geometry import Point - >>> s = geopandas.GeoSeries([Point(0, 0), Point(1, 1)]) - >>> s.sindex.valid_query_predicates # doctest: +SKIP - {'contains', 'crosses', 'intersects', 'within', 'touches', \ -'overlaps', None, 'covers', 'contains_properly'} - """ return { None, "intersects", @@ -103,60 +358,8 @@ if compat.HAS_RTREE: "contains_properly", } + @doc(BaseSpatialIndex.query) def query(self, geometry, predicate=None, sort=False): - """Return the index of all geometries in the tree with extents that - intersect the envelope of the input geometry. - - Compatibility layer for pygeos-based ``sindex.query``. - - This is not a vectorized function, if speed is important, - please use PyGEOS. - - Parameters - ---------- - geometry : shapely geometry - A single shapely geometry to query against the spatial index. - predicate : {None, 'intersects', 'within', 'contains', \ -'overlaps', 'crosses', 'touches'}, optional - If predicate is provided, the input geometry is - tested using the predicate function against each item - in the tree whose extent intersects the envelope of the - input geometry: predicate(input_geometry, tree_geometry). - If possible, prepared geometries are used to help - speed up the predicate operation. - sort : bool, default False - If True, the results will be sorted in ascending order. - If False, results are often sorted but there is no guarantee. - - Returns - ------- - matches : ndarray of shape (n_results, ) - Integer indices for matching geometries from the spatial index. - - Examples - -------- - >>> from shapely.geometry import Point, box - >>> s = geopandas.GeoSeries(geopandas.points_from_xy(range(10), range(10))) - >>> s - 0 POINT (0.00000 0.00000) - 1 POINT (1.00000 1.00000) - 2 POINT (2.00000 2.00000) - 3 POINT (3.00000 3.00000) - 4 POINT (4.00000 4.00000) - 5 POINT (5.00000 5.00000) - 6 POINT (6.00000 6.00000) - 7 POINT (7.00000 7.00000) - 8 POINT (8.00000 8.00000) - 9 POINT (9.00000 9.00000) - dtype: geometry - - >>> s.sindex.query(box(1, 1, 3, 3)) - array([1, 2, 3]) - - >>> s.sindex.query(box(1, 1, 3, 3), predicate="contains") - array([2]) - """ - # handle invalid predicates if predicate not in self.valid_query_predicates: raise ValueError( @@ -235,71 +438,8 @@ if compat.HAS_RTREE: # unsorted return np.array(tree_idx, dtype=np.intp) + @doc(BaseSpatialIndex.query_bulk) def query_bulk(self, geometry, predicate=None, sort=False): - """ - Returns all combinations of each input geometry and geometries in - the tree where the envelope of each input geometry intersects with - the envelope of a tree geometry. - - Compatibility layer for pygeos-based ``sindex.query_bulk``. - - Iterates over ``geometry`` and queries index. - This operation is not vectorized and may be slow. - Use PyGEOS with ``query_bulk`` for speed. - - Parameters - ---------- - geometry : {GeoSeries, GeometryArray, numpy.array of PyGEOS geometries} - Accepts GeoPandas geometry iterables (GeoSeries, GeometryArray) - or a numpy array of PyGEOS geometries. - predicate : {None, 'intersects', 'within', 'contains', 'overlaps', \ -'crosses', 'touches'}, optional - If predicate is provided, the input geometries are tested using - the predicate function against each item in the tree whose extent - intersects the envelope of the each input geometry: - predicate(input_geometry, tree_geometry). If possible, prepared - geometries are used to help speed up the predicate operation. - sort : bool, default False - If True, results sorted lexicographically using - geometry's indexes as the primary key and the sindex's indexes as the - secondary key. If False, no additional sorting is applied. - - Returns - ------- - ndarray with shape (2, n) - The first subarray contains input geometry integer indexes. - The second subarray contains tree geometry integer indexes. - - Examples - -------- - >>> from shapely.geometry import Point, box - >>> s = geopandas.GeoSeries(geopandas.points_from_xy(range(10), range(10))) - >>> s - 0 POINT (0.00000 0.00000) - 1 POINT (1.00000 1.00000) - 2 POINT (2.00000 2.00000) - 3 POINT (3.00000 3.00000) - 4 POINT (4.00000 4.00000) - 5 POINT (5.00000 5.00000) - 6 POINT (6.00000 6.00000) - 7 POINT (7.00000 7.00000) - 8 POINT (8.00000 8.00000) - 9 POINT (9.00000 9.00000) - dtype: geometry - >>> s2 = geopandas.GeoSeries([box(2, 2, 4, 4), box(5, 5, 6, 6)]) - >>> s2 - 0 POLYGON ((4.00000 2.00000, 4.00000 4.00000, 2.... - 1 POLYGON ((6.00000 5.00000, 6.00000 6.00000, 5.... - dtype: geometry - - >>> s.sindex.query_bulk(s2) - array([[0, 0, 0, 1, 1], - [2, 3, 4, 5, 6]]) - - >>> s.sindex.query_bulk(s2, predicate="contains") - array([[0], - [3]]) - """ # Iterates over geometry, applying func. tree_index = [] input_geometry_index = [] @@ -310,69 +450,13 @@ if compat.HAS_RTREE: input_geometry_index.extend([i] * len(res)) return np.vstack([input_geometry_index, tree_index]) + @doc(BaseSpatialIndex.intersection) def intersection(self, coordinates): - """Wrapper for rtree.index.Index.intersection. - - Parameters - ---------- - coordinates : sequence or array - Sequence of the form (min_x, min_y, max_x, max_y) - to query a rectangle or (x, y) to query a point. - - Examples - -------- - >>> from shapely.geometry import Point, box - >>> s = geopandas.GeoSeries(geopandas.points_from_xy(range(10), range(10))) - >>> s - 0 POINT (0.00000 0.00000) - 1 POINT (1.00000 1.00000) - 2 POINT (2.00000 2.00000) - 3 POINT (3.00000 3.00000) - 4 POINT (4.00000 4.00000) - 5 POINT (5.00000 5.00000) - 6 POINT (6.00000 6.00000) - 7 POINT (7.00000 7.00000) - 8 POINT (8.00000 8.00000) - 9 POINT (9.00000 9.00000) - dtype: geometry - - >>> s.sindex.intersection(box(1, 1, 3, 3).bounds) - array([1, 2, 3]) - - Alternatively, you can use ``query``: - - >>> s.sindex.query(box(1, 1, 3, 3)) - array([1, 2, 3]) - - """ return super().intersection(coordinates, objects=False) + @doc(BaseSpatialIndex.size) @property def size(self): - """Size of the spatial index - - Number of leaves (input geometries) in the index. - - Examples - -------- - >>> from shapely.geometry import Point - >>> s = geopandas.GeoSeries(geopandas.points_from_xy(range(10), range(10))) - >>> s - 0 POINT (0.00000 0.00000) - 1 POINT (1.00000 1.00000) - 2 POINT (2.00000 2.00000) - 3 POINT (3.00000 3.00000) - 4 POINT (4.00000 4.00000) - 5 POINT (5.00000 5.00000) - 6 POINT (6.00000 6.00000) - 7 POINT (7.00000 7.00000) - 8 POINT (8.00000 8.00000) - 9 POINT (9.00000 9.00000) - dtype: geometry - - >>> s.sindex.size - 10 - """ if hasattr(self, "_size"): size = self._size else: @@ -383,34 +467,9 @@ if compat.HAS_RTREE: self._size = size return size + @doc(BaseSpatialIndex.is_empty) @property def is_empty(self): - """Check if the spatial index is empty - - Examples - -------- - >>> from shapely.geometry import Point - >>> s = geopandas.GeoSeries(geopandas.points_from_xy(range(10), range(10))) - >>> s - 0 POINT (0.00000 0.00000) - 1 POINT (1.00000 1.00000) - 2 POINT (2.00000 2.00000) - 3 POINT (3.00000 3.00000) - 4 POINT (4.00000 4.00000) - 5 POINT (5.00000 5.00000) - 6 POINT (6.00000 6.00000) - 7 POINT (7.00000 7.00000) - 8 POINT (8.00000 8.00000) - 9 POINT (9.00000 9.00000) - dtype: geometry - - >>> s.sindex.is_empty - False - - >>> s2 = geopandas.GeoSeries() - >>> s2.sindex.is_empty - True - """ return self.geometries.size == 0 or self.size == 0 def __len__(self): @@ -464,61 +523,8 @@ if compat.HAS_PYGEOS: """ return pygeos.strtree.VALID_PREDICATES | set([None]) + @doc(BaseSpatialIndex.query) def query(self, geometry, predicate=None, sort=False): - """ - Return the index of all geometries in the tree with extents - that intersect the envelope of the input geometry. - - Wrapper for pygeos.STRtree.query. - - This also ensures a deterministic (sorted) order for the results. - - Parameters - ---------- - geometry : single PyGEOS or shapely geometry - predicate : {None, 'intersects', 'within', 'contains', \ -'overlaps', 'crosses', 'touches'}, optional - If predicate is provided, the input geometry is tested - using the predicate function against each item in the - tree whose extent intersects the envelope of the input - geometry: predicate(input_geometry, tree_geometry). - sort : bool, default False - If True, the results will be sorted in ascending order. - If False, results are often sorted but there is no guarantee. - - Returns - ------- - matches : ndarray of shape (n_results, ) - Integer indices for matching geometries from the spatial index. - - Notes - ----- - See PyGEOS.strtree documentation for more information. - - Examples - -------- - >>> from shapely.geometry import Point, box - >>> s = geopandas.GeoSeries(geopandas.points_from_xy(range(10), range(10))) - >>> s - 0 POINT (0.00000 0.00000) - 1 POINT (1.00000 1.00000) - 2 POINT (2.00000 2.00000) - 3 POINT (3.00000 3.00000) - 4 POINT (4.00000 4.00000) - 5 POINT (5.00000 5.00000) - 6 POINT (6.00000 6.00000) - 7 POINT (7.00000 7.00000) - 8 POINT (8.00000 8.00000) - 9 POINT (9.00000 9.00000) - dtype: geometry - - >>> s.sindex.query(box(1, 1, 3, 3)) - array([1, 2, 3]) - - >>> s.sindex.query(box(1, 1, 3, 3), predicate="contains") - array([2]) - """ - if predicate not in self.valid_query_predicates: raise ValueError( "Got `predicate` = `{}`; ".format(predicate) @@ -537,81 +543,8 @@ if compat.HAS_PYGEOS: return matches + @doc(BaseSpatialIndex.query_bulk) def query_bulk(self, geometry, predicate=None, sort=False): - """ - Returns all combinations of each input geometry and geometries in - the tree where the envelope of each input geometry intersects with - the envelope of a tree geometry. - - Wrapper to expose underlaying pygeos objects to pygeos.query_bulk. - - In the context of a spatial join, input geometries are the “left” - geometries that determine the order of the results, and tree geometries - are “right” geometries that are joined against the left geometries. - This effectively performs an inner join, where only those combinations - of geometries that can be joined based on envelope overlap or optional - predicate are returned. - - This also allows a deterministic (sorted) order for the results. - - - Parameters - ---------- - geometry : {GeoSeries, GeometryArray, numpy.array of PyGEOS geometries} - Accepts GeoPandas geometry iterables (GeoSeries, GeometryArray) - or a numpy array of PyGEOS geometries. - predicate : {None, 'intersects', 'within', 'contains', \ -'overlaps', 'crosses', 'touches'}, optional - If predicate is provided, the input geometry is tested - using the predicate function against each item in the - index whose extent intersects the envelope of the input geometry: - predicate(input_geometry, tree_geometry). - sort : bool, default False - If True, results sorted lexicographically using - geometry's indexes as the primary key and the sindex's indexes as the - secondary key. If False, no additional sorting is applied. - - Returns - ------- - ndarray with shape (2, n) - The first subarray contains input geometry integer indexes. - The second subarray contains tree geometry integer indexes. - - Notes - ----- - See PyGEOS.strtree documentation for more information. - - Examples - -------- - >>> from shapely.geometry import Point, box - >>> s = geopandas.GeoSeries(geopandas.points_from_xy(range(10), range(10))) - >>> s - 0 POINT (0.00000 0.00000) - 1 POINT (1.00000 1.00000) - 2 POINT (2.00000 2.00000) - 3 POINT (3.00000 3.00000) - 4 POINT (4.00000 4.00000) - 5 POINT (5.00000 5.00000) - 6 POINT (6.00000 6.00000) - 7 POINT (7.00000 7.00000) - 8 POINT (8.00000 8.00000) - 9 POINT (9.00000 9.00000) - dtype: geometry - >>> s2 = geopandas.GeoSeries([box(2, 2, 4, 4), box(5, 5, 6, 6)]) - >>> s2 - 0 POLYGON ((4.00000 2.00000, 4.00000 4.00000, 2.... - 1 POLYGON ((6.00000 5.00000, 6.00000 6.00000, 5.... - dtype: geometry - - >>> s.sindex.query_bulk(s2) - array([[0, 0, 0, 1, 1], - [2, 3, 4, 5, 6]]) - - >>> s.sindex.query_bulk(s2, predicate="contains") - array([[0], - [3]]) - """ - if predicate not in self.valid_query_predicates: raise ValueError( "Got `predicate` = `{}`, `predicate` must be one of {}".format( @@ -635,41 +568,8 @@ if compat.HAS_PYGEOS: return res + @doc(BaseSpatialIndex.intersection) def intersection(self, coordinates): - """Wrapper for pygeos.query that uses the RTree API. - - Compatibility wrapper, use ``query`` instead. - - Parameters - ---------- - coordinates : sequence or array - Sequence of the form (min_x, min_y, max_x, max_y) - to query a rectangle or (x, y) to query a point. - - Examples - -------- - >>> from shapely.geometry import Point, box - >>> s = geopandas.GeoSeries(geopandas.points_from_xy(range(10), range(10))) - >>> s - 0 POINT (0.00000 0.00000) - 1 POINT (1.00000 1.00000) - 2 POINT (2.00000 2.00000) - 3 POINT (3.00000 3.00000) - 4 POINT (4.00000 4.00000) - 5 POINT (5.00000 5.00000) - 6 POINT (6.00000 6.00000) - 7 POINT (7.00000 7.00000) - 8 POINT (8.00000 8.00000) - 9 POINT (9.00000 9.00000) - dtype: geometry - - >>> s.sindex.query(box(1, 1, 3, 3)) - array([1, 2, 3]) - - >>> s.sindex.intersection(box(1, 1, 3, 3).bounds) - array([1, 2, 3]) - - """ # convert bounds to geometry # the old API uses tuples of bound, but pygeos uses geometries try: @@ -698,60 +598,12 @@ if compat.HAS_PYGEOS: return indexes + @doc(BaseSpatialIndex.size) @property def size(self): - """Size of the spatial index - - Number of leaves (input geometries) in the index. - - Examples - -------- - >>> from shapely.geometry import Point - >>> s = geopandas.GeoSeries(geopandas.points_from_xy(range(10), range(10))) - >>> s - 0 POINT (0.00000 0.00000) - 1 POINT (1.00000 1.00000) - 2 POINT (2.00000 2.00000) - 3 POINT (3.00000 3.00000) - 4 POINT (4.00000 4.00000) - 5 POINT (5.00000 5.00000) - 6 POINT (6.00000 6.00000) - 7 POINT (7.00000 7.00000) - 8 POINT (8.00000 8.00000) - 9 POINT (9.00000 9.00000) - dtype: geometry - - >>> s.sindex.size - 10 - """ return len(self) + @doc(BaseSpatialIndex.is_empty) @property def is_empty(self): - """Check if the spatial index is empty - - Examples - -------- - >>> from shapely.geometry import Point - >>> s = geopandas.GeoSeries(geopandas.points_from_xy(range(10), range(10))) - >>> s - 0 POINT (0.00000 0.00000) - 1 POINT (1.00000 1.00000) - 2 POINT (2.00000 2.00000) - 3 POINT (3.00000 3.00000) - 4 POINT (4.00000 4.00000) - 5 POINT (5.00000 5.00000) - 6 POINT (6.00000 6.00000) - 7 POINT (7.00000 7.00000) - 8 POINT (8.00000 8.00000) - 9 POINT (9.00000 9.00000) - dtype: geometry - - >>> s.sindex.is_empty - False - - >>> s2 = geopandas.GeoSeries() - >>> s2.sindex.is_empty - True - """ return len(self) == 0 diff --git a/geopandas/tests/test_sindex.py b/geopandas/tests/test_sindex.py index 9ef5696..7d8d35c 100644 --- a/geopandas/tests/test_sindex.py +++ b/geopandas/tests/test_sindex.py @@ -718,3 +718,16 @@ class TestPygeosInterface: res = world.sindex.query_bulk(capitals.geometry, predicate) assert res.shape == expected_shape + + +@pytest.mark.skipif(not compat.HAS_RTREE, reason="no rtree installed") +def test_old_spatial_index_deprecated(): + t1 = Polygon([(0, 0), (1, 0), (1, 1)]) + t2 = Polygon([(0, 0), (1, 1), (0, 1)]) + + stream = ((i, item.bounds, None) for i, item in enumerate([t1, t2])) + + with pytest.warns(FutureWarning): + idx = geopandas.sindex.SpatialIndex(stream) + + assert list(idx.intersection((0, 0, 1, 1))) == [0, 1] From 6e183ff6283e16b4f86dc83d788cce5db804e118 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Sun, 28 Feb 2021 14:46:50 +0100 Subject: [PATCH 127/316] ENH: try to preserve CRS in GeoDataFrame.apply (#1848) --- geopandas/geodataframe.py | 12 +++++++++++- geopandas/tests/test_crs.py | 10 ++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/geopandas/geodataframe.py b/geopandas/geodataframe.py index d3d18d7..2683eeb 100644 --- a/geopandas/geodataframe.py +++ b/geopandas/geodataframe.py @@ -13,7 +13,7 @@ from pyproj import CRS from geopandas.array import GeometryArray, from_shapely, GeometryDtype from geopandas.base import GeoPandasBase, is_geometry_type -from geopandas.geoseries import GeoSeries +from geopandas.geoseries import GeoSeries, inherit_doc import geopandas.io from geopandas.plotting import plot_dataframe from . import _compat as compat @@ -1293,6 +1293,16 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} result.__class__ = DataFrame return result + @inherit_doc(pd.DataFrame) + def apply(self, func, axis=0, raw=False, result_type=None, args=(), **kwargs): + result = super().apply( + func, axis=axis, raw=raw, result_type=result_type, args=args, **kwargs + ) + if isinstance(result, GeoDataFrame): + if self.crs is not None and result.crs is None: + result.set_crs(self.crs, inplace=True) + return result + @property def _constructor(self): return GeoDataFrame diff --git a/geopandas/tests/test_crs.py b/geopandas/tests/test_crs.py index 14f4f71..ea28f07 100644 --- a/geopandas/tests/test_crs.py +++ b/geopandas/tests/test_crs.py @@ -581,6 +581,16 @@ class TestGeometryArrayCRS: result = s.apply(lambda x: x.centroid) assert result.crs == 27700 + def test_apply_geodataframe(self): + df = GeoDataFrame({"col1": [0, 1]}, geometry=self.geoms, crs=27700) + assert df.crs == 27700 + + # apply preserves the CRS if the result is a GeoDataFrame + result = df.apply(lambda col: col, axis=0) + assert result.crs == 27700 + result = df.apply(lambda row: row, axis=1) + assert result.crs == 27700 + class TestSetCRS: @pytest.mark.parametrize( From 86ba66be015c054fb263f3fae351bc521ba545ba Mon Sep 17 00:00:00 2001 From: Flavin Date: Sun, 28 Feb 2021 09:39:32 -0600 Subject: [PATCH 128/316] ENH: Add groupby kwargs to dissolve (#1845) --- geopandas/geodataframe.py | 53 +++++++++- geopandas/tests/test_dissolve.py | 173 +++++++++++++++++++++++++++++++ 2 files changed, 222 insertions(+), 4 deletions(-) diff --git a/geopandas/geodataframe.py b/geopandas/geodataframe.py index 2683eeb..7c66425 100644 --- a/geopandas/geodataframe.py +++ b/geopandas/geodataframe.py @@ -1322,7 +1322,16 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} return self - def dissolve(self, by=None, aggfunc="first", as_index=True): + def dissolve( + self, + by=None, + aggfunc="first", + as_index=True, + level=None, + sort=True, + observed=False, + dropna=True, + ): """ Dissolve geometries within `groupby` into single observation. This is accomplished by applying the `unary_union` method @@ -1341,6 +1350,33 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} with each group. Passed to pandas `groupby.agg` method. as_index : boolean, default True If true, groupby columns become index of result. + level : int or str or sequence of int or sequence of str, default None + If the axis is a MultiIndex (hierarchical), group by a + particular level or levels. + + .. versionadded:: 0.9.0 + sort : bool, default True + Sort group keys. Get better performance by turning this off. + Note this does not influence the order of observations within + each group. Groupby preserves the order of rows within each group. + + .. versionadded:: 0.9.0 + observed : bool, default False + This only applies if any of the groupers are Categoricals. + If True: only show observed values for categorical groupers. + If False: show all values for categorical groupers. + + .. versionadded:: 0.9.0 + dropna : bool, default True + If True, and if group keys contain NA values, NA values + together with row/column will be dropped. If False, NA + values will also be treated as the key in groups. + + This parameter is not supported for pandas < 1.1.0. + A warning will be emitted for earlier pandas versions + if a non-default value is given for this parameter. + + .. versionadded:: 0.9.0 Returns ------- @@ -1373,19 +1409,28 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} """ - if by is None: + if by is None and level is None: by = np.zeros(len(self), dtype="int64") + groupby_kwargs = dict( + by=by, level=level, sort=sort, observed=observed, dropna=dropna + ) + if not compat.PANDAS_GE_11: + groupby_kwargs.pop("dropna") + + if not dropna: # If they passed a non-default dropna value + warnings.warn("dropna kwarg is not supported for pandas < 1.1.0") + # Process non-spatial component data = self.drop(labels=self.geometry.name, axis=1) - aggregated_data = data.groupby(by=by).agg(aggfunc) + aggregated_data = data.groupby(**groupby_kwargs).agg(aggfunc) # Process spatial component def merge_geometries(block): merged_geom = block.unary_union return merged_geom - g = self.groupby(by=by, group_keys=False)[self.geometry.name].agg( + g = self.groupby(group_keys=False, **groupby_kwargs)[self.geometry.name].agg( merge_geometries ) diff --git a/geopandas/tests/test_dissolve.py b/geopandas/tests/test_dissolve.py index cc5c6ee..d50d25f 100644 --- a/geopandas/tests/test_dissolve.py +++ b/geopandas/tests/test_dissolve.py @@ -3,6 +3,7 @@ import pandas as pd import geopandas from geopandas import GeoDataFrame, read_file +from geopandas import _compat as compat from pandas.testing import assert_frame_equal import pytest @@ -128,3 +129,175 @@ def test_dissolve_none_mean(nybb_polydf): crs=nybb_polydf.crs, ) assert_frame_equal(expected, test, check_column_type=False) + + +def test_dissolve_level(): + gdf = geopandas.GeoDataFrame( + { + "a": [1, 1, 2, 2], + "b": [3, 4, 4, 4], + "c": [3, 4, 5, 6], + "geometry": geopandas.array.from_wkt( + ["POINT (0 0)", "POINT (1 1)", "POINT (2 2)", "POINT (3 3)"] + ), + } + ).set_index(["a", "b", "c"]) + + expected_a = geopandas.GeoDataFrame( + { + "a": [1, 2], + "geometry": geopandas.array.from_wkt( + ["MULTIPOINT (0 0, 1 1)", "MULTIPOINT (2 2, 3 3)"] + ), + } + ).set_index("a") + expected_b = geopandas.GeoDataFrame( + { + "b": [3, 4], + "geometry": geopandas.array.from_wkt( + ["POINT (0 0)", "MULTIPOINT (1 1, 2 2, 3 3)"] + ), + } + ).set_index("b") + expected_ab = geopandas.GeoDataFrame( + { + "a": [1, 1, 2], + "b": [3, 4, 4], + "geometry": geopandas.array.from_wkt( + ["POINT (0 0)", "POINT (1 1)", "MULTIPOINT (2 2, 3 3)"] + ), + } + ).set_index(["a", "b"]) + + assert_frame_equal(expected_a, gdf.dissolve(level=0)) + assert_frame_equal(expected_a, gdf.dissolve(level="a")) + assert_frame_equal(expected_b, gdf.dissolve(level=1)) + assert_frame_equal(expected_b, gdf.dissolve(level="b")) + assert_frame_equal(expected_ab, gdf.dissolve(level=[0, 1])) + assert_frame_equal(expected_ab, gdf.dissolve(level=["a", "b"])) + + +def test_dissolve_sort(): + gdf = geopandas.GeoDataFrame( + { + "a": [2, 1, 1], + "geometry": geopandas.array.from_wkt( + ["POINT (0 0)", "POINT (1 1)", "POINT (2 2)"] + ), + } + ) + + expected_unsorted = geopandas.GeoDataFrame( + { + "a": [2, 1], + "geometry": geopandas.array.from_wkt( + ["POINT (0 0)", "MULTIPOINT (1 1, 2 2)"] + ), + } + ).set_index("a") + expected_sorted = expected_unsorted.sort_index() + + assert_frame_equal(expected_sorted, gdf.dissolve("a")) + assert_frame_equal(expected_unsorted, gdf.dissolve("a", sort=False)) + + +@pytest.mark.skipif( + not compat.PANDAS_GE_025, + reason="'observed' param behavior changed in pandas 0.25.0", +) +def test_dissolve_categorical(): + gdf = geopandas.GeoDataFrame( + { + "cat": pd.Categorical(["a", "a", "b", "b"]), + "noncat": [1, 1, 1, 2], + "to_agg": [1, 2, 3, 4], + "geometry": geopandas.array.from_wkt( + ["POINT (0 0)", "POINT (1 1)", "POINT (2 2)", "POINT (3 3)"] + ), + } + ) + + # when observed=False we get an additional observation + # that wasn't in the original data + expected_gdf_observed_false = geopandas.GeoDataFrame( + { + "cat": pd.Categorical(["a", "a", "b", "b"]), + "noncat": [1, 2, 1, 2], + "geometry": geopandas.array.from_wkt( + [ + "MULTIPOINT (0 0, 1 1)", + None, + "POINT (2 2)", + "POINT (3 3)", + ] + ), + "to_agg": [1, None, 3, 4], + } + ).set_index(["cat", "noncat"]) + + # when observed=True we do not get any additional observations + expected_gdf_observed_true = geopandas.GeoDataFrame( + { + "cat": pd.Categorical(["a", "b", "b"]), + "noncat": [1, 1, 2], + "geometry": geopandas.array.from_wkt( + ["MULTIPOINT (0 0, 1 1)", "POINT (2 2)", "POINT (3 3)"] + ), + "to_agg": [1, 3, 4], + } + ).set_index(["cat", "noncat"]) + + assert_frame_equal(expected_gdf_observed_false, gdf.dissolve(["cat", "noncat"])) + assert_frame_equal( + expected_gdf_observed_true, gdf.dissolve(["cat", "noncat"], observed=True) + ) + + +@pytest.mark.skipif( + not compat.PANDAS_GE_11, reason="dropna groupby kwarg added in pandas 1.1.0" +) +def test_dissolve_dropna(): + gdf = geopandas.GeoDataFrame( + { + "a": [1, 1, None], + "geometry": geopandas.array.from_wkt( + ["POINT (0 0)", "POINT (1 1)", "POINT (2 2)"] + ), + } + ) + + expected_with_na = geopandas.GeoDataFrame( + { + "a": [1.0, np.nan], + "geometry": geopandas.array.from_wkt( + ["MULTIPOINT (0 0, 1 1)", "POINT (2 2)"] + ), + } + ).set_index("a") + expected_no_na = geopandas.GeoDataFrame( + { + "a": [1.0], + "geometry": geopandas.array.from_wkt(["MULTIPOINT (0 0, 1 1)"]), + } + ).set_index("a") + + assert_frame_equal(expected_with_na, gdf.dissolve("a", dropna=False)) + assert_frame_equal(expected_no_na, gdf.dissolve("a")) + + +@pytest.mark.skipif( + compat.PANDAS_GE_11, reason="dropna warning is only emitted if pandas < 1.1.0" +) +def test_dissolve_dropna_warn(nybb_polydf): + # No warning with default params + with pytest.warns(None) as record: + nybb_polydf.dissolve() + + for r in record: + assert "dropna kwarg is not supported" not in str(r.message) + + # Warning is emitted with non-default dropna value + with pytest.warns( + UserWarning, match="dropna kwarg is not supported for pandas < 1.1.0" + ): + nybb_polydf.dissolve(dropna=False) From d7c42d08288258fb6f54ee4b34c59c6e1d60d1fe Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Sun, 28 Feb 2021 16:53:26 +0000 Subject: [PATCH 129/316] DOC: set up binder environment (#1850) --- environment-dev.yml | 32 ++++++++++++++++++++++++++++++ environment.yml | 48 +++++++++++++++++---------------------------- 2 files changed, 50 insertions(+), 30 deletions(-) create mode 100644 environment-dev.yml diff --git a/environment-dev.yml b/environment-dev.yml new file mode 100644 index 0000000..a116f56 --- /dev/null +++ b/environment-dev.yml @@ -0,0 +1,32 @@ +name: geopandas-dev +channels: + - conda-forge +dependencies: + # required + - fiona>=1.8 + - pandas>=0.24 + - pyproj>=2.2.0 + - shapely>=1.6 + + # geodatabase access + - psycopg2>=2.5.1 + - SQLAlchemy>=0.8.3 + + # geocoding + - geopy + + # plotting + - matplotlib>=2.2 + - mapclassify + + # testing + - pytest>=3.1.0 + - pytest-cov + - codecov + + # spatial access methods + - rtree>=0.8 + + # styling + - black + - pre-commit diff --git a/environment.yml b/environment.yml index a116f56..e6fe56e 100644 --- a/environment.yml +++ b/environment.yml @@ -1,32 +1,20 @@ -name: geopandas-dev +name: geopandas channels: - - conda-forge + - conda-forge dependencies: - # required - - fiona>=1.8 - - pandas>=0.24 - - pyproj>=2.2.0 - - shapely>=1.6 - - # geodatabase access - - psycopg2>=2.5.1 - - SQLAlchemy>=0.8.3 - - # geocoding - - geopy - - # plotting - - matplotlib>=2.2 - - mapclassify - - # testing - - pytest>=3.1.0 - - pytest-cov - - codecov - - # spatial access methods - - rtree>=0.8 - - # styling - - black - - pre-commit + - geopandas + - shapely + - fiona + - pyproj + - pygeos + - rtree + - mapclassify + - libpysal + - matplotlib + - geopy + - cartopy + - pyepsg + - contextily + - rasterio + - geoplot + - folium From 45ca8f241f322af7c53811a44ca1012163d7966c Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Sun, 28 Feb 2021 17:54:00 +0100 Subject: [PATCH 130/316] DOC/RLS: update changelog for the 0.9.0 release (#1839) Co-authored-by: James McBride --- CHANGELOG.md | 122 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 945054d..a4d8218 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,128 @@ Changelog ========= +Version 0.9.0 (February ??, 2021) +--------------------------------- + +Many documentation improvements and a restyled and restructured website with +a new logo (#1564, #1579, #1617, #1668, #1731, #1750, #1757, #1759). + +New features and improvements: + +- The `geopandas.read_file` function now accepts more general + file-like objects (e.g. `fsspec` open file objects). It will now also + automatically recognize zipped files (#1535). +- The `GeoDataFrame.plot()` method now provides access to the pandas plotting + functionality for the non-geometry columns, either using the `kind` keyword + or the accessor method (e.g. `gdf.plot(kind="bar")` or `gdf.plot.bar()`) + (#1465). +- New `from_wkt()`, `from_wkb()`, `to_wkt()`, `to_wkb()` methods for + GeoSeries to construct a GeoSeries from geometries in WKT or WKB + representation, or to convert a GeoSeries to a pandas Seriew with WKT or WKB + values (#1710). +- New `GeoSeries.z` attribute to access the z-coordinates of Point geometries + (similar to the existing `.x` and `.y` attributes) (#1773). +- The `to_crs()` method now handles missing values (#1618). +- Support for pandas' new `.attrs` functionality (#1658). +- The `dissolve()` method now allows dissolving by no column (`by=None`) to + create a union of all geometries (single-row GeoDataFrame) (#1568). +- New `estimate_utm_crs()` method on GeoSeries/GeoDataFrame to determine the + UTM CRS based on the bounds (#1646). +- `GeoDataFrame.from_dict()` now accepts `geometry` and `crs` keywords + (#1619). +- `GeoDataFrame.to_postgis()` and `geopandas.read_postgis()` now supports + both sqlalchemy engine and connection objects (#1638). +- The `GeoDataFrame.explode()` method now allows exploding based on a + non-geometry column, using the pandas implementation (#1720). +- Performance improvement in `GeoDataFrame/GeoSeries.explode()` when using + the PyGEOS backend (#1693). +- The binary operation and predicate methods (eg `intersection()`, + `intersects()`) have a new `align` keyword which allows optionally not + aligning on the index before performing the operation with `align=False` + (#1668). +- The `GeoDataFrame.dissolve()` method now supports all relevant keywords of + `groupby()`, i.e. the `level`, `sort`, `observed` and `dropna` keywords + (#1845). +- The `geopandas.overlay()` function now accepts `make_valid=False` to skip + the step to ensure the input geometries are valid using `buffer(0)` (#1802). +- The `GeoDataFrame.to_json()` method gained a `drop_id` keyword to + optionally not write the GeoDataFrame's index as the "id" field in the + resulting JSON (#1637). +- A new `aspect` keyword in the plotting methods to optionally allow retaining + the original aspect (#1512) +- A new `interval` keyword in the `legend_kwds` group of the `plot()` method + to control the appearance of the legend labels when using a classification + scheme (#1605). +- The spatial index of a GeoSeries (accessed with the `sindex` attribute) is + now stored on the underlying array. This ensures that the spatial index is + preserved in more operations where possible, and that multiple geometry + columns of a GeoDataFrame can each have a spatial index (#1444). +- Addition of a `has_sindex` attribute on the GeoSeries/GeoDataFrame to check + if a spatial index has already been initialized (#1627). +- The `geopandas.testing.assert_geoseries_equal()` and `assert_geodataframe_equal()` + testing utilities now have a `normalize` keyword (False by default) to + normalize geometries before comparing for equality (#1826). Those functions + now also give a more informative error message when failing (#1808). + +Deprecations and compatibility notes: + +- The `is_ring` attribute currently returns True for Polygons. In the future, + this will be False (#1631). In addition, start to check it for LineStrings + and LinearRings (instead of always returning False). +- The deprecated `objects` keyword in the `intersection()` method of the + `GeoDataFrame/GeoSeries.sindex` spatial index object has been removed + (#1444). + +Bug fixes: + +- Fix regression in the `plot()` method raising an error with empty + geometries (#1702, #1828). +- Fix `geopandas.overlay()` to preserve geometries of the correct type which + are nested withing a GeometryCollection as a result of the overlay + operation (#1582). In addition, a warning will now be raised if geometries + of different type are dropped from the result (#1554). +- Fix the repr of an empty GeoSeries to not show spurious warnings (#1673). +- Fix the `.crs` for empty GeoDataFrames (#1560). +- Fix `geopandas.clip` to preserve the correct geometry column name (#1566). +- Fix bug in `plot()` method when using `legend_kwds` with multiple subplots + (#1583) +- Fix spurious warning with `missing_kwds` keyword of the `plot()` method + when there are no areas with missing data (#1600). +- Fix the `plot()` method to correctly align values passed to the `column` + keyword as a pandas Series (#1670). +- Fix bug in plotting MultiPoints when passing values to determine the color + (#1694) +- The `rename_geometry()` method now raises a more informative error message + when a duplicate column name is used (#1602). +- Fix `explode()` method to preserve the CRS (#1655) +- Fix the `GeoSeries.apply()` method to again accept the `convert_dtype` + keyword to be consistent with pandas (#1636). +- Fix `GeoDataFrame.apply()` to preserve the CRS when possible (#1848). +- Fix bug in containment test as `geom in geoseries` (#1753). +- The `shift()` method of a GeoSeries/GeoDataFrame now preserves the CRS + (#1744). +- The PostGIS IO functionality now quotes table names to ensure it works with + case-sensitive names (#1825). +- Fix the `GeoSeries` constructor without passing data but only an index (#1798). + +Notes on (optional) dependencies: + +- GeoPandas 0.9.0 dropped support for Python 3.5. Further, the minimum + required versions are pandas 0.24, numpy 1.15 and shapely 1.6 and fiona 1.8. +- The `descartes` package is no longer required for plotting polygons. This + functionality is now included by default in GeoPandas itself, when + matplotlib is available (#1677). +- Fiona is now only imported when used in `read_file`/`to_file`. This means + you can now force geopandas to install without fiona installed (although it + is still a default requirement) (#1775). +- Compatibility with the upcoming Shapely 1.8 (#1659, #1662, #1819). + + +Version 0.8.2 (January 25, 2021) +-------------------------------- + +Small bug-fix release for compatibility with PyGEOS 0.9. + Version 0.8.1 (July 15, 2020) ----------------------------- From e29b1004a86f6f4634e7320e44b0ea805c66035a Mon Sep 17 00:00:00 2001 From: Flavin Date: Sun, 28 Feb 2021 11:02:00 -0600 Subject: [PATCH 131/316] ENH: Integrate to/from wkt/wkb functions into public API (#1710) * Add GeoSeries to_wkt and to_wkb methods * Add hex=False kwarg to existing from_wkb functions * Add GeoSeries from_wkt and from_wkb methods * Add wkt, wkb, and wkb_hex kwargs to GeoDataFrame constructor * Add GeoDataFrame to_wkt and to_wkb methods * Remove _export_wkb method from arrow in favor of GeoDataFrame to_wkb * Shorten line lengths to satisfy linter * Apply black reformatting * Remove most references to WKB hex. shapely supports it, pygeos does not. * Remove docstring examples of GeoSeries.to_wkb and GeoSeries.from_wkb, as docstrings interpreted as source code are not allowed to contain null bytes * Change GeoSeries from_wkb/t from staticmethod to classmethod and return using cls * Allow GeoSeries.from_wkb/t to accept Series input, and test that * Remove GeoDataFrame.__init__ wkt and wkb kwargs * Use GeoSeries.from_wkt in example * Keep index of Series passed to GeoSeries.from_wkb/t * Apply suggestions from code review Co-authored-by: Martin Fleischmann * Add one-liner docstring to _from_wkb_or_wkt and see also to from_wkb and from_wkt * Reindex instead of raise ValueError when passing index to from_wkb/t with series * Expose hex and kwargs in to_wkb/t methods * update example * Fix lint error * preserve index of passed series Co-authored-by: Martin Fleischmann Co-authored-by: Joris Van den Bossche --- .../create_geopandas_from_pandas.ipynb | 4 +- geopandas/_vectorized.py | 4 +- geopandas/array.py | 4 +- geopandas/geodataframe.py | 65 ++++++- geopandas/geoseries.py | 161 +++++++++++++++++- geopandas/io/arrow.py | 26 +-- geopandas/io/tests/test_arrow.py | 15 -- geopandas/tests/test_geodataframe.py | 38 +++++ geopandas/tests/test_geoseries.py | 40 +++++ 9 files changed, 310 insertions(+), 47 deletions(-) diff --git a/doc/source/gallery/create_geopandas_from_pandas.ipynb b/doc/source/gallery/create_geopandas_from_pandas.ipynb index 2c8ff66..17547e4 100644 --- a/doc/source/gallery/create_geopandas_from_pandas.ipynb +++ b/doc/source/gallery/create_geopandas_from_pandas.ipynb @@ -159,7 +159,7 @@ "source": [ "from shapely import wkt\n", "\n", - "df['Coordinates'] = df['Coordinates'].apply(wkt.loads)" + "df['Coordinates'] = geopandas.GeoSeries.from_wkt(df['Coordinates'])" ] }, { @@ -225,4 +225,4 @@ }, "nbformat": 4, "nbformat_minor": 4 -} +} \ No newline at end of file diff --git a/geopandas/_vectorized.py b/geopandas/_vectorized.py index b96ddac..3184c94 100644 --- a/geopandas/_vectorized.py +++ b/geopandas/_vectorized.py @@ -177,9 +177,9 @@ def from_wkb(data): return aout -def to_wkb(data, hex=False): +def to_wkb(data, hex=False, **kwargs): if compat.USE_PYGEOS: - return pygeos.to_wkb(data, hex=hex) + return pygeos.to_wkb(data, hex=hex, **kwargs) else: if hex: out = [geom.wkb_hex if geom is not None else None for geom in data] diff --git a/geopandas/array.py b/geopandas/array.py index a25e01b..5164eb2 100644 --- a/geopandas/array.py +++ b/geopandas/array.py @@ -194,13 +194,13 @@ def from_wkb(data, crs=None): return GeometryArray(vectorized.from_wkb(data), crs=crs) -def to_wkb(geoms, hex=False): +def to_wkb(geoms, hex=False, **kwargs): """ Convert GeometryArray to a numpy object array of WKB objects. """ if not isinstance(geoms, GeometryArray): raise ValueError("'geoms' must be a GeometryArray") - return vectorized.to_wkb(geoms.data, hex=hex) + return vectorized.to_wkb(geoms.data, hex=hex, **kwargs) def from_wkt(data, crs=None): diff --git a/geopandas/geodataframe.py b/geopandas/geodataframe.py index 7c66425..eeea2d6 100644 --- a/geopandas/geodataframe.py +++ b/geopandas/geodataframe.py @@ -11,7 +11,7 @@ from shapely.geometry.base import BaseGeometry from pyproj import CRS -from geopandas.array import GeometryArray, from_shapely, GeometryDtype +from geopandas.array import GeometryArray, GeometryDtype, from_shapely, to_wkb, to_wkt from geopandas.base import GeoPandasBase, is_geometry_type from geopandas.geoseries import GeoSeries, inherit_doc import geopandas.io @@ -79,6 +79,18 @@ class GeoDataFrame(GeoPandasBase, DataFrame): geometry geometry dtype: object + Constructing GeoDataFrame from a pandas DataFrame with a column of WKT geometries: + + >>> import pandas as pd + >>> d = {'col1': ['name1', 'name2'], 'wkt': ['POINT (1 2)', 'POINT (2 1)']} + >>> df = pd.DataFrame(d) + >>> gs = geopandas.GeoSeries.from_wkt(df['wkt']) + >>> gdf = geopandas.GeoDataFrame(df, geometry=gs, crs="EPSG:4326") + >>> gdf + col1 wkt geometry + 0 name1 POINT (1 2) POINT (1.00000 2.00000) + 1 name2 POINT (2 1) POINT (2.00000 1.00000) + See also -------- GeoSeries : Series object designed to store shapely geometry objects @@ -863,6 +875,57 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} return geo + def to_wkb(self, hex=False, **kwargs): + """ + Encode all geometry columns in the GeoDataFrame to WKB. + + Parameters + ---------- + hex : bool + If true, export the WKB as a hexadecimal string. + The default is to return a binary bytes object. + kwargs + Additional keyword args will be passed to + :func:`pygeos.to_wkb` if pygeos is installed. + + Returns + ------- + DataFrame + geometry columns are encoded to WKB + """ + + df = DataFrame(self.copy()) + + # Encode all geometry columns to WKB + for col in df.columns[df.dtypes == "geometry"]: + df[col] = to_wkb(df[col].values, hex=hex, **kwargs) + + return df + + def to_wkt(self, **kwargs): + """ + Encode all geometry columns in the GeoDataFrame to WKT. + + Parameters + ---------- + kwargs + Keyword args will be passed to :func:`pygeos.to_wkt` + if pygeos is installed. + + Returns + ------- + DataFrame + geometry columns are encoded to WKT + """ + + df = DataFrame(self.copy()) + + # Encode all geometry columns to WKT + for col in df.columns[df.dtypes == "geometry"]: + df[col] = to_wkt(df[col].values, **kwargs) + + return df + def to_parquet(self, path, index=None, compression="snappy", **kwargs): """Write a GeoDataFrame to the Parquet format. diff --git a/geopandas/geoseries.py b/geopandas/geoseries.py index 8444d97..c60d1c8 100644 --- a/geopandas/geoseries.py +++ b/geopandas/geoseries.py @@ -12,7 +12,14 @@ from shapely.geometry.base import BaseGeometry from geopandas.base import GeoPandasBase, _delegate_property from geopandas.plotting import plot_series -from .array import GeometryDtype, from_shapely +from .array import ( + GeometryDtype, + from_shapely, + from_wkb, + from_wkt, + to_wkb, + to_wkt, +) from .base import is_geometry_type from . import _compat as compat @@ -360,6 +367,97 @@ class GeoSeries(GeoPandasBase, Series): return GeoSeries(df.geometry, crs=df.crs) + @classmethod + def from_wkb(cls, data, index=None, crs=None, **kwargs): + """ + Alternate constructor to create a ``GeoSeries`` + from a list or array of WKB objects + + Parameters + ---------- + data : array-like or Series + Series, list or array of WKB objects + index : array-like or Index + The index for the GeoSeries. + crs : value, optional + Coordinate Reference System of the geometry objects. Can be anything + accepted by + :meth:`pyproj.CRS.from_user_input() `, + such as an authority string (eg "EPSG:4326") or a WKT string. + kwargs + Additional arguments passed to the Series constructor, + e.g. ``name``. + + Returns + ------- + GeoSeries + + See Also + -------- + GeoSeries.from_wkt + + """ + return cls._from_wkb_or_wkb(from_wkb, data, index=index, crs=crs, **kwargs) + + @classmethod + def from_wkt(cls, data, index=None, crs=None, **kwargs): + """ + Alternate constructor to create a ``GeoSeries`` + from a list or array of WKT objects + + Parameters + ---------- + data : array-like, Series + Series, list, or array of WKT objects + index : array-like or Index + The index for the GeoSeries. + crs : value, optional + Coordinate Reference System of the geometry objects. Can be anything + accepted by + :meth:`pyproj.CRS.from_user_input() `, + such as an authority string (eg "EPSG:4326") or a WKT string. + kwargs + Additional arguments passed to the Series constructor, + e.g. ``name``. + + Returns + ------- + GeoSeries + + See Also + -------- + GeoSeries.from_wkb + + Examples + -------- + + >>> wkts = [ + ... 'POINT (1 1)', + ... 'POINT (2 2)', + ... 'POINT (3 3)', + ... ] + >>> s = geopandas.GeoSeries.from_wkt(wkts) + >>> s + 0 POINT (1.00000 1.00000) + 1 POINT (2.00000 2.00000) + 2 POINT (3.00000 3.00000) + dtype: geometry + """ + return cls._from_wkb_or_wkb(from_wkt, data, index=index, crs=crs, **kwargs) + + @classmethod + def _from_wkb_or_wkb( + cls, from_wkb_or_wkt_function, data, index=None, crs=None, **kwargs + ): + """Create a GeoSeries from either WKT or WKB values""" + if isinstance(data, Series): + if index is not None: + data = data.reindex(index) + else: + index = data.index + data = data.values + return cls(from_wkb_or_wkt_function(data, crs=crs), index=index, **kwargs) + @property def __geo_interface__(self): """Returns a ``GeoSeries`` as a python feature collection. @@ -1006,6 +1104,67 @@ e": "Feature", "properties": {}, "geometry": {"type": "Point", "coordinates": [3 """ return json.dumps(self.__geo_interface__, **kwargs) + def to_wkb(self, hex=False, **kwargs): + """ + Convert GeoSeries geometries to WKB + + Parameters + ---------- + hex : bool + If true, export the WKB as a hexadecimal string. + The default is to return a binary bytes object. + kwargs + Additional keyword args will be passed to + :func:`pygeos.to_wkb` if pygeos is installed. + + Returns + ------- + Series + WKB representations of the geometries + + See also + -------- + GeoSeries.to_wkt + """ + return Series(to_wkb(self.array, hex=hex, **kwargs), index=self.index) + + def to_wkt(self, **kwargs): + """ + Convert GeoSeries geometries to WKT + + Parameters + ---------- + kwargs + Keyword args will be passed to :func:`pygeos.to_wkt` + if pygeos is installed. + + Returns + ------- + Series + WKT representations of the geometries + + Examples + -------- + >>> from shapely.geometry import Point + >>> s = geopandas.GeoSeries([Point(1, 1), Point(2, 2), Point(3, 3)]) + >>> s + 0 POINT (1.00000 1.00000) + 1 POINT (2.00000 2.00000) + 2 POINT (3.00000 3.00000) + dtype: geometry + + >>> s.to_wkt() + 0 POINT (1 1) + 1 POINT (2 2) + 2 POINT (3 3) + dtype: object + + See also + -------- + GeoSeries.to_wkb + """ + return Series(to_wkt(self.array, **kwargs), index=self.index) + # # Implement standard operators for GeoSeries # diff --git a/geopandas/io/arrow.py b/geopandas/io/arrow.py index 014d0da..6aa225f 100644 --- a/geopandas/io/arrow.py +++ b/geopandas/io/arrow.py @@ -5,7 +5,7 @@ import warnings from pandas import DataFrame from geopandas._compat import import_optional_dependency -from geopandas.array import from_wkb, to_wkb +from geopandas.array import from_wkb from geopandas import GeoDataFrame import geopandas @@ -76,28 +76,6 @@ def _encode_metadata(metadata): return json.dumps(metadata).encode("utf-8") -def _encode_wkb(df): - """Encode all geometry columns in the GeoDataFrame to WKB. - - Parameters - ---------- - df : GeoDataFrame - - Returns - ------- - DataFrame - geometry columns are encoded to WKB - """ - - df = DataFrame(df.copy()) - - # Encode all geometry columns to WKB - for col in df.columns[df.dtypes == "geometry"]: - df[col] = to_wkb(df[col].values) - - return df - - def _decode_metadata(metadata_str): """Decode a UTF-8 encoded JSON string to dict @@ -208,7 +186,7 @@ def _geopandas_to_arrow(df, index=None): # create geo metadata before altering incoming data frame geo_metadata = _create_metadata(df) - df = _encode_wkb(df) + df = df.to_wkb() table = Table.from_pandas(df, preserve_index=index) diff --git a/geopandas/io/tests/test_arrow.py b/geopandas/io/tests/test_arrow.py index 8645048..51c1db4 100644 --- a/geopandas/io/tests/test_arrow.py +++ b/geopandas/io/tests/test_arrow.py @@ -16,7 +16,6 @@ from geopandas.io.arrow import ( _create_metadata, _decode_metadata, _encode_metadata, - _encode_wkb, _validate_dataframe, _validate_metadata, METADATA_VERSION, @@ -174,20 +173,6 @@ def test_validate_metadata_invalid(metadata, error): _validate_metadata(metadata) -def test_encode_wkb(): - test_dataset = "naturalearth_lowres" - df = read_file(get_path(test_dataset)) - - encoded = _encode_wkb(df) - - # make sure original is not modified - assert isinstance(df, GeoDataFrame) - assert ( - encoded.geometry.iloc[0][:16] - == b"\x01\x06\x00\x00\x00\x03\x00\x00\x00\x01\x03\x00\x00\x00\x01\x00" - ) - - # TEMPORARY: used to determine if pyarrow fails for roundtripping pandas data # without geometries def test_pandas_parquet_roundtrip1(tmpdir): diff --git a/geopandas/tests/test_geodataframe.py b/geopandas/tests/test_geodataframe.py index 47c38aa..62cb23e 100644 --- a/geopandas/tests/test_geodataframe.py +++ b/geopandas/tests/test_geodataframe.py @@ -706,6 +706,44 @@ class TestDataFrame: assert self.df.estimate_utm_crs() == CRS("EPSG:32618") assert self.df.estimate_utm_crs("NAD83") == CRS("EPSG:26918") + def test_to_wkb(self): + wkbs0 = [ + ( + b"\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + ), # POINT (0 0) + ( + b"\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\xf0?\x00\x00\x00\x00\x00\x00\xf0?" + ), # POINT (1 1) + ] + wkbs1 = [ + ( + b"\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00@\x00\x00\x00\x00\x00\x00\x00@" + ), # POINT (2 2) + ( + b"\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x08@\x00\x00\x00\x00\x00\x00\x08@" + ), # POINT (3 3) + ] + gs0 = GeoSeries.from_wkb(wkbs0) + gs1 = GeoSeries.from_wkb(wkbs1) + gdf = GeoDataFrame({"geom_col0": gs0, "geom_col1": gs1}) + + expected_df = pd.DataFrame({"geom_col0": wkbs0, "geom_col1": wkbs1}) + assert_frame_equal(expected_df, gdf.to_wkb()) + + def test_to_wkt(self): + wkts0 = ["POINT (0 0)", "POINT (1 1)"] + wkts1 = ["POINT (2 2)", "POINT (3 3)"] + gs0 = GeoSeries.from_wkt(wkts0) + gs1 = GeoSeries.from_wkt(wkts1) + gdf = GeoDataFrame({"gs0": gs0, "gs1": gs1}) + + expected_df = pd.DataFrame({"gs0": wkts0, "gs1": wkts1}) + assert_frame_equal(expected_df, gdf.to_wkt()) + def check_geodataframe(df, geometry_column="geometry"): assert isinstance(df, GeoDataFrame) diff --git a/geopandas/tests/test_geoseries.py b/geopandas/tests/test_geoseries.py index bdb44d5..80ffbbc 100644 --- a/geopandas/tests/test_geoseries.py +++ b/geopandas/tests/test_geoseries.py @@ -22,6 +22,7 @@ from shapely.geometry.base import BaseGeometry from geopandas import GeoSeries, GeoDataFrame from geopandas._compat import PYPROJ_LT_3 from geopandas.array import GeometryArray, GeometryDtype +from geopandas.testing import assert_geoseries_equal from geopandas.tests.util import geom_equals from pandas.testing import assert_series_equal @@ -282,6 +283,45 @@ class TestSeries: reprojected_dict = self.g3.to_crs({"proj": "utm", "zone": "30N"}) assert np.all(reprojected_string.geom_almost_equals(reprojected_dict)) + def test_from_wkb(self): + assert_geoseries_equal(self.g1, GeoSeries.from_wkb([self.t1.wkb, self.sq.wkb])) + + def test_from_wkb_series(self): + s = pd.Series([self.t1.wkb, self.sq.wkb], index=[1, 2]) + expected = self.g1.copy() + expected.index = pd.Index([1, 2]) + assert_geoseries_equal(expected, GeoSeries.from_wkb(s)) + + def test_from_wkb_series_with_index(self): + index = [0] + s = pd.Series([self.t1.wkb, self.sq.wkb], index=[0, 2]) + expected = self.g1.reindex(index) + assert_geoseries_equal(expected, GeoSeries.from_wkb(s, index=index)) + + def test_from_wkt(self): + assert_geoseries_equal(self.g1, GeoSeries.from_wkt([self.t1.wkt, self.sq.wkt])) + + def test_from_wkt_series(self): + s = pd.Series([self.t1.wkt, self.sq.wkt], index=[1, 2]) + expected = self.g1.copy() + expected.index = pd.Index([1, 2]) + assert_geoseries_equal(expected, GeoSeries.from_wkt(s)) + + def test_from_wkt_series_with_index(self): + index = [0] + s = pd.Series([self.t1.wkt, self.sq.wkt], index=[0, 2]) + expected = self.g1.reindex(index) + assert_geoseries_equal(expected, GeoSeries.from_wkt(s, index=index)) + + def test_to_wkb(self): + assert_series_equal(pd.Series([self.t1.wkb, self.sq.wkb]), self.g1.to_wkb()) + assert_series_equal( + pd.Series([self.t1.wkb_hex, self.sq.wkb_hex]), self.g1.to_wkb(hex=True) + ) + + def test_to_wkt(self): + assert_series_equal(pd.Series([self.t1.wkt, self.sq.wkt]), self.g1.to_wkt()) + def test_missing_values_empty_warning(): s = GeoSeries([Point(1, 1), None, np.nan, BaseGeometry(), Polygon()]) From 408ce089a661e950aedd6d7f4057969b1386d1cc Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Sun, 28 Feb 2021 20:01:33 +0100 Subject: [PATCH 132/316] BUG: fixup GeoDataFrame.apply in case there is no geometry column (#1857) --- geopandas/geodataframe.py | 6 +++++- geopandas/tests/test_pandas_methods.py | 15 +++++++++++++++ geopandas/tests/test_plotting.py | 4 +++- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/geopandas/geodataframe.py b/geopandas/geodataframe.py index eeea2d6..0b2848e 100644 --- a/geopandas/geodataframe.py +++ b/geopandas/geodataframe.py @@ -1361,7 +1361,11 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} result = super().apply( func, axis=axis, raw=raw, result_type=result_type, args=args, **kwargs ) - if isinstance(result, GeoDataFrame): + if ( + isinstance(result, GeoDataFrame) + and self._geometry_column_name in result.columns + and any(isinstance(t, GeometryDtype) for t in result.dtypes) + ): if self.crs is not None and result.crs is None: result.set_crs(self.crs, inplace=True) return result diff --git a/geopandas/tests/test_pandas_methods.py b/geopandas/tests/test_pandas_methods.py index ac4ac61..5f1e8f9 100644 --- a/geopandas/tests/test_pandas_methods.py +++ b/geopandas/tests/test_pandas_methods.py @@ -520,6 +520,21 @@ def test_apply_convert_dtypes_keyword(s): assert_geoseries_equal(res, s) +@pytest.mark.parametrize("crs", [None, "EPSG:4326"]) +def test_apply_no_geometry_result(df, crs): + if crs: + df = df.set_crs(crs) + result = df.apply(lambda col: col.astype(str), axis=0) + # TODO this should actually not return a GeoDataFrame + assert isinstance(result, GeoDataFrame) + expected = df.astype(str) + assert_frame_equal(result, expected) + + result = df.apply(lambda col: col.astype(str), axis=1) + assert isinstance(result, GeoDataFrame) + assert_frame_equal(result, expected) + + @pytest.mark.skipif(not compat.PANDAS_GE_10, reason="attrs introduced in pandas 1.0") def test_preserve_attrs(df): # https://github.com/geopandas/geopandas/issues/1654 diff --git a/geopandas/tests/test_plotting.py b/geopandas/tests/test_plotting.py index 884d64e..6581c79 100644 --- a/geopandas/tests/test_plotting.py +++ b/geopandas/tests/test_plotting.py @@ -1481,7 +1481,9 @@ class TestGeoplotAccessor: geometries = [Polygon([(0, 0), (1, 0), (1, 1)]), Point(1, 3)] x = [1, 2] y = [10, 20] - self.gdf = GeoDataFrame({"geometry": geometries, "x": x, "y": y}) + self.gdf = GeoDataFrame( + {"geometry": geometries, "x": x, "y": y}, crs="EPSG:4326" + ) self.df = pd.DataFrame({"x": x, "y": y}) def compare_figures(self, kind, fig_test, fig_ref, kwargs): From d0f73f8d585d33df64d3880cbc284f719b3fafc3 Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Sun, 28 Feb 2021 19:01:51 +0000 Subject: [PATCH 133/316] DOC: remove faulty geoplot Voronoi example (#1855) --- .../gallery/plotting_with_geoplot.ipynb | 28 +------------------ 1 file changed, 1 insertion(+), 27 deletions(-) diff --git a/doc/source/gallery/plotting_with_geoplot.ipynb b/doc/source/gallery/plotting_with_geoplot.ipynb index 27fa2b4..7e0f09f 100644 --- a/doc/source/gallery/plotting_with_geoplot.ipynb +++ b/doc/source/gallery/plotting_with_geoplot.ipynb @@ -160,32 +160,6 @@ "geoplot.polyplot(boroughs, ax=ax, zorder=1)" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Alternatively, we may partition the space into neighborhoods automatically,\n", - "using Voronoi tessellation. This is a good way of visually verifying whether\n", - "or not a certain data column is spatially correlated.\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "ax = geoplot.voronoi(\n", - " collisions.head(1000), projection=geoplot.crs.AlbersEqualArea(),\n", - " clip=boroughs.simplify(0.001),\n", - " hue='NUMBER OF PERSONS INJURED', cmap='Reds',\n", - " legend=True,\n", - " edgecolor='white'\n", - ")\n", - "geoplot.polyplot(boroughs, edgecolor='black', zorder=1, ax=ax)" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -220,4 +194,4 @@ }, "nbformat": 4, "nbformat_minor": 4 -} +} \ No newline at end of file From 771bb6c3872284aa3414b8509b46991d469a2ec5 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Sun, 28 Feb 2021 20:25:15 +0100 Subject: [PATCH 134/316] DOC: fix API reference page for GeoDataFrame.plot accessor (#1858) --- doc/source/_templates/accessor_callable.rst | 6 ++++++ doc/source/docs/reference/geodataframe.rst | 1 + 2 files changed, 7 insertions(+) create mode 100644 doc/source/_templates/accessor_callable.rst diff --git a/doc/source/_templates/accessor_callable.rst b/doc/source/_templates/accessor_callable.rst new file mode 100644 index 0000000..af5e103 --- /dev/null +++ b/doc/source/_templates/accessor_callable.rst @@ -0,0 +1,6 @@ +{{ fullname }} +{{ underline }} + +.. currentmodule:: {{ module.split('.')[0] }} + +.. automethod:: {{ (module.split('.')[1:] + [objname]) | join('.') }} diff --git a/doc/source/docs/reference/geodataframe.rst b/doc/source/docs/reference/geodataframe.rst index c6988f8..5713eb4 100644 --- a/doc/source/docs/reference/geodataframe.rst +++ b/doc/source/docs/reference/geodataframe.rst @@ -62,6 +62,7 @@ Plotting .. autosummary:: :toctree: api/ + :template: accessor_callable.rst GeoDataFrame.plot From de783b9071e65c17a6a96d5a07b5040836cf475f Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Sun, 28 Feb 2021 20:15:52 +0000 Subject: [PATCH 135/316] DOC: hide roadmap from docs (#1854) --- doc/source/about.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/doc/source/about.md b/doc/source/about.md index 43b4016..2e2f061 100644 --- a/doc/source/about.md +++ b/doc/source/about.md @@ -5,7 +5,6 @@ :caption: About :hidden: -Roadmap Team Citing Logo @@ -26,7 +25,7 @@ under the liberal terms of the BSD-3-Clause license. ```{container} button -{doc}`Project Roadmap ` {doc}`Team ` +{doc}`Team ` {doc}`Citing ` {doc}`Logo ` ``` From e61570e83b9079e782f842fbbc6914d2fd476093 Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Sun, 28 Feb 2021 21:01:39 +0000 Subject: [PATCH 136/316] DOC: remove df from plot docstring (#1860) --- geopandas/plotting.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/geopandas/plotting.py b/geopandas/plotting.py index 7159aa2..a73222f 100644 --- a/geopandas/plotting.py +++ b/geopandas/plotting.py @@ -499,10 +499,6 @@ def plot_dataframe( Parameters ---------- - df : GeoDataFrame - The GeoDataFrame to be plotted. Currently Polygon, - MultiPolygon, LineString, MultiLineString and Point - geometries can be plotted. column : str, np.array, pd.Series (default None) The name of the dataframe column, np.array, or pd.Series to be plotted. If np.array or pd.Series are used then it must have same length as From ec4c6805d1182f846b9659345a5e66fa7c7afac7 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Sun, 28 Feb 2021 22:09:18 +0100 Subject: [PATCH 137/316] RLS: v0.9.0 --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a4d8218..5cc706d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ Changelog ========= -Version 0.9.0 (February ??, 2021) +Version 0.9.0 (February 28, 2021) --------------------------------- Many documentation improvements and a restyled and restructured website with From fdf1fd7390752f37cbb1085fda2f7cf1c5ae4ebc Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Sun, 28 Feb 2021 22:24:24 +0100 Subject: [PATCH 138/316] DOC: fix typo in changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5cc706d..9bcd8d5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -78,7 +78,7 @@ Bug fixes: - Fix regression in the `plot()` method raising an error with empty geometries (#1702, #1828). - Fix `geopandas.overlay()` to preserve geometries of the correct type which - are nested withing a GeometryCollection as a result of the overlay + are nested within a GeometryCollection as a result of the overlay operation (#1582). In addition, a warning will now be raised if geometries of different type are dropped from the result (#1554). - Fix the repr of an empty GeoSeries to not show spurious warnings (#1673). From d2323fdada015807588685f3cf398c059b937c93 Mon Sep 17 00:00:00 2001 From: Andreas Eliasson Date: Tue, 2 Mar 2021 23:48:12 +0100 Subject: [PATCH 139/316] DOC: fix typos in contributing guide (#1862) * DOC: fix typo in contributing section * DOC: make minor changes in 'Updating the Doc' section * DOC: remove whitespace Co-authored-by: Andreas Eliasson --- doc/source/community/contributing.rst | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/doc/source/community/contributing.rst b/doc/source/community/contributing.rst index 2f6cf7b..e97a6f1 100644 --- a/doc/source/community/contributing.rst +++ b/doc/source/community/contributing.rst @@ -108,8 +108,8 @@ This creates the directory `geopandas-yourname` and connects your repository to the upstream (main project) *GeoPandas* repository. The testing suite will run automatically on GitHub Actions once your pull request is -submitted. The test suite will also autmatically run on your branch so you can -check it prior to submitting the pull request. +submitted. The test suite will also autmatically run on your branch so you can +check it prior to submitting the pull request. Creating a branch ~~~~~~~~~~~~~~~~~~ @@ -247,8 +247,8 @@ install *GeoPandas*) by typing:: 6) Updating the Documentation ----------------------------- -*GeoPandas* documentation resides in the ``doc`` folder. Changes to the docs are make by -modifying the appropriate file in the `source` folder within ``doc``. *GeoPandas* docs use +*GeoPandas* documentation resides in the ``doc`` folder. Changes to the docs are made by +modifying the appropriate file in the ``source`` folder within ``doc``. *GeoPandas* docs use mixture of reStructuredText syntax for ``rst`` files, `which is explained here `_ and MyST syntax for ``md`` files `explained here `_. @@ -273,7 +273,7 @@ specification in the ``doc`` folder. You may need to register Jupyter kernel as python -m ipykernel install --user --name geopandas_docs make html -For minor updates, you can skip whole ``make html`` part as reStructuredText and MyST +For minor updates, you can skip the ``make html`` part as reStructuredText and MyST syntax are usually quite straightforward. @@ -347,4 +347,3 @@ is fine, but the former is generally preferred: Now you can commit your changes in your local repository:: git commit -m - From 8ddac2f9a44870aeeca8bc73dd74efddfce23ad1 Mon Sep 17 00:00:00 2001 From: "James A. Bednar" Date: Wed, 3 Mar 2021 01:18:31 -0600 Subject: [PATCH 140/316] DOC: Add hvPlot to ecosystem (#1869) --- doc/source/community/ecosystem.md | 50 ++++++++++++++++++------------- 1 file changed, 29 insertions(+), 21 deletions(-) diff --git a/doc/source/community/ecosystem.md b/doc/source/community/ecosystem.md index 20faa26..52dc4b1 100644 --- a/doc/source/community/ecosystem.md +++ b/doc/source/community/ecosystem.md @@ -2,11 +2,11 @@ ## GeoPandas dependencies -GeoPandas brings together the full capability of `pandas` and open-source geospatial +GeoPandas brings together the full capability of `pandas` and the open-source geospatial tools `Shapely`, which brings manipulation and analysis of geometric objects backed by [`GEOS`](https://trac.osgeo.org/geos) library, `Fiona`, allowing us to read and write geographic data files using [`GDAL`](https://gdal.org), and `pyproj`, a library for -cartographic projections and coordinate transformations, which is a Python interface of +cartographic projections and coordinate transformations, which is a Python interface to [`PROJ`](https://proj.org). Furthermore, GeoPandas has several optional dependencies as `rtree`, `pygeos`, @@ -40,7 +40,7 @@ and `Shapely`. #### [pyproj](https://github.com/pyproj4/pyproj) `pyproj` is a Python interface to `PROJ` (cartographic projections and coordinate -transformations library). GeoPandas uses `pyproj.crs.CRS` object to keep track of a +transformations library). GeoPandas uses a `pyproj.crs.CRS` object to keep track of the projection of each `GeoSeries` and its `Transformer` object to manage re-projections. ### Optional dependencies @@ -78,7 +78,7 @@ various graphical user interface toolkits. Various packages are built on top of GeoPandas addressing specific geospatial data processing needs, analysis, and visualization. Below is an incomplete list (in no -particular order) of tools which form GeoPandas related Python ecosystem. +particular order) of tools which form the GeoPandas-related Python ecosystem. ### Spatial analysis and Machine Learning @@ -105,20 +105,19 @@ aggregation error in statistical analyses. ##### [segregation](https://github.com/pysal/segregation) `segregation` package calculates over 40 different segregation indices and provides a suite of additional features for measurement, visualization, and hypothesis testing that -together represent the state-of-the-art in quantitative segregation analysis. +together represent the state of the art in quantitative segregation analysis. ##### [mgwr](https://github.com/pysal/mgwr) `mgwr` provides scalable algorithms for estimation, inference, and prediction using -single- and multi-scale geographically-weighted regression models in a variety of -generalized linear model frameworks, as well model diagnostics tools. +single- and multi-scale geographically weighted regression models in a variety of +generalized linear model frameworks, as well as model diagnostics tools. ##### [tobler](https://github.com/pysal/tobler) -`tobler` provides functionality for for areal interpolation and dasymetric mapping. +`tobler` provides functionality for areal interpolation and dasymetric mapping. `tobler` includes functionality for interpolating data using area-weighted approaches, regression model-based approaches that leverage remotely-sensed raster data as auxiliary information, and hybrid approaches. - #### [movingpandas](https://github.com/anitagraser/movingpandas) `MovingPandas` is a package for dealing with movement data. `MovingPandas` implements a `Trajectory` class and corresponding methods based on GeoPandas. A trajectory has a @@ -163,6 +162,13 @@ interpretation suite aimed at magnetic, gravity and other datasets. ### Visualization +#### [hvPlot](https://hvplot.holoviz.org/user_guide/Geographic_Data.html#Geopandas) +`hvPlot` provides interactive Bokeh-based plotting for GeoPandas +dataframes and series using the same API as the Matplotlib `.plot()` +support that comes with GeoPandas. hvPlot makes it simple to pan and zoom into +your plots, use widgets to explore multidimensional data, and render even the +largest datasets in web browsers using [Datashader](https://datashader.org). + #### [contextily](https://github.com/geopandas/contextily) `contextily` is a small Python 3 (3.6 and above) package to retrieve tile maps from the internet. It can add those tiles as basemap to `matplotlib` figures or write tile maps @@ -200,11 +206,13 @@ comes with the high-level plotting API, native projection support and compatibil `matplotlib`. #### [GeoViews](https://github.com/holoviz/geoviews) -`GeoViews` is a Python library that makes it easy to explore and visualize any data that -includes geographic locations. It has particularly powerful support for multidimensional -meteorological and oceanographic datasets, such as those used in weather, climate, and -remote sensing research, but is useful for almost anything that you would want to plot -on a map! +`GeoViews` is a Python library that makes it easy to explore and +visualize any data that includes geographic locations, with native +support for GeoPandas dataframes and series objects. It has +particularly powerful support for multidimensional meteorological and +oceanographic datasets, such as those used in weather, climate, and +remote sensing research, but is useful for almost anything that you +would want to plot on a map! #### [EarthPy](https://github.com/earthlab/earthpy) `EarthPy` is a python package that makes it easier to plot and work with spatial raster @@ -229,11 +237,11 @@ spatial data visualization. ### Geometry manipulation #### [TopoJSON](https://github.com/mattijn/topojson) -`Topojson` is a library that is capable of creating a topojson encoded format of merely -any geographical object in Python. With topojson it is possible to reduce the size of -your geographical data. Mostly by orders of magnitude. It is able to do so through: -eliminating redundancy through computation of a topology; fixed-precision integer -encoding of coordinates and simplification and quantization of arcs. +`topojson` is a library for creating a TopoJSON encoding of nearly any +geographical object in Python. With topojson it is possible to reduce the size of +your geographical data, typically by orders of magnitude. It is able to do so through +eliminating redundancy through computation of a topology, fixed-precision integer +encoding of coordinates, and simplification and quantization of arcs. #### [geocube](https://github.com/corteva/geocube) Tool to convert geopandas vector data into rasterized `xarray` data. @@ -244,7 +252,7 @@ Tool to convert geopandas vector data into rasterized `xarray` data. `OSMnx` is a Python package that lets you download spatial data from OpenStreetMap and model, project, visualize, and analyze real-world street networks. You can download and model walkable, drivable, or bikeable urban networks with a single line of Python code -then easily analyze and visualize them. You can just as easily download and work with +and then easily analyze and visualize them. You can just as easily download and work with other infrastructure types, amenities/points of interest, building footprints, elevation data, street bearings/orientations, and speed/travel time. @@ -267,7 +275,7 @@ An interface to explore and query the US Census API and return Pandas `Dataframe package is intended for exploratory data analysis and draws inspiration from sqlalchemy-like interfaces and `acs.R`. With separate APIs for application developers and folks who only want to get their data quickly & painlessly, `cenpy` should meet the -needs of most who aim to get US Census Data from Python. +needs of most who aim to get US Census Data into Python. ```{admonition} Expand this page Do know a package which should be here? [Let us From 3aea787c6c1a694d557d417a52b85a5cac19208c Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Thu, 4 Mar 2021 09:44:18 +0000 Subject: [PATCH 141/316] CI: use numpy main instead of master branch (#1873) --- ci/envs/38-dev.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/envs/38-dev.yaml b/ci/envs/38-dev.yaml index 5b060fc..7a8206e 100644 --- a/ci/envs/38-dev.yaml +++ b/ci/envs/38-dev.yaml @@ -23,7 +23,7 @@ dependencies: - geopy - mapclassify>=2.2.0 # dev versions of packages - - git+https://github.com/numpy/numpy.git@master + - git+https://github.com/numpy/numpy.git@main - git+https://github.com/pydata/pandas.git@master - git+https://github.com/matplotlib/matplotlib.git@master - git+https://github.com/Toblerity/Shapely.git@master From b6174f4855693e08f3ee987e2a966b3c5ee01c35 Mon Sep 17 00:00:00 2001 From: Adrian Garcia Badaracco <1755071+adriangb@users.noreply.github.com> Date: Thu, 4 Mar 2021 09:20:14 -0600 Subject: [PATCH 142/316] MAINT: use BinaryPredicate Enum for PyGEOS predicates (#1872) * MAINT: use BinaryPredicate Enum for PyGEOS predicates * commmit something to make ci rerun --- geopandas/sindex.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/geopandas/sindex.py b/geopandas/sindex.py index 80f0059..d611a93 100644 --- a/geopandas/sindex.py +++ b/geopandas/sindex.py @@ -521,7 +521,7 @@ if compat.HAS_PYGEOS: {'contains', 'crosses', 'covered_by', None, 'intersects', 'within', \ 'touches', 'overlaps', 'contains_properly', 'covers'} """ - return pygeos.strtree.VALID_PREDICATES | set([None]) + return {p.name for p in pygeos.strtree.BinaryPredicate} | set([None]) @doc(BaseSpatialIndex.query) def query(self, geometry, predicate=None, sort=False): From 910131ec3af6143ccac33de4b66e9f8267c6fc7c Mon Sep 17 00:00:00 2001 From: Flavin Date: Fri, 5 Mar 2021 12:00:55 -0600 Subject: [PATCH 143/316] BUG: Refactor geopandas.testing._check_equality (GH1863) (#1864) * Refactor geopandas.testing._check_equality * Use geom_equals or geom_almost_equals consistently * Reuse repeated code to generate AssertionError * Only check equality once instead of three times * Make mask helper functions private * Add test case --- geopandas/testing.py | 105 ++++++++++++++++++++++---------- geopandas/tests/test_testing.py | 8 +++ 2 files changed, 81 insertions(+), 32 deletions(-) diff --git a/geopandas/testing.py b/geopandas/testing.py index 7e0daa7..66c2c28 100644 --- a/geopandas/testing.py +++ b/geopandas/testing.py @@ -20,6 +20,29 @@ def _isna(this): return pd.isnull(this) +def _geom_equals_mask(this, that): + """ + Test for geometric equality. Empty or missing geometries are considered + equal. + + Parameters + ---------- + this, that : arrays of Geo objects (or anything that has an `is_empty` + attribute) + + Returns + ------- + Series + boolean Series, True if geometries in left equal geometries in right + """ + + return ( + this.geom_equals(that) + | (this.is_empty & that.is_empty) + | (_isna(this) & _isna(that)) + ) + + def geom_equals(this, that): """ Test for geometric equality. Empty or missing geometries are considered @@ -29,13 +52,40 @@ def geom_equals(this, that): ---------- this, that : arrays of Geo objects (or anything that has an `is_empty` attribute) + + Returns + ------- + bool + True if all geometries in left equal geometries in right + """ + + return _geom_equals_mask(this, that).all() + + +def _geom_almost_equals_mask(this, that): + """ + Test for 'almost' geometric equality. Empty or missing geometries + considered equal. + + This method allows small difference in the coordinates, but this + requires coordinates be in the same order for all components of a geometry. + + Parameters + ---------- + this, that : arrays of Geo objects (or anything that has an `is_empty` + property) + + Returns + ------- + Series + boolean Series, True if geometries in left almost equal geometries in right """ return ( - this.geom_equals(that) + this.geom_almost_equals(that) | (this.is_empty & that.is_empty) | (_isna(this) & _isna(that)) - ).all() + ) def geom_almost_equals(this, that): @@ -50,13 +100,14 @@ def geom_almost_equals(this, that): ---------- this, that : arrays of Geo objects (or anything that has an `is_empty` property) + + Returns + ------- + bool + True if all geometries in left almost equal geometries in right """ - return ( - this.geom_almost_equals(that) - | (this.is_empty & that.is_empty) - | (_isna(this) & _isna(that)) - ).all() + return _geom_almost_equals_mask(this, that).all() def assert_geoseries_equal( @@ -157,34 +208,24 @@ def _check_equality(left, right, check_less_precise): ) if check_less_precise: precise = "almost " - if not geom_almost_equals(left, right): - unequal_left_geoms = left[~left.geom_almost_equals(right)] - unequal_right_geoms = right[~left.geom_almost_equals(right)] - raise AssertionError( - assert_error_message.format( - len(unequal_left_geoms), - len(left), - unequal_left_geoms.index.to_list(), - precise, - _truncated_string(unequal_left_geoms.iloc[0]), - _truncated_string(unequal_right_geoms.iloc[0]), - ) - ) + equal = _geom_almost_equals_mask(left, right) else: precise = "" - if not geom_equals(left, right): - unequal_left_geoms = left[~left.geom_almost_equals(right)] - unequal_right_geoms = right[~left.geom_almost_equals(right)] - raise AssertionError( - assert_error_message.format( - len(unequal_left_geoms), - len(left), - unequal_left_geoms.index.to_list(), - precise, - _truncated_string(unequal_left_geoms.iloc[0]), - _truncated_string(unequal_right_geoms.iloc[0]), - ) + equal = _geom_equals_mask(left, right) + + if not equal.all(): + unequal_left_geoms = left[~equal] + unequal_right_geoms = right[~equal] + raise AssertionError( + assert_error_message.format( + len(unequal_left_geoms), + len(left), + unequal_left_geoms.index.to_list(), + precise, + _truncated_string(unequal_left_geoms.iloc[0]), + _truncated_string(unequal_right_geoms.iloc[0]), ) + ) def assert_geodataframe_equal( diff --git a/geopandas/tests/test_testing.py b/geopandas/tests/test_testing.py index e3cec21..f85286d 100644 --- a/geopandas/tests/test_testing.py +++ b/geopandas/tests/test_testing.py @@ -129,3 +129,11 @@ def test_ignore_crs_mismatch(): assert_geodataframe_equal(df1, df2, check_crs=False) assert len(record) == 0 + + +def test_almost_equal_but_not_equal(): + s_origin = GeoSeries([Point(0, 0)]) + s_almost_origin = GeoSeries([Point(0.0000001, 0)]) + assert_geoseries_equal(s_origin, s_almost_origin, check_less_precise=True) + with pytest.raises(AssertionError): + assert_geoseries_equal(s_origin, s_almost_origin) From f5c54edfaac04b42ea45557466e3819cbbb2499f Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Thu, 18 Mar 2021 13:53:36 +0100 Subject: [PATCH 144/316] DOC: use CSS variables to customize sphinx theme (#1666) --- doc/environment.yml | 2 +- doc/source/_static/custom.css | 23 ++++------------------- 2 files changed, 5 insertions(+), 20 deletions(-) diff --git a/doc/environment.yml b/doc/environment.yml index 11b5559..176f85a 100644 --- a/doc/environment.yml +++ b/doc/environment.yml @@ -12,7 +12,7 @@ dependencies: - matplotlib=3.3.4 - mapclassify=2.4.2 - sphinx=3.5.1 - - pydata-sphinx-theme=0.4.3 + - pydata-sphinx-theme=0.5.0 - numpydoc=1.1.0 - ipython=7.20.0 - pillow=8.1.0 diff --git a/doc/source/_static/custom.css b/doc/source/_static/custom.css index 58cbdd7..505f2b5 100644 --- a/doc/source/_static/custom.css +++ b/doc/source/_static/custom.css @@ -1,24 +1,9 @@ /* colors */ -h1 { - color: #139C5A; -} - -h2 { - color: #333333; -} - -.nav li.active>a, .navbar-nav>.active>.nav-link { - color: #139C5A!important; -} - -.toc-entry>.nav-link.active { - border-left-color: #139C5A; - color: #139C5A!important; -} - -.nav li>a:hover { - color: #333333!important; +:root { + --pst-color-primary: 19, 156, 90; + --pst-color-active-navigation: 19, 156, 90; + --pst-color-h2: var(--color-text-base); } /* buttons */ From 2a5c42f8fcf7093caf5e59c012ed05817b68569f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mesejo-Le=C3=B3n?= Date: Fri, 2 Apr 2021 12:26:39 +0200 Subject: [PATCH 145/316] DOC: Add from_wkt, from_wkb, to_wkt, to_wkb to API reference (#1889) (#1890) --- doc/source/docs/reference/geodataframe.rst | 6 ++++-- doc/source/docs/reference/geoseries.rst | 8 ++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/doc/source/docs/reference/geodataframe.rst b/doc/source/docs/reference/geodataframe.rst index 5713eb4..2491ab5 100644 --- a/doc/source/docs/reference/geodataframe.rst +++ b/doc/source/docs/reference/geodataframe.rst @@ -13,8 +13,8 @@ Constructor GeoDataFrame -Reading and writing files -------------------------- +Serialization / IO / conversion +------------------------------- .. autosummary:: :toctree: api/ @@ -27,6 +27,8 @@ Reading and writing files GeoDataFrame.to_parquet GeoDataFrame.to_feather GeoDataFrame.to_postgis + GeoDataFrame.to_wkb + GeoDataFrame.to_wkt Projection handling ------------------- diff --git a/doc/source/docs/reference/geoseries.rst b/doc/source/docs/reference/geoseries.rst index 82726ac..f4a5041 100644 --- a/doc/source/docs/reference/geoseries.rst +++ b/doc/source/docs/reference/geoseries.rst @@ -108,15 +108,19 @@ Aggregating and exploding GeoSeries.unary_union GeoSeries.explode -Reading and writing files -------------------------- +Serialization / IO / conversion +------------------------------- .. autosummary:: :toctree: api/ GeoSeries.from_file + GeoSeries.from_wkb + GeoSeries.from_wkt GeoSeries.to_file GeoSeries.to_json + GeoSeries.to_wkb + GeoSeries.to_wkt Projection handling ------------------- From ce6101810b91a20985224343bfc62e159269a707 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mesejo-Le=C3=B3n?= Date: Fri, 2 Apr 2021 17:10:47 +0200 Subject: [PATCH 146/316] ENH: use crs.is_projected and heuristic as fallback (#1713) (#1895) * ENH: use crs.is_projected and heuristic as fallback (#1713) * apply PR suggestions * increase test coverage per PR suggestions --- geopandas/array.py | 39 +++++++++++++++----------- geopandas/tests/test_pandas_methods.py | 8 ++++++ 2 files changed, 31 insertions(+), 16 deletions(-) diff --git a/geopandas/array.py b/geopandas/array.py index 5164eb2..e35676c 100644 --- a/geopandas/array.py +++ b/geopandas/array.py @@ -1224,23 +1224,30 @@ class GeometryArray(ExtensionArray): precision = geopandas.options.display_precision if precision is None: - # dummy heuristic based on 10 first geometries that should - # work in most cases - with warnings.catch_warnings(): - warnings.simplefilter("ignore", category=RuntimeWarning) - xmin, ymin, xmax, ymax = self[~self.isna()][:10].total_bounds - if ( - (-180 <= xmin <= 180) - and (-180 <= xmax <= 180) - and (-90 <= ymin <= 90) - and (-90 <= ymax <= 90) - ): - # geographic coordinates - precision = 5 + if self.crs: + if self.crs.is_projected: + precision = 3 + else: + precision = 5 else: - # typically projected coordinates - # (in case of unit meter: mm precision) - precision = 3 + # fallback + # dummy heuristic based on 10 first geometries that should + # work in most cases + with warnings.catch_warnings(): + warnings.simplefilter("ignore", category=RuntimeWarning) + xmin, ymin, xmax, ymax = self[~self.isna()][:10].total_bounds + if ( + (-180 <= xmin <= 180) + and (-180 <= xmax <= 180) + and (-90 <= ymin <= 90) + and (-90 <= ymax <= 90) + ): + # geographic coordinates + precision = 5 + else: + # typically projected coordinates + # (in case of unit meter: mm precision) + precision = 3 return lambda geom: shapely.wkt.dumps(geom, rounding_precision=precision) return repr diff --git a/geopandas/tests/test_pandas_methods.py b/geopandas/tests/test_pandas_methods.py index 5f1e8f9..38dd6eb 100644 --- a/geopandas/tests/test_pandas_methods.py +++ b/geopandas/tests/test_pandas_methods.py @@ -46,12 +46,20 @@ def test_repr_boxed_display_precision(): s1 = GeoSeries([p1, p2, None]) assert "POINT (10.12346 50.12346)" in repr(s1) + # geographic coordinates 4326 + s3 = GeoSeries([p1, p2], crs=4326) + assert "POINT (10.12346 50.12346)" in repr(s3) + # projected coordinates p1 = Point(3000.123456789, 3000.123456789) p2 = Point(4000.123456789, 4000.123456789) s2 = GeoSeries([p1, p2, None]) assert "POINT (3000.123 3000.123)" in repr(s2) + # projected geographic coordinate + s4 = GeoSeries([p1, p2], crs=3857) + assert "POINT (3000.123 3000.123)" in repr(s4) + geopandas.options.display_precision = 1 assert "POINT (10.1 50.1)" in repr(s1) From 37ffc35f06eae74e39ae8fa6996eceef93896d41 Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Sun, 4 Apr 2021 09:37:36 +0100 Subject: [PATCH 147/316] TST: skip pandas master fillna test (#1878) --- geopandas/tests/test_extension_array.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/geopandas/tests/test_extension_array.py b/geopandas/tests/test_extension_array.py index 37d37a3..be09408 100644 --- a/geopandas/tests/test_extension_array.py +++ b/geopandas/tests/test_extension_array.py @@ -366,6 +366,10 @@ class TestMissing(extension_tests.BaseMissingTests): def test_fillna_series_method(self, data_missing, method): pass + @pytest.mark.skip("fillna method not supported") + def test_fillna_no_op_returns_copy(self, data): + pass + class TestReduce(extension_tests.BaseNoReduceTests): @pytest.mark.skip("boolean reduce (any/all) tested in test_pandas_methods") From 08cb5909b88837a2a963f22a81874287ea2ef5ae Mon Sep 17 00:00:00 2001 From: Andreas Eliasson Date: Thu, 8 Apr 2021 18:26:44 +0200 Subject: [PATCH 148/316] DOC: revise intro to geopandas notebook (#1886) * DOC: revise intro to geopandas notebook * DOC: fix typo and use 'spatial relation' * DOC: remove kernel metadata --- doc/source/getting_started/introduction.ipynb | 75 ++++++++++--------- 1 file changed, 38 insertions(+), 37 deletions(-) diff --git a/doc/source/getting_started/introduction.ipynb b/doc/source/getting_started/introduction.ipynb index 66ca3b5..7f13eb0 100644 --- a/doc/source/getting_started/introduction.ipynb +++ b/doc/source/getting_started/introduction.ipynb @@ -2,23 +2,25 @@ "cells": [ { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "tags": [] + }, "source": [ "# Introduction to GeoPandas\n", "\n", - "This quick tutorial provides an introduction to the key concepts of GeoPandas. In a few minutes, we'll describe the basics which allow you to start your projects.\n", + "This quick tutorial introduces the key concepts and basic feautures of GeoPandas to help you get started with your projects.\n", "\n", "## Concepts\n", "\n", - "GeoPandas, as the name suggests, extends popular data science library [pandas](https://pandas.pydata.org) by adding support for geospatial data. If you are not familiar with `pandas`, we recommend taking a quick look at its [Getting started documentation](https://pandas.pydata.org/docs/getting_started/index.html#getting-started) before proceeding.\n", + "GeoPandas, as the name suggests, extends the popular data science library [pandas](https://pandas.pydata.org) by adding support for geospatial data. If you are not familiar with `pandas`, we recommend taking a quick look at its [Getting started documentation](https://pandas.pydata.org/docs/getting_started/index.html#getting-started) before proceeding.\n", "\n", - "The core data structure in GeoPandas is `geopandas.GeoDataFrame`, a subclass of `pandas.DataFrame` able to store geometry columns and perform spatial operations. Geometries are handled by `geopandas.GeoSeries`, a subclass of `pandas.Series`. Therefore, your `GeoDataFrame` is a combination of `Series` with your data (numerical, boolean, text etc.) and `GeoSeries` with geometries (points, polygons etc.). You can have as many columns with geometries as you wish, there's no limit typical for desktop GIS software.\n", + "The core data structure in GeoPandas is the `geopandas.GeoDataFrame`, a subclass of `pandas.DataFrame`, that can store geometry columns and perform spatial operations. The `geopandas.GeoSeries`, a subclass of `pandas.Series`, handles the geometries. Therefore, your `GeoDataFrame` is a combination of `pandas.Series`, with traditional data (numerical, boolean, text etc.), and `geopandas.GeoSeries`, with geometries (points, polygons etc.). You can have as many columns with geometries as you wish; there's no limit typical for desktop GIS software.\n", "\n", "![geodataframe schema](../_static/dataframe.svg)\n", "\n", - "Each `GeoSeries` can contain any geometry type (we can even mix them within a single array) and has a `GeoSeries.crs` attribute, which stores information on the projection (CRS stands for Coordinate Reference System). Therefore, each `GeoSeries` in a `GeoDataFrame` can be in a different projection, allowing you to have, for example, multiple versions of the same geometry, just in a different CRS.\n", + "Each `GeoSeries` can contain any geometry type (you can even mix them within a single array) and has a `GeoSeries.crs` attribute, which stores information about the projection (CRS stands for Coordinate Reference System). Therefore, each `GeoSeries` in a `GeoDataFrame` can be in a different projection, allowing you to have, for example, multiple versions (different projections) of the same geometry.\n", "\n", - "One `GeoSeries` within a `GeoDataFrame` is seen as the _active_ geometry, which means that all geometric operations applied to a `GeoDataFrame` use the specified column.\n", + "Only one `GeoSeries` in a `GeoDataFrame` is considered the _active_ geometry, which means that all geometric operations applied to a `GeoDataFrame` operate on this _active_ column.\n", "\n", "\n", "
\n", @@ -28,15 +30,15 @@ "
\n", "\n", "\n", - "Let's see how this works in practice.\n", + "Let's see how some of these concepts work in practice.\n", "\n", "## Reading and writing files\n", "\n", "First, we need to read some data.\n", "\n", - "### Read files\n", + "### Reading files\n", "\n", - "Assuming we have a file containing both data and geometry (e.g. GeoPackage, GeoJSON, Shapefile), we can easily read it using `geopandas.read_file` function, which automatically detects filetype and creates a `GeoDataFrame`. In this example, we'll use the `\"nybb\"` dataset, a map of New York boroughs which is part of GeoPandas installation. Therefore we need to get the path to the actual file. With your file, you specify a path as a string (`\"my_data/my_file.geojson\"`)." + "Assuming you have a file containing both data and geometry (e.g. GeoPackage, GeoJSON, Shapefile), you can read it using `geopandas.read_file()`, which automatically detects the filetype and creates a `GeoDataFrame`. This tutorial uses the `\"nybb\"` dataset, a map of New York boroughs, which is part of the GeoPandas installation. Therefore, we use `geopandas.datasets.get_path()` to retrieve the path to the dataset." ] }, { @@ -55,11 +57,13 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "tags": [] + }, "source": [ - "### Write files\n", + "### Writing files\n", "\n", - "Writing a `GeoDataFrame` back to file is similarly simple, using `GeoDataFrame.to_file`. The default file format is Shapefile, but you can specify your own using `driver` keyword." + "To write a `GeoDataFrame` back to file use `GeoDataFrame.to_file()`. The default file format is Shapefile, but you can specify your own with the `driver` keyword." ] }, { @@ -73,7 +77,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "tags": [] + }, "source": [ "
\n", "User Guide\n", @@ -83,17 +89,17 @@ "\n", "\n", "\n", - "## Simple methods\n", + "## Simple accessors and methods\n", "\n", "Now we have our `GeoDataFrame` and can start working with its geometry. \n", "\n", - "Since we have only one geometry column read from the file, it is automatically seen as the active geometry and methods used on `GeoDataFrame` will be applied to the `\"geometry\"` column.\n", + "Since there was only one geometry column in the New York Boroughs dataset, this column automatically becomes the _active_ geometry and spatial methods used on the `GeoDataFrame` will be applied to the `\"geometry\"` column.\n", "\n", "### Measuring area\n", "\n", - "To measure the area of each polygon (or MultiPolygon in this specific case), we can use `GeoDataFrame.area` attribute, which returns a `pandas.Series`. Note that `GeoDataFrame.area` is just `GeoSeries.area` applied to an active geometry column.\n", + "To measure the area of each polygon (or MultiPolygon in this specific case), access the `GeoDataFrame.area` attribute, which returns a `pandas.Series`. Note that `GeoDataFrame.area` is just `GeoSeries.area` applied to the _active_ geometry column.\n", "\n", - "But first, we set the names of boroughs as an index, to make the results easier to read." + "But first, to make the results easier to read, set the names of the boroughs as the index:" ] }, { @@ -121,7 +127,7 @@ "source": [ "### Getting polygon boundary and centroid\n", "\n", - "To get just the boundary of each polygon (LineString), we can call `GeoDataFrame.boundary`." + "To get the boundary of each polygon (LineString), access the `GeoDataFrame.boundary`:" ] }, { @@ -159,7 +165,7 @@ "source": [ "### Measuring distance\n", "\n", - "We can also measure how far is each centroid from the first one." + "We can also measure how far each centroid is from the first centroid location." ] }, { @@ -177,9 +183,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "It's still a DataFrame, so we have all the pandas functionality available to use on the geospatial dataset, and to do data manipulations with the attributes and geometry information together.\n", + "Note that `geopandas.GeoDataFrame` is a subclass of `pandas.DataFrame`, so we have all the pandas functionality available to use on the geospatial dataset — we can even perform data manipulations with the attributes and geometry information together.\n", "\n", - "For example, we can calculate average of the distance measured above (by accessing the `'distance'` column, and calling the `mean()` method on it):" + "For example, to calculate the average of the distances measured above, access the 'distance' column and call the mean() method on it:" ] }, { @@ -197,7 +203,7 @@ "source": [ "## Making maps\n", "\n", - "GeoPandas can also plot maps, so we can check how our geometries look like in space. The key method here is `GeoDataFrame.plot()`. In the example below, we plot the `\"area\"` we measured earlier using the active geometry column. We also want to show a legend (`legend=True`)." + "GeoPandas can also plot maps, so we can check how the geometries appear in space. To plot the active geometry, call `GeoDataFrame.plot()`. To color code by another column, pass in that column as the first argument. In the example below, we plot the active geometry column and color code by the `\"area\"` column. We also want to show a legend (`legend=True`)." ] }, { @@ -275,7 +281,7 @@ "\n", "### Convex hull\n", "\n", - "If we are interested in the convex hull of our polygons, we can call `GeoDataFrame.convex_hull`." + "If we are interested in the convex hull of our polygons, we can access `GeoDataFrame.convex_hull`." ] }, { @@ -418,7 +424,9 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, + "metadata": { + "tags": [] + }, "outputs": [], "source": [ "gdf = gdf.set_geometry(\"buffered_centroid\")\n", @@ -432,7 +440,7 @@ "source": [ "## Projections\n", "\n", - "Each `GeoSeries` has the Coordinate Reference System (CRS) accessible as `GeoSeries.crs`. CRS tells GeoPandas where the coordinates of geometries are located on the Earth. In some cases, CRS is geographic, which means that coordinates are in latitude and longitude. In those cases, its CRS is WGS84, with the authority code `EPSG:4326`. Let's see the projection of our NY boroughs `GeoDataFrame`." + "Each `GeoSeries` has its Coordinate Reference System (CRS) accessible at `GeoSeries.crs`. The CRS tells GeoPandas where the coordinates of the geometries are located on the earth's surface. In some cases, the CRS is geographic, which means that the coordinates are in latitude and longitude. In those cases, its CRS is WGS84, with the authority code `EPSG:4326`. Let's see the projection of our NY boroughs `GeoDataFrame`." ] }, { @@ -475,12 +483,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Notice the difference in coordinates along the axes of the plot. Where we had 120 000 - 280 000 (feet) before, we have 40.5 - 40.9 (degrees) now. In this case, `boroughs_4326` has a `\"geometry\"` column in WGS84 but all the other (with centroids etc.) remains in the original CRS.\n", + "Notice the difference in coordinates along the axes of the plot. Where we had 120 000 - 280 000 (feet) before, we now have 40.5 - 40.9 (degrees). In this case, `boroughs_4326` has a `\"geometry\"` column in WGS84 but all the other (with centroids etc.) remain in the original CRS.\n", "\n", "
\n", "Warning\n", " \n", - "For operations that rely on distance or area, you always need to use projected CRS (in meters, feet, kilometers etc.) not a geographic one. GeoPandas operations are planar, and degrees reflect the position on a sphere. Therefore the results may not be correct. For example, the result of `gdf.area.sum()` (projected CRS) is 8 429 911 572 ft2 but the result of `boroughs_4326.area.sum()` (geographic CRS) is 0.083.\n", + "For operations that rely on distance or area, you always need to use a projected CRS (in meters, feet, kilometers etc.) not a geographic one (in degrees). GeoPandas operations are planar, whereas degrees reflect the position on a sphere. Therefore, spatial operations using degrees may not yield correct results. For example, the result of `gdf.area.sum()` (projected CRS) is 8 429 911 572 ft2 but the result of `boroughs_4326.area.sum()` (geographic CRS) is 0.083.\n", "
\n", "\n", "
\n", @@ -491,17 +499,10 @@ "\n", "## What next?\n", "\n", - "With GeoPandas we can do much more that this, from [aggregations](../docs/user_guide/aggregation_with_dissolve.rst), to [spatial joins](../docs/user_guide/mergingdata.rst), [geocoding](../docs/user_guide/geocoding.rst) and [much more](../gallery/index.rst).\n", + "With GeoPandas we can do much more than what has been introduced so far, from [aggregations](../docs/user_guide/aggregation_with_dissolve.rst), to [spatial joins](../docs/user_guide/mergingdata.rst), to [geocoding](../docs/user_guide/geocoding.rst), and [much more](../gallery/index.rst).\n", "\n", - "Head to the [User Guide](../docs/user_guide.rst) for to learn more about different functionality of GeoPandas, to the [Examples](../gallery/index.rst) to see how it can be used or the the [API reference](../docs/reference.rst) for the details." + "Head over to the [User Guide](../docs/user_guide.rst) to learn more about the different features of GeoPandas, the [Examples](../gallery/index.rst) to see how they can be used, or to the [API reference](../docs/reference.rst) for the details." ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { @@ -515,7 +516,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.6" + "version": "3.9.1" } }, "nbformat": 4, From afa49e01bd8064aeaa2dcd60da01ee84d50ddb78 Mon Sep 17 00:00:00 2001 From: John Flavin Date: Fri, 9 Apr 2021 15:07:44 -0500 Subject: [PATCH 149/316] BUG: Improve NA handling in to/from wkb/t (#1891) --- geopandas/_vectorized.py | 15 +++++++++------ geopandas/array.py | 25 ++++--------------------- geopandas/tests/test_array.py | 34 ++++++++++++++++++---------------- 3 files changed, 31 insertions(+), 43 deletions(-) diff --git a/geopandas/_vectorized.py b/geopandas/_vectorized.py index 3184c94..2ec09f0 100644 --- a/geopandas/_vectorized.py +++ b/geopandas/_vectorized.py @@ -7,6 +7,7 @@ Uses PyGEOS if available/set, otherwise loops through Shapely geometries. import warnings import numpy as np +import pandas as pd import shapely.geometry import shapely.geos @@ -44,9 +45,9 @@ else: type_mapping, geometry_type_ids, geometry_type_values = None, None, None -def _isna(value): +def isna(value): """ - Check if scalar value is NA-like (None or np.nan). + Check if scalar value is NA-like (None, np.nan or pd.NA). Custom version that only works for scalars (returning True or False), as `pd.isna` also works for array-like input returning a boolean array. @@ -55,6 +56,8 @@ def _isna(value): return True elif isinstance(value, float) and np.isnan(value): return True + elif compat.PANDAS_GE_10 and value is pd.NA: + return True else: return False @@ -127,7 +130,7 @@ def from_shapely(data): out.append(_shapely_to_pygeos(geom)) else: out.append(geom) - elif _isna(geom): + elif isna(geom): out.append(None) else: raise TypeError("Input must be valid geometry objects: {0}".format(geom)) @@ -165,7 +168,7 @@ def from_wkb(data): out = [] for geom in data: - if geom is not None and len(geom): + if not isna(geom) and len(geom): geom = shapely.wkb.loads(geom) else: geom = None @@ -200,7 +203,7 @@ def from_wkt(data): out = [] for geom in data: - if geom is not None and len(geom): + if not isna(geom) and len(geom): if isinstance(geom, bytes): geom = geom.decode("utf-8") geom = shapely.wkt.loads(geom) @@ -941,7 +944,7 @@ def transform(data, func): result = np.empty(n, dtype=object) for i in range(n): geom = data[i] - if _isna(geom): + if isna(geom): result[i] = geom else: result[i] = transform(func, geom) diff --git a/geopandas/array.py b/geopandas/array.py index e35676c..d2b1ea2 100644 --- a/geopandas/array.py +++ b/geopandas/array.py @@ -56,23 +56,6 @@ class GeometryDtype(ExtensionDtype): register_extension_dtype(GeometryDtype) -def _isna(value): - """ - Check if scalar value is NA-like (None, np.nan or pd.NA). - - Custom version that only works for scalars (returning True or False), - as `pd.isna` also works for array-like input returning a boolean array. - """ - if value is None: - return True - elif isinstance(value, float) and np.isnan(value): - return True - elif compat.PANDAS_GE_10 and value is pd.NA: - return True - else: - return False - - def _check_crs(left, right, allow_none=False): """ Check if the projection of both arrays is the same. @@ -398,8 +381,8 @@ class GeometryArray(ExtensionArray): if isinstance(key, numbers.Integral): raise ValueError("cannot set a single element with an array") self.data[key] = value.data - elif isinstance(value, BaseGeometry) or _isna(value): - if _isna(value): + elif isinstance(value, BaseGeometry) or vectorized.isna(value): + if vectorized.isna(value): # internally only use None as missing value indicator # but accept others value = None @@ -1005,7 +988,7 @@ class GeometryArray(ExtensionArray): if mask.any(): # fill with value - if _isna(value): + if vectorized.isna(value): value = None elif not isinstance(value, BaseGeometry): raise NotImplementedError( @@ -1326,7 +1309,7 @@ class GeometryArray(ExtensionArray): """ Return for `item in self`. """ - if _isna(item): + if vectorized.isna(item): if ( item is self.dtype.na_value or isinstance(item, self.dtype.type) diff --git a/geopandas/tests/test_array.py b/geopandas/tests/test_array.py index ef3cd14..3770ca2 100644 --- a/geopandas/tests/test_array.py +++ b/geopandas/tests/test_array.py @@ -139,15 +139,16 @@ def test_from_wkb(): assert all(v.equals(t) for v, t in zip(res, points_no_missing)) # missing values - # TODO(pygeos) does not support empty strings - if compat.USE_PYGEOS: - L_wkb.extend([None]) - else: - L_wkb.extend([b"", None]) - res = from_wkb(L_wkb) - assert res[-1] is None + # TODO(pygeos) does not support empty strings, np.nan, or pd.NA + missing_values = [None] if not compat.USE_PYGEOS: - assert res[-2] is None + missing_values.extend([b"", np.nan]) + + if compat.PANDAS_GE_10: + missing_values.append(pd.NA) + + res = from_wkb(missing_values) + np.testing.assert_array_equal(res, np.full(len(missing_values), None)) # single MultiPolygon multi_poly = shapely.geometry.MultiPolygon( @@ -202,15 +203,16 @@ def test_from_wkt(string_type): assert all(v.almost_equals(t) for v, t in zip(res, points_no_missing)) # missing values - # TODO(pygeos) does not support empty strings - if compat.USE_PYGEOS: - L_wkt.extend([None]) - else: - L_wkt.extend([f(""), None]) - res = from_wkt(L_wkt) - assert res[-1] is None + # TODO(pygeos) does not support empty strings, np.nan, or pd.NA + missing_values = [None] if not compat.USE_PYGEOS: - assert res[-2] is None + missing_values.extend([f(""), np.nan]) + + if compat.PANDAS_GE_10: + missing_values.append(pd.NA) + + res = from_wkb(missing_values) + np.testing.assert_array_equal(res, np.full(len(missing_values), None)) # single MultiPolygon multi_poly = shapely.geometry.MultiPolygon( From f4a9763f90d65dea21e2e628e60326e27ca13576 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mesejo-Le=C3=B3n?= Date: Thu, 15 Apr 2021 09:17:25 +0200 Subject: [PATCH 150/316] BUG: fix to_json/to_file when DataFrame duplicate columns (#1894) (#1900) --- geopandas/geodataframe.py | 3 +++ geopandas/tests/test_geodataframe.py | 27 +++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/geopandas/geodataframe.py b/geopandas/geodataframe.py index 0b2848e..505dc40 100644 --- a/geopandas/geodataframe.py +++ b/geopandas/geodataframe.py @@ -810,6 +810,9 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} ids = np.array(self.index, copy=False) geometries = np.array(self[self._geometry_column_name], copy=False) + if not self.columns.is_unique: + raise ValueError("GeoDataFrame cannot contain duplicated column names.") + properties_cols = self.columns.difference([self._geometry_column_name]) if len(properties_cols) > 0: diff --git a/geopandas/tests/test_geodataframe.py b/geopandas/tests/test_geodataframe.py index 62cb23e..3678114 100644 --- a/geopandas/tests/test_geodataframe.py +++ b/geopandas/tests/test_geodataframe.py @@ -457,6 +457,15 @@ class TestDataFrame: for f in data["features"]: assert "id" not in f.keys() + def test_to_json_with_duplicate_columns(self): + df = GeoDataFrame( + data=[[1, 2, 3]], columns=["a", "b", "a"], geometry=[Point(1, 1)] + ) + with pytest.raises( + ValueError, match="GeoDataFrame cannot contain duplicated column names." + ): + df.to_json() + def test_copy(self): df2 = self.df.copy() assert type(df2) is GeoDataFrame @@ -485,6 +494,16 @@ class TestDataFrame: df = GeoDataFrame.from_file(tempfilename) assert df.crs == "epsg:2263" + def test_to_file_with_duplicate_columns(self): + df = GeoDataFrame( + data=[[1, 2, 3]], columns=["a", "b", "a"], geometry=[Point(1, 1)] + ) + with pytest.raises( + ValueError, match="GeoDataFrame cannot contain duplicated column names." + ): + tempfilename = os.path.join(self.tempdir, "crs.shp") + df.to_file(tempfilename) + def test_bool_index(self): # Find boros with 'B' in their name df = self.df[self.df["BoroName"].str.contains("B")] @@ -666,6 +685,14 @@ class TestDataFrame: result = list(df_only_numerical_cols.iterfeatures(na="keep"))[0] assert type(result["properties"]["Shape_Leng"]) is float + with pytest.raises( + ValueError, match="GeoDataFrame cannot contain duplicated column names." + ): + df_with_duplicate_columns = df[ + ["Shape_Leng", "Shape_Leng", "Shape_Area", "geometry"] + ] + list(df_with_duplicate_columns.iterfeatures()) + # geometry not set df = GeoDataFrame({"values": [0, 1], "geom": [Point(0, 1), Point(1, 0)]}) with pytest.raises(AttributeError): From 294ba75805e8e2106661cae0e8a7f52bba6926ba Mon Sep 17 00:00:00 2001 From: Mike Taves Date: Thu, 22 Apr 2021 22:05:21 +1200 Subject: [PATCH 151/316] TST: use public API to fix several issues with sqlalchemy (#1913) * Use inspect(some_engine).has_table(tablename) * Use URL.create() instead of calling URL() directly --- geopandas/io/tests/test_sql.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/geopandas/io/tests/test_sql.py b/geopandas/io/tests/test_sql.py index 90e5c25..7622e6a 100644 --- a/geopandas/io/tests/test_sql.py +++ b/geopandas/io/tests/test_sql.py @@ -64,7 +64,7 @@ def engine_postgis(): try: con = sqlalchemy.create_engine( - URL( + URL.create( drivername="postgresql+psycopg2", username=user, database=dbname, @@ -114,7 +114,7 @@ def connection_spatialite(): def drop_table_if_exists(conn_or_engine, table): sqlalchemy = pytest.importorskip("sqlalchemy") - if conn_or_engine.dialect.has_table(conn_or_engine, table): + if sqlalchemy.inspect(conn_or_engine).has_table(table): metadata = sqlalchemy.MetaData(conn_or_engine) metadata.reflect() table = metadata.tables.get(table) From 561578ea7b60a74f6871d593bf3da86d948c1d45 Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Thu, 29 Apr 2021 09:07:04 +0100 Subject: [PATCH 152/316] CI: fix arrow CI using defaults (#1919) --- ci/envs/37-latest-defaults.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/envs/37-latest-defaults.yaml b/ci/envs/37-latest-defaults.yaml index 6b08024..cd1b862 100644 --- a/ci/envs/37-latest-defaults.yaml +++ b/ci/envs/37-latest-defaults.yaml @@ -20,7 +20,7 @@ dependencies: #- geopy - SQLalchemy - libspatialite - - pyarrow - pip: - geopy - mapclassify + - pyarrow From db7366d354de54b1a0eef8da75c73f2811420df4 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Thu, 29 Apr 2021 10:40:01 +0200 Subject: [PATCH 153/316] CI: unpin python in 3.7 build (#1921) --- ci/envs/37-latest-defaults.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/envs/37-latest-defaults.yaml b/ci/envs/37-latest-defaults.yaml index cd1b862..afd6710 100644 --- a/ci/envs/37-latest-defaults.yaml +++ b/ci/envs/37-latest-defaults.yaml @@ -2,7 +2,7 @@ name: test channels: - defaults dependencies: - - python=3.7.3 + - python=3.7 # required - pandas - shapely From b436ac21a63414000a5c5cc996a5f6a39bc6fa45 Mon Sep 17 00:00:00 2001 From: Ray Bell Date: Fri, 30 Apr 2021 11:22:54 -0400 Subject: [PATCH 154/316] DOC: add cd doc in code block (#1925) --- doc/source/community/contributing.rst | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/doc/source/community/contributing.rst b/doc/source/community/contributing.rst index e97a6f1..0d6aec2 100644 --- a/doc/source/community/contributing.rst +++ b/doc/source/community/contributing.rst @@ -258,16 +258,21 @@ and examples are Jupyter notebooks converted to docs using `nbsphinx `_. Jupyter notebooks should be stored without the output. Once you have made your changes, you may try if they render correctly by -building the docs using sphinx. To do so, you can navigate to the `doc` folder +building the docs using sphinx. To do so, you can navigate to the `doc` folder:: + + cd doc + and type:: make html -The resulting html pages will be located in ``doc/build/html``. In case of any errors, you -can try to use ``make html`` within a new environment based on environment.yml -specification in the ``doc`` folder. You may need to register Jupyter kernel as +The resulting html pages will be located in ``doc/build/html``. + +In case of any errors, you can try to use ``make html`` within a new environment based on +environment.yml specification in the ``doc`` folder. You may need to register Jupyter kernel as ``geopandas_docs``. Using conda:: + cd doc conda env create -f environment.yml conda activate geopandas_docs python -m ipykernel install --user --name geopandas_docs From 88c173cefc302fc06ab7430957d38989fd45827f Mon Sep 17 00:00:00 2001 From: Ray Bell Date: Sun, 2 May 2021 10:41:33 -0400 Subject: [PATCH 155/316] DOC: hyperlink to API in merging section (#1926) Co-authored-by: Ray Bell --- doc/source/conf.py | 9 +++++ doc/source/docs/user_guide/mergingdata.rst | 47 ++++++++++++++-------- 2 files changed, 39 insertions(+), 17 deletions(-) diff --git a/doc/source/conf.py b/doc/source/conf.py index eb4b6d2..cf3a8e9 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -331,3 +331,12 @@ nbsphinx_prolog = r""" __ https://github.com/geopandas/geopandas/blob/master/doc/source/{{ docname }} """ + +# --Options for sphinx extensions ----------------------------------------------- + +intersphinx_mapping = { + "pandas": ( + "https://pandas.pydata.org/pandas-docs/stable/", + "https://pandas.pydata.org/pandas-docs/stable/objects.inv", + ), +} \ No newline at end of file diff --git a/doc/source/docs/user_guide/mergingdata.rst b/doc/source/docs/user_guide/mergingdata.rst index 6726e0f..a90e3e2 100644 --- a/doc/source/docs/user_guide/mergingdata.rst +++ b/doc/source/docs/user_guide/mergingdata.rst @@ -11,9 +11,12 @@ Merging Data There are two ways to combine datasets in *geopandas* -- attribute joins and spatial joins. -In an attribute join, a ``GeoSeries`` or ``GeoDataFrame`` is combined with a regular *pandas* ``Series`` or ``DataFrame`` based on a common variable. This is analogous to normal merging or joining in *pandas*. +In an attribute join, a :py:class:`GeoSeries` or :py:class:`GeoDataFrame` is +combined with a regular :py:class:`pandas.Series` or :py:class:`pandas.DataFrame` based on a +common variable. This is analogous to normal merging or joining in *pandas*. -In a Spatial Join, observations from two ``GeoSeries`` or ``GeoDataFrames`` are combined based on their spatial relationship to one another. +In a Spatial Join, observations from two :py:class:`GeoSeries` or :py:class:`GeoDataFrame` +are combined based on their spatial relationship to one another. In the following examples, we use these datasets: @@ -34,7 +37,8 @@ In the following examples, we use these datasets: Appending --------- -Appending GeoDataFrames and GeoSeries uses pandas ``append`` methods. Keep in mind, that appended geometry columns needs to have the same CRS. +Appending :py:class:`GeoDataFrame` and :py:class:`GeoSeries` uses pandas ``append`` methods. +Keep in mind, that appended geometry columns needs to have the same CRS. .. ipython:: python @@ -50,10 +54,14 @@ Appending GeoDataFrames and GeoSeries uses pandas ``append`` methods. Keep in mi Attribute Joins ---------------- -Attribute joins are accomplished using the ``merge`` method. In general, it is recommended to use the ``merge`` method called from the spatial dataset. With that said, the stand-alone ``merge`` function will work if the GeoDataFrame is in the ``left`` argument; if a DataFrame is in the ``left`` argument and a GeoDataFrame is in the ``right`` position, the result will no longer be a GeoDataFrame. +Attribute joins are accomplished using the ``merge`` method. In general, it is recommended +to use the ``merge`` method called from the spatial dataset. With that said, the stand-alone +``merge`` function will work if the :py:class:`GeoDataFrame` is in the ``left`` argument; +if a :py:class:`pandas.DataFrame` is in the ``left`` argument and a :py:class:`GeoDataFrame` +is in the ``right`` position, the result will no longer be a :py:class:`GeoDataFrame`. - -For example, consider the following merge that adds full names to a ``GeoDataFrame`` that initially has only ISO codes for each country by merging it with a *pandas* ``DataFrame``. +For example, consider the following merge that adds full names to a :py:class:`GeoDataFrame` +that initially has only ISO codes for each country by merging it with a :py:class:`pandas.DataFrame`. .. ipython:: python @@ -68,7 +76,6 @@ For example, consider the following merge that adds full names to a ``GeoDataFra country_shapes.head() - Spatial Joins ---------------- @@ -91,15 +98,19 @@ In a Spatial Join, two geometry objects are merged based on their spatial relati Sjoin Arguments ~~~~~~~~~~~~~~~~ -``sjoin()`` has two core arguments: ``how`` and ``op``. +:py:class:`sjoin` has two core arguments: ``how`` and ``op``. **op** -The ``op`` argument specifies how ``geopandas`` decides whether or not to join the attributes of one object to another, based on their geometric relationship. +The ``op`` argument specifies how ``geopandas`` decides whether or not to join the attributes of one +object to another, based on their geometric relationship. -The values for ``op`` correspond to the names of geometric binary predicates and depend on the spatial index implementation. +The values for ``op`` correspond to the names of geometric binary predicates and depend on the spatial +index implementation. -The default spatial index in GeoPandas currently supports the following values for ``op``: +The default spatial index in ``geopandas`` currently supports the following values for ``op`` which are +defined in the +`Shapely documentation `__: * `intersects` * `contains` @@ -108,14 +119,16 @@ The default spatial index in GeoPandas currently supports the following values f * `crosses` * `overlaps` -You can read more about each join type in the `Shapely documentation `__. - **how** -The `how` argument specifies the type of join that will occur and which geometry is retained in the resultant geodataframe. It accepts the following options: +The `how` argument specifies the type of join that will occur and which geometry is retained in the resultant +:py:class:`GeoDataFrame`. It accepts the following options: -* ``left``: use the index from the first (or `left_df`) geodataframe that you provide to ``sjoin``; retain only the `left_df` geometry column +* ``left``: use the index from the first (or `left_df`) :py:class:`GeoDataFrame` that you provide + to ``sjoin``; retain only the `left_df` geometry column * ``right``: use index from second (or `right_df`); retain only the `right_df` geometry column -* ``inner``: use intersection of index values from both geodataframes; retain only the `left_df` geometry column +* ``inner``: use intersection of index values from both :py:class:`GeoDataFrame`; retain only the `left_df` geometry column -Note more complicated spatial relationships can be studied by combining geometric operations with spatial join. To find all polygons within a given distance of a point, for example, one can first use the ``buffer`` method to expand each point into a circle of appropriate radius, then intersect those buffered circles with the polygons in question. +Note more complicated spatial relationships can be studied by combining geometric operations with spatial join. +To find all polygons within a given distance of a point, for example, one can first use the ``buffer`` method to expand each +point into a circle of appropriate radius, then intersect those buffered circles with the polygons in question. From 462e4a0c3ec90925b72b6e6a70550e85f26524d8 Mon Sep 17 00:00:00 2001 From: standakozak <47722371+standakozak@users.noreply.github.com> Date: Sun, 2 May 2021 16:54:37 +0200 Subject: [PATCH 156/316] DOC: set_axis_off method in User Guide (#1907) * DOC: set_axis_off method in user guide Added tiny section in User Guide - Mapping and plotting tools called Other map customization. This section covers the set_axis_off method. #524 * Update User Guide - Mapping and Plotting Tools Co-authored-by: Martin Fleischmann * Update mapping.rst * Update doc/source/docs/user_guide/mapping.rst Co-authored-by: Martin Fleischmann Co-authored-by: Martin Fleischmann --- doc/source/docs/user_guide/mapping.rst | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/doc/source/docs/user_guide/mapping.rst b/doc/source/docs/user_guide/mapping.rst index f2a96b5..cede0c6 100644 --- a/doc/source/docs/user_guide/mapping.rst +++ b/doc/source/docs/user_guide/mapping.rst @@ -45,7 +45,7 @@ Choropleth Maps .. ipython:: python - # Plot by GDP per capta + # Plot by GDP per capita world = world[(world.pop_est>0) & (world.name!="Antarctica")] world['gdp_per_cap'] = world.gdp_md_est / world.pop_est @savefig world_gdp_per_cap.png @@ -154,6 +154,17 @@ However, passing ``missing_kwds`` one can specify the style and label of feature }, ); +Other map customizations +~~~~~~~~~~~~~~~~~~~~~~~~ + +Maps usually do not have to have axis labels. You can turn them off using ``set_axis_off()`` or ``axis("off")`` axis methods. + +.. ipython:: python + + ax = world.plot() + @savefig set_axis_off.png + ax.set_axis_off(); + Maps with Layers ----------------- From 0d38f10a9507bba80ed23b91c697a74fe95250cd Mon Sep 17 00:00:00 2001 From: TLouf <31036680+TLouf@users.noreply.github.com> Date: Sun, 2 May 2021 17:59:23 +0200 Subject: [PATCH 157/316] DOC: document contextily layers functionality (#1922) * DOC: document contextily layers functionality * DOC: restructured background map example - Explain CRS matching better - Renamed projected df - Add sections to better reflect that projecting to mercator is not mandatory - Change the sections title levels to match other examples of the gallery * DOC: reduced line length in md * DOC: remove last empty cell from basemap example --- .../gallery/plotting_basemap_background.ipynb | 163 ++++++++++++++---- 1 file changed, 129 insertions(+), 34 deletions(-) diff --git a/doc/source/gallery/plotting_basemap_background.ipynb b/doc/source/gallery/plotting_basemap_background.ipynb index 325be15..22c3425 100644 --- a/doc/source/gallery/plotting_basemap_background.ipynb +++ b/doc/source/gallery/plotting_basemap_background.ipynb @@ -10,7 +10,10 @@ "This example shows how you can add a background basemap to plots created\n", "with the geopandas ``.plot()`` method. This makes use of the\n", "[contextily](https://github.com/geopandas/contextily) package to retrieve\n", - "web map tiles from several sources (OpenStreetMap, Stamen).\n" + "web map tiles from several sources (OpenStreetMap, Stamen). Also have a\n", + "look at contextily's \n", + "[introduction guide](https://contextily.readthedocs.io/en/latest/intro_guide.html#Using-transparent-layers)\n", + "for possible new features not covered here.\n" ] }, { @@ -19,7 +22,8 @@ "metadata": {}, "outputs": [], "source": [ - "import geopandas" + "import geopandas\n", + "import contextily as cx" ] }, { @@ -45,15 +49,15 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Convert the data to Web Mercator\n", - "================================\n", + "## Matching coordinate systems \n", "\n", + "\n", + "Before adding web map tiles to this plot, we first need to ensure the\n", + "coordinate reference systems (CRS) of the tiles and the data match.\n", "Web map tiles are typically provided in\n", "[Web Mercator](https://en.wikipedia.org/wiki/Web_Mercator>)\n", - "([EPSG 3857](https://epsg.io/3857)), so we need to make sure to convert\n", - "our data first to the same CRS to combine our polygons and background tiles\n", - "in the same map:\n", - "\n" + "([EPSG 3857](https://epsg.io/3857)), so let us first check what\n", + "CRS our NYC boroughs are in:" ] }, { @@ -62,28 +66,36 @@ "metadata": {}, "outputs": [], "source": [ - "df = df.to_crs(epsg=3857)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import contextily as ctx" + "df.crs" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "Add background tiles to plot\n", - "============================\n", + "Now we know the CRS do not match, so we need to choose in which\n", + "CRS we wish to visualize the data: either the CRS of the tiles,\n", + "the one of the data, or even a different one.\n", "\n", - "We can use `add_basemap` function of contextily to easily add a background\n", - "map to our plot. :\n", - "\n" + "The first option to match CRS is to leverage the `to_crs` method\n", + "of GeoDataFrames to convert the CRS of our data, here to Web Mercator:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df_wm = df.to_crs(epsg=3857)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can then use `add_basemap` function of contextily to easily add a\n", + "background map to our plot:" ] }, { @@ -95,9 +107,45 @@ ] }, "outputs": [], + "source": [ + "ax = df_wm.plot(figsize=(10, 10), alpha=0.5, edgecolor='k')\n", + "cx.add_basemap(ax)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we want to convert the CRS of the tiles instead, which might be advisable\n", + "for large datasets, we can use the `crs` keyword argument of `add_basemap`\n", + "as follows:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "ax = df.plot(figsize=(10, 10), alpha=0.5, edgecolor='k')\n", - "ctx.add_basemap(ax)" + "cx.add_basemap(ax, crs=df.crs)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This reprojects map tiles to a target CRS which may in some cases cause a\n", + "loss of sharpness. See \n", + "[contextily's guide on warping tiles](https://contextily.readthedocs.io/en/latest/warping_guide.html)\n", + "for more information on the subject." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Controlling the level of detail" ] }, { @@ -116,8 +164,15 @@ "metadata": {}, "outputs": [], "source": [ - "ax = df.plot(figsize=(10, 10), alpha=0.5, edgecolor='k')\n", - "ctx.add_basemap(ax, zoom=12)" + "ax = df_wm.plot(figsize=(10, 10), alpha=0.5, edgecolor='k')\n", + "cx.add_basemap(ax, zoom=12)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Choosing a different style" ] }, { @@ -125,7 +180,7 @@ "metadata": {}, "source": [ "By default, contextily uses the Stamen Terrain style. We can specify a\n", - "different style using ``ctx.providers``:\n", + "different style using ``cx.providers``:\n", "\n" ] }, @@ -135,24 +190,64 @@ "metadata": {}, "outputs": [], "source": [ - "ax = df.plot(figsize=(10, 10), alpha=0.5, edgecolor='k')\n", - "ctx.add_basemap(ax, url=ctx.providers.Stamen.TonerLite)\n", + "ax = df_wm.plot(figsize=(10, 10), alpha=0.5, edgecolor='k')\n", + "cx.add_basemap(ax, source=cx.providers.Stamen.TonerLite)\n", "ax.set_axis_off()" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Adding labels as an overlay" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Sometimes, when you plot data on a basemap, the data will obscure some important map elements, such as labels,\n", + "that you would otherwise want to see unobscured. Some map tile providers offer multiple sets of partially\n", + "transparent tiles to solve this, and `contextily` will do its best to auto-detect these transparent layers\n", + "and put them on top." + ] + }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "ax = df_wm.plot(figsize=(10, 10), alpha=0.5, edgecolor='k')\n", + "cx.add_basemap(ax, source=cx.providers.Stamen.TonerLite)\n", + "cx.add_basemap(ax, source=cx.providers.Stamen.TonerLabels)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "By splitting the layers like this, you can also independently manipulate the level of zoom on each layer,\n", + "for example to make labels larger while still showing a lot of detail." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ax = df_wm.plot(figsize=(10, 10), alpha=0.5, edgecolor='k')\n", + "cx.add_basemap(ax, source=cx.providers.Stamen.Watercolor, zoom=12)\n", + "cx.add_basemap(ax, source=cx.providers.Stamen.TonerLabels, zoom=10)" + ] } ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "geopandas_docs", "language": "python", - "name": "python3" + "name": "geopandas_docs" }, "language_info": { "codemirror_mode": { @@ -164,9 +259,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.6" + "version": "3.9.1" } }, "nbformat": 4, "nbformat_minor": 4 -} +} \ No newline at end of file From 0ee710c88c047a39b219e05949253068b8fac080 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Wed, 5 May 2021 11:38:26 +0200 Subject: [PATCH 158/316] BUG/TST: support parametrized string dtype (#1933) --- geopandas/array.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/geopandas/array.py b/geopandas/array.py index d2b1ea2..8686879 100644 --- a/geopandas/array.py +++ b/geopandas/array.py @@ -1030,7 +1030,7 @@ class GeometryArray(ExtensionArray): pd_dtype = pd.api.types.pandas_dtype(dtype) if isinstance(pd_dtype, pd.StringDtype): # ensure to return a pandas string array instead of numpy array - return pd.array(string_values, dtype="string") + return pd.array(string_values, dtype=pd_dtype) return string_values.astype(dtype, copy=False) else: return np.array(self, dtype=dtype, copy=copy) From 85e066a5c7c3ec9ad7bebc254b964a34053fcf65 Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Wed, 5 May 2021 17:50:36 +0100 Subject: [PATCH 159/316] DOC: fix jupyter kernel (#1934) --- doc/source/gallery/plotting_basemap_background.ipynb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/source/gallery/plotting_basemap_background.ipynb b/doc/source/gallery/plotting_basemap_background.ipynb index 22c3425..70ad577 100644 --- a/doc/source/gallery/plotting_basemap_background.ipynb +++ b/doc/source/gallery/plotting_basemap_background.ipynb @@ -245,9 +245,9 @@ ], "metadata": { "kernelspec": { - "display_name": "geopandas_docs", + "display_name": "Python 3", "language": "python", - "name": "geopandas_docs" + "name": "python3" }, "language_info": { "codemirror_mode": { @@ -264,4 +264,4 @@ }, "nbformat": 4, "nbformat_minor": 4 -} \ No newline at end of file +} From f5f040d7c8ed960362a60ff9e1bc2fde067b5a8f Mon Sep 17 00:00:00 2001 From: Mike Taves Date: Wed, 12 May 2021 19:37:13 +1200 Subject: [PATCH 160/316] TST: add PGPORT env var, rewrite setup_postgres.sh to scripts dir (#1932) --- .github/workflows/tests.yaml | 3 ++- ci/envs/setup_postgres.sh | 21 --------------------- ci/scripts/setup_postgres.sh | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 35 insertions(+), 22 deletions(-) delete mode 100644 ci/envs/setup_postgres.sh create mode 100644 ci/scripts/setup_postgres.sh diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index a1327c8..1c303c9 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -110,10 +110,11 @@ jobs: PGUSER: postgres PGPASSWORD: postgres PGHOST: "127.0.0.1" + PGPORT: 5432 run: | source activate test conda install postgis -c conda-forge - source ci/envs/setup_postgres.sh + sh ci/scripts/setup_postgres.sh pytest -v -r s --color=yes --cov=geopandas --cov-append --cov-report term-missing --cov-report xml geopandas/io/tests/test_sql.py | tee /dev/stderr | if grep SKIPPED >/dev/null;then echo "TESTS SKIPPED, FAILING" && exit 1;fi - name: Test docstrings diff --git a/ci/envs/setup_postgres.sh b/ci/envs/setup_postgres.sh deleted file mode 100644 index 32defae..0000000 --- a/ci/envs/setup_postgres.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash -e - -echo "Setting up Postgresql" - -mkdir -p ${HOME}/var -rm -rf ${HOME}/var/db - -pg_ctl initdb -D ${HOME}/var/db -pg_ctl start -D ${HOME}/var/db - -echo -n 'waiting for postgres' -while [ ! -e /tmp/.s.PGSQL.5432 ]; do - sleep 1 - echo -n '.' -done - -createuser -U ${USER} -s postgres -createdb --owner=postgres test_geopandas -psql -d test_geopandas -q -c "CREATE EXTENSION postgis" - -echo "Done setting up Postgresql" diff --git a/ci/scripts/setup_postgres.sh b/ci/scripts/setup_postgres.sh new file mode 100644 index 0000000..1a5a3d7 --- /dev/null +++ b/ci/scripts/setup_postgres.sh @@ -0,0 +1,33 @@ +#!/bin/sh +set -e + +if [ -z "${PGUSER}" ] || [ -z "${PGPORT}" ]; then + echo "Environment variables PGUSER and PGPORT must be set" + exit 1 +fi + +PGDATA=$(mktemp -d /tmp/postgres.XXXXXX) +echo "Setting up PostgreSQL in ${PGDATA} on port ${PGPORT}" + +pg_ctl -D ${PGDATA} initdb +pg_ctl -D ${PGDATA} start + +SOCKETPATH="/tmp/.s.PGSQL.${PGPORT}" +echo -n 'waiting for postgres' +while [ ! -e ${SOCKETPATH} ]; do + sleep 1 + echo -n '.' +done +echo + +echo "Done setting up PostgreSQL. When finished, stop and cleanup using:" +echo +echo " pg_ctl -D ${PGDATA} stop" +echo " rm -rf ${PGDATA}" +echo + +createuser -U ${USER} -s ${PGUSER} +createdb --owner=${PGUSER} test_geopandas +psql -d test_geopandas -q -c "CREATE EXTENSION postgis" + +echo "PostGIS server ready." From a26bde2b782ad4b3d3f378f8ad7d3dd8e98eeb2d Mon Sep 17 00:00:00 2001 From: James Myatt Date: Wed, 12 May 2021 08:40:37 +0100 Subject: [PATCH 161/316] DOC: Clarify bbox input to read_file (#1940) --- geopandas/io/file.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/geopandas/io/file.py b/geopandas/io/file.py index 59a5e0d..8908db4 100644 --- a/geopandas/io/file.py +++ b/geopandas/io/file.py @@ -78,7 +78,8 @@ def _read_file(filename, bbox=None, mask=None, rows=None, **kwargs): bbox : tuple | GeoDataFrame or GeoSeries | shapely Geometry, default None Filter features by given bounding box, GeoSeries, GeoDataFrame or a shapely geometry. CRS mis-matches are resolved if given a GeoSeries - or GeoDataFrame. Cannot be used with mask. + or GeoDataFrame. Tuple is (minx, miny, maxx, maxy) to match the + bounds property of shapely geometry objects. Cannot be used with mask. mask : dict | GeoDataFrame or GeoSeries | shapely Geometry, default None Filter for features that intersect with the given dict-like geojson geometry, GeoSeries, GeoDataFrame or shapely geometry. From dd2ed8efbfbd1d84be74b74b6edee1957b2f2214 Mon Sep 17 00:00:00 2001 From: Brendan Ward Date: Mon, 24 May 2021 11:47:21 -0700 Subject: [PATCH 162/316] Increment pygeos version (#1948) --- doc/environment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/environment.yml b/doc/environment.yml index 176f85a..872334b 100644 --- a/doc/environment.yml +++ b/doc/environment.yml @@ -36,7 +36,7 @@ dependencies: - myst-parser=0.13.5 - folium=0.12.0 - libpysal=4.4.0 - - pygeos=0.9 + - pygeos=0.10 - pip - pip: - sphinx-toggleprompt From e2c5b0d978e81945fe758b1423dc2fa67bf44f3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Murat=20Can=20=C3=9Cste?= Date: Fri, 28 May 2021 12:16:54 +0200 Subject: [PATCH 163/316] DOC: Relevant API links for intersphinx mapping (#1931) * DOC: added API links to intersphinx mapping * DOC: updated mergingdata.rst links * DOC: updated aggregation_with_dissolve.rst links * DOC: updated data_structures.rst links * DOC: updated geocoding.rst links * DOC: updated geometric_manipulations.rst links * DOC: updated indexing.rst links * DOC: updated io.rst links * DOC: updated projections.rst links * DOC: updated set_operations.rst links * DOC: updated mapping.rst links * DOC: updated missing_empty.rst links * DOC: updated geoplot intersphinx links * DOC: make 'unary_union' attr instead of method Co-authored-by: Martin Fleischmann * DOC: remove link to GeoDataFrame.geometry Co-authored-by: Martin Fleischmann * DOC: convert pandas indexers to attrs instead of methods Co-authored-by: Martin Fleischmann * DOC: convert indexer 'cx' to attr instead of method Co-authored-by: Martin Fleischmann * DOC: refer GeoSeries.buffer instead of shapely buffer Co-authored-by: Martin Fleischmann * DOC: make 'unary_union' attr instead of method on missing_empty.rst Co-authored-by: Martin Fleischmann * DOC: refer to DataFrame.merge instead of pandas.merge Co-authored-by: Martin Fleischmann * DOC: link pyproj.CRS * DOC: changed API links to 'stable' from 'latest' * DOC: fixed separator length * DOC: uppercase CRS in pyproj.crs Co-authored-by: Martin Fleischmann --- doc/source/conf.py | 69 ++++++++++++++++++- .../user_guide/aggregation_with_dissolve.rst | 18 +++-- .../docs/user_guide/data_structures.rst | 12 ++-- doc/source/docs/user_guide/geocoding.rst | 6 +- .../user_guide/geometric_manipulations.rst | 34 ++++----- doc/source/docs/user_guide/indexing.rst | 9 ++- doc/source/docs/user_guide/io.rst | 8 +-- doc/source/docs/user_guide/mapping.rst | 10 +-- doc/source/docs/user_guide/mergingdata.rst | 34 ++++----- doc/source/docs/user_guide/missing_empty.rst | 2 +- doc/source/docs/user_guide/projections.rst | 20 +++--- doc/source/docs/user_guide/set_operations.rst | 18 ++--- 12 files changed, 154 insertions(+), 86 deletions(-) diff --git a/doc/source/conf.py b/doc/source/conf.py index cf3a8e9..e85390c 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -66,8 +66,6 @@ autosummary_generate = True nbsphinx_execute = "always" nbsphinx_allow_errors = True -# connect docs in other projects -intersphinx_mapping = {"pyproj": ("http://pyproj4.github.io/pyproj/stable/", None)} # suppress matplotlib warning in examples warnings.filterwarnings( "ignore", @@ -334,9 +332,74 @@ nbsphinx_prolog = r""" # --Options for sphinx extensions ----------------------------------------------- +# connect docs in other projects intersphinx_mapping = { + "pyproj": ( + "https://pyproj4.github.io/pyproj/stable/", + "https://pyproj4.github.io/pyproj/stable/objects.inv", + ), "pandas": ( "https://pandas.pydata.org/pandas-docs/stable/", "https://pandas.pydata.org/pandas-docs/stable/objects.inv", ), -} \ No newline at end of file + "shapely": ( + "https://shapely.readthedocs.io/en/stable/", + "https://shapely.readthedocs.io/en/stable/objects.inv", + ), + "fiona": ( + "https://fiona.readthedocs.io/en/stable/", + "https://fiona.readthedocs.io/en/stable/objects.inv", + ), + "pygeos": ( + "https://pygeos.readthedocs.io/en/latest/", + "https://pygeos.readthedocs.io/en/latest/objects.inv", + ), + "rtree": ( + "https://rtree.readthedocs.io/en/stable/", + "https://rtree.readthedocs.io/en/stable/objects.inv", + ), + "mapclassify": ( + "https://pysal.org/mapclassify/", + "https://pysal.org/mapclassify/objects.inv" + ), + "libpysal": ( + "https://pysal.org/libpysal/", + "https://pysal.org/libpysal/objects.inv" + ), + "matplotlib": ( + "https://matplotlib.org/stable/", + "https://matplotlib.org/stable/objects.inv", + ), + "geopy": ( + "https://geopy.readthedocs.io/en/stable/", + "https://geopy.readthedocs.io/en/stable/objects.inv", + ), + "cartopy": ( + "https://scitools.org.uk/cartopy/docs/latest/", + "https://scitools.org.uk/cartopy/docs/latest/objects.inv" + ), + "pyepsg": ( + "https://pyepsg.readthedocs.io/en/stable/", + "https://pyepsg.readthedocs.io/en/stable/objects.inv" + ), + "contextily": ( + "https://contextily.readthedocs.io/en/stable/", + "https://contextily.readthedocs.io/en/stable/objects.inv" + ), + "rasterio": ( + "https://rasterio.readthedocs.io/en/stable/", + "https://rasterio.readthedocs.io/en/stable/objects.inv" + ), + "geoplot": ( + "https://residentmario.github.io/geoplot/index.html", + "https://residentmario.github.io/geoplot/objects.inv" + ), + "folium": ( + "https://python-visualization.github.io/folium/", + "https://python-visualization.github.io/folium/objects.inv" + ), + "python": ( + "https://docs.python.org/3", + "https://docs.python.org/3/objects.inv" + ) +} diff --git a/doc/source/docs/user_guide/aggregation_with_dissolve.rst b/doc/source/docs/user_guide/aggregation_with_dissolve.rst index ea5f2ed..f6952dd 100644 --- a/doc/source/docs/user_guide/aggregation_with_dissolve.rst +++ b/doc/source/docs/user_guide/aggregation_with_dissolve.rst @@ -12,17 +12,21 @@ Aggregation with dissolve Spatial data are often more granular than we need. For example, we might have data on sub-national units, but we're actually interested in studying patterns at the level of countries. -In a non-spatial setting, when all we need are summary statistics of the data, we aggregate our data using the ``groupby`` function. But for spatial data, we sometimes also need to aggregate geometric features. In the *geopandas* library, we can aggregate geometric features using the ``dissolve`` function. +In a non-spatial setting, when all we need are summary statistics of the data, we aggregate our data using the :meth:`~pandas.DataFrame.groupby` function. But for spatial data, we sometimes also need to aggregate geometric features. In the *geopandas* library, we can aggregate geometric features using the :meth:`~geopandas.GeoDataFrame.dissolve` function. -``dissolve`` can be thought of as doing three things: (a) it dissolves all the geometries within a given group together into a single geometric feature (using the ``unary_union`` method), and (b) it aggregates all the rows of data in a group using ``groupby.aggregate()``, and (c) it combines those two results. +:meth:`~geopandas.GeoDataFrame.dissolve` can be thought of as doing three things: -``dissolve`` Example -~~~~~~~~~~~~~~~~~~~~~ +(a) it dissolves all the geometries within a given group together into a single geometric feature (using the :attr:`~geopandas.GeoSeries.unary_union` method), and +(b) it aggregates all the rows of data in a group using :ref:`groupby.aggregate `, and +(c) it combines those two results. + +:meth:`~geopandas.GeoDataFrame.dissolve` Example +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Suppose we are interested in studying continents, but we only have country-level data like the country dataset included in *geopandas*. We can easily convert this to a continent-level dataset. -First, let's look at the most simple case where we just want continent shapes and names. By default, ``dissolve`` will pass ``'first'`` to ``groupby.aggregate``. +First, let's look at the most simple case where we just want continent shapes and names. By default, :meth:`~geopandas.GeoDataFrame.dissolve` will pass ``'first'`` to :ref:`groupby.aggregate `. .. ipython:: python @@ -35,7 +39,7 @@ First, let's look at the most simple case where we just want continent shapes an continents.head() -If we are interested in aggregate populations, however, we can pass different functions to the ``dissolve`` method to aggregate populations using the ``aggfunc =`` argument: +If we are interested in aggregate populations, however, we can pass different functions to the :meth:`~geopandas.GeoDataFrame.dissolve` method to aggregate populations using the ``aggfunc =`` argument: .. ipython:: python @@ -62,7 +66,7 @@ Dissolve Arguments ~~~~~~~~~~~~~~~~~~ The ``aggfunc =`` argument defaults to 'first' which means that the first row of attributes values found in the dissolve routine will be assigned to the resultant dissolved geodataframe. -However it also accepts other summary statistic options as allowed by ``pandas.groupby()`` including: +However it also accepts other summary statistic options as allowed by :meth:`pandas.groupby ` including: * 'first' * 'last' diff --git a/doc/source/docs/user_guide/data_structures.rst b/doc/source/docs/user_guide/data_structures.rst index 256152b..f50f847 100644 --- a/doc/source/docs/user_guide/data_structures.rst +++ b/doc/source/docs/user_guide/data_structures.rst @@ -14,8 +14,8 @@ Data Structures ========================================= GeoPandas implements two main data structures, a :class:`GeoSeries` and a -:class:`GeoDataFrame`. These are subclasses of pandas ``Series`` and -``DataFrame``, respectively. +:class:`GeoDataFrame`. These are subclasses of :class:`pandas.Series` and +:class:`pandas.DataFrame`, respectively. GeoSeries --------- @@ -45,7 +45,7 @@ operation is carried out elementwise. The two series will be aligned by matching indices. Binary operations can also be applied to a single geometry, in which case the operation is carried out for each element of the series with that geometry. In either case, a -``Series`` or a :class:`GeoSeries` will be returned, as appropriate. +:class:`~pandas.Series` or a :class:`GeoSeries` will be returned, as appropriate. A short summary of a few attributes and methods for GeoSeries is presented here, and a full list can be found in the :doc:`all attributes and methods page <../reference/geoseries>`. @@ -64,7 +64,7 @@ Attributes Basic Methods ^^^^^^^^^^^^^^ -* :meth:`~GeoSeries.distance`: returns ``Series`` with minimum distance from each entry to ``other`` +* :meth:`~GeoSeries.distance`: returns :class:`~pandas.Series` with minimum distance from each entry to ``other`` * :attr:`~GeoSeries.centroid`: returns :class:`GeoSeries` of centroids * :meth:`~GeoSeries.representative_point`: returns :class:`GeoSeries` of points that are guaranteed to be within each geometry. It does **NOT** return centroids. * :meth:`~GeoSeries.to_crs`: change coordinate reference system. See :doc:`projections ` @@ -129,14 +129,14 @@ Now, we create centroids and make it the geometry: gdf = gdf.rename(columns={'old_name': 'new_name'}).set_geometry('new_name') -**Note 2:** Somewhat confusingly, by default when you use the ``read_file`` command, the column containing spatial objects from the file is named "geometry" by default, and will be set as the active geometry column. However, despite using the same term for the name of the column and the name of the special attribute that keeps track of the active column, they are distinct. You can easily shift the active geometry column to a different :class:`GeoSeries` with the :meth:`~GeoDataFrame.set_geometry` command. Further, ``gdf.geometry`` will always return the active geometry column, *not* the column named ``geometry``. If you wish to call a column named "geometry", and a different column is the active geometry column, use ``gdf['geometry']``, not ``gdf.geometry``. +**Note 2:** Somewhat confusingly, by default when you use the :func:`~geopandas.read_file` command, the column containing spatial objects from the file is named "geometry" by default, and will be set as the active geometry column. However, despite using the same term for the name of the column and the name of the special attribute that keeps track of the active column, they are distinct. You can easily shift the active geometry column to a different :class:`GeoSeries` with the :meth:`~GeoDataFrame.set_geometry` command. Further, ``gdf.geometry`` will always return the active geometry column, *not* the column named ``geometry``. If you wish to call a column named "geometry", and a different column is the active geometry column, use ``gdf['geometry']``, not ``gdf.geometry``. Attributes and Methods ~~~~~~~~~~~~~~~~~~~~~~ Any of the attributes calls or methods described for a :class:`GeoSeries` will work on a :class:`GeoDataFrame` -- effectively, they are just applied to the "geometry" :class:`GeoSeries`. -However, ``GeoDataFrames`` also have a few extra methods for input and output which are described on the :doc:`Input and Output ` page and for geocoding with are described in :doc:`Geocoding `. +However, :class:`GeoDataFrames ` also have a few extra methods for input and output which are described on the :doc:`Input and Output ` page and for geocoding with are described in :doc:`Geocoding `. .. ipython:: python diff --git a/doc/source/docs/user_guide/geocoding.rst b/doc/source/docs/user_guide/geocoding.rst index c573f59..a0131d6 100644 --- a/doc/source/docs/user_guide/geocoding.rst +++ b/doc/source/docs/user_guide/geocoding.rst @@ -32,17 +32,17 @@ with the detailed borough boundary file included within ``geopandas``. boro_locations.plot(ax=ax, color="red"); -By default, the ``geocode`` function uses the +By default, the :func:`~geopandas.tools.geocode` function uses the `GeoCode.Farm geocoding API `__ with a rate limitation applied. But a different geocoding service can be specified with the ``provider`` keyword. The argument to ``provider`` can either be a string referencing geocoding services, such as ``'google'``, ``'bing'``, ``'yahoo'``, and -``'openmapquest'``, or an instance of a ``Geocoder`` from ``geopy``. See +``'openmapquest'``, or an instance of a :mod:`Geocoder ` from :mod:`geopy`. See ``geopy.geocoders.SERVICE_TO_GEOCODER`` for the full list. For many providers, parameters such as API keys need to be passed as -``**kwargs`` in the ``geocode`` call. +``**kwargs`` in the :func:`~geopandas.tools.geocode` call. For example, to use the OpenStreetMap Nominatim geocoder, you need to specify a user agent: diff --git a/doc/source/docs/user_guide/geometric_manipulations.rst b/doc/source/docs/user_guide/geometric_manipulations.rst index 3d51f8f..525833b 100644 --- a/doc/source/docs/user_guide/geometric_manipulations.rst +++ b/doc/source/docs/user_guide/geometric_manipulations.rst @@ -12,39 +12,39 @@ Constructive Methods .. method:: GeoSeries.buffer(distance, resolution=16) - Returns a ``GeoSeries`` of geometries representing all points within a given `distance` + Returns a :class:`~geopandas.GeoSeries` of geometries representing all points within a given `distance` of each geometric object. .. attribute:: GeoSeries.boundary - Returns a ``GeoSeries`` of lower dimensional objects representing + Returns a :class:`~geopandas.GeoSeries` of lower dimensional objects representing each geometries's set-theoretic `boundary`. .. attribute:: GeoSeries.centroid - Returns a ``GeoSeries`` of points for each geometric centroid. + Returns a :class:`~geopandas.GeoSeries` of points for each geometric centroid. .. attribute:: GeoSeries.convex_hull - Returns a ``GeoSeries`` of geometries representing the smallest + Returns a :class:`~geopandas.GeoSeries` of geometries representing the smallest convex `Polygon` containing all the points in each object unless the number of points in the object is less than three. For two points, the convex hull collapses to a `LineString`; for 1, a `Point`. .. attribute:: GeoSeries.envelope - Returns a ``GeoSeries`` of geometries representing the point or + Returns a :class:`~geopandas.GeoSeries` of geometries representing the point or smallest rectangular polygon (with sides parallel to the coordinate axes) that contains each object. .. method:: GeoSeries.simplify(tolerance, preserve_topology=True) - Returns a ``GeoSeries`` containing a simplified representation of + Returns a :class:`~geopandas.GeoSeries` containing a simplified representation of each object. .. attribute:: GeoSeries.unary_union - Return a geometry containing the union of all geometries in the ``GeoSeries``. + Return a geometry containing the union of all geometries in the :class:`~geopandas.GeoSeries`. Affine transformations @@ -52,23 +52,23 @@ Affine transformations .. method:: GeoSeries.affine_transform(self, matrix) - Transform the geometries of the GeoSeries using an affine transformation matrix + Transform the geometries of the :class:`~geopandas.GeoSeries` using an affine transformation matrix .. method:: GeoSeries.rotate(self, angle, origin='center', use_radians=False) - Rotate the coordinates of the GeoSeries. + Rotate the coordinates of the :class:`~geopandas.GeoSeries`. .. method:: GeoSeries.scale(self, xfact=1.0, yfact=1.0, zfact=1.0, origin='center') - Scale the geometries of the GeoSeries along each (x, y, z) dimensio. + Scale the geometries of the :class:`~geopandas.GeoSeries` along each (x, y, z) dimensio. .. method:: GeoSeries.skew(self, angle, origin='center', use_radians=False) - Shear/Skew the geometries of the GeoSeries by angles along x and y dimensions. + Shear/Skew the geometries of the :class:`~geopandas.GeoSeries` by angles along x and y dimensions. .. method:: GeoSeries.translate(self, xoff=0.0, yoff=0.0, zoff=0.0) - Shift the coordinates of the GeoSeries. + Shift the coordinates of the :class:`~geopandas.GeoSeries`. @@ -92,7 +92,7 @@ Examples of Geometric Manipulations .. image:: ../../_static/test.png -Some geographic operations return normal pandas object. The ``area`` property of a ``GeoSeries`` will return a ``pandas.Series`` containing the area of each item in the ``GeoSeries``: +Some geographic operations return normal pandas object. The :attr:`~geopandas.GeoSeries.area` property of a :class:`~geopandas.GeoSeries` will return a :class:`pandas.Series` containing the area of each item in the :class:`~geopandas.GeoSeries`: .. sourcecode:: python @@ -161,7 +161,7 @@ GeoPandas also implements alternate constructors that can read any data format r .. image:: ../../_static/nyc_hull.png To demonstrate a more complex operation, we'll generate a -``GeoSeries`` containing 2000 random points: +:class:`~geopandas.GeoSeries` containing 2000 random points: .. sourcecode:: python @@ -178,7 +178,7 @@ Now draw a circle with fixed radius around each point: >>> circles = pts.buffer(2000) -We can collapse these circles into a single shapely MultiPolygon +We can collapse these circles into a single :class:`MultiPolygon` geometry with .. sourcecode:: python @@ -203,8 +203,8 @@ and to get the area outside of the holes: .. image:: ../../_static/boros_with_holes.png Note that this can be simplified a bit, since ``geometry`` is -available as an attribute on a ``GeoDataFrame``, and the -``intersection`` and ``difference`` methods are implemented with the +available as an attribute on a :class:`~geopandas.GeoDataFrame`, and the +:meth:`~geopandas.GeoSeries.intersection` and :meth:`~geopandas.GeoSeries.difference` methods are implemented with the "&" and "-" operators, respectively. For example, the latter could have been expressed simply as ``boros.geometry - mp``. diff --git a/doc/source/docs/user_guide/indexing.rst b/doc/source/docs/user_guide/indexing.rst index bb9f90a..971e501 100644 --- a/doc/source/docs/user_guide/indexing.rst +++ b/doc/source/docs/user_guide/indexing.rst @@ -9,13 +9,13 @@ Indexing and Selecting Data =========================== -GeoPandas inherits the standard ``pandas`` methods for indexing/selecting data. This includes label based indexing with ``.loc`` and integer position based indexing with ``.iloc``, which apply to both ``GeoSeries`` and ``GeoDataFrame`` objects. For more information on indexing/selecting, see the pandas_ documentation. +GeoPandas inherits the standard pandas_ methods for indexing/selecting data. This includes label based indexing with :attr:`~pandas.DataFrame.loc` and integer position based indexing with :attr:`~pandas.DataFrame.iloc`, which apply to both :class:`GeoSeries` and :class:`GeoDataFrame` objects. For more information on indexing/selecting, see the pandas_ documentation. .. _pandas: http://pandas.pydata.org/pandas-docs/stable/indexing.html -In addition to the standard ``pandas`` methods, GeoPandas also provides -coordinate based indexing with the ``cx`` indexer, which slices using a bounding -box. Geometries in the ``GeoSeries`` or ``GeoDataFrame`` that intersect the +In addition to the standard pandas_ methods, GeoPandas also provides +coordinate based indexing with the :attr:`~GeoDataFrame.cx` indexer, which slices using a bounding +box. Geometries in the :class:`GeoSeries` or :class:`GeoDataFrame` that intersect the bounding box will be returned. Using the ``world`` dataset, we can use this functionality to quickly select all @@ -27,4 +27,3 @@ countries whose boundaries extend into the southern hemisphere. southern_world = world.cx[:, :0] @savefig world_southern.png southern_world.plot(figsize=(10, 3)); - diff --git a/doc/source/docs/user_guide/io.rst b/doc/source/docs/user_guide/io.rst index b5826b3..5d4ee9e 100644 --- a/doc/source/docs/user_guide/io.rst +++ b/doc/source/docs/user_guide/io.rst @@ -18,7 +18,7 @@ library, which in turn makes use of a massive open-source program called transformations. Any arguments passed to :func:`geopandas.read_file` after the file name will be -passed directly to ``fiona.open``, which does the actual data importation. In +passed directly to :func:`fiona.open`, which does the actual data importation. In general, :func:`geopandas.read_file` is pretty smart and should do what you want without extra arguments, but for more help, type:: @@ -30,7 +30,7 @@ the ``layer`` keyword:: countries_gdf = geopandas.read_file("package.gpkg", layer='countries') -Where supported in ``fiona``, *geopandas* can also load resources directly from +Where supported in :mod:`fiona`, *geopandas* can also load resources directly from a web URL, for example for GeoJSON files from `geojson.xyz `_:: url = "http://d2ad6b4ur7yvpq.cloudfront.net/naturalearth-3.3.0/ne_110m_land.geojson" @@ -50,8 +50,8 @@ specify the filename:: zipfile = "zip:///Users/name/Downloads/gadm36_AFG_shp.zip!data/gadm36_AFG_1.shp" -It is also possible to read any file-like objects with a ``read()`` method, such -as a file handler (e.g. via built-in ``open`` function) or ``StringIO``:: +It is also possible to read any file-like objects with a :func:`os.read` method, such +as a file handler (e.g. via built-in :func:`open` function) or :class:`~io.StringIO`:: filename = "test.geojson" file = open(filename) diff --git a/doc/source/docs/user_guide/mapping.rst b/doc/source/docs/user_guide/mapping.rst index cede0c6..bb575e8 100644 --- a/doc/source/docs/user_guide/mapping.rst +++ b/doc/source/docs/user_guide/mapping.rst @@ -15,7 +15,9 @@ Mapping and Plotting Tools ========================================= -*geopandas* provides a high-level interface to the ``matplotlib`` library for making maps. Mapping shapes is as easy as using the ``plot()`` method on a ``GeoSeries`` or ``GeoDataFrame``. +*geopandas* provides a high-level interface to the matplotlib_ library for making maps. Mapping shapes is as easy as using the :meth:`~GeoDataFrame.plot()` method on a :class:`GeoSeries` or :class:`GeoDataFrame`. + +.. _matplotlib: https://matplotlib.org/stable/ Loading some example data: @@ -35,7 +37,7 @@ We can now plot those GeoDataFrames: @savefig world_randomcolors.png world.plot(); -Note that in general, any options one can pass to `pyplot `_ in ``matplotlib`` (or `style options that work for lines `_) can be passed to the ``plot()`` method. +Note that in general, any options one can pass to `pyplot `_ in matplotlib_ (or `style options that work for lines `_) can be passed to the :meth:`~GeoDataFrame.plot` method. Choropleth Maps @@ -65,7 +67,7 @@ When plotting a map, one can enable a legend using the ``legend`` argument: @savefig world_pop_est.png world.plot(column='pop_est', ax=ax, legend=True) -However, the default appearance of the legend and plot axes may not be desirable. One can define the plot axes (with ``ax``) and the legend axes (with ``cax``) and then pass those in to the ``plot`` call. The following example uses ``mpl_toolkits`` to vertically align the plot axes and the legend axes: +However, the default appearance of the legend and plot axes may not be desirable. One can define the plot axes (with ``ax``) and the legend axes (with ``cax``) and then pass those in to the :meth:`~GeoDataFrame.plot` call. The following example uses ``mpl_toolkits`` to vertically align the plot axes and the legend axes: .. ipython:: python @@ -96,7 +98,7 @@ And the following example plots the color bar below the map and adds its label u Choosing colors ~~~~~~~~~~~~~~~~ -One can also modify the colors used by ``plot`` with the ``cmap`` option (for a full list of colormaps, see the `matplotlib website `_): +One can also modify the colors used by :meth:`~GeoDataFrame.plot` with the ``cmap`` option (for a full list of colormaps, see the `matplotlib website `_): .. ipython:: python diff --git a/doc/source/docs/user_guide/mergingdata.rst b/doc/source/docs/user_guide/mergingdata.rst index a90e3e2..6edc2d7 100644 --- a/doc/source/docs/user_guide/mergingdata.rst +++ b/doc/source/docs/user_guide/mergingdata.rst @@ -11,11 +11,11 @@ Merging Data There are two ways to combine datasets in *geopandas* -- attribute joins and spatial joins. -In an attribute join, a :py:class:`GeoSeries` or :py:class:`GeoDataFrame` is -combined with a regular :py:class:`pandas.Series` or :py:class:`pandas.DataFrame` based on a +In an attribute join, a :class:`GeoSeries` or :class:`GeoDataFrame` is +combined with a regular :class:`pandas.Series` or :class:`pandas.DataFrame` based on a common variable. This is analogous to normal merging or joining in *pandas*. -In a Spatial Join, observations from two :py:class:`GeoSeries` or :py:class:`GeoDataFrame` +In a Spatial Join, observations from two :class:`GeoSeries` or :class:`GeoDataFrame` are combined based on their spatial relationship to one another. In the following examples, we use these datasets: @@ -37,7 +37,7 @@ In the following examples, we use these datasets: Appending --------- -Appending :py:class:`GeoDataFrame` and :py:class:`GeoSeries` uses pandas ``append`` methods. +Appending :class:`GeoDataFrame` and :class:`GeoSeries` uses pandas :meth:`~pandas.DataFrame.append` methods. Keep in mind, that appended geometry columns needs to have the same CRS. .. ipython:: python @@ -54,14 +54,14 @@ Keep in mind, that appended geometry columns needs to have the same CRS. Attribute Joins ---------------- -Attribute joins are accomplished using the ``merge`` method. In general, it is recommended -to use the ``merge`` method called from the spatial dataset. With that said, the stand-alone -``merge`` function will work if the :py:class:`GeoDataFrame` is in the ``left`` argument; -if a :py:class:`pandas.DataFrame` is in the ``left`` argument and a :py:class:`GeoDataFrame` -is in the ``right`` position, the result will no longer be a :py:class:`GeoDataFrame`. +Attribute joins are accomplished using the :meth:`~pandas.DataFrame.merge` method. In general, it is recommended +to use the ``merge()`` method called from the spatial dataset. With that said, the stand-alone +:func:`pandas.merge` function will work if the :class:`GeoDataFrame` is in the ``left`` argument; +if a :class:`~pandas.DataFrame` is in the ``left`` argument and a :class:`GeoDataFrame` +is in the ``right`` position, the result will no longer be a :class:`GeoDataFrame`. -For example, consider the following merge that adds full names to a :py:class:`GeoDataFrame` -that initially has only ISO codes for each country by merging it with a :py:class:`pandas.DataFrame`. +For example, consider the following merge that adds full names to a :class:`GeoDataFrame` +that initially has only ISO codes for each country by merging it with a :class:`~pandas.DataFrame`. .. ipython:: python @@ -98,7 +98,7 @@ In a Spatial Join, two geometry objects are merged based on their spatial relati Sjoin Arguments ~~~~~~~~~~~~~~~~ -:py:class:`sjoin` has two core arguments: ``how`` and ``op``. +:func:`sjoin` has two core arguments: ``how`` and ``op``. **op** @@ -122,13 +122,13 @@ defined in the **how** The `how` argument specifies the type of join that will occur and which geometry is retained in the resultant -:py:class:`GeoDataFrame`. It accepts the following options: +:class:`GeoDataFrame`. It accepts the following options: -* ``left``: use the index from the first (or `left_df`) :py:class:`GeoDataFrame` that you provide - to ``sjoin``; retain only the `left_df` geometry column +* ``left``: use the index from the first (or `left_df`) :class:`GeoDataFrame` that you provide + to :func:`sjoin`; retain only the `left_df` geometry column * ``right``: use index from second (or `right_df`); retain only the `right_df` geometry column -* ``inner``: use intersection of index values from both :py:class:`GeoDataFrame`; retain only the `left_df` geometry column +* ``inner``: use intersection of index values from both :class:`GeoDataFrame`; retain only the `left_df` geometry column Note more complicated spatial relationships can be studied by combining geometric operations with spatial join. -To find all polygons within a given distance of a point, for example, one can first use the ``buffer`` method to expand each +To find all polygons within a given distance of a point, for example, one can first use the :meth:`~geopandas.GeoSeries.buffer` method to expand each point into a circle of appropriate radius, then intersect those buffered circles with the polygons in question. diff --git a/doc/source/docs/user_guide/missing_empty.rst b/doc/source/docs/user_guide/missing_empty.rst index 39905d0..84f6813 100644 --- a/doc/source/docs/user_guide/missing_empty.rst +++ b/doc/source/docs/user_guide/missing_empty.rst @@ -22,7 +22,7 @@ empty geometries: a Shapely geometry object. - **Missing geometries** are unknown values in a GeoSeries. They will typically be propagated in operations (for example in calculations of the area or of - the intersection), or ignored in reductions such as ``unary_union``. + the intersection), or ignored in reductions such as :attr:`~GeoSeries.unary_union`. The scalar object (when accessing a single element of a GeoSeries) is the Python ``None`` object. diff --git a/doc/source/docs/user_guide/projections.rst b/doc/source/docs/user_guide/projections.rst index 4eb1530..b3f4c32 100644 --- a/doc/source/docs/user_guide/projections.rst +++ b/doc/source/docs/user_guide/projections.rst @@ -30,7 +30,7 @@ referred to using the authority code ``"EPSG:4326"``. - CRS WKT string - An authority string (i.e. "epsg:4326") - An EPSG integer code (i.e. 4326) -- A ``pyproj.CRS`` +- A :class:`pyproj.CRS ` - An object with a to_wkt method. - PROJ string - Dictionary of PROJ parameters @@ -145,7 +145,7 @@ Upgrading to GeoPandas 0.7 with pyproj > 2.2 and PROJ > 6 --------------------------------------------------------- Starting with GeoPandas 0.7, the `.crs` attribute of a GeoSeries or GeoDataFrame -stores the CRS information as a ``pyproj.CRS``, and no longer as a proj4 string +stores the CRS information as a :class:`pyproj.CRS `, and no longer as a proj4 string or dict. Before, you might have seen this: @@ -176,7 +176,7 @@ for some more background, and the subsections below cover different possible migration issues. See the `pyproj docs `__ for more on -the ``pyproj.CRS`` object. +the :class:`pyproj.CRS ` object. Importing data from files ^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -267,11 +267,11 @@ including their EPSG codes and proj4 string definitions. **Other formats** Next to the EPSG code mentioned above, there are also other ways to specify the -CRS: an actual ``pyproj.CRS`` object, a WKT string, a PROJ JSON string, etc. -Anything that is accepted by ``pyproj.CRS.from_user_input`` can by specified +CRS: an actual :class:`pyproj.CRS ` object, a WKT string, a PROJ JSON string, etc. +Anything that is accepted by :meth:`pyproj.CRS.from_user_input() ` can by specified to the ``crs`` keyword/attribute in GeoPandas. -Also compatible CRS objects, such as from the ``rasterio`` package, can be +Also compatible CRS objects, such as from the :mod:`rasterio` package, can be passed directly to GeoPandas. @@ -306,7 +306,7 @@ Why is it not properly recognizing my CRS? There are many file sources and CRS definitions out there "in the wild" that might have a CRS description that does not fully conform to the new standards of PROJ > 6 (proj4 strings, older WKT formats, ...). In such cases, you will get a -``pyproj.CRS`` object that might not be fully what you expected (e.g. not equal +:class:`pyproj.CRS ` object that might not be fully what you expected (e.g. not equal to the expected EPSG code). Below we list a few possible cases. I get a "Bound CRS"? @@ -447,7 +447,7 @@ The ``.crs`` attribute is no longer a dict or string ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ If you relied on the ``.crs`` object being a dict or a string, such code can -be broken given it is now a ``pyproj.CRS`` object. But this object actually +be broken given it is now a :class:`pyproj.CRS ` object. But this object actually provides a more robust interface to get information about the CRS. For example, if you used the following code to get the EPSG code: @@ -457,7 +457,7 @@ For example, if you used the following code to get the EPSG code: gdf.crs['init'] This will no longer work. To get the EPSG code from a ``crs`` object, you can use -the ``to_epsg()`` method. +the :meth:`~pyproj.crs.CRS.to_epsg` method. Or to check if a CRS was a certain UTM zone: @@ -471,5 +471,5 @@ could be replaced with the more robust check (requires pyproj 2.6+): gdf.crs.utm_zone is not None -And there are many other methods available on the ``pyproj.CRS`` class to get +And there are many other methods available on the :class:`pyproj.CRS ` class to get information about the CRS. diff --git a/doc/source/docs/user_guide/set_operations.rst b/doc/source/docs/user_guide/set_operations.rst index bb01c87..0734dd7 100644 --- a/doc/source/docs/user_guide/set_operations.rst +++ b/doc/source/docs/user_guide/set_operations.rst @@ -14,22 +14,22 @@ When working with multiple spatial datasets -- especially multiple *polygon* or those datasets overlap (or don't overlap). These manipulations are often referred using the language of sets -- intersections, unions, and differences. These types of operations are made available in the *geopandas* library through -the ``overlay`` function. +the :func:`~geopandas.overlay` function. The basic idea is demonstrated by the graphic below but keep in mind that overlays operate at the DataFrame level, not on individual geometries, and the properties from both are retained. In effect, for every shape in the first -GeoDataFrame, this operation is executed against every other shape in the other -GeoDataFrame: +:class:`~geopandas.GeoDataFrame`, this operation is executed against every other shape in the other +:class:`~geopandas.GeoDataFrame`: .. image:: ../../_static/overlay_operations.png **Source: QGIS Documentation** -(Note to users familiar with the *shapely* library: ``overlay`` can be thought +(Note to users familiar with the *shapely* library: :func:`~geopandas.overlay` can be thought of as offering versions of the standard *shapely* set-operations that deal with the complexities of applying set operations to two *GeoSeries*. The standard -*shapely* set-operations are also available as ``GeoSeries`` methods.) +*shapely* set-operations are also available as :class:`~geopandas.GeoSeries` methods.) The different Overlay operations @@ -57,7 +57,7 @@ These two GeoDataFrames have some overlapping areas: df2.plot(ax=ax, color='green', alpha=0.5); We illustrate the different overlay modes with the above example. -The ``overlay`` function will determine the set of all individual geometries +The :func:`~geopandas.overlay` function will determine the set of all individual geometries from overlaying the two input GeoDataFrames. This result covers the area covered by the two input GeoDataFrames, and also preserves all unique regions defined by the combined boundaries of the two GeoDataFrames. @@ -146,7 +146,7 @@ First, we load the countries and cities example datasets and select : countries = countries.to_crs('epsg:3395') capitals = capitals.to_crs('epsg:3395') -To illustrate the ``overlay`` function, consider the following case in which one +To illustrate the :func:`~geopandas.overlay` function, consider the following case in which one wishes to identify the "core" portion of each country -- defined as areas within 500km of a capital -- using a ``GeoDataFrame`` of countries and a ``GeoDataFrame`` of capitals. @@ -194,7 +194,7 @@ Changing the "how" option allows for different types of overlay operations. For keep_geom_type keyword ---------------------- -In default settings, ``overlay`` returns only geometries of the same geometry type as df1 +In default settings, :func:`~geopandas.overlay` returns only geometries of the same geometry type as df1 (left one) has, where Polygon and MultiPolygon is considered as a same type (other types likewise). You can control this behavior using ``keep_geom_type`` option, which is set to True by default. Once set to False, ``overlay`` will return all geometry types resulting from @@ -205,7 +205,7 @@ where two polygons intersects in a line or a point. More Examples ------------- -A larger set of examples of the use of ``overlay`` can be found `here `_ +A larger set of examples of the use of :func:`~geopandas.overlay` can be found `here `_ From 8c87fd507b16d30043e7811bd8376edf028c1dfc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mesejo-Le=C3=B3n?= Date: Fri, 28 May 2021 12:25:24 +0200 Subject: [PATCH 164/316] BUG: preserve attrs in Dataframe.explode (#1875) (#1935) --- geopandas/geodataframe.py | 3 ++- geopandas/tests/test_pandas_methods.py | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/geopandas/geodataframe.py b/geopandas/geodataframe.py index 505dc40..2ff7acc 100644 --- a/geopandas/geodataframe.py +++ b/geopandas/geodataframe.py @@ -1584,7 +1584,8 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} df = pd.concat( [df_copy.drop(df_copy._geometry_column_name, axis=1), exploded_geom], axis=1 - ) + ).__finalize__(self) + # reset to MultiIndex, otherwise df index is only first level of # exploded GeoSeries index. df.set_index(exploded_index, append=True, inplace=True) diff --git a/geopandas/tests/test_pandas_methods.py b/geopandas/tests/test_pandas_methods.py index 38dd6eb..2aba429 100644 --- a/geopandas/tests/test_pandas_methods.py +++ b/geopandas/tests/test_pandas_methods.py @@ -558,6 +558,10 @@ def test_preserve_attrs(df): df2 = df.reset_index() assert df2.attrs == attrs + # https://github.com/geopandas/geopandas/issues/1875 + df3 = df2.explode() + assert df3.attrs == attrs + @pytest.mark.skipif(not compat.PANDAS_GE_12, reason="attrs introduced in pandas 1.0") def test_preserve_flags(df): From 813ad3dc1a19103c3fef43e7e59018aa70d15ce5 Mon Sep 17 00:00:00 2001 From: Andreas Eliasson Date: Fri, 28 May 2021 12:59:19 +0200 Subject: [PATCH 165/316] DOC: revise plotting with folium example (#1916) * DOC: revise plotting with folium example * DOC: edit example description * Revert "DOC: revise plotting with folium example" This reverts commit 58ad279dbc9d0030550566b27035b5e783a9291f. * DOC: revise plotting with folium example This commit also include feedback actions. --- doc/source/gallery/plotting_with_folium.ipynb | 68 ++++++++++--------- 1 file changed, 36 insertions(+), 32 deletions(-) diff --git a/doc/source/gallery/plotting_with_folium.ipynb b/doc/source/gallery/plotting_with_folium.ipynb index 99644f8..e01574f 100644 --- a/doc/source/gallery/plotting_with_folium.ipynb +++ b/doc/source/gallery/plotting_with_folium.ipynb @@ -4,15 +4,21 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Plotting with folium\n", + "# Plotting with Folium\n", "\n", "__What is Folium?__\n", "\n", - "It builds on the data wrangling and a Python wrapper for leaflet.js. It makes it easy to visualize data in Python with minimal instructions.\n", + "[Folium](https://python-visualization.github.io/folium/) builds on the data wrangling strengths of the Python ecosystem and the mapping strengths of the leaflet.js library. This allows you to manipulate your data in Geopandas and visualize it on a Leaflet map via Folium.\n", "\n", - "Folium expands on the data wrangling properties utilized in Python language and the mapping characteristics of the Leaflet.js library. Folium enables us to make an intuitive map and are is visualized in a Leaflet map after manipulating data in Python. Folium results are intuitive which makes this library helpful for dashboard building and easier to work with.\n", - "\n", - "Let's see the implementation of both GeoPandas and Folium:" + "In this example, we will first use Geopandas to load the geometries (volcano point data), and then create the Folium map with markers representing the different types of volcanoes." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Load geometries\n", + "This example uses a freely available [volcano dataset](https://www.kaggle.com/texasdave/volcano-eruptions). We will be reading the csv file using pandas, and then convert the pandas `DataFrame` to a Geopandas `GeoDataFrame`." ] }, { @@ -21,13 +27,11 @@ "metadata": {}, "outputs": [], "source": [ - "# Importing Libraries\n", + "# Import Libraries\n", "import pandas as pd\n", "import geopandas\n", "import folium\n", - "import matplotlib.pyplot as plt\n", - "\n", - "from shapely.geometry import Point" + "import matplotlib.pyplot as plt" ] }, { @@ -37,6 +41,8 @@ "outputs": [], "source": [ "df1 = pd.read_csv('volcano_data_2010.csv')\n", + "\n", + "# Keep only relevant columns\n", "df = df1.loc[:, (\"Year\", \"Name\", \"Country\", \"Latitude\", \"Longitude\", \"Type\")]\n", "df.info()" ] @@ -47,6 +53,7 @@ "metadata": {}, "outputs": [], "source": [ + "# Create point geometries\n", "geometry = geopandas.points_from_xy(df.Longitude, df.Latitude)\n", "geo_df = geopandas.GeoDataFrame(df[['Year','Name','Country', 'Latitude', 'Longitude', 'Type']], geometry=geometry)\n", "\n", @@ -83,8 +90,8 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We will be using different icons to differentiate the types of Volcanoes using Folium.\n", - "But before we start, we can see a few different tiles to choose from folium." + "## Create Folium map\n", + "Folium has a number of built-in tilesets from OpenStreetMap, Mapbox, and Stamen. For example:" ] }, { @@ -124,10 +131,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We can use other tiles for the visualization, these are just a few examples.\n", - "\n", - "### Markers\n", - "Now, let's look at different volcanoes on the map using different Markers to represent the volcanoes." + "This example uses the Stamen Terrain map layer to visualize the volcano terrain." ] }, { @@ -136,21 +140,28 @@ "metadata": {}, "outputs": [], "source": [ - "#use terrain map layer to actually see volcano terrain\n", + "# Use terrain map layer to see volcano terrain\n", "map = folium.Map(location = [4,10], tiles = \"Stamen Terrain\", zoom_start = 3)" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Add markers\n", + "To represent the different types of volcanoes, you can create Folium markers and add them to your map." + ] + }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ - "# insert multiple markers, iterate through list\n", - "# add a different color marker associated with type of volcano\n", - "\n", + "# Create a geometry list from the GeoDataFrame\n", "geo_df_list = [[point.xy[1][0], point.xy[0][0]] for point in geo_df.geometry ]\n", "\n", + "# Iterate through list and add a marker for each volcano, color-coded by its type.\n", "i = 0\n", "for coordinates in geo_df_list:\n", " #assign a color marker for the type of volcano, Strato being the most common\n", @@ -166,7 +177,7 @@ " type_color = \"purple\"\n", "\n", "\n", - " #now place the markers with the popup labels and data\n", + " # Place the markers with the popup labels and data\n", " map.add_child(folium.Marker(location = coordinates,\n", " popup =\n", " \"Year: \" + str(geo_df.Year[i]) + '
' +\n", @@ -191,9 +202,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Heatmaps\n", + "## Folium Heatmaps\n", "\n", - "Folium is well known for it's heatmap which create a heatmap layer. To plot a heat map in folium, one needs a list of Latitude, Longitude." + "Folium is well known for its heatmaps, which create a heatmap layer. To plot a heatmap in Folium, you need a list of latitudes and longitudes." ] }, { @@ -202,8 +213,8 @@ "metadata": {}, "outputs": [], "source": [ - "# In this example, with the hep of heat maps, we are able to perceive the density of volcanoes\n", - "# which is more in some part of the world compared to others.\n", + "# This example uses heatmaps to visualize the density of volcanoes\n", + "# which is more in some parts of the world compared to others.\n", "\n", "from folium import plugins\n", "\n", @@ -216,13 +227,6 @@ "\n", "map" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { @@ -241,7 +245,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.6" + "version": "3.9.1" } }, "nbformat": 4, From 521c72d6f12604f867ed6b4191ce44cac0e03f39 Mon Sep 17 00:00:00 2001 From: Andreas Eliasson Date: Fri, 28 May 2021 13:49:26 +0200 Subject: [PATCH 166/316] DOC: revise plotting polygons with folium gallery example (#1941) --- .../polygon_plotting_with_folium.ipynb | 79 +++++++++++++------ 1 file changed, 56 insertions(+), 23 deletions(-) diff --git a/doc/source/gallery/polygon_plotting_with_folium.ipynb b/doc/source/gallery/polygon_plotting_with_folium.ipynb index 50cdc94..8ed70cb 100644 --- a/doc/source/gallery/polygon_plotting_with_folium.ipynb +++ b/doc/source/gallery/polygon_plotting_with_folium.ipynb @@ -4,8 +4,8 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# An example of polygon plotting with folium \n", - "We are going to demonstrate polygon plotting in this example with the help of folium" + "# Plotting polygons with Folium\n", + "This example demonstrates how to plot polygons on a Folium map." ] }, { @@ -23,7 +23,8 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We make use of nybb dataset" + "## Load geometries\n", + "This example uses the nybb dataset, which contains polygons of New York boroughs." ] }, { @@ -62,7 +63,8 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "One thing to notice is that the values of the geometry do not directly represent the values of latitude of longitude in geographic coordinate system\n" + "Notice that the values of the polygon geometries do not directly represent the values of latitude of longitude in a geographic coordinate system.\n", + "To view the coordinate reference system of the geometry column, access the `crs` attribute:" ] }, { @@ -71,14 +73,15 @@ "metadata": {}, "outputs": [], "source": [ - "print(df.crs)" + "df.crs" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "As folium(i.e. leaflet.js) by default takes input of values of latitude and longitude, we need to project the geometry first" + "The [epsg:2263](https://epsg.io/2263) crs is a projected coordinate refererence system with linear units (ft in this case).\n", + "As folium (i.e. leaflet.js) by default accepts values of latitude and longitude (angular units) as input, we need to project the geometry to a geographic coordinate system first." ] }, { @@ -87,6 +90,7 @@ "metadata": {}, "outputs": [], "source": [ + "# Use WGS 84 (epsg:4326) as the geographic coordinate system\n", "df = df.to_crs(epsg=4326)\n", "print(df.crs)\n", "df.head()" @@ -106,7 +110,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Initialize folium map object" + "## Create Folium map" ] }, { @@ -123,7 +127,8 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Overlay the boundaries of boroughs on map with borough name as popup" + "### Add polygons to map\n", + "Overlay the boundaries of boroughs on map with borough name as popup:" ] }, { @@ -133,8 +138,8 @@ "outputs": [], "source": [ "for _, r in df.iterrows():\n", - " #without simplifying the representation of each borough, the map might not be displayed \n", - " #sim_geo = gpd.GeoSeries(r['geometry'])\n", + " # Without simplifying the representation of each borough,\n", + " # the map might not be displayed \n", " sim_geo = gpd.GeoSeries(r['geometry']).simplify(tolerance=0.001)\n", " geo_j = sim_geo.to_json()\n", " geo_j = folium.GeoJson(data=geo_j,\n", @@ -148,7 +153,8 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Add marker showing the area and length of each borough" + "### Add centroid markers\n", + "In order to properly compute geometric properties, in this case centroids, of the geometries, we need to project the data to a projected coordinate system." ] }, { @@ -157,8 +163,34 @@ "metadata": {}, "outputs": [], "source": [ - "df['lat'] = df.centroid.y\n", - "df['lon'] = df.centroid.x\n", + "# Project to NAD83 projected crs\n", + "df = df.to_crs(epsg=2263)\n", + "\n", + "# Access the centroid attribute of each polygon\n", + "df['centroid'] = df.centroid" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Since we're again adding a new geometry to the Folium map, we need to project the geometry back to a geographic coordinate system with latitude and longitude values." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Project to WGS84 geographic crs\n", + "\n", + "# geometry (active) column\n", + "df = df.to_crs(epsg=4326)\n", + "\n", + "# Centroid column\n", + "df['centroid'] = df['centroid'].to_crs(epsg=4326)\n", + "\n", "df.head()" ] }, @@ -169,20 +201,21 @@ "outputs": [], "source": [ "for _, r in df.iterrows():\n", - " folium.Marker(location=[r['lat'], r['lon']], popup='length: {}
area: {}'.format(r['Shape_Leng'], r['Shape_Area'])).add_to(m)\n", - " \n", + " lat = r['centroid'].y\n", + " lon = r['centroid'].x\n", + " folium.Marker(location=[lat, lon],\n", + " popup='length: {}
area: {}'.format(r['Shape_Leng'], r['Shape_Area'])).add_to(m)\n", + "\n", "m" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, "language_info": { "codemirror_mode": { "name": "ipython", @@ -193,7 +226,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.5" + "version": "3.9.1" } }, "nbformat": 4, From b154d137da8fb23c4b58fa0c785e8bb94a59c1dc Mon Sep 17 00:00:00 2001 From: Imanol Date: Fri, 28 May 2021 17:27:50 +0200 Subject: [PATCH 167/316] ENH: Add bounds checks to sjoin, overlay (#1851) * ENH: Add bounds checks to sjoin, overlay (#1708) * fix sjoin and add test that checks for the bug. * add test in overlay to check for duplicated columns * linting * fix overlay and test so it does not return duplicated columns * Update geopandas/tools/overlay.py Co-authored-by: Martin Fleischmann * remove unnecessary param Co-authored-by: ImanolUr Co-authored-by: Martin Fleischmann --- geopandas/tests/test_overlay.py | 12 ++++++++++++ geopandas/tools/overlay.py | 18 ++++++++++++++++++ geopandas/tools/sjoin.py | 20 ++++++++++++++++++++ geopandas/tools/tests/test_sjoin.py | 11 +++++++++++ 4 files changed, 61 insertions(+) diff --git a/geopandas/tests/test_overlay.py b/geopandas/tests/test_overlay.py index f0c095a..e4c9eab 100644 --- a/geopandas/tests/test_overlay.py +++ b/geopandas/tests/test_overlay.py @@ -592,3 +592,15 @@ def test_overlap_make_valid(make_valid): else: with pytest.raises(ValueError, match="1 invalid input geometries"): overlay(df1, df_bowtie, make_valid=make_valid) + + +def test_empty_overlay_return_non_duplicated_columns(): + + nybb = geopandas.read_file(geopandas.datasets.get_path("nybb")) + nybb2 = nybb.copy() + nybb2.geometry = nybb2.translate(20000000) + + result = geopandas.overlay(nybb, nybb2) + + assert all(result.columns.isin(nybb.columns)) + assert len(result.columns) == len(nybb.columns) diff --git a/geopandas/tools/overlay.py b/geopandas/tools/overlay.py index 5b95c92..52f2296 100644 --- a/geopandas/tools/overlay.py +++ b/geopandas/tools/overlay.py @@ -264,6 +264,24 @@ def overlay(df1, df2, how="intersection", keep_geom_type=None, make_valid=True): "df{} contains mixed geometry types.".format(i + 1) ) + box_gdf1 = df1.total_bounds + box_gdf2 = df2.total_bounds + + if not ( + ((box_gdf1[0] <= box_gdf2[2]) and (box_gdf2[0] <= box_gdf1[2])) + and ((box_gdf1[1] <= box_gdf2[3]) and (box_gdf2[1] <= box_gdf1[3])) + ): + return GeoDataFrame( + [], + columns=list( + set( + df1.drop(df1.geometry.name, axis=1).columns.to_list() + + df2.drop(df2.geometry.name, axis=1).columns.to_list() + ) + ) + + ["geometry"], + ) + # Computations def _make_valid(df): df = df.copy() diff --git a/geopandas/tools/sjoin.py b/geopandas/tools/sjoin.py index 8e2aea6..da5b94c 100644 --- a/geopandas/tools/sjoin.py +++ b/geopandas/tools/sjoin.py @@ -86,6 +86,26 @@ stria AUT 416600.0 """ _basic_checks(left_df, right_df, how, lsuffix, rsuffix) + box_left_gdf = left_df.total_bounds + box_right_gdf = right_df.total_bounds + + if not ( + ( + (box_left_gdf[0] <= box_right_gdf[2]) + and (box_right_gdf[0] <= box_left_gdf[2]) + ) + and ( + (box_left_gdf[1] <= box_right_gdf[3]) + and (box_right_gdf[1] <= box_left_gdf[3]) + ) + ): + copy_df = left_df.copy() + copy_df["index_left"] = 0 + copy_df["index_right"] = 0 + indices = pd.DataFrame(columns=["_key_left", "_key_right"], dtype=float) + copy_df = _frame_join(indices, left_df, right_df, how, lsuffix, rsuffix) + return copy_df.iloc[:0] + indices = _geom_predicate_query(left_df, right_df, op) joined = _frame_join(indices, left_df, right_df, how, lsuffix, rsuffix) diff --git a/geopandas/tools/tests/test_sjoin.py b/geopandas/tools/tests/test_sjoin.py index e8d822e..107d270 100644 --- a/geopandas/tools/tests/test_sjoin.py +++ b/geopandas/tools/tests/test_sjoin.py @@ -472,6 +472,17 @@ class TestSpatialJoinNYBB: assert sjoin(empty, self.pointdf, how="inner", op=op).empty assert sjoin(empty, self.pointdf, how="left", op=op).empty + def test_empty_sjoin_return_duplicated_columns(self): + + nybb = geopandas.read_file(geopandas.datasets.get_path("nybb")) + nybb2 = nybb.copy() + nybb2.geometry = nybb2.translate(200000) # to get non-overlapping + + result = geopandas.sjoin(nybb, nybb2) + + assert "BoroCode_right" in result.columns + assert "BoroCode_left" in result.columns + class TestSpatialJoinNaturalEarth: def setup_method(self): From c404bbbf77839eb0b3ad7468aa4fc5ae056a9b15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mesejo-Le=C3=B3n?= Date: Fri, 28 May 2021 17:31:52 +0200 Subject: [PATCH 168/316] BUG: fix GeoDataFrame.explode with MultiIndex (#1937) (#1945) * BUG: fix GeoDataFrame.explode with MultiIndex (#1937) * use simple function to flatten values --- geopandas/geodataframe.py | 8 ++++--- geopandas/geoseries.py | 14 ++++++++--- geopandas/tests/test_geom_methods.py | 35 ++++++++++++++++++++++++++++ 3 files changed, 51 insertions(+), 6 deletions(-) diff --git a/geopandas/geodataframe.py b/geopandas/geodataframe.py index 2ff7acc..93c5fdd 100644 --- a/geopandas/geodataframe.py +++ b/geopandas/geodataframe.py @@ -1582,9 +1582,11 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} exploded_geom = df_copy.geometry.explode().reset_index(level=-1) exploded_index = exploded_geom.columns[0] - df = pd.concat( - [df_copy.drop(df_copy._geometry_column_name, axis=1), exploded_geom], axis=1 - ).__finalize__(self) + df = ( + df_copy.drop(df_copy._geometry_column_name, axis=1) + .join(exploded_geom) + .__finalize__(self) + ) # reset to MultiIndex, otherwise df index is only first level of # exploded GeoSeries index. diff --git a/geopandas/geoseries.py b/geopandas/geoseries.py index c60d1c8..070a1df 100644 --- a/geopandas/geoseries.py +++ b/geopandas/geoseries.py @@ -830,10 +830,13 @@ class GeoSeries(GeoPandasBase, Series): # extract original index values based on integer index outer_index = self.index.take(outer_idx) - index = MultiIndex.from_arrays( - [outer_index, inner_index], names=self.index.names + [None] - ) + index = zip(outer_index, inner_index) + # if self.index is a MultiIndex then index is a list of nested tuples + if isinstance(self.index, MultiIndex): + index = [tuple(outer) + (inner,) for outer, inner in index] + + index = MultiIndex.from_tuples(index, names=self.index.names + [None]) return GeoSeries(geometries, index=index, crs=self.crs).__finalize__(self) # else PyGEOS is not available or version <= 0.8 @@ -849,6 +852,11 @@ class GeoSeries(GeoPandasBase, Series): idxs = [(idx, 0)] index.extend(idxs) geometries.extend(geoms) + + # if self.index is a MultiIndex then index is a list of nested tuples + if isinstance(self.index, MultiIndex): + index = [tuple(outer) + (inner,) for outer, inner in index] + index = MultiIndex.from_tuples(index, names=self.index.names + [None]) return GeoSeries(geometries, index=index, crs=self.crs).__finalize__(self) diff --git a/geopandas/tests/test_geom_methods.py b/geopandas/tests/test_geom_methods.py index d4a86a6..8103d38 100644 --- a/geopandas/tests/test_geom_methods.py +++ b/geopandas/tests/test_geom_methods.py @@ -941,6 +941,41 @@ class TestGeomMethods: exploded_df = gdf.explode(column="col1", ignore_index=True) assert_geodataframe_equal(exploded_df, expected_df) + @pytest.mark.parametrize("outer_index", [1, (1, 2), "1"]) + def test_explode_pandas_multi_index(self, outer_index): + index = MultiIndex.from_arrays( + [[outer_index, outer_index, outer_index], [1, 2, 3]], + names=("first", "second"), + ) + df = GeoDataFrame( + {"vals": [1, 2, 3]}, + geometry=[MultiPoint([(x, x), (x, 0)]) for x in range(3)], + index=index, + ) + + test_df = df.explode() + + expected_s = GeoSeries( + [ + Point(0, 0), + Point(0, 0), + Point(1, 1), + Point(1, 0), + Point(2, 2), + Point(2, 0), + ] + ) + expected_df = GeoDataFrame({"vals": [1, 1, 2, 2, 3, 3], "geometry": expected_s}) + expected_index = MultiIndex.from_tuples( + [ + (outer_index, *pair) + for pair in [(1, 0), (1, 1), (2, 0), (2, 1), (3, 0), (3, 1)] + ], + names=["first", "second", None], + ) + expected_df = expected_df.set_index(expected_index) + assert_frame_equal(test_df, expected_df) + # # Test '&', '|', '^', and '-' # From fc60ece1919fe7ae15fc8599187a8f845c739b60 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Fri, 28 May 2021 17:35:35 +0200 Subject: [PATCH 169/316] PERF: avoid calculating total_bounds in .cx indexing when not needed (#1951) --- geopandas/base.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/geopandas/base.py b/geopandas/base.py index 878fa53..6f4e4b2 100644 --- a/geopandas/base.py +++ b/geopandas/base.py @@ -3301,7 +3301,8 @@ class _CoordinateIndexer(object): # don't know how to handle step; should this raise? if xs.step is not None or ys.step is not None: warn("Ignoring step - full interval is used.") - xmin, ymin, xmax, ymax = obj.total_bounds + if xs.start is None or xs.stop is None or ys.start is None or ys.stop is None: + xmin, ymin, xmax, ymax = obj.total_bounds bbox = box( xs.start if xs.start is not None else xmin, ys.start if ys.start is not None else ymin, From c6aedbae2d18e308de51f0b073e5d68294c110a2 Mon Sep 17 00:00:00 2001 From: standakozak <47722371+standakozak@users.noreply.github.com> Date: Sun, 30 May 2021 12:38:25 +0200 Subject: [PATCH 170/316] DOC: Editing the docstring of GeoSeries.simplify (#1942) * Editing the docstring of GeoSeries.simplify * Stylistic change in geoseries.simplify docstring * More clarification in simplify docstring * Minor changes in simplify docstring * remove trailing whitespace * Removing redundant information from simplify docstring Co-authored-by: Martin Fleischmann --- geopandas/base.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/geopandas/base.py b/geopandas/base.py index 6f4e4b2..9e0498c 100644 --- a/geopandas/base.py +++ b/geopandas/base.py @@ -2721,14 +2721,23 @@ GeometryCollection """Returns a ``GeoSeries`` containing a simplified representation of each geometry. + The algorithm (Douglas-Peucker) recursively splits the original line + into smaller parts and connects these parts’ endpoints + by a straight line. Then, it removes all points whose distance + to the straight line is smaller than `tolerance`. It does not + move any points and it always preserves endpoints of + the original line or polygon. See http://shapely.readthedocs.io/en/latest/manual.html#object.simplify for details Parameters ---------- tolerance : float - All points in a simplified geometry will be no more than - `tolerance` distance from the original. + All parts of a simplified geometry will be no more than + `tolerance` distance from the original. It has the same units + as the coordinate reference system of the GeoSeries. + For example, using `tolerance=100` in a projected CRS with meters + as units means a distance of 100 meters in reality. preserve_topology: bool (default True) False uses a quicker algorithm, but may produce self-intersecting or otherwise invalid geometries. From 863afe97b327e23751c12f0147266787cedc7c42 Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Wed, 2 Jun 2021 20:57:59 +0100 Subject: [PATCH 171/316] TST: fix proj4strings test for PROJ 8.0.1 (#1958) --- geopandas/geoseries.py | 6 +++--- geopandas/tests/test_geoseries.py | 10 +++++----- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/geopandas/geoseries.py b/geopandas/geoseries.py index 070a1df..89f4dd4 100644 --- a/geopandas/geoseries.py +++ b/geopandas/geoseries.py @@ -132,9 +132,9 @@ class GeoSeries(GeoPandasBase, Series): - Lat[north]: Geodetic latitude (degree) - Lon[east]: Geodetic longitude (degree) Area of Use: - - name: World + - name: World. - bounds: (-180.0, -90.0, 180.0, 90.0) - Datum: World Geodetic System 1984 + Datum: World Geodetic System 1984 ensemble - Ellipsoid: WGS 84 - Prime Meridian: Greenwich @@ -578,7 +578,7 @@ class GeoSeries(GeoPandasBase, Series): return result def __finalize__(self, other, method=None, **kwargs): - """ propagate metadata from other to self """ + """propagate metadata from other to self""" # NOTE: backported from pandas master (upcoming v0.13) for name in self._metadata: object.__setattr__(self, name, getattr(other, name, None)) diff --git a/geopandas/tests/test_geoseries.py b/geopandas/tests/test_geoseries.py index 80ffbbc..1cb6796 100644 --- a/geopandas/tests/test_geoseries.py +++ b/geopandas/tests/test_geoseries.py @@ -262,25 +262,25 @@ class TestSeries: def test_proj4strings(self): # As string - reprojected = self.g3.to_crs("+proj=utm +zone=30N") + reprojected = self.g3.to_crs("+proj=utm +zone=30") reprojected_back = reprojected.to_crs(epsg=4326) assert np.all(self.g3.geom_almost_equals(reprojected_back)) # As dict - reprojected = self.g3.to_crs({"proj": "utm", "zone": "30N"}) + reprojected = self.g3.to_crs({"proj": "utm", "zone": "30"}) reprojected_back = reprojected.to_crs(epsg=4326) assert np.all(self.g3.geom_almost_equals(reprojected_back)) # Set to equivalent string, convert, compare to original copy = self.g3.copy() copy.crs = "epsg:4326" - reprojected = copy.to_crs({"proj": "utm", "zone": "30N"}) + reprojected = copy.to_crs({"proj": "utm", "zone": "30"}) reprojected_back = reprojected.to_crs(epsg=4326) assert np.all(self.g3.geom_almost_equals(reprojected_back)) # Conversions by different format - reprojected_string = self.g3.to_crs("+proj=utm +zone=30N") - reprojected_dict = self.g3.to_crs({"proj": "utm", "zone": "30N"}) + reprojected_string = self.g3.to_crs("+proj=utm +zone=30") + reprojected_dict = self.g3.to_crs({"proj": "utm", "zone": "30"}) assert np.all(reprojected_string.geom_almost_equals(reprojected_dict)) def test_from_wkb(self): From 00e56daaba23d8b46d673bc8098849943a5e657c Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Thu, 3 Jun 2021 06:58:10 +0100 Subject: [PATCH 172/316] DOC: fix docstring examples (#1961) --- geopandas/base.py | 62 +++++++++++++++++++------------------- geopandas/tools/overlay.py | 44 +++++++++++++-------------- 2 files changed, 53 insertions(+), 53 deletions(-) diff --git a/geopandas/base.py b/geopandas/base.py index 9e0498c..f7805ff 100644 --- a/geopandas/base.py +++ b/geopandas/base.py @@ -719,7 +719,7 @@ GeometryCollection >>> union = s.unary_union >>> print(union) - POLYGON ((0 0, 0 1, 0 2, 2 2, 2 0, 1 0, 0 0)) + POLYGON ((0 1, 0 2, 2 2, 2 0, 1 0, 0 0, 0 1)) """ return self.geometry.values.unary_union() @@ -2148,8 +2148,8 @@ GeometryCollection :align: center >>> s.difference(Polygon([(0, 0), (1, 1), (0, 1)])) - 0 POLYGON ((0.00000 1.00000, 0.00000 2.00000, 2.... - 1 POLYGON ((0.00000 1.00000, 0.00000 2.00000, 2.... + 0 POLYGON ((0.00000 2.00000, 2.00000 2.00000, 1.... + 1 POLYGON ((0.00000 2.00000, 2.00000 2.00000, 1.... 2 LINESTRING (1.00000 1.00000, 2.00000 2.00000) 3 MULTILINESTRING ((2.00000 0.00000, 1.00000 1.0... 4 POINT EMPTY @@ -2165,7 +2165,7 @@ GeometryCollection >>> s.difference(s2, align=True) 0 None - 1 POLYGON ((0.00000 1.00000, 0.00000 2.00000, 2.... + 1 POLYGON ((0.00000 2.00000, 2.00000 2.00000, 1.... 2 MULTILINESTRING ((0.00000 0.00000, 1.00000 1.0... 3 LINESTRING EMPTY 4 POINT (0.00000 1.00000) @@ -2173,8 +2173,8 @@ GeometryCollection dtype: geometry >>> s.difference(s2, align=False) - 0 POLYGON ((0.00000 1.00000, 0.00000 2.00000, 2.... - 1 POLYGON ((1.00000 1.00000, 0.00000 0.00000, 0.... + 0 POLYGON ((0.00000 2.00000, 2.00000 2.00000, 1.... + 1 POLYGON ((0.00000 0.00000, 0.00000 2.00000, 1.... 2 MULTILINESTRING ((0.00000 0.00000, 1.00000 1.0... 3 LINESTRING (2.00000 0.00000, 0.00000 2.00000) 4 POINT EMPTY @@ -2263,11 +2263,11 @@ GeometryCollection :align: center >>> s.symmetric_difference(Polygon([(0, 0), (1, 1), (0, 1)])) - 0 POLYGON ((0.00000 1.00000, 0.00000 2.00000, 2.... - 1 POLYGON ((0.00000 1.00000, 0.00000 2.00000, 2.... - 2 GEOMETRYCOLLECTION (LINESTRING (1.00000 1.0000... - 3 GEOMETRYCOLLECTION (LINESTRING (2.00000 0.0000... - 4 POLYGON ((0.00000 0.00000, 0.00000 1.00000, 1.... + 0 POLYGON ((0.00000 2.00000, 2.00000 2.00000, 1.... + 1 POLYGON ((0.00000 2.00000, 2.00000 2.00000, 1.... + 2 GEOMETRYCOLLECTION (POLYGON ((0.00000 0.00000,... + 3 GEOMETRYCOLLECTION (POLYGON ((0.00000 0.00000,... + 4 POLYGON ((0.00000 1.00000, 1.00000 1.00000, 0.... dtype: geometry We can also check two GeoSeries against each other, row by row. @@ -2280,7 +2280,7 @@ GeometryCollection >>> s.symmetric_difference(s2, align=True) 0 None - 1 POLYGON ((0.00000 1.00000, 0.00000 2.00000, 2.... + 1 POLYGON ((0.00000 2.00000, 2.00000 2.00000, 1.... 2 MULTILINESTRING ((0.00000 0.00000, 1.00000 1.0... 3 LINESTRING EMPTY 4 MULTIPOINT (0.00000 1.00000, 1.00000 1.00000) @@ -2288,8 +2288,8 @@ GeometryCollection dtype: geometry >>> s.symmetric_difference(s2, align=False) - 0 POLYGON ((0.00000 1.00000, 0.00000 2.00000, 2.... - 1 GEOMETRYCOLLECTION (LINESTRING (1.00000 0.0000... + 0 POLYGON ((0.00000 2.00000, 2.00000 2.00000, 1.... + 1 GEOMETRYCOLLECTION (POLYGON ((0.00000 0.00000,... 2 MULTILINESTRING ((0.00000 0.00000, 1.00000 1.0... 3 LINESTRING (2.00000 0.00000, 0.00000 2.00000) 4 POINT EMPTY @@ -2375,11 +2375,11 @@ GeometryCollection :align: center >>> s.union(Polygon([(0, 0), (1, 1), (0, 1)])) - 0 POLYGON ((1.00000 1.00000, 0.00000 0.00000, 0.... - 1 POLYGON ((1.00000 1.00000, 0.00000 0.00000, 0.... - 2 GEOMETRYCOLLECTION (LINESTRING (1.00000 1.0000... - 3 GEOMETRYCOLLECTION (LINESTRING (2.00000 0.0000... - 4 POLYGON ((0.00000 0.00000, 0.00000 1.00000, 1.... + 0 POLYGON ((0.00000 0.00000, 0.00000 1.00000, 0.... + 1 POLYGON ((0.00000 0.00000, 0.00000 1.00000, 0.... + 2 GEOMETRYCOLLECTION (POLYGON ((0.00000 0.00000,... + 3 GEOMETRYCOLLECTION (POLYGON ((0.00000 0.00000,... + 4 POLYGON ((0.00000 1.00000, 1.00000 1.00000, 0.... dtype: geometry We can also check two GeoSeries against each other, row by row. @@ -2392,7 +2392,7 @@ GeometryCollection >>> s.union(s2, align=True) 0 None - 1 POLYGON ((1.00000 1.00000, 0.00000 0.00000, 0.... + 1 POLYGON ((0.00000 0.00000, 0.00000 1.00000, 0.... 2 MULTILINESTRING ((0.00000 0.00000, 1.00000 1.0... 3 LINESTRING (2.00000 0.00000, 0.00000 2.00000) 4 MULTIPOINT (0.00000 1.00000, 1.00000 1.00000) @@ -2400,8 +2400,8 @@ GeometryCollection dtype: geometry >>> s.union(s2, align=False) - 0 POLYGON ((1.00000 1.00000, 0.00000 0.00000, 0.... - 1 GEOMETRYCOLLECTION (LINESTRING (1.00000 0.0000... + 0 POLYGON ((0.00000 0.00000, 0.00000 1.00000, 0.... + 1 GEOMETRYCOLLECTION (POLYGON ((0.00000 0.00000,... 2 MULTILINESTRING ((0.00000 0.00000, 1.00000 1.0... 3 LINESTRING (2.00000 0.00000, 0.00000 2.00000) 4 POINT (0.00000 1.00000) @@ -2488,8 +2488,8 @@ GeometryCollection :align: center >>> s.intersection(Polygon([(0, 0), (1, 1), (0, 1)])) - 0 POLYGON ((1.00000 1.00000, 0.00000 0.00000, 0.... - 1 POLYGON ((1.00000 1.00000, 0.00000 0.00000, 0.... + 0 POLYGON ((0.00000 0.00000, 0.00000 1.00000, 1.... + 1 POLYGON ((0.00000 0.00000, 0.00000 1.00000, 1.... 2 LINESTRING (0.00000 0.00000, 1.00000 1.00000) 3 POINT (1.00000 1.00000) 4 POINT (0.00000 1.00000) @@ -2505,7 +2505,7 @@ GeometryCollection >>> s.intersection(s2, align=True) 0 None - 1 POLYGON ((1.00000 1.00000, 0.00000 0.00000, 0.... + 1 POLYGON ((0.00000 0.00000, 0.00000 1.00000, 1.... 2 POINT (1.00000 1.00000) 3 LINESTRING (2.00000 0.00000, 0.00000 2.00000) 4 POINT EMPTY @@ -2513,7 +2513,7 @@ GeometryCollection dtype: geometry >>> s.intersection(s2, align=False) - 0 POLYGON ((1.00000 1.00000, 0.00000 0.00000, 0.... + 0 POLYGON ((0.00000 0.00000, 0.00000 1.00000, 1.... 1 LINESTRING (1.00000 1.00000, 1.00000 2.00000) 2 POINT (1.00000 1.00000) 3 POINT (1.00000 1.00000) @@ -2901,10 +2901,10 @@ GeometryCollection Examples -------- - >>> from shapely.geometry import Polygon, LineString, Point + >>> from shapely.geometry import LineString, Point >>> s = geopandas.GeoSeries( ... [ - ... Polygon([(0, 0), (2, 2), (0, 2)]), + ... LineString([(0, 0), (2, 0), (0, 2)]), ... LineString([(0, 0), (2, 2)]), ... LineString([(2, 0), (0, 2)]), ... ], @@ -2919,7 +2919,7 @@ GeometryCollection ... ) >>> s - 0 POLYGON ((0.00000 0.00000, 2.00000 2.00000, 0.... + 0 LINESTRING (0.00000 0.00000, 2.00000 0.00000, ... 1 LINESTRING (0.00000 0.00000, 2.00000 2.00000) 2 LINESTRING (2.00000 0.00000, 0.00000 2.00000) dtype: geometry @@ -2937,7 +2937,7 @@ GeometryCollection :align: center >>> s.project(Point(1, 0)) - 0 -1.000000 + 0 1.000000 1 0.707107 2 0.707107 dtype: float64 @@ -2958,7 +2958,7 @@ GeometryCollection dtype: float64 >>> s.project(s2, align=False) - 0 -1.000000 + 0 1.000000 1 0.707107 2 0.707107 dtype: float64 diff --git a/geopandas/tools/overlay.py b/geopandas/tools/overlay.py index 52f2296..a21f57e 100644 --- a/geopandas/tools/overlay.py +++ b/geopandas/tools/overlay.py @@ -181,39 +181,39 @@ def overlay(df1, df2, how="intersection", keep_geom_type=None, make_valid=True): >>> geopandas.overlay(df1, df2, how='union') df1_data df2_data geometry - 0 1.0 1.0 POLYGON ((1.00000 2.00000, 2.00000 2.00000, 2.... - 1 2.0 1.0 POLYGON ((3.00000 2.00000, 2.00000 2.00000, 2.... - 2 2.0 2.0 POLYGON ((3.00000 4.00000, 4.00000 4.00000, 4.... - 3 1.0 NaN POLYGON ((2.00000 1.00000, 2.00000 0.00000, 0.... - 4 2.0 NaN MULTIPOLYGON (((3.00000 3.00000, 4.00000 3.000... - 5 NaN 1.0 MULTIPOLYGON (((2.00000 2.00000, 3.00000 2.000... - 6 NaN 2.0 POLYGON ((3.00000 4.00000, 3.00000 5.00000, 5.... + 0 1.0 1.0 POLYGON ((2.00000 2.00000, 2.00000 1.00000, 1.... + 1 2.0 1.0 POLYGON ((2.00000 2.00000, 2.00000 3.00000, 3.... + 2 2.0 2.0 POLYGON ((4.00000 4.00000, 4.00000 3.00000, 3.... + 3 1.0 NaN POLYGON ((2.00000 0.00000, 0.00000 0.00000, 0.... + 4 2.0 NaN MULTIPOLYGON (((4.00000 3.00000, 4.00000 2.000... + 5 NaN 1.0 MULTIPOLYGON (((3.00000 2.00000, 3.00000 1.000... + 6 NaN 2.0 POLYGON ((3.00000 5.00000, 5.00000 5.00000, 5.... >>> geopandas.overlay(df1, df2, how='intersection') df1_data df2_data geometry - 0 1 1 POLYGON ((1.00000 2.00000, 2.00000 2.00000, 2.... - 1 2 1 POLYGON ((3.00000 2.00000, 2.00000 2.00000, 2.... - 2 2 2 POLYGON ((3.00000 4.00000, 4.00000 4.00000, 4.... + 0 1 1 POLYGON ((2.00000 2.00000, 2.00000 1.00000, 1.... + 1 2 1 POLYGON ((2.00000 2.00000, 2.00000 3.00000, 3.... + 2 2 2 POLYGON ((4.00000 4.00000, 4.00000 3.00000, 3.... >>> geopandas.overlay(df1, df2, how='symmetric_difference') df1_data df2_data geometry - 0 1.0 NaN POLYGON ((2.00000 1.00000, 2.00000 0.00000, 0.... - 1 2.0 NaN MULTIPOLYGON (((3.00000 3.00000, 4.00000 3.000... - 2 NaN 1.0 MULTIPOLYGON (((2.00000 2.00000, 3.00000 2.000... - 3 NaN 2.0 POLYGON ((3.00000 4.00000, 3.00000 5.00000, 5.... + 0 1.0 NaN POLYGON ((2.00000 0.00000, 0.00000 0.00000, 0.... + 1 2.0 NaN MULTIPOLYGON (((4.00000 3.00000, 4.00000 2.000... + 2 NaN 1.0 MULTIPOLYGON (((3.00000 2.00000, 3.00000 1.000... + 3 NaN 2.0 POLYGON ((3.00000 5.00000, 5.00000 5.00000, 5.... >>> geopandas.overlay(df1, df2, how='difference') - geometry df1_data - 0 POLYGON ((2.00000 1.00000, 2.00000 0.00000, 0.... 1 - 1 MULTIPOLYGON (((2.00000 3.00000, 2.00000 4.000... 2 + geometry df1_data + 0 POLYGON ((2.00000 0.00000, 0.00000 0.00000, 0.... 1 + 1 MULTIPOLYGON (((3.00000 3.00000, 4.00000 3.000... 2 >>> geopandas.overlay(df1, df2, how='identity') df1_data df2_data geometry - 0 1.0 1.0 POLYGON ((1.00000 2.00000, 2.00000 2.00000, 2.... - 1 2.0 1.0 POLYGON ((3.00000 2.00000, 2.00000 2.00000, 2.... - 2 2.0 2.0 POLYGON ((3.00000 4.00000, 4.00000 4.00000, 4.... - 3 1.0 NaN POLYGON ((2.00000 1.00000, 2.00000 0.00000, 0.... - 4 2.0 NaN MULTIPOLYGON (((3.00000 3.00000, 4.00000 3.000... + 0 1.0 1.0 POLYGON ((2.00000 2.00000, 2.00000 1.00000, 1.... + 1 2.0 1.0 POLYGON ((2.00000 2.00000, 2.00000 3.00000, 3.... + 2 2.0 2.0 POLYGON ((4.00000 4.00000, 4.00000 3.00000, 3.... + 3 1.0 NaN POLYGON ((2.00000 0.00000, 0.00000 0.00000, 0.... + 4 2.0 NaN MULTIPOLYGON (((4.00000 3.00000, 4.00000 2.000... See also -------- From cb88dd4a9100bb990f6eb9b286e1ef3a0b185e3c Mon Sep 17 00:00:00 2001 From: m-richards <45483497+m-richards@users.noreply.github.com> Date: Wed, 9 Jun 2021 06:05:31 +1000 Subject: [PATCH 173/316] BUG: GeoDataFrame CRS loss during __setitem__ (#1963) --- geopandas/geodataframe.py | 5 ++++- geopandas/tests/test_crs.py | 38 +++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 1 deletion(-) diff --git a/geopandas/geodataframe.py b/geopandas/geodataframe.py index 93c5fdd..2fc07da 100644 --- a/geopandas/geodataframe.py +++ b/geopandas/geodataframe.py @@ -33,7 +33,9 @@ def _ensure_geometry(data, crs=None): """ if is_geometry_type(data): if isinstance(data, Series): - return GeoSeries(data) + data = GeoSeries(data) + if data.crs is None: + data.crs = crs return data else: if isinstance(data, Series): @@ -1320,6 +1322,7 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} value = [value] * self.shape[0] try: value = _ensure_geometry(value, crs=self.crs) + self._crs = value.crs except TypeError: warnings.warn("Geometry column does not contain geometry.") super(GeoDataFrame, self).__setitem__(key, value) diff --git a/geopandas/tests/test_crs.py b/geopandas/tests/test_crs.py index ea28f07..e2f4f74 100644 --- a/geopandas/tests/test_crs.py +++ b/geopandas/tests/test_crs.py @@ -268,6 +268,8 @@ class TestGeometryArrayCRS: assert df.geometry.crs == self.wgs assert df.geometry.values.crs == self.wgs + arr = from_shapely(self.geoms) + s = GeoSeries(arr, crs=27700) df = GeoDataFrame() df = df.set_geometry(s) assert df.crs == self.osgb @@ -298,6 +300,42 @@ class TestGeometryArrayCRS: df.crs = 27700 assert df.crs == self.osgb + def test_dataframe_setitem(self): + # new geometry CRS has priority over GDF CRS + arr = from_shapely(self.geoms) + s = GeoSeries(arr, crs=27700) + df = GeoDataFrame() + df["geometry"] = s + assert df.crs == self.osgb + assert df.geometry.crs == self.osgb + assert df.geometry.values.crs == self.osgb + + arr = from_shapely(self.geoms, crs=27700) + df = GeoDataFrame() + df["geometry"] = arr + assert df.crs == self.osgb + assert df.geometry.crs == self.osgb + assert df.geometry.values.crs == self.osgb + + # test to_crs case (GH1960) + arr = from_shapely(self.geoms) + df = GeoDataFrame({"col1": [1, 2], "geometry": arr}, crs=4326) + df["geometry"] = df["geometry"].to_crs(27700) + assert df.crs == self.osgb + assert df.geometry.crs == self.osgb + assert df.geometry.values.crs == self.osgb + + # test changing geometry crs not in the geometry column doesn't change the crs + arr = from_shapely(self.geoms) + df = GeoDataFrame( + {"col1": [1, 2], "geometry": arr, "other_geom": arr}, crs=4326 + ) + df["other_geom"] = arr.to_crs(27700) + assert df.crs == self.wgs + assert df.geometry.crs == self.wgs + assert df["geometry"].crs == self.wgs + assert df["other_geom"].crs == self.osgb + @pytest.mark.parametrize( "scalar", [None, Point(0, 0), LineString([(0, 0), (1, 1)])] ) From ae3f8216e2cceabfa7fc911bdb7c9743b07b8438 Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Sun, 27 Jun 2021 15:47:21 +0100 Subject: [PATCH 174/316] DOC: update RTD env (#1979) * DOC: unpin RTD env * fix for sphinx 4.0 * pin new versions * typo --- doc/environment.yml | 38 +++++++++++++++++++------------------- doc/source/conf.py | 31 ++++++++++++++----------------- 2 files changed, 33 insertions(+), 36 deletions(-) diff --git a/doc/environment.yml b/doc/environment.yml index 872334b..2fc93b4 100644 --- a/doc/environment.yml +++ b/doc/environment.yml @@ -2,38 +2,38 @@ name: geopandas_docs channels: - conda-forge dependencies: - - python=3.9.1 - - pandas=1.2.2 + - python=3.9.5 + - pandas=1.2.5 - shapely=1.7.1 - fiona=1.8.18 - - pyproj=3.0.0.post1 + - pyproj=3.1.0 - rtree=0.9.7 - geopy=2.1.0 - - matplotlib=3.3.4 + - matplotlib=3.4.2 - mapclassify=2.4.2 - - sphinx=3.5.1 - - pydata-sphinx-theme=0.5.0 + - sphinx>=4.0.2 + - pydata-sphinx-theme=0.6.3 - numpydoc=1.1.0 - - ipython=7.20.0 - - pillow=8.1.0 + - ipython=7.25.0 + - pillow=8.2.0 - mock=4.0.3 - - cartopy=0.18.0 + - cartopy=0.19.0.post1 - pyepsg=0.4.0 - contextily=1.1.0 - - rasterio=1.2.0 + - rasterio=1.2.6 - geoplot=0.4.1 - - sphinx-gallery=0.8.2 - - jinja2=2.11.3 + - sphinx-gallery=0.9.0 + - jinja2=3.0.1 - doc2dash=2.3.0 # specify additional dependencies to reduce solving for conda - - gdal=3.1.4 - - libgdal=3.1.4 + - gdal=3.2.1 + - libgdal=3.2.1 - proj=7.2.0 - - geos=3.9.0 - - nbsphinx=0.8.1 - - jupyter_client=6.1.11 - - ipykernel=5.4.3 - - myst-parser=0.13.5 + - geos=3.9.1 + - nbsphinx=0.8.6 + - jupyter_client=6.1.12 + - ipykernel=5.5.5 + - myst-parser=0.15.1 - folium=0.12.0 - libpysal=4.4.0 - pygeos=0.10 diff --git a/doc/source/conf.py b/doc/source/conf.py index e85390c..44a6827 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -36,8 +36,8 @@ extensions = [ "myst_parser", "nbsphinx", "numpydoc", - 'sphinx_toggleprompt', - "matplotlib.sphinxext.plot_directive" + "sphinx_toggleprompt", + "matplotlib.sphinxext.plot_directive", ] # continue doc build and only print warnings/errors in examples @@ -54,7 +54,7 @@ numpydoc_show_class_members = False def setup(app): - app.add_stylesheet("custom.css") # may also be an URL + app.add_css_file("custom.css") # may also be an URL # Add any paths that contain templates here, relative to this directory. @@ -355,16 +355,16 @@ intersphinx_mapping = { "https://pygeos.readthedocs.io/en/latest/objects.inv", ), "rtree": ( - "https://rtree.readthedocs.io/en/stable/", - "https://rtree.readthedocs.io/en/stable/objects.inv", + "https://rtree.readthedocs.io/en/stable/", + "https://rtree.readthedocs.io/en/stable/objects.inv", ), "mapclassify": ( "https://pysal.org/mapclassify/", - "https://pysal.org/mapclassify/objects.inv" + "https://pysal.org/mapclassify/objects.inv", ), "libpysal": ( "https://pysal.org/libpysal/", - "https://pysal.org/libpysal/objects.inv" + "https://pysal.org/libpysal/objects.inv", ), "matplotlib": ( "https://matplotlib.org/stable/", @@ -376,30 +376,27 @@ intersphinx_mapping = { ), "cartopy": ( "https://scitools.org.uk/cartopy/docs/latest/", - "https://scitools.org.uk/cartopy/docs/latest/objects.inv" + "https://scitools.org.uk/cartopy/docs/latest/objects.inv", ), "pyepsg": ( "https://pyepsg.readthedocs.io/en/stable/", - "https://pyepsg.readthedocs.io/en/stable/objects.inv" + "https://pyepsg.readthedocs.io/en/stable/objects.inv", ), "contextily": ( "https://contextily.readthedocs.io/en/stable/", - "https://contextily.readthedocs.io/en/stable/objects.inv" + "https://contextily.readthedocs.io/en/stable/objects.inv", ), "rasterio": ( "https://rasterio.readthedocs.io/en/stable/", - "https://rasterio.readthedocs.io/en/stable/objects.inv" + "https://rasterio.readthedocs.io/en/stable/objects.inv", ), "geoplot": ( "https://residentmario.github.io/geoplot/index.html", - "https://residentmario.github.io/geoplot/objects.inv" + "https://residentmario.github.io/geoplot/objects.inv", ), "folium": ( "https://python-visualization.github.io/folium/", - "https://python-visualization.github.io/folium/objects.inv" + "https://python-visualization.github.io/folium/objects.inv", ), - "python": ( - "https://docs.python.org/3", - "https://docs.python.org/3/objects.inv" - ) + "python": ("https://docs.python.org/3", "https://docs.python.org/3/objects.inv"), } From f50e2dd47b29c3a67943fb4e1accc7d010870a36 Mon Sep 17 00:00:00 2001 From: Matthew Law Date: Tue, 29 Jun 2021 11:53:27 +0100 Subject: [PATCH 175/316] =?UTF-8?q?DOC:=20fix=20misspelling=20of=20Plate?= =?UTF-8?q?=20Carr=C3=A9e=20(#1981)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/source/docs/user_guide/projections.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/docs/user_guide/projections.rst b/doc/source/docs/user_guide/projections.rst index b3f4c32..c36fbc3 100644 --- a/doc/source/docs/user_guide/projections.rst +++ b/doc/source/docs/user_guide/projections.rst @@ -86,7 +86,7 @@ Re-projecting is the process of changing the representation of locations from on world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres')) # Check original projection - # (it's Platte Carre! x-y are long and lat) + # (it's Plate Carrée! x-y are long and lat) world.crs # Visualize From 5790c44922efc0f8b0823e4ee04a207d5773513b Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Thu, 1 Jul 2021 14:52:29 +0200 Subject: [PATCH 176/316] CI: fix activation of the conda environments + switch to conda-incubator/setup-miniconda (#1987) --- .github/workflows/tests.yaml | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 1c303c9..2044c6c 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -21,7 +21,11 @@ jobs: needs: Linting name: ${{ matrix.os }}, ${{ matrix.env }} runs-on: ${{ matrix.os }} + defaults: + run: + shell: bash -l {0} strategy: + fail-fast: false matrix: os: [ubuntu-latest] postgis: [false] @@ -59,18 +63,12 @@ jobs: - uses: actions/checkout@v2 - name: Setup Conda - uses: s-weigand/setup-conda@v1 + uses: conda-incubator/setup-miniconda@v2 with: - activate-conda: false - - - name: Install Env - shell: bash - run: conda env create -f ${{ matrix.env }} + environment-file: ${{ matrix.env }} - name: Check and Log Environment - shell: bash run: | - source activate test python -V python -c "import geopandas; geopandas.show_versions();" conda info @@ -87,24 +85,19 @@ jobs: fi - name: Test without PyGEOS - shell: bash env: USE_PYGEOS: 0 run: | - source activate test pytest -v -r s -n auto --color=yes --cov=geopandas --cov-append --cov-report term-missing --cov-report xml geopandas/ - name: Test with PyGEOS - shell: bash if: env.HAS_PYGEOS == 1 env: USE_PYGEOS: 1 run: | - source activate test pytest -v -r s -n auto --color=yes --cov=geopandas --cov-append --cov-report term-missing --cov-report xml geopandas/ - name: Test with PostGIS - shell: bash if: contains(matrix.env, '38-latest-conda-forge.yaml') && contains(matrix.os, 'ubuntu') env: PGUSER: postgres @@ -112,18 +105,15 @@ jobs: PGHOST: "127.0.0.1" PGPORT: 5432 run: | - source activate test conda install postgis -c conda-forge sh ci/scripts/setup_postgres.sh pytest -v -r s --color=yes --cov=geopandas --cov-append --cov-report term-missing --cov-report xml geopandas/io/tests/test_sql.py | tee /dev/stderr | if grep SKIPPED >/dev/null;then echo "TESTS SKIPPED, FAILING" && exit 1;fi - name: Test docstrings - shell: bash if: contains(matrix.env, '38-latest-conda-forge.yaml') && contains(matrix.os, 'ubuntu') env: USE_PYGEOS: 1 run: | - source activate test pytest -v --color=yes --doctest-only geopandas --ignore=geopandas/datasets - uses: codecov/codecov-action@v1 From 72583fd40885e4e26e3d0c43cec328206b6a0049 Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Fri, 2 Jul 2021 09:43:12 +0100 Subject: [PATCH 177/316] TST: adapt GPKG tests with undefined CRS (#1986) --- geopandas/io/tests/test_file.py | 40 +++++++++++++++++++++++++-------- 1 file changed, 31 insertions(+), 9 deletions(-) diff --git a/geopandas/io/tests/test_file.py b/geopandas/io/tests/test_file.py index ac20d5e..ceb094d 100644 --- a/geopandas/io/tests/test_file.py +++ b/geopandas/io/tests/test_file.py @@ -66,7 +66,7 @@ driver_ext_pairs = [("ESRI Shapefile", "shp"), ("GeoJSON", "geojson"), ("GPKG", @pytest.mark.parametrize("driver,ext", driver_ext_pairs) def test_to_file(tmpdir, df_nybb, df_null, driver, ext): - """ Test to_file and from_file """ + """Test to_file and from_file""" tempfilename = os.path.join(str(tmpdir), "boros." + ext) df_nybb.to_file(tempfilename, driver=driver) # Read layer back in @@ -87,7 +87,7 @@ def test_to_file(tmpdir, df_nybb, df_null, driver, ext): @pytest.mark.parametrize("driver,ext", driver_ext_pairs) def test_to_file_pathlib(tmpdir, df_nybb, df_null, driver, ext): - """ Test to_file and from_file """ + """Test to_file and from_file""" temppath = pathlib.Path(os.path.join(str(tmpdir), "boros." + ext)) df_nybb.to_file(temppath, driver=driver) # Read layer back in @@ -106,14 +106,12 @@ def test_to_file_bool(tmpdir, driver, ext): "a": [1, 2, 3], "b": [True, False, True], "geometry": [Point(0, 0), Point(1, 1), Point(2, 2)], - } + }, + crs=4326, ) df.to_file(tempfilename, driver=driver) result = read_file(tempfilename) - if driver == "GeoJSON": - # geojson by default assumes epsg:4326 - result.crs = None if driver == "ESRI Shapefile": # Shapefile does not support boolean, so is read back as int df["b"] = df["b"].astype("int64") @@ -125,7 +123,7 @@ def test_to_file_datetime(tmpdir): tempfilename = os.path.join(str(tmpdir), "test_datetime.gpkg") point = Point(0, 0) now = datetime.datetime.now() - df = GeoDataFrame({"a": [1, 2], "b": [now, now]}, geometry=[point, point], crs={}) + df = GeoDataFrame({"a": [1, 2], "b": [now, now]}, geometry=[point, point], crs=4326) df.to_file(tempfilename, driver="GPKG") df_read = read_file(tempfilename) assert_geoseries_equal(df.geometry, df_read.geometry) @@ -158,7 +156,7 @@ def test_to_file_with_poly_z(tmpdir, ext, driver): def test_to_file_types(tmpdir, df_points): - """ Test various integer type columns (GH#93) """ + """Test various integer type columns (GH#93)""" tempfilename = os.path.join(str(tmpdir), "int.shp") int_types = [ np.int8, @@ -247,7 +245,7 @@ def test_to_file_column_len(tmpdir, df_points): @pytest.mark.parametrize("driver,ext", driver_ext_pairs) def test_append_file(tmpdir, df_nybb, df_null, driver, ext): - """ Test to_file with append mode and from_file """ + """Test to_file with append mode and from_file""" from fiona import supported_drivers if "a" not in supported_drivers[driver]: @@ -275,6 +273,30 @@ def test_append_file(tmpdir, df_nybb, df_null, driver, ext): assert_geodataframe_equal(df, expected, check_less_precise=True) +@pytest.mark.parametrize("driver,ext", driver_ext_pairs) +def test_empty_crs(tmpdir, driver, ext): + """Test handling of undefined CRS with GPKG driver (GH #1975).""" + if driver == "GPKG": + pytest.xfail("GPKG is read with Undefined geographic SRS.") + + tempfilename = os.path.join(str(tmpdir), "boros." + ext) + df = GeoDataFrame( + { + "a": [1, 2, 3], + "geometry": [Point(0, 0), Point(1, 1), Point(2, 2)], + }, + ) + + df.to_file(tempfilename, driver=driver) + result = read_file(tempfilename) + + if driver == "GeoJSON": + # geojson by default assumes epsg:4326 + df.crs = "EPSG:4326" + + assert_geodataframe_equal(result, df) + + # ----------------------------------------------------------------------------- # read_file tests # ----------------------------------------------------------------------------- From aebf58450a2e735450a2e28c72fb8595c79ae253 Mon Sep 17 00:00:00 2001 From: Zero Date: Tue, 6 Jul 2021 03:01:16 +0800 Subject: [PATCH 178/316] ENH: Gather all doc decorator in one (#1954) port from [pandas](https://github.com/pandas-dev/pandas/blob/6925fd04690c94dc1fc03db1e1eddac8d479bef6/pandas/util/_decorators.py#L348-L400) --- geopandas/_decorator.py | 51 +++++++++++++++++ geopandas/geodataframe.py | 18 ++---- geopandas/geoseries.py | 37 +++---------- geopandas/plotting.py | 4 +- geopandas/sindex.py | 28 +++------- geopandas/tests/test_decorator.py | 91 +++++++++++++++++++++++++++++++ 6 files changed, 165 insertions(+), 64 deletions(-) create mode 100644 geopandas/_decorator.py create mode 100644 geopandas/tests/test_decorator.py diff --git a/geopandas/_decorator.py b/geopandas/_decorator.py new file mode 100644 index 0000000..6c263c7 --- /dev/null +++ b/geopandas/_decorator.py @@ -0,0 +1,51 @@ +from textwrap import dedent +from typing import Callable, Union + + +# doc decorator function ported with modifications from Pandas +# https://github.com/pandas-dev/pandas/blob/master/pandas/util/_decorators.py + + +def doc(*docstrings: Union[str, Callable], **params) -> Callable: + """ + A decorator take docstring templates, concatenate them and perform string + substitution on it. + This decorator will add a variable "_docstring_components" to the wrapped + callable to keep track the original docstring template for potential usage. + If it should be consider as a template, it will be saved as a string. + Otherwise, it will be saved as callable, and later user __doc__ and dedent + to get docstring. + + Parameters + ---------- + *docstrings : str or callable + The string / docstring / docstring template to be appended in order + after default docstring under callable. + **params + The string which would be used to format docstring template. + """ + + def decorator(decorated: Callable) -> Callable: + # collecting docstring and docstring templates + docstring_components: list[Union[str, Callable]] = [] + if decorated.__doc__: + docstring_components.append(dedent(decorated.__doc__)) + + for docstring in docstrings: + if hasattr(docstring, "_docstring_components"): + docstring_components.extend(docstring._docstring_components) + elif isinstance(docstring, str) or docstring.__doc__: + docstring_components.append(docstring) + + # formatting templates and concatenating docstring + decorated.__doc__ = "".join( + component.format(**params) + if isinstance(component, str) + else dedent(component.__doc__ or "") + for component in docstring_components + ) + + decorated._docstring_components = docstring_components + return decorated + + return decorator diff --git a/geopandas/geodataframe.py b/geopandas/geodataframe.py index 2fc07da..46a70ec 100644 --- a/geopandas/geodataframe.py +++ b/geopandas/geodataframe.py @@ -8,15 +8,16 @@ from pandas import DataFrame, Series from shapely.geometry import mapping, shape from shapely.geometry.base import BaseGeometry - from pyproj import CRS from geopandas.array import GeometryArray, GeometryDtype, from_shapely, to_wkb, to_wkt from geopandas.base import GeoPandasBase, is_geometry_type -from geopandas.geoseries import GeoSeries, inherit_doc +from geopandas.geoseries import GeoSeries import geopandas.io from geopandas.plotting import plot_dataframe + from . import _compat as compat +from ._decorator import doc DEFAULT_GEO_COLUMN_NAME = "geometry" @@ -1362,7 +1363,7 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} result.__class__ = DataFrame return result - @inherit_doc(pd.DataFrame) + @doc(pd.DataFrame) def apply(self, func, axis=0, raw=False, result_type=None, args=(), **kwargs): result = super().apply( func, axis=axis, raw=raw, result_type=result_type, args=args, **kwargs @@ -1639,7 +1640,6 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} chunksize=None, dtype=None, ): - """ Upload GeoDataFrame into PostGIS database. @@ -1740,18 +1740,10 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} plot = CachedAccessor("plot", geopandas.plotting.GeoplotAccessor) else: + @doc(plot_dataframe) def plot(self, *args, **kwargs): - """Generate a plot of the geometries in the ``GeoDataFrame``. - If the ``column`` parameter is given, colors plot according to values - in that column, otherwise calls ``GeoSeries.plot()`` on the - ``geometry`` column. - Wraps the ``plot_dataframe()`` function, and documentation is copied - from there. - """ return plot_dataframe(self, *args, **kwargs) - plot.__doc__ = plot_dataframe.__doc__ - def _dataframe_set_geometry(self, col, drop=False, inplace=False, crs=None): if inplace: diff --git a/geopandas/geoseries.py b/geopandas/geoseries.py index 89f4dd4..9edf530 100644 --- a/geopandas/geoseries.py +++ b/geopandas/geoseries.py @@ -12,6 +12,8 @@ from shapely.geometry.base import BaseGeometry from geopandas.base import GeoPandasBase, _delegate_property from geopandas.plotting import plot_series +from . import _compat as compat +from ._decorator import doc from .array import ( GeometryDtype, from_shapely, @@ -21,7 +23,6 @@ from .array import ( to_wkt, ) from .base import is_geometry_type -from . import _compat as compat _SERIES_WARNING_MSG = """\ @@ -49,24 +50,6 @@ def _geoseries_constructor_with_fallback(data=None, index=None, crs=None, **kwar return Series(data=data, index=index, **kwargs) -def inherit_doc(cls): - """ - A decorator adding a docstring from an existing method. - """ - - def decorator(decorated): - original_method = getattr(cls, decorated.__name__, None) - if original_method: - doc = original_method.__doc__ or "" - else: - doc = "" - - decorated.__doc__ = doc - return decorated - - return decorator - - class GeoSeries(GeoPandasBase, Series): """ A Series object designed to store shapely geometry objects. @@ -557,19 +540,19 @@ class GeoSeries(GeoPandasBase, Series): def __getitem__(self, key): return self._wrapped_pandas_method("__getitem__", key) - @inherit_doc(pd.Series) + @doc(pd.Series) def sort_index(self, *args, **kwargs): return self._wrapped_pandas_method("sort_index", *args, **kwargs) - @inherit_doc(pd.Series) + @doc(pd.Series) def take(self, *args, **kwargs): return self._wrapped_pandas_method("take", *args, **kwargs) - @inherit_doc(pd.Series) + @doc(pd.Series) def select(self, *args, **kwargs): return self._wrapped_pandas_method("select", *args, **kwargs) - @inherit_doc(pd.Series) + @doc(pd.Series) def apply(self, func, convert_dtype=True, args=(), **kwargs): result = super().apply(func, convert_dtype=convert_dtype, args=args, **kwargs) if isinstance(result, GeoSeries): @@ -757,16 +740,10 @@ class GeoSeries(GeoPandasBase, Series): else: return False + @doc(plot_series) def plot(self, *args, **kwargs): - """Generate a plot of the geometries in the ``GeoSeries``. - - Wraps the ``plot_series()`` function, and documentation is copied from - there. - """ return plot_series(self, *args, **kwargs) - plot.__doc__ = plot_series.__doc__ - def explode(self): """ Explode multi-part geometries into multiple single geometries. diff --git a/geopandas/plotting.py b/geopandas/plotting.py index a73222f..aa7122c 100644 --- a/geopandas/plotting.py +++ b/geopandas/plotting.py @@ -7,6 +7,8 @@ import geopandas from distutils.version import LooseVersion +from ._decorator import doc + def deprecated(new): """Helper to provide deprecation warning.""" @@ -913,9 +915,9 @@ GON (((-122.84000 49.00000, -120.0000... if geopandas._compat.PANDAS_GE_025: from pandas.plotting import PlotAccessor + @doc(plot_dataframe) class GeoplotAccessor(PlotAccessor): - __doc__ = plot_dataframe.__doc__ _pandas_kinds = PlotAccessor._all_kinds def __call__(self, *args, **kwargs): diff --git a/geopandas/sindex.py b/geopandas/sindex.py index d611a93..a8ae18a 100644 --- a/geopandas/sindex.py +++ b/geopandas/sindex.py @@ -1,4 +1,3 @@ -from textwrap import dedent import warnings from shapely.geometry.base import BaseGeometry @@ -6,6 +5,7 @@ import pandas as pd import numpy as np from . import _compat as compat +from ._decorator import doc def _get_sindex_class(): @@ -265,18 +265,6 @@ class BaseSpatialIndex: raise NotImplementedError -def doc(docstring): - """ - A decorator take docstring from passed object and it to decorated one. - """ - - def decorator(decorated): - decorated.__doc__ = dedent(docstring.__doc__ or "") - return decorated - - return decorator - - if compat.HAS_RTREE: import rtree.index # noqa @@ -300,13 +288,13 @@ if compat.HAS_RTREE: def intersection(self, coordinates, *args, **kwargs): return super().intersection(coordinates, *args, **kwargs) - @doc(BaseSpatialIndex.size) @property + @doc(BaseSpatialIndex.size) def size(self): return len(self.leaves()[0][1]) - @doc(BaseSpatialIndex.is_empty) @property + @doc(BaseSpatialIndex.is_empty) def is_empty(self): if len(self.leaves()) > 1: return False @@ -343,8 +331,8 @@ if compat.HAS_RTREE: [None] * self.geometries.size, dtype=object ) - @doc(BaseSpatialIndex.valid_query_predicates) @property + @doc(BaseSpatialIndex.valid_query_predicates) def valid_query_predicates(self): return { None, @@ -454,8 +442,8 @@ if compat.HAS_RTREE: def intersection(self, coordinates): return super().intersection(coordinates, objects=False) - @doc(BaseSpatialIndex.size) @property + @doc(BaseSpatialIndex.size) def size(self): if hasattr(self, "_size"): size = self._size @@ -467,8 +455,8 @@ if compat.HAS_RTREE: self._size = size return size - @doc(BaseSpatialIndex.is_empty) @property + @doc(BaseSpatialIndex.is_empty) def is_empty(self): return self.geometries.size == 0 or self.size == 0 @@ -598,12 +586,12 @@ if compat.HAS_PYGEOS: return indexes - @doc(BaseSpatialIndex.size) @property + @doc(BaseSpatialIndex.size) def size(self): return len(self) - @doc(BaseSpatialIndex.is_empty) @property + @doc(BaseSpatialIndex.is_empty) def is_empty(self): return len(self) == 0 diff --git a/geopandas/tests/test_decorator.py b/geopandas/tests/test_decorator.py new file mode 100644 index 0000000..180ba92 --- /dev/null +++ b/geopandas/tests/test_decorator.py @@ -0,0 +1,91 @@ +from textwrap import dedent + +from geopandas._decorator import doc + + +@doc(method="cumsum", operation="sum") +def cumsum(whatever): + """ + This is the {method} method. + + It computes the cumulative {operation}. + """ + ... + + +@doc( + cumsum, + dedent( + """ + Examples + -------- + + >>> cumavg([1, 2, 3]) + 2 + """ + ), + method="cumavg", + operation="average", +) +def cumavg(whatever): + ... + + +@doc(cumsum, method="cummax", operation="maximum") +def cummax(whatever): + ... + + +@doc(cummax, method="cummin", operation="minimum") +def cummin(whatever): + ... + + +def test_docstring_formatting(): + docstr = dedent( + """ + This is the cumsum method. + + It computes the cumulative sum. + """ + ) + assert cumsum.__doc__ == docstr + + +def test_docstring_appending(): + docstr = dedent( + """ + This is the cumavg method. + + It computes the cumulative average. + + Examples + -------- + + >>> cumavg([1, 2, 3]) + 2 + """ + ) + assert cumavg.__doc__ == docstr + + +def test_doc_template_from_func(): + docstr = dedent( + """ + This is the cummax method. + + It computes the cumulative maximum. + """ + ) + assert cummax.__doc__ == docstr + + +def test_inherit_doc_template(): + docstr = dedent( + """ + This is the cummin method. + + It computes the cumulative minimum. + """ + ) + assert cummin.__doc__ == docstr From fc6136480c36b02b0b008cb8c0e2eac08de3e994 Mon Sep 17 00:00:00 2001 From: Zero Date: Tue, 6 Jul 2021 04:36:55 +0800 Subject: [PATCH 179/316] TST: don't use to_crs on GeometryArray without crs (#1993) * TST, BUG: GeometryArray.crs is empty, can't transform another crs fix https://github.com/geopandas/geopandas/runs/2985725996?check_suite_focus=true#step:5:2713 * TST, BUG: use `Geoseries.set_crs` replace `GeometryArray.to_crs` * simplify a bit Co-authored-by: Joris Van den Bossche --- geopandas/tests/test_crs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/geopandas/tests/test_crs.py b/geopandas/tests/test_crs.py index e2f4f74..c8aa321 100644 --- a/geopandas/tests/test_crs.py +++ b/geopandas/tests/test_crs.py @@ -330,7 +330,7 @@ class TestGeometryArrayCRS: df = GeoDataFrame( {"col1": [1, 2], "geometry": arr, "other_geom": arr}, crs=4326 ) - df["other_geom"] = arr.to_crs(27700) + df["other_geom"] = from_shapely(self.geoms, crs=27700) assert df.crs == self.wgs assert df.geometry.crs == self.wgs assert df["geometry"].crs == self.wgs From 8c1e3531b8ed23e086ca2a3eede81e344a591a5d Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Tue, 6 Jul 2021 07:30:33 +0100 Subject: [PATCH 180/316] DEP: deprecate python 3.6 and pandas 0.24 (#1877) --- .github/workflows/tests.yaml | 4 +-- CONTRIBUTING.md | 4 +-- ci/envs/{36-minimal.yaml => 37-minimal.yaml} | 8 ++--- ci/envs/{36-pd025.yaml => 37-pd10.yaml} | 8 +++-- doc/source/community/contributing.rst | 2 +- doc/source/getting_started/install.rst | 4 +-- environment-dev.yml | 2 +- geopandas/_compat.py | 1 - geopandas/geodataframe.py | 14 ++------ geopandas/plotting.py | 36 +++++++++----------- geopandas/tests/test_dissolve.py | 4 --- geopandas/tests/test_geom_methods.py | 4 --- geopandas/tests/test_pandas_methods.py | 6 +--- geopandas/tests/test_plotting.py | 12 ++++--- geopandas/tests/test_sindex.py | 2 +- requirements-dev.txt | 6 ++-- setup.py | 4 +-- 17 files changed, 51 insertions(+), 70 deletions(-) rename ci/envs/{36-minimal.yaml => 37-minimal.yaml} (83%) rename ci/envs/{36-pd025.yaml => 37-pd10.yaml} (82%) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 2044c6c..508beb6 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -31,9 +31,9 @@ jobs: postgis: [false] dev: [false] env: - - ci/envs/36-minimal.yaml + - ci/envs/37-minimal.yaml - ci/envs/38-no-optional-deps.yaml - - ci/envs/36-pd025.yaml + - ci/envs/37-pd10.yaml - ci/envs/37-latest-defaults.yaml - ci/envs/37-latest-conda-forge.yaml - ci/envs/38-latest-conda-forge.yaml diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c94d503..40fecd6 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -19,7 +19,7 @@ In particular, when submitting a pull request: - Install the requirements for the development environment (one can do this with either conda, and the environment.yml file, or pip, and the requirements-dev.txt file, and can use the pandas contributing guidelines - as a guide). + as a guide). - All existing tests should pass. Please make sure that the test suite passes, both locally and on [GitHub Actions](https://github.com/geopandas/geopandas/actions). Status on @@ -39,7 +39,7 @@ is a great way to get started if you'd like to make a contribution. Style ----- -- GeoPandas supports Python 3.6+ only. The last version of GeoPandas +- GeoPandas supports Python 3.7+ only. The last version of GeoPandas supporting Python 2 is 0.6. - GeoPandas follows [the PEP 8 diff --git a/ci/envs/36-minimal.yaml b/ci/envs/37-minimal.yaml similarity index 83% rename from ci/envs/36-minimal.yaml rename to ci/envs/37-minimal.yaml index 7bec4c4..0b6fd99 100644 --- a/ci/envs/36-minimal.yaml +++ b/ci/envs/37-minimal.yaml @@ -3,10 +3,10 @@ channels: - defaults - conda-forge dependencies: - - python=3.6 + - python=3.7 # required - - numpy=1.15 - - pandas==0.24 + - numpy=1.18 + - pandas==0.25 - shapely=1.6 - fiona=1.8.13 #- pyproj @@ -18,7 +18,7 @@ dependencies: # optional - rtree - matplotlib - - matplotlib=2.2 + - matplotlib=3.1 - mapclassify>=2.2.0 - geopy - SQLalchemy diff --git a/ci/envs/36-pd025.yaml b/ci/envs/37-pd10.yaml similarity index 82% rename from ci/envs/36-pd025.yaml rename to ci/envs/37-pd10.yaml index 554e237..e72311f 100644 --- a/ci/envs/36-pd025.yaml +++ b/ci/envs/37-pd10.yaml @@ -2,11 +2,12 @@ name: test channels: - defaults dependencies: - - python=3.6 + - python=3.7 # required - - pandas=0.25 + - pandas=1.0 - shapely - fiona + - numpy=<1.19 #- pyproj - geos # testing @@ -20,8 +21,9 @@ dependencies: #- geopy - SQLalchemy - libspatialite - - pyarrow + - pip - pip: - pyproj==2.3.1 - geopy - mapclassify==2.2.0 + - pyarrow \ No newline at end of file diff --git a/doc/source/community/contributing.rst b/doc/source/community/contributing.rst index 0d6aec2..5d965c0 100644 --- a/doc/source/community/contributing.rst +++ b/doc/source/community/contributing.rst @@ -44,7 +44,7 @@ In particular, when submitting a pull request: imports when possible, and explicit relative imports for local imports when necessary in tests. -- GeoPandas supports Python 3.6+ only. The last version of GeoPandas +- GeoPandas supports Python 3.7+ only. The last version of GeoPandas supporting Python 2 is 0.6. diff --git a/doc/source/getting_started/install.rst b/doc/source/getting_started/install.rst index 0d56a06..23c5a49 100644 --- a/doc/source/getting_started/install.rst +++ b/doc/source/getting_started/install.rst @@ -138,7 +138,7 @@ Dependencies Required dependencies: - `numpy`_ -- `pandas`_ (version 0.24 or later) +- `pandas`_ (version 0.25 or later) - `shapely`_ (interface to `GEOS`_) - `fiona`_ (interface to `GDAL`_) - `pyproj`_ (interface to `PROJ`_; version 2.2.0 or later) @@ -154,7 +154,7 @@ Further, optional dependencies are: For plotting, these additional packages may be used: -- `matplotlib`_ (>= 2.2.0) +- `matplotlib`_ (>= 3.1.0) - `mapclassify`_ (>= 2.2.0) diff --git a/environment-dev.yml b/environment-dev.yml index a116f56..8b619a9 100644 --- a/environment-dev.yml +++ b/environment-dev.yml @@ -4,7 +4,7 @@ channels: dependencies: # required - fiona>=1.8 - - pandas>=0.24 + - pandas>=0.25 - pyproj>=2.2.0 - shapely>=1.6 diff --git a/geopandas/_compat.py b/geopandas/_compat.py index 635aecc..c1e2202 100644 --- a/geopandas/_compat.py +++ b/geopandas/_compat.py @@ -14,7 +14,6 @@ import shapely.geos # pandas compat # ----------------------------------------------------------------------------- -PANDAS_GE_025 = str(pd.__version__) >= LooseVersion("0.25.0") PANDAS_GE_10 = str(pd.__version__) >= LooseVersion("1.0.0") PANDAS_GE_11 = str(pd.__version__) >= LooseVersion("1.1.0") PANDAS_GE_115 = str(pd.__version__) >= LooseVersion("1.1.5") diff --git a/geopandas/geodataframe.py b/geopandas/geodataframe.py index 46a70ec..b3a9dd6 100644 --- a/geopandas/geodataframe.py +++ b/geopandas/geodataframe.py @@ -4,6 +4,7 @@ import warnings import numpy as np import pandas as pd from pandas import DataFrame, Series +from pandas.core.accessor import CachedAccessor from shapely.geometry import mapping, shape from shapely.geometry.base import BaseGeometry @@ -14,7 +15,6 @@ from geopandas.array import GeometryArray, GeometryDtype, from_shapely, to_wkb, from geopandas.base import GeoPandasBase, is_geometry_type from geopandas.geoseries import GeoSeries import geopandas.io -from geopandas.plotting import plot_dataframe from . import _compat as compat from ._decorator import doc @@ -1382,7 +1382,7 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} return GeoDataFrame def __finalize__(self, other, method=None, **kwargs): - """propagate metadata from other to self """ + """propagate metadata from other to self""" self = super().__finalize__(other, method=method, **kwargs) # merge operation: using metadata of the left object @@ -1734,15 +1734,7 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} ) return self.geometry.difference(other) - if compat.PANDAS_GE_025: - from pandas.core.accessor import CachedAccessor - - plot = CachedAccessor("plot", geopandas.plotting.GeoplotAccessor) - else: - - @doc(plot_dataframe) - def plot(self, *args, **kwargs): - return plot_dataframe(self, *args, **kwargs) + plot = CachedAccessor("plot", geopandas.plotting.GeoplotAccessor) def _dataframe_set_geometry(self, col, drop=False, inplace=False, crs=None): diff --git a/geopandas/plotting.py b/geopandas/plotting.py index aa7122c..19debb5 100644 --- a/geopandas/plotting.py +++ b/geopandas/plotting.py @@ -2,6 +2,7 @@ import warnings import numpy as np import pandas as pd +from pandas.plotting import PlotAccessor import geopandas @@ -912,28 +913,25 @@ GON (((-122.84000 49.00000, -120.0000... return ax -if geopandas._compat.PANDAS_GE_025: - from pandas.plotting import PlotAccessor +@doc(plot_dataframe) +class GeoplotAccessor(PlotAccessor): - @doc(plot_dataframe) - class GeoplotAccessor(PlotAccessor): + _pandas_kinds = PlotAccessor._all_kinds - _pandas_kinds = PlotAccessor._all_kinds + def __call__(self, *args, **kwargs): + data = self._parent.copy() + kind = kwargs.pop("kind", "geo") + if kind == "geo": + return plot_dataframe(data, *args, **kwargs) + if kind in self._pandas_kinds: + # Access pandas plots + return PlotAccessor(data)(kind=kind, **kwargs) + else: + # raise error + raise ValueError(f"{kind} is not a valid plot kind") - def __call__(self, *args, **kwargs): - data = self._parent.copy() - kind = kwargs.pop("kind", "geo") - if kind == "geo": - return plot_dataframe(data, *args, **kwargs) - if kind in self._pandas_kinds: - # Access pandas plots - return PlotAccessor(data)(kind=kind, **kwargs) - else: - # raise error - raise ValueError(f"{kind} is not a valid plot kind") - - def geo(self, *args, **kwargs): - return self(kind="geo", *args, **kwargs) + def geo(self, *args, **kwargs): + return self(kind="geo", *args, **kwargs) def _mapclassify_choro(values, scheme, **classification_kwds): diff --git a/geopandas/tests/test_dissolve.py b/geopandas/tests/test_dissolve.py index d50d25f..20e628f 100644 --- a/geopandas/tests/test_dissolve.py +++ b/geopandas/tests/test_dissolve.py @@ -201,10 +201,6 @@ def test_dissolve_sort(): assert_frame_equal(expected_unsorted, gdf.dissolve("a", sort=False)) -@pytest.mark.skipif( - not compat.PANDAS_GE_025, - reason="'observed' param behavior changed in pandas 0.25.0", -) def test_dissolve_categorical(): gdf = geopandas.GeoDataFrame( { diff --git a/geopandas/tests/test_geom_methods.py b/geopandas/tests/test_geom_methods.py index 8103d38..da13034 100644 --- a/geopandas/tests/test_geom_methods.py +++ b/geopandas/tests/test_geom_methods.py @@ -872,10 +872,6 @@ class TestGeomMethods: expected_df = expected_df.set_index(expected_index) assert_frame_equal(test_df, expected_df) - @pytest.mark.skipif( - not compat.PANDAS_GE_025, - reason="pandas explode introduced in pandas 0.25", - ) def test_explode_pandas_fallback(self): d = { "col1": [["name1", "name2"], ["name3", "name4"]], diff --git a/geopandas/tests/test_pandas_methods.py b/geopandas/tests/test_pandas_methods.py index 2aba429..585b77b 100644 --- a/geopandas/tests/test_pandas_methods.py +++ b/geopandas/tests/test_pandas_methods.py @@ -79,11 +79,7 @@ def test_repr_all_missing(): def test_repr_empty(): # https://github.com/geopandas/geopandas/issues/1195 s = GeoSeries([]) - if compat.PANDAS_GE_025: - # repr with correct name fixed in pandas 0.25 - assert repr(s) == "GeoSeries([], dtype: geometry)" - else: - assert repr(s) == "Series([], dtype: geometry)" + assert repr(s) == "GeoSeries([], dtype: geometry)" df = GeoDataFrame({"a": [], "geometry": s}) assert "Empty GeoDataFrame" in repr(df) # https://github.com/geopandas/geopandas/issues/1184 diff --git a/geopandas/tests/test_plotting.py b/geopandas/tests/test_plotting.py index 6581c79..998880d 100644 --- a/geopandas/tests/test_plotting.py +++ b/geopandas/tests/test_plotting.py @@ -22,6 +22,7 @@ from shapely.geometry import ( from geopandas import GeoDataFrame, GeoSeries, read_file from geopandas.datasets import get_path import geopandas._compat as compat +from geopandas.plotting import GeoplotAccessor import pytest @@ -32,7 +33,11 @@ import matplotlib.pyplot as plt # noqa try: # skipif and importorskip do not work for decorators from matplotlib.testing.decorators import check_figures_equal - MPL_DECORATORS = True + if matplotlib.__version__ >= LooseVersion("3.3.0"): + + MPL_DECORATORS = True + else: + MPL_DECORATORS = False except ImportError: MPL_DECORATORS = False @@ -1475,7 +1480,6 @@ class TestPlotCollections: ax.cla() -@pytest.mark.skipif(not compat.PANDAS_GE_025, reason="requires pandas > 0.24") class TestGeoplotAccessor: def setup_method(self): geometries = [Polygon([(0, 0), (1, 0), (1, 1)]), Point(1, 3)] @@ -1499,10 +1503,8 @@ class TestGeoplotAccessor: getattr(self.gdf.plot, kind)(ax=ax_geopandas_2, **kwargs) _pandas_kinds = [] - if compat.PANDAS_GE_025: - from geopandas.plotting import GeoplotAccessor - _pandas_kinds = GeoplotAccessor._pandas_kinds + _pandas_kinds = GeoplotAccessor._pandas_kinds if MPL_DECORATORS: diff --git a/geopandas/tests/test_sindex.py b/geopandas/tests/test_sindex.py index 7d8d35c..c625a5d 100644 --- a/geopandas/tests/test_sindex.py +++ b/geopandas/tests/test_sindex.py @@ -162,7 +162,7 @@ class TestFrameSindex: assert geometry_col.sindex is original_index @pytest.mark.skipif( - not compat.PANDAS_GE_10, reason="Column selection returns a copy on pd<=1.0.0" + not compat.PANDAS_GE_11, reason="Column selection returns a copy on pd<=1.1.0" ) def test_rebuild_on_multiple_col_selection(self): """Selecting a subset of columns preserves the index.""" diff --git a/requirements-dev.txt b/requirements-dev.txt index 1d2d1e7..07be51c 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,6 +1,6 @@ # required fiona>=1.8 -pandas>=0.24 +pandas>=0.25 pyproj>=2.2.0 shapely>=1.6 @@ -15,12 +15,12 @@ geopy matplotlib>=2.2 mapclassify -# testing +# testing pytest>=3.1.0 pytest-cov codecov -# spatial access methods +# spatial access methods rtree>=0.8 # styling diff --git a/setup.py b/setup.py index 1d1dfe5..f029a5f 100644 --- a/setup.py +++ b/setup.py @@ -30,7 +30,7 @@ if os.environ.get("READTHEDOCS", False) == "True": INSTALL_REQUIRES = [] else: INSTALL_REQUIRES = [ - "pandas >= 0.24.0", + "pandas >= 0.25.0", "shapely >= 1.6", "fiona >= 1.8", "pyproj >= 2.2.0", @@ -67,7 +67,7 @@ setup( "geopandas.tools.tests", ], package_data={"geopandas": data_files}, - python_requires=">=3.6", + python_requires=">=3.7", install_requires=INSTALL_REQUIRES, cmdclass=versioneer.get_cmdclass(), ) From ef416188f4186e77d60fc6ba95f0182cf07117e2 Mon Sep 17 00:00:00 2001 From: TLouf <31036680+TLouf@users.noreply.github.com> Date: Thu, 8 Jul 2021 00:36:47 +0200 Subject: [PATCH 181/316] TST: adapt colorbar tests to matplotlib 3.5 (#2000) --- geopandas/tests/test_plotting.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/geopandas/tests/test_plotting.py b/geopandas/tests/test_plotting.py index 998880d..a703168 100644 --- a/geopandas/tests/test_plotting.py +++ b/geopandas/tests/test_plotting.py @@ -1195,8 +1195,8 @@ class TestMapclassifyPlotting: ax2 = self.df.plot( column="pop_est", cmap="OrRd", legend=True, cax=cax, ax=ax2 ) - plot_height = _get_ax(fig, "").get_position().height - legend_height = _get_ax(fig, "fixed_colorbar").get_position().height + plot_height = fig.axes[0].get_position().height + legend_height = fig.axes[1].get_position().height assert abs(plot_height - legend_height) < 1e-6 @@ -1683,4 +1683,10 @@ def _get_ax(fig, label): def _get_colorbar_ax(fig): - return _get_ax(fig, "") + cax = _get_ax(fig, "") + if matplotlib.__version__ < LooseVersion("3.5.0"): + return cax + else: + # Get the inset axis actually containing the colorbar elements, see GH + # matplotlib#20054. + return cax.child_axes[0] From 77a041ffaf7d2f1e06239555a30f11149b72b896 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Thu, 8 Jul 2021 10:22:48 +0200 Subject: [PATCH 182/316] Revert "TST: adapt colorbar tests to matplotlib 3.5 (#2000)" (#2001) This reverts commit ef416188f4186e77d60fc6ba95f0182cf07117e2. --- geopandas/tests/test_plotting.py | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/geopandas/tests/test_plotting.py b/geopandas/tests/test_plotting.py index a703168..998880d 100644 --- a/geopandas/tests/test_plotting.py +++ b/geopandas/tests/test_plotting.py @@ -1195,8 +1195,8 @@ class TestMapclassifyPlotting: ax2 = self.df.plot( column="pop_est", cmap="OrRd", legend=True, cax=cax, ax=ax2 ) - plot_height = fig.axes[0].get_position().height - legend_height = fig.axes[1].get_position().height + plot_height = _get_ax(fig, "").get_position().height + legend_height = _get_ax(fig, "fixed_colorbar").get_position().height assert abs(plot_height - legend_height) < 1e-6 @@ -1683,10 +1683,4 @@ def _get_ax(fig, label): def _get_colorbar_ax(fig): - cax = _get_ax(fig, "") - if matplotlib.__version__ < LooseVersion("3.5.0"): - return cax - else: - # Get the inset axis actually containing the colorbar elements, see GH - # matplotlib#20054. - return cax.child_axes[0] + return _get_ax(fig, "") From 7997837abdad0e312818a3f11027a2df9b685840 Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Thu, 15 Jul 2021 09:18:17 +0100 Subject: [PATCH 183/316] REF/TST: replace GeocodeFarm with Photon as a geocoding default (#2007) * TST: replace GeocodeFarm with Photon * change default in geocoding and docs --- doc/source/docs/user_guide/geocoding.rst | 10 ++++----- geopandas/tests/test_geocode.py | 12 +++++----- geopandas/tools/geocoding.py | 28 +++++++++--------------- 3 files changed, 21 insertions(+), 29 deletions(-) diff --git a/doc/source/docs/user_guide/geocoding.rst b/doc/source/docs/user_guide/geocoding.rst index a0131d6..7605e8c 100644 --- a/doc/source/docs/user_guide/geocoding.rst +++ b/doc/source/docs/user_guide/geocoding.rst @@ -33,8 +33,8 @@ with the detailed borough boundary file included within ``geopandas``. By default, the :func:`~geopandas.tools.geocode` function uses the -`GeoCode.Farm geocoding API `__ with a rate limitation -applied. But a different geocoding service can be specified with the +`Photon geocoding API `__. +But a different geocoding service can be specified with the ``provider`` keyword. The argument to ``provider`` can either be a string referencing geocoding @@ -54,6 +54,6 @@ a user agent: .. attention:: Please consult the Terms of Service for the chosen provider. The example - above uses ``'geocodefarm'`` (the default), for which free users are - limited to 250 calls per day and 4 requests per second - (`geocodefarm ToS `_). + above uses ``'photon'`` (the default), which expects fair usage + - extensive usage will be throttled. + (`Photon's Terms of Use `_). diff --git a/geopandas/tests/test_geocode.py b/geopandas/tests/test_geocode.py index ec8740c..6adfbbd 100644 --- a/geopandas/tests/test_geocode.py +++ b/geopandas/tests/test_geocode.py @@ -138,10 +138,10 @@ def test_bad_provider_reverse(): def test_forward(locations, points): - from geopy.geocoders import GeocodeFarm + from geopy.geocoders import Photon - for provider in ["geocodefarm", GeocodeFarm]: - with mock.patch("geopy.geocoders.GeocodeFarm.geocode", ForwardMock()) as m: + for provider in ["photon", Photon]: + with mock.patch("geopy.geocoders.Photon.geocode", ForwardMock()) as m: g = geocode(locations, provider=provider, timeout=2) assert len(locations) == m.call_count @@ -155,10 +155,10 @@ def test_forward(locations, points): def test_reverse(locations, points): - from geopy.geocoders import GeocodeFarm + from geopy.geocoders import Photon - for provider in ["geocodefarm", GeocodeFarm]: - with mock.patch("geopy.geocoders.GeocodeFarm.reverse", ReverseMock()) as m: + for provider in ["photon", Photon]: + with mock.patch("geopy.geocoders.Photon.reverse", ReverseMock()) as m: g = reverse_geocode(points, provider=provider, timeout=2) assert len(points) == m.call_count diff --git a/geopandas/tools/geocoding.py b/geopandas/tools/geocoding.py index 8db7f9f..7743d1a 100644 --- a/geopandas/tools/geocoding.py +++ b/geopandas/tools/geocoding.py @@ -31,13 +31,12 @@ def geocode(strings, provider=None, **kwargs): strings : list or Series of addresses to geocode provider : str or geopy.geocoder Specifies geocoding service to use. If none is provided, - will use 'geocodefarm' with a rate limit applied (see the geocodefarm - terms of service at: - https://geocode.farm/geocoding/free-api-documentation/ ). + will use 'photon' (see the Photon's terms of service at: + https://photon.komoot.io). Either the string name used by geopy (as specified in geopy.geocoders.SERVICE_TO_GEOCODER) or a geopy Geocoder instance - (e.g., geopy.geocoders.GeocodeFarm) may be used. + (e.g., geopy.geocoders.Photon) may be used. Some providers require additional arguments such as access keys See each geocoder's specific parameters in geopy.geocoders @@ -62,11 +61,8 @@ def geocode(strings, provider=None, **kwargs): """ if provider is None: - # https://geocode.farm/geocoding/free-api-documentation/ - provider = "geocodefarm" - throttle_time = 0.25 - else: - throttle_time = _get_throttle_time(provider) + provider = "photon" + throttle_time = _get_throttle_time(provider) return _query(strings, True, provider, throttle_time, **kwargs) @@ -85,13 +81,12 @@ def reverse_geocode(points, provider=None, **kwargs): y coordinate is latitude provider : str or geopy.geocoder (opt) Specifies geocoding service to use. If none is provided, - will use 'geocodefarm' with a rate limit applied (see the geocodefarm - terms of service at: - https://geocode.farm/geocoding/free-api-documentation/ ). + will use 'photon' (see the Photon's terms of service at: + https://photon.komoot.io). Either the string name used by geopy (as specified in geopy.geocoders.SERVICE_TO_GEOCODER) or a geopy Geocoder instance - (e.g., geopy.geocoders.GeocodeFarm) may be used. + (e.g., geopy.geocoders.Photon) may be used. Some providers require additional arguments such as access keys See each geocoder's specific parameters in geopy.geocoders @@ -117,11 +112,8 @@ def reverse_geocode(points, provider=None, **kwargs): """ if provider is None: - # https://geocode.farm/geocoding/free-api-documentation/ - provider = "geocodefarm" - throttle_time = 0.25 - else: - throttle_time = _get_throttle_time(provider) + provider = "photon" + throttle_time = _get_throttle_time(provider) return _query(points, False, provider, throttle_time, **kwargs) From 68ee8b929ce7f167d1e57d92789ed3e56e6dd56d Mon Sep 17 00:00:00 2001 From: standakozak <47722371+standakozak@users.noreply.github.com> Date: Sat, 24 Jul 2021 00:37:23 +0200 Subject: [PATCH 184/316] DOC: Example of matplotlib-scalebar library usage (#1994) * Adding an example of matplotlib-scalebar * Updating version number of matplotlib-scalebar library * DOC: Resolving comments for matplotlib-scalebar example * formatting, icon Co-authored-by: Martin Fleischmann --- doc/environment.yml | 1 + doc/source/gallery/matplotlib_scalebar.ipynb | 217 +++++++++++++++++++ 2 files changed, 218 insertions(+) create mode 100644 doc/source/gallery/matplotlib_scalebar.ipynb diff --git a/doc/environment.yml b/doc/environment.yml index 2fc93b4..aa6faf8 100644 --- a/doc/environment.yml +++ b/doc/environment.yml @@ -25,6 +25,7 @@ dependencies: - sphinx-gallery=0.9.0 - jinja2=3.0.1 - doc2dash=2.3.0 + - matplotlib-scalebar=0.7.2 # specify additional dependencies to reduce solving for conda - gdal=3.2.1 - libgdal=3.2.1 diff --git a/doc/source/gallery/matplotlib_scalebar.ipynb b/doc/source/gallery/matplotlib_scalebar.ipynb new file mode 100644 index 0000000..0cde080 --- /dev/null +++ b/doc/source/gallery/matplotlib_scalebar.ipynb @@ -0,0 +1,217 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Adding a scale bar to a matplotlib plot\n", + "When making a geospatial plot in matplotlib, you can use [maplotlib-scalebar library](https://pypi.org/project/matplotlib-scalebar/) to add a scale bar." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import geopandas as gpd\n", + "from matplotlib_scalebar.scalebar import ScaleBar" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Creating a ScaleBar object\n", + "The only required parameter for creating a ScaleBar object is `dx`. This is equal to a size of one pixel in real world. Value of this parameter depends on units of your CRS.\n", + "\n", + "### Projected coordinate system (meters)\n", + "The easiest way to add a scale bar is using a projected coordinate system with meters as units. Just set `dx = 1`:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "nbsphinx-thumbnail" + ] + }, + "outputs": [], + "source": [ + "nybb = gpd.read_file(gpd.datasets.get_path('nybb'))\n", + "nybb = nybb.to_crs(32619) # Convert the dataset to a coordinate\n", + "# system which uses meters\n", + "\n", + "ax = nybb.plot()\n", + "ax.add_artist(ScaleBar(1))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Geographic coordinate system (degrees)\n", + "With a geographic coordinate system with degrees as units, `dx` should be equal to a distance in meters of two points with the same latitude (Y coordinate) which are one full degree of longitude (X) apart. You can calculate this distance by online calculator [(e.g. the Great Circle calculator)](http://edwilliams.org/gccalc.htm) or in geopandas.\\\n", + "\\\n", + "Firstly, we will create a GeoSeries with two points that have roughly the coordinates of NYC. They are located on the same latitude but one degree of longitude from each other. Their initial coordinates are specified in a geographic coordinate system (geographic WGS 84). They are then converted to a projected system for the calculation:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from shapely.geometry.point import Point\n", + "\n", + "points = gpd.GeoSeries([Point(-73.5, 40.5), Point(-74.5, 40.5)], crs=4326) # Geographic WGS 84 - degrees\n", + "points = points.to_crs(32619) # Projected WGS 84 - meters" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "After the conversion, we can calculate the distance between the points. The result slightly differs from the Great Circle Calculator but the difference is insignificant (84,921 and 84,767 meters):" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "distance_meters = points[0].distance(points[1])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, we are able to use geographic coordinate system in our plot. We set value of `dx` parameter to a distance we just calculated:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "nybb = gpd.read_file(gpd.datasets.get_path('nybb'))\n", + "nybb = nybb.to_crs(4326) # Using geographic WGS 84\n", + "\n", + "ax = nybb.plot()\n", + "ax.add_artist(ScaleBar(distance_meters))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Using other units \n", + "The default unit for `dx` is m (meter). You can change this unit by the `units` and `dimension` parameters. There is a list of some possible `units` for various values of `dimension` below:\n", + "\n", + "| dimension | units |\n", + "| ----- |:-----:|\n", + "| si-length | km, m, cm, um|\n", + "| imperial-length |in, ft, yd, mi|\n", + "|si-length-reciprocal|1/m, 1/cm|\n", + "|angle|deg|\n", + "\n", + "In the following example, we will leave the dataset in its initial CRS which uses feet as units. The plot shows scale of 2 leagues (approximately 11 kilometers):" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "nybb = gpd.read_file(gpd.datasets.get_path('nybb'))\n", + "\n", + "ax = nybb.plot()\n", + "ax.add_artist(ScaleBar(1, dimension=\"imperial-length\", units=\"ft\"))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Customization of the scale bar" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "nybb = gpd.read_file(gpd.datasets.get_path('nybb')).to_crs(32619)\n", + "ax = nybb.plot()\n", + "\n", + "# Position and layout\n", + "scale1 = ScaleBar(\n", + "dx=1, label='Scale 1',\n", + " location='upper left', # in relation to the whole plot\n", + " label_loc='left', scale_loc='bottom' # in relation to the line\n", + ")\n", + "\n", + "# Color\n", + "scale2 = ScaleBar(\n", + " dx=1, label='Scale 2', location='center', \n", + " color='#b32400', box_color='yellow',\n", + " box_alpha=0.8 # Slightly transparent box\n", + ")\n", + "\n", + "# Font and text formatting\n", + "scale3 = ScaleBar(\n", + " dx=1, label='Scale 3',\n", + " font_properties={'family':'serif', 'size': 'large'}, # For more information, see the cell below\n", + " scale_formatter=lambda value, unit: f'> {value} {unit} <'\n", + ")\n", + "\n", + "ax.add_artist(scale1)\n", + "ax.add_artist(scale2)\n", + "ax.add_artist(scale3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "*Note:* Font is specified by six properties: `family`, `style`, `variant`, `stretch`, `weight`, `size` (and `math_fontfamily`). See [more](https://matplotlib.org/stable/api/font_manager_api.html#matplotlib.font_manager.FontProperties).\\\n", + "\\\n", + "For more information about matplotlib-scalebar library, see the [PyPI](https://pypi.org/project/matplotlib-scalebar/) or [GitHub](https://github.com/ppinard/matplotlib-scalebar) page." + ] + } + ], + "metadata": { + "interpreter": { + "hash": "9914e2881520d4f08a067c2c2c181121476026b863eca2e121cd0758701ab602" + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.2" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} From dbcf4ab7aff909c41e70edd2fc082b342d277029 Mon Sep 17 00:00:00 2001 From: Ray Bell Date: Sat, 24 Jul 2021 04:32:39 -0400 Subject: [PATCH 185/316] DOC: pyarrow intersphinx mapping (#2016) --- doc/source/conf.py | 107 ++++++++++++++++++++------------------ geopandas/geodataframe.py | 5 +- 2 files changed, 59 insertions(+), 53 deletions(-) diff --git a/doc/source/conf.py b/doc/source/conf.py index 44a6827..4c6e1cb 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -334,69 +334,74 @@ nbsphinx_prolog = r""" # connect docs in other projects intersphinx_mapping = { - "pyproj": ( - "https://pyproj4.github.io/pyproj/stable/", - "https://pyproj4.github.io/pyproj/stable/objects.inv", - ), - "pandas": ( - "https://pandas.pydata.org/pandas-docs/stable/", - "https://pandas.pydata.org/pandas-docs/stable/objects.inv", - ), - "shapely": ( - "https://shapely.readthedocs.io/en/stable/", - "https://shapely.readthedocs.io/en/stable/objects.inv", - ), - "fiona": ( - "https://fiona.readthedocs.io/en/stable/", - "https://fiona.readthedocs.io/en/stable/objects.inv", - ), - "pygeos": ( - "https://pygeos.readthedocs.io/en/latest/", - "https://pygeos.readthedocs.io/en/latest/objects.inv", - ), - "rtree": ( - "https://rtree.readthedocs.io/en/stable/", - "https://rtree.readthedocs.io/en/stable/objects.inv", - ), - "mapclassify": ( - "https://pysal.org/mapclassify/", - "https://pysal.org/mapclassify/objects.inv", - ), - "libpysal": ( - "https://pysal.org/libpysal/", - "https://pysal.org/libpysal/objects.inv", - ), - "matplotlib": ( - "https://matplotlib.org/stable/", - "https://matplotlib.org/stable/objects.inv", - ), - "geopy": ( - "https://geopy.readthedocs.io/en/stable/", - "https://geopy.readthedocs.io/en/stable/objects.inv", - ), "cartopy": ( "https://scitools.org.uk/cartopy/docs/latest/", "https://scitools.org.uk/cartopy/docs/latest/objects.inv", ), - "pyepsg": ( - "https://pyepsg.readthedocs.io/en/stable/", - "https://pyepsg.readthedocs.io/en/stable/objects.inv", - ), "contextily": ( "https://contextily.readthedocs.io/en/stable/", "https://contextily.readthedocs.io/en/stable/objects.inv", ), - "rasterio": ( - "https://rasterio.readthedocs.io/en/stable/", - "https://rasterio.readthedocs.io/en/stable/objects.inv", - ), - "geoplot": ( - "https://residentmario.github.io/geoplot/index.html", - "https://residentmario.github.io/geoplot/objects.inv", + "fiona": ( + "https://fiona.readthedocs.io/en/stable/", + "https://fiona.readthedocs.io/en/stable/objects.inv", ), "folium": ( "https://python-visualization.github.io/folium/", "https://python-visualization.github.io/folium/objects.inv", ), + "geoplot": ( + "https://residentmario.github.io/geoplot/index.html", + "https://residentmario.github.io/geoplot/objects.inv", + ), + "geopy": ( + "https://geopy.readthedocs.io/en/stable/", + "https://geopy.readthedocs.io/en/stable/objects.inv", + ), + "libpysal": ( + "https://pysal.org/libpysal/", + "https://pysal.org/libpysal/objects.inv", + ), + "mapclassify": ( + "https://pysal.org/mapclassify/", + "https://pysal.org/mapclassify/objects.inv", + ), + "matplotlib": ( + "https://matplotlib.org/stable/", + "https://matplotlib.org/stable/objects.inv", + ), + "pandas": ( + "https://pandas.pydata.org/pandas-docs/stable/", + "https://pandas.pydata.org/pandas-docs/stable/objects.inv", + ), + "pyarrow": ("https://arrow.apache.org/docs/", None), + "pyepsg": ( + "https://pyepsg.readthedocs.io/en/stable/", + "https://pyepsg.readthedocs.io/en/stable/objects.inv", + ), + "pyepsg": ( + "https://pyepsg.readthedocs.io/en/stable/", + "https://pyepsg.readthedocs.io/en/stable/objects.inv", + ), + "pygeos": ( + "https://pygeos.readthedocs.io/en/latest/", + "https://pygeos.readthedocs.io/en/latest/objects.inv", + ), + "pyproj": ( + "https://pyproj4.github.io/pyproj/stable/", + "https://pyproj4.github.io/pyproj/stable/objects.inv", + ), "python": ("https://docs.python.org/3", "https://docs.python.org/3/objects.inv"), + "rtree": ( + "https://rtree.readthedocs.io/en/stable/", + "https://rtree.readthedocs.io/en/stable/objects.inv", + ), + "rasterio": ( + "https://rasterio.readthedocs.io/en/stable/", + "https://rasterio.readthedocs.io/en/stable/objects.inv", + ), + "shapely": ( + "https://shapely.readthedocs.io/en/stable/", + "https://shapely.readthedocs.io/en/stable/objects.inv", + ), } diff --git a/geopandas/geodataframe.py b/geopandas/geodataframe.py index b3a9dd6..dac4423 100644 --- a/geopandas/geodataframe.py +++ b/geopandas/geodataframe.py @@ -962,7 +962,7 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} compression : {'snappy', 'gzip', 'brotli', None}, default 'snappy' Name of the compression to use. Use ``None`` for no compression. kwargs - Additional keyword arguments passed to to pyarrow.parquet.write_table(). + Additional keyword arguments passed to :func:`pyarrow.parquet.write_table`. Examples -------- @@ -1010,7 +1010,8 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} Name of the compression to use. Use ``"uncompressed"`` for no compression. By default uses LZ4 if available, otherwise uncompressed. kwargs - Additional keyword arguments passed to to pyarrow.feather.write_feather(). + Additional keyword arguments passed to to + :func:`pyarrow.feather.write_feather`. Examples -------- From 3bf2d27ca9144266543bb55624ad24a2d05a58b3 Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Sat, 24 Jul 2021 10:42:44 +0100 Subject: [PATCH 186/316] DOC: override kernelspec when executing notebooks (#1938) * DOC: override kernelspec * revert kernelspec used for test --- doc/source/conf.py | 1 + doc/source/gallery/create_geopandas_from_pandas.ipynb | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/source/conf.py b/doc/source/conf.py index 4c6e1cb..8514d19 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -65,6 +65,7 @@ autosummary_generate = True nbsphinx_execute = "always" nbsphinx_allow_errors = True +nbsphinx_kernel_name = 'python3' # suppress matplotlib warning in examples warnings.filterwarnings( diff --git a/doc/source/gallery/create_geopandas_from_pandas.ipynb b/doc/source/gallery/create_geopandas_from_pandas.ipynb index 17547e4..404f52f 100644 --- a/doc/source/gallery/create_geopandas_from_pandas.ipynb +++ b/doc/source/gallery/create_geopandas_from_pandas.ipynb @@ -225,4 +225,4 @@ }, "nbformat": 4, "nbformat_minor": 4 -} \ No newline at end of file +} From 2394bf052a261fb0e5e6d0f8ed9c018b9ebaace7 Mon Sep 17 00:00:00 2001 From: Mike Taves Date: Sat, 24 Jul 2021 22:11:36 +1200 Subject: [PATCH 187/316] MAINT: use super() as described by PEP 3135 (#1885) Co-authored-by: Martin Fleischmann --- geopandas/_config.py | 4 ++-- geopandas/array.py | 2 +- geopandas/geodataframe.py | 12 ++++++------ geopandas/geoseries.py | 10 ++++------ geopandas/tests/test_geocode.py | 8 ++++---- 5 files changed, 17 insertions(+), 19 deletions(-) diff --git a/geopandas/_config.py b/geopandas/_config.py index 1dd0d11..b1c9fca 100644 --- a/geopandas/_config.py +++ b/geopandas/_config.py @@ -16,13 +16,13 @@ class Options(object): """Provide attribute-style access to configuration dict.""" def __init__(self, options): - super(Options, self).__setattr__("_options", options) + super().__setattr__("_options", options) # populate with default values config = {} for key, option in options.items(): config[key] = option.default_value - super(Options, self).__setattr__("_config", config) + super().__setattr__("_config", config) def __setattr__(self, key, value): # you can't set new keys diff --git a/geopandas/array.py b/geopandas/array.py index 8686879..434246f 100644 --- a/geopandas/array.py +++ b/geopandas/array.py @@ -1091,7 +1091,7 @@ class GeometryArray(ExtensionArray): len(self) is returned, with all values filled with ``self.dtype.na_value``. """ - shifted = super(GeometryArray, self).shift(periods, fill_value) + shifted = super().shift(periods, fill_value) shifted.crs = self.crs return shifted diff --git a/geopandas/geodataframe.py b/geopandas/geodataframe.py index dac4423..ac700d7 100644 --- a/geopandas/geodataframe.py +++ b/geopandas/geodataframe.py @@ -105,7 +105,7 @@ class GeoDataFrame(GeoPandasBase, DataFrame): def __init__(self, *args, geometry=None, crs=None, **kwargs): with compat.ignore_shapely2_warnings(): - super(GeoDataFrame, self).__init__(*args, **kwargs) + super().__init__(*args, **kwargs) # need to set this before calling self['geometry'], because # getitem accesses crs @@ -182,7 +182,7 @@ class GeoDataFrame(GeoPandasBase, DataFrame): if attr == "geometry": object.__setattr__(self, attr, val) else: - super(GeoDataFrame, self).__setattr__(attr, val) + super().__setattr__(attr, val) def _get_geometry(self): if self._geometry_column_name not in self: @@ -1303,7 +1303,7 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} GeoSeries. If it's a DataFrame with a 'geometry' column, return a GeoDataFrame. """ - result = super(GeoDataFrame, self).__getitem__(key) + result = super().__getitem__(key) geo_col = self._geometry_column_name if isinstance(result, Series) and isinstance(result.dtype, GeometryDtype): result.__class__ = GeoSeries @@ -1327,7 +1327,7 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} self._crs = value.crs except TypeError: warnings.warn("Geometry column does not contain geometry.") - super(GeoDataFrame, self).__setitem__(key, value) + super().__setitem__(key, value) # # Implement pandas methods @@ -1576,7 +1576,7 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} column = self.geometry.name # If the specified column is not a geometry dtype use pandas explode if not isinstance(self[column].dtype, GeometryDtype): - return super(GeoDataFrame, self).explode(column, **kwargs) + return super().explode(column, **kwargs) # TODO: make sure index behaviour is consistent df_copy = self.copy() @@ -1618,7 +1618,7 @@ box': (2.0, 1.0, 2.0, 1.0)}], 'bbox': (1.0, 1.0, 2.0, 2.0)} ------- GeoDataFrame or DataFrame """ - df = super(GeoDataFrame, self).astype(dtype, copy=copy, errors=errors, **kwargs) + df = super().astype(dtype, copy=copy, errors=errors, **kwargs) try: geoms = df[self._geometry_column_name] diff --git a/geopandas/geoseries.py b/geopandas/geoseries.py index 9edf530..73e3f60 100644 --- a/geopandas/geoseries.py +++ b/geopandas/geoseries.py @@ -531,7 +531,7 @@ class GeoSeries(GeoPandasBase, Series): def _wrapped_pandas_method(self, mtd, *args, **kwargs): """Wrap a generic pandas method to ensure it returns a GeoSeries""" - val = getattr(super(GeoSeries, self), mtd)(*args, **kwargs) + val = getattr(super(), mtd)(*args, **kwargs) if type(val) == Series: val.__class__ = GeoSeries val.crs = self.crs @@ -620,7 +620,7 @@ class GeoSeries(GeoPandasBase, Series): stacklevel=2, ) - return super(GeoSeries, self).isna() + return super().isna() def isnull(self): """Alias for `isna` method. See `isna` for more detail.""" @@ -678,7 +678,7 @@ class GeoSeries(GeoPandasBase, Series): UserWarning, stacklevel=2, ) - return super(GeoSeries, self).notna() + return super().notna() def notnull(self): """Alias for `notna` method. See `notna` for more detail.""" @@ -724,9 +724,7 @@ class GeoSeries(GeoPandasBase, Series): """ if value is None: value = BaseGeometry() - return super(GeoSeries, self).fillna( - value=value, method=method, inplace=inplace, **kwargs - ) + return super().fillna(value=value, method=method, inplace=inplace, **kwargs) def __contains__(self, other): """Allow tests of the form "geom in s" diff --git a/geopandas/tests/test_geocode.py b/geopandas/tests/test_geocode.py index 6adfbbd..f2daf9d 100644 --- a/geopandas/tests/test_geocode.py +++ b/geopandas/tests/test_geocode.py @@ -23,13 +23,13 @@ class ForwardMock(mock.MagicMock): """ def __init__(self, *args, **kwargs): - super(ForwardMock, self).__init__(*args, **kwargs) + super().__init__(*args, **kwargs) self._n = 0.0 def __call__(self, *args, **kwargs): self.return_value = args[0], (self._n, self._n + 0.5) self._n += 1 - return super(ForwardMock, self).__call__(*args, **kwargs) + return super().__call__(*args, **kwargs) class ReverseMock(mock.MagicMock): @@ -41,13 +41,13 @@ class ReverseMock(mock.MagicMock): """ def __init__(self, *args, **kwargs): - super(ReverseMock, self).__init__(*args, **kwargs) + super().__init__(*args, **kwargs) self._n = 0 def __call__(self, *args, **kwargs): self.return_value = "address{0}".format(self._n), args[0] self._n += 1 - return super(ReverseMock, self).__call__(*args, **kwargs) + return super().__call__(*args, **kwargs) @pytest.fixture From b4f5ce5be775b3e3a878c886807556be0bae9744 Mon Sep 17 00:00:00 2001 From: Mike Taves Date: Sat, 24 Jul 2021 22:46:08 +1200 Subject: [PATCH 188/316] REF: line_interpolate_point and line_locate_point now use normalized (#2014) --- geopandas/_vectorized.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/geopandas/_vectorized.py b/geopandas/_vectorized.py index 2ec09f0..d6ce7e4 100644 --- a/geopandas/_vectorized.py +++ b/geopandas/_vectorized.py @@ -797,7 +797,10 @@ def buffer(data, distance, resolution=16, **kwargs): def interpolate(data, distance, normalized=False): if compat.USE_PYGEOS: - return pygeos.line_interpolate_point(data, distance, normalize=normalized) + try: + return pygeos.line_interpolate_point(data, distance, normalized=normalized) + except TypeError: # support for pygeos<0.9 + return pygeos.line_interpolate_point(data, distance, normalize=normalized) else: out = np.empty(len(data), dtype=object) if isinstance(distance, np.ndarray): @@ -861,7 +864,10 @@ def normalize(data): def project(data, other, normalized=False): if compat.USE_PYGEOS: - return pygeos.line_locate_point(data, other, normalize=normalized) + try: + return pygeos.line_locate_point(data, other, normalized=normalized) + except TypeError: # support for pygeos<0.9 + return pygeos.line_locate_point(data, other, normalize=normalized) else: return _binary_op("project", data, other, normalized=normalized) From 5e6958e675a6fb832011c741b64e75a98eea898b Mon Sep 17 00:00:00 2001 From: Alison Hopkin <37024432+hopkina@users.noreply.github.com> Date: Sat, 24 Jul 2021 17:23:44 +0100 Subject: [PATCH 189/316] DOC: Rasterio sample example (#1998) * add rasterio sample example * add example data * Update doc/source/gallery/geopandas_rasterio_sample.ipynb * clean outputs, add thumbnail Co-authored-by: Martin Fleischmann --- .../gallery/geopandas_rasterio_sample.ipynb | 173 ++++++++++++++++++ doc/source/gallery/s2a_l2a_fishbourne.tif | Bin 0 -> 970018 bytes 2 files changed, 173 insertions(+) create mode 100644 doc/source/gallery/geopandas_rasterio_sample.ipynb create mode 100644 doc/source/gallery/s2a_l2a_fishbourne.tif diff --git a/doc/source/gallery/geopandas_rasterio_sample.ipynb b/doc/source/gallery/geopandas_rasterio_sample.ipynb new file mode 100644 index 0000000..41377a4 --- /dev/null +++ b/doc/source/gallery/geopandas_rasterio_sample.ipynb @@ -0,0 +1,173 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "# Using GeoPandas with Rasterio to sample point data\n", + "\n", + "This example shows how to use GeoPandas with Rasterio. [Rasterio](https://rasterio.readthedocs.io/en/latest/index.html) is a package for reading and writing raster data.\n", + "\n", + "In this example a set of vector points is used to sample raster data at those points.\n", + "\n", + "The raster data used is Copernicus Sentinel data 2018 for Sentinel data.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import geopandas\n", + "import rasterio\n", + "import matplotlib.pyplot as plt\n", + "from shapely.geometry import Point" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Create example vector data\n", + "=============================\n", + "\n", + "Generate a geodataframe from a set of points\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Create sampling points\n", + "points = [Point(625466, 5621289), Point(626082, 5621627), Point(627116, 5621680), Point(625095, 5622358)]\n", + "gdf = geopandas.GeoDataFrame([1, 2, 3, 4], geometry=points, crs=32630)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The ``GeoDataFrame`` looks like this:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "gdf.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Open the raster data\n", + "=============================\n", + "\n", + "Use ``rasterio`` to open the raster data to be sampled" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "src = rasterio.open('s2a_l2a_fishbourne.tif')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's see the raster data with the point data overlaid.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "nbsphinx-thumbnail" + ] + }, + "outputs": [], + "source": [ + "from rasterio.plot import show\n", + "\n", + "fig, ax = plt.subplots()\n", + "\n", + "# transform rasterio plot to real world coords\n", + "extent=[src.bounds[0], src.bounds[2], src.bounds[1], src.bounds[3]]\n", + "ax = rasterio.plot.show(src, extent=extent, ax=ax, cmap='pink')\n", + "\n", + "gdf.plot(ax=ax)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Sampling the data\n", + "===============\n", + "Rasterio requires a list of the coordinates in x,y format rather than as the points that are in the geomentry column.\n", + "\n", + "This can be achived using the code below" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "coord_list = [(x,y) for x,y in zip(gdf['geometry'].x , gdf['geometry'].y)]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Carry out the sampling of the data and store the results in a new column called `value`. Note that if the image has more than one band, a value is returned for each band." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "gdf['value'] = [x for x in src.sample(coord_list)]\n", + "gdf.head()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.2" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/doc/source/gallery/s2a_l2a_fishbourne.tif b/doc/source/gallery/s2a_l2a_fishbourne.tif new file mode 100644 index 0000000000000000000000000000000000000000..0ed5142bdda8457a2bb2b3de9243d19f971500b7 GIT binary patch literal 970018 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%0DnaNgg8a;@x*ZUdB6j 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
\n", "\n" - ] + ], + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "Import Packages\n", "---------------\n", "\n", "To begin, import the needed packages.\n", "\n" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import geopandas\n", "from shapely.geometry import Polygon" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "Get or Create Example Data\n", "--------------------------\n", @@ -68,13 +67,12 @@ "Additionally, a polygon is created with shapely and then converted into a\n", "GeoDataFrame with the same CRS as the GeoPandas world dataset.\n", "\n" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "capitals = geopandas.read_file(geopandas.datasets.get_path(\"naturalearth_cities\"))\n", "world = geopandas.read_file(geopandas.datasets.get_path(\"naturalearth_lowres\"))\n", @@ -85,22 +83,22 @@ "# Create a custom polygon\n", "polygon = Polygon([(0, 0), (0, 90), (180, 90), (180, 0), (0, 0)])\n", "poly_gdf = geopandas.GeoDataFrame([1], geometry=[polygon], crs=world.crs)" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "Plot the Unclipped Data\n", "-----------------------\n", "\n" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(12, 8))\n", "world.plot(ax=ax1)\n", @@ -112,17 +110,18 @@ "ax1.set_axis_off()\n", "ax2.set_axis_off()\n", "plt.show()" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "Clip the Data\n", "--------------\n", "\n", - "When you call `clip`, the first object called is the object that will\n", - "be clipped. The second object called is the clip extent. The returned output\n", + "The object on which you call `clip` is the object that will\n", + "be clipped. The object you pass is the clip extent. The returned output\n", "will be a new clipped GeoDataframe. All of the attributes for each returned\n", "geometry will be retained when you clip.\n", "\n", @@ -131,33 +130,28 @@ "Note\n", "\n", "Recall that the data must be in the same CRS in order to use the\n", - "`clip` function. If the data are not in the same CRS, be sure to use\n", + "`clip` method. If the data are not in the same CRS, be sure to use\n", "the GeoPandas `GeoDataFrame.to_crs` method to ensure both datasets\n", "are in the same CRS.\n", "
\n", "\n" - ] + ], + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "Clip the World Data\n", "--------------------\n", "\n" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": { - "tags": [ - "nbsphinx-thumbnail" - ] - }, - "outputs": [], "source": [ - "world_clipped = geopandas.clip(world, polygon)\n", + "world_clipped = world.clip(polygon)\n", "\n", "# Plot the clipped data\n", "# The plot below shows the results of the clip function applied to the world\n", @@ -169,24 +163,36 @@ "ax.set_title(\"World Clipped\", fontsize=20)\n", "ax.set_axis_off()\n", "plt.show()" - ] + ], + "outputs": [], + "metadata": { + "tags": [ + "nbsphinx-thumbnail" + ] + } }, { "cell_type": "markdown", - "metadata": {}, "source": [ + "
\n", + " \n", + "Note\n", + "\n", + "For historical reasons, the clip method is also available as a top-level function `geopandas.clip`.\n", + "It is recommended to use the method as the function may be deprecated in the future.\n", + "
\n", + "\n", "Clip the Capitals Data\n", "----------------------\n", "\n" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ - "capitals_clipped = geopandas.clip(capitals, south_america)\n", + "capitals_clipped = capitals.clip(south_america)\n", "\n", "# Plot the clipped data\n", "# The plot below shows the results of the clip function applied to the capital cities\n", @@ -196,7 +202,9 @@ "ax.set_title(\"Capitals Clipped\", fontsize=20)\n", "ax.set_axis_off()\n", "plt.show()" - ] + ], + "outputs": [], + "metadata": {} } ], "metadata": { @@ -220,4 +228,4 @@ }, "nbformat": 4, "nbformat_minor": 4 -} +} \ No newline at end of file diff --git a/doc/source/gallery/spatial_joins.ipynb b/doc/source/gallery/spatial_joins.ipynb index ccdbf39..a295c41 100644 --- a/doc/source/gallery/spatial_joins.ipynb +++ b/doc/source/gallery/spatial_joins.ipynb @@ -2,7 +2,6 @@ "cells": [ { "cell_type": "markdown", - "metadata": {}, "source": [ "# Spatial Joins\n", "\n", @@ -13,11 +12,11 @@ "A common use case might be a spatial join between a point layer and a polygon layer where you want to retain the point geometries and grab the attributes of the intersecting polygons.\n", "\n", "![illustration](https://web.natur.cuni.cz/~langhamr/lectures/vtfg1/mapinfo_1/about_gis/Image23.gif)" - ] + ], + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "\n", "## Types of spatial joins\n", @@ -85,27 +84,25 @@ " 0101000000F0D88AA0E1A4EEBF7052F7E5B115E9BF | 2 | 20\n", "(4 rows) \n", "```" - ] + ], + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "## Spatial Joins between two GeoDataFrames\n", "\n", "Let's take a look at how we'd implement these using `GeoPandas`. First, load up the NYC test data into `GeoDataFrames`:" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "%matplotlib inline\n", "from shapely.geometry import Point\n", "from geopandas import datasets, GeoDataFrame, read_file\n", - "from geopandas.tools import overlay\n", "\n", "# NYC Boros\n", "zippath = datasets.get_path('nybb')\n", @@ -121,100 +118,101 @@ "\n", "# Make sure they're using the same projection reference\n", "pointdf.crs = polydf.crs" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "pointdf" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "polydf" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "pointdf.plot()" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "polydf.plot()" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "## Joins" - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ - "from geopandas.tools import sjoin\n", - "join_left_df = sjoin(pointdf, polydf, how=\"left\")\n", + "join_left_df = pointdf.sjoin(polydf, how=\"left\")\n", "join_left_df\n", "# Note the NaNs where the point did not intersect a boro" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ - "join_right_df = sjoin(pointdf, polydf, how=\"right\")\n", + "join_right_df = pointdf.sjoin(polydf, how=\"right\")\n", "join_right_df\n", "# Note Staten Island is repeated" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ - "join_inner_df = sjoin(pointdf, polydf, how=\"inner\")\n", + "join_inner_df = pointdf.sjoin(polydf, how=\"inner\")\n", "join_inner_df\n", "# Note the lack of NaNs; dropped anything that didn't intersect" - ] + ], + "outputs": [], + "metadata": {} }, { "cell_type": "markdown", - "metadata": {}, "source": [ "We're not limited to using the `intersection` binary predicate. Any of the `Shapely` geometry methods that return a Boolean can be used by specifying the `op` kwarg." - ] + ], + "metadata": {} }, { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ - "sjoin(pointdf, polydf, how=\"left\", op=\"within\")" - ] + "pointdf.sjoin(polydf, how=\"left\", op=\"within\")" + ], + "outputs": [], + "metadata": {} } ], "metadata": { @@ -238,4 +236,4 @@ }, "nbformat": 4, "nbformat_minor": 4 -} +} \ No newline at end of file diff --git a/geopandas/geodataframe.py b/geopandas/geodataframe.py index 305322c..9416ee2 100644 --- a/geopandas/geodataframe.py +++ b/geopandas/geodataframe.py @@ -1929,9 +1929,274 @@ individually so that features may have different properties ------ Every operation in GeoPandas is planar, i.e. the potential third dimension is not taken into account. + + See also + -------- + GeoDataFrame.sjoin_nearest : nearest neighbor join + sjoin : equivalent top-level function """ return geopandas.sjoin(left_df=self, right_df=df, *args, **kwargs) + def sjoin_nearest( + self, + right, + how="inner", + max_distance=None, + lsuffix="left", + rsuffix="right", + distance_col=None, + ): + """ + Spatial join of two GeoDataFrames based on the distance between their + geometries. + + Results will include multiple output records for a single input record + where there are multiple equidistant nearest or intersected neighbors. + + See the User Guide page + https://geopandas.readthedocs.io/en/latest/docs/user_guide/mergingdata.html + for more details. + + + Parameters + ---------- + right : GeoDataFrame + how : string, default 'inner' + The type of join: + + * 'left': use keys from left_df; retain only left_df geometry column + * 'right': use keys from right_df; retain only right_df geometry column + * 'inner': use intersection of keys from both dfs; retain only + left_df geometry column + + max_distance : float, default None + Maximum distance within which to query for nearest geometry. + Must be greater than 0. + The max_distance used to search for nearest items in the tree may have a + significant impact on performance by reducing the number of input + geometries that are evaluated for nearest items in the tree. + lsuffix : string, default 'left' + Suffix to apply to overlapping column names (left GeoDataFrame). + rsuffix : string, default 'right' + Suffix to apply to overlapping column names (right GeoDataFrame). + distance_col : string, default None + If set, save the distances computed between matching geometries under a + column of this name in the joined GeoDataFrame. + + Examples + -------- + >>> countries = geopandas.read_file(geopandas.datasets.get_\ +path("naturalearth_lowres")) + >>> cities = geopandas.read_file(geopandas.datasets.get_path("naturalearth_citi\ +es")) + >>> countries.head(2).name # doctest: +SKIP + pop_est continent name \ + iso_a3 gdp_md_est geometry + 0 920938 Oceania Fiji FJI 8374.0 MULTI\ + POLYGON (((180.00000 -16.06713, 180.00000... + 1 53950935 Africa Tanzania TZA 150600.0 POLYG\ + ON ((33.90371 -0.95000, 34.07262 -1.05982... + >>> cities.head(2).name # doctest: +SKIP + name geometry + 0 Vatican City POINT (12.45339 41.90328) + 1 San Marino POINT (12.44177 43.93610) + + >>> cities_w_country_data = cities.sjoin_nearest(countries) + >>> cities_w_country_data[['name_left', 'name_right']].head(2) # doctest: +SKIP + name_left geometry index_right pop_est continent n\ + ame_right iso_a3 gdp_md_est + 0 Vatican City POINT (12.45339 41.90328) 141 62137802 Europe \ + Italy ITA 2221000.0 + 1 San Marino POINT (12.44177 43.93610) 141 62137802 Europe \ + Italy ITA 2221000.0 + + To include the distances: + + >>> cities_w_country_data = cities.sjoin_nearest(countries, \ +distance_col="distances") + >>> cities_w_country_data[["name_left", "name_right", \ +"distances"]].head(2) # doctest: +SKIP + name_left name_right distances + 0 Vatican City Italy 0.0 + 1 San Marino Italy 0.0 + + In the following example, we get multiple cities for Italy because all results + are equidistant (in this case zero because they intersect). + In fact, we get 3 results in total: + + >>> countries_w_city_data = cities.sjoin_nearest(countries, \ +distance_col="distances", how="right") + >>> italy_results = \ +countries_w_city_data[countries_w_city_data["name_left"] == "Italy"] + >>> italy_results # doctest: +SKIP + name_x name_y + 141 Vatican City Italy + 141 San Marino Italy + 141 Rome Italy + + See also + -------- + GeoDataFrame.sjoin : binary predicate joins + sjoin_nearest : equivalent top-level function + + Notes + ----- + Since this join relies on distances, results will be innaccurate + if your geometries are in a geographic CRS. + + Every operation in GeoPandas is planar, i.e. the potential third + dimension is not taken into account. + """ + return geopandas.sjoin_nearest( + self, + right, + how=how, + max_distance=max_distance, + lsuffix=lsuffix, + rsuffix=rsuffix, + distance_col=distance_col, + ) + + def clip(self, mask, keep_geom_type=False): + """Clip points, lines, or polygon geometries to the mask extent. + + Both layers must be in the same Coordinate Reference System (CRS). + The GeoDataFrame will be clipped to the full extent of the `mask` object. + + If there are multiple polygons in mask, data from the GeoDataFrame will be + clipped to the total boundary of all polygons in mask. + + Parameters + ---------- + mask : GeoDataFrame, GeoSeries, (Multi)Polygon + Polygon vector layer used to clip `gdf`. + The mask's geometry is dissolved into one geometric feature + and intersected with `gdf`. + keep_geom_type : boolean, default False + If True, return only geometries of original type in case of intersection + resulting in multiple geometry types or GeometryCollections. + If False, return all resulting geometries (potentially mixed types). + + Returns + ------- + GeoDataFrame + Vector data (points, lines, polygons) from `gdf` clipped to + polygon boundary from mask. + + See also + -------- + clip : equivalent top-level function + + Examples + -------- + Clip points (global cities) with a polygon (the South American continent): + + >>> world = geopandas.read_file( + ... geopandas.datasets.get_path('naturalearth_lowres')) + >>> south_america = world[world['continent'] == "South America"] + >>> capitals = geopandas.read_file( + ... geopandas.datasets.get_path('naturalearth_cities')) + >>> capitals.shape + (202, 2) + + >>> sa_capitals = capitals.clip(south_america) + >>> sa_capitals.shape + (12, 2) + """ + return geopandas.clip(self, mask=mask, keep_geom_type=keep_geom_type) + + def overlay(self, right, how="intersection", keep_geom_type=None, make_valid=True): + """Perform spatial overlay between GeoDataFrames. + + Currently only supports data GeoDataFrames with uniform geometry types, + i.e. containing only (Multi)Polygons, or only (Multi)Points, or a + combination of (Multi)LineString and LinearRing shapes. + Implements several methods that are all effectively subsets of the union. + + See the User Guide page :doc:`../../user_guide/set_operations` for details. + + Parameters + ---------- + right : GeoDataFrame + how : string + Method of spatial overlay: 'intersection', 'union', + 'identity', 'symmetric_difference' or 'difference'. + keep_geom_type : bool + If True, return only geometries of the same geometry type the GeoDataFrame + has, if False, return all resulting geometries. Default is None, + which will set keep_geom_type to True but warn upon dropping + geometries. + make_valid : bool, default True + If True, any invalid input geometries are corrected with a call to + `buffer(0)`, if False, a `ValueError` is raised if any input geometries + are invalid. + + Returns + ------- + df : GeoDataFrame + GeoDataFrame with new set of polygons and attributes + resulting from the overlay + + Examples + -------- + >>> from shapely.geometry import Polygon + >>> polys1 = geopandas.GeoSeries([Polygon([(0,0), (2,0), (2,2), (0,2)]), + ... Polygon([(2,2), (4,2), (4,4), (2,4)])]) + >>> polys2 = geopandas.GeoSeries([Polygon([(1,1), (3,1), (3,3), (1,3)]), + ... Polygon([(3,3), (5,3), (5,5), (3,5)])]) + >>> df1 = geopandas.GeoDataFrame({'geometry': polys1, 'df1_data':[1,2]}) + >>> df2 = geopandas.GeoDataFrame({'geometry': polys2, 'df2_data':[1,2]}) + + >>> df1.overlay(df2, how='union') + df1_data df2_data geometry + 0 1.0 1.0 POLYGON ((2.00000 2.00000, 2.00000 1.00000, 1.... + 1 2.0 1.0 POLYGON ((2.00000 2.00000, 2.00000 3.00000, 3.... + 2 2.0 2.0 POLYGON ((4.00000 4.00000, 4.00000 3.00000, 3.... + 3 1.0 NaN POLYGON ((2.00000 0.00000, 0.00000 0.00000, 0.... + 4 2.0 NaN MULTIPOLYGON (((3.00000 3.00000, 4.00000 3.000... + 5 NaN 1.0 MULTIPOLYGON (((2.00000 2.00000, 3.00000 2.000... + 6 NaN 2.0 POLYGON ((3.00000 5.00000, 5.00000 5.00000, 5.... + + >>> df1.overlay(df2, how='intersection') + df1_data df2_data geometry + 0 1 1 POLYGON ((2.00000 2.00000, 2.00000 1.00000, 1.... + 1 2 1 POLYGON ((2.00000 2.00000, 2.00000 3.00000, 3.... + 2 2 2 POLYGON ((4.00000 4.00000, 4.00000 3.00000, 3.... + + >>> df1.overlay(df2, how='symmetric_difference') + df1_data df2_data geometry + 0 1.0 NaN POLYGON ((2.00000 0.00000, 0.00000 0.00000, 0.... + 1 2.0 NaN MULTIPOLYGON (((3.00000 3.00000, 4.00000 3.000... + 2 NaN 1.0 MULTIPOLYGON (((2.00000 2.00000, 3.00000 2.000... + 3 NaN 2.0 POLYGON ((3.00000 5.00000, 5.00000 5.00000, 5.... + + >>> df1.overlay(df2, how='difference') + geometry df1_data + 0 POLYGON ((2.00000 0.00000, 0.00000 0.00000, 0.... 1 + 1 MULTIPOLYGON (((3.00000 3.00000, 4.00000 3.000... 2 + + >>> df1.overlay(df2, how='identity') + df1_data df2_data geometry + 0 1.0 1.0 POLYGON ((2.00000 2.00000, 2.00000 1.00000, 1.... + 1 2.0 1.0 POLYGON ((2.00000 2.00000, 2.00000 3.00000, 3.... + 2 2.0 2.0 POLYGON ((4.00000 4.00000, 4.00000 3.00000, 3.... + 3 1.0 NaN POLYGON ((2.00000 0.00000, 0.00000 0.00000, 0.... + 4 2.0 NaN MULTIPOLYGON (((3.00000 3.00000, 4.00000 3.000... + + See also + -------- + GeoDataFrame.sjoin : spatial join + overlay : equivalent top-level function + + Notes + ------ + Every operation in GeoPandas is planar, i.e. the potential third + dimension is not taken into account. + """ + return geopandas.overlay( + self, right, how=how, keep_geom_type=keep_geom_type, make_valid=make_valid + ) + def _dataframe_set_geometry(self, col, drop=False, inplace=False, crs=None): if inplace: diff --git a/geopandas/geoseries.py b/geopandas/geoseries.py index 374a7ae..d60d1fe 100644 --- a/geopandas/geoseries.py +++ b/geopandas/geoseries.py @@ -12,6 +12,7 @@ from shapely.geometry.base import BaseGeometry from geopandas.base import GeoPandasBase, _delegate_property from geopandas.plotting import plot_series from geopandas.explore import _explore_geoseries +import geopandas from . import _compat as compat from ._decorator import doc @@ -1296,3 +1297,51 @@ e": "Feature", "properties": {}, "geometry": {"type": "Point", "coordinates": [3 stacklevel=2, ) return self.difference(other) + + def clip(self, mask, keep_geom_type=False): + """Clip points, lines, or polygon geometries to the mask extent. + + Both layers must be in the same Coordinate Reference System (CRS). + The GeoSeries will be clipped to the full extent of the `mask` object. + + If there are multiple polygons in mask, data from the GeoSeries will be + clipped to the total boundary of all polygons in mask. + + Parameters + ---------- + mask : GeoDataFrame, GeoSeries, (Multi)Polygon + Polygon vector layer used to clip `gdf`. + The mask's geometry is dissolved into one geometric feature + and intersected with `gdf`. + keep_geom_type : boolean, default False + If True, return only geometries of original type in case of intersection + resulting in multiple geometry types or GeometryCollections. + If False, return all resulting geometries (potentially mixed-types). + + Returns + ------- + GeoSeries + Vector data (points, lines, polygons) from `gdf` clipped to + polygon boundary from mask. + + See also + -------- + clip : top-level function for clip + + Examples + -------- + Clip points (global cities) with a polygon (the South American continent): + + >>> world = geopandas.read_file( + ... geopandas.datasets.get_path('naturalearth_lowres')) + >>> south_america = world[world['continent'] == "South America"] + >>> capitals = geopandas.read_file( + ... geopandas.datasets.get_path('naturalearth_cities')) + >>> capitals.shape + (202, 2) + + >>> sa_capitals = capitals.geometry.clip(south_america) + >>> sa_capitals.shape + (12,) + """ + return geopandas.clip(self, mask=mask, keep_geom_type=keep_geom_type) diff --git a/geopandas/tests/test_geodataframe.py b/geopandas/tests/test_geodataframe.py index 65e98ef..120ffb3 100644 --- a/geopandas/tests/test_geodataframe.py +++ b/geopandas/tests/test_geodataframe.py @@ -10,7 +10,7 @@ import pandas as pd import pyproj from pyproj import CRS from pyproj.exceptions import CRSError -from shapely.geometry import Point +from shapely.geometry import Point, Polygon import geopandas import geopandas._compat as compat @@ -25,6 +25,36 @@ import pytest PYPROJ_LT_3 = LooseVersion(pyproj.__version__) < LooseVersion("3") +TEST_NEAREST = compat.PYGEOS_GE_010 and compat.USE_PYGEOS +pandas_133 = pd.__version__ == LooseVersion("1.3.3") + + +@pytest.fixture +def dfs(request): + s1 = GeoSeries( + [ + Polygon([(0, 0), (2, 0), (2, 2), (0, 2)]), + Polygon([(2, 2), (4, 2), (4, 4), (2, 4)]), + ] + ) + s2 = GeoSeries( + [ + Polygon([(1, 1), (3, 1), (3, 3), (1, 3)]), + Polygon([(3, 3), (5, 3), (5, 5), (3, 5)]), + ] + ) + df1 = GeoDataFrame({"col1": [1, 2], "geometry": s1}) + df2 = GeoDataFrame({"col2": [1, 2], "geometry": s2}) + return df1, df2 + + +@pytest.fixture( + params=["union", "intersection", "difference", "symmetric_difference", "identity"] +) +def how(request): + if pandas_133 and request.param in ["symmetric_difference", "identity", "union"]: + pytest.xfail("Regression in pandas 1.3.3 (GH #2101)") + return request.param class TestDataFrame: @@ -794,6 +824,59 @@ class TestDataFrame: result = left.sjoin(right, how=how, predicate=predicate) assert_geodataframe_equal(result, expected) + @pytest.mark.parametrize("how", ["left", "inner", "right"]) + @pytest.mark.parametrize("max_distance", [None, 1]) + @pytest.mark.parametrize("distance_col", [None, "distance"]) + @pytest.mark.skipif( + not TEST_NEAREST, + reason=( + "PyGEOS >= 0.10.0" + " must be installed and activated via the geopandas.compat module to" + " test sjoin_nearest" + ), + ) + def test_sjoin_nearest(self, how, max_distance, distance_col): + """ + Basic test for availability of the GeoDataFrame method. Other + sjoin tests are located in /tools/tests/test_sjoin.py + """ + left = read_file(geopandas.datasets.get_path("naturalearth_cities")) + right = read_file(geopandas.datasets.get_path("naturalearth_lowres")) + + expected = geopandas.sjoin_nearest( + left, right, how=how, max_distance=max_distance, distance_col=distance_col + ) + result = left.sjoin_nearest( + right, how=how, max_distance=max_distance, distance_col=distance_col + ) + assert_geodataframe_equal(result, expected) + + @pytest.mark.skip_no_sindex + def test_clip(self): + """ + Basic test for availability of the GeoDataFrame method. Other + clip tests are located in /tools/tests/test_clip.py + """ + left = read_file(geopandas.datasets.get_path("naturalearth_cities")) + world = read_file(geopandas.datasets.get_path("naturalearth_lowres")) + south_america = world[world["continent"] == "South America"] + + expected = geopandas.clip(left, south_america) + result = left.clip(south_america) + assert_geodataframe_equal(result, expected) + + @pytest.mark.skip_no_sindex + def test_overlay(self, dfs, how): + """ + Basic test for availability of the GeoDataFrame method. Other + overlay tests are located in tests/test_overlay.py + """ + df1, df2 = dfs + + expected = geopandas.overlay(df1, df2, how=how) + result = df1.overlay(df2, how=how) + assert_geodataframe_equal(result, expected) + def check_geodataframe(df, geometry_column="geometry"): assert isinstance(df, GeoDataFrame) diff --git a/geopandas/tests/test_geoseries.py b/geopandas/tests/test_geoseries.py index 96ada45..b870a65 100644 --- a/geopandas/tests/test_geoseries.py +++ b/geopandas/tests/test_geoseries.py @@ -20,7 +20,7 @@ from shapely.geometry import ( ) from shapely.geometry.base import BaseGeometry -from geopandas import GeoSeries, GeoDataFrame +from geopandas import GeoSeries, GeoDataFrame, read_file, datasets, clip from geopandas._compat import PYPROJ_LT_3, ignore_shapely2_warnings from geopandas.array import GeometryArray, GeometryDtype from geopandas.testing import assert_geoseries_equal @@ -323,6 +323,16 @@ class TestSeries: def test_to_wkt(self): assert_series_equal(pd.Series([self.t1.wkt, self.sq.wkt]), self.g1.to_wkt()) + @pytest.mark.skip_no_sindex + def test_clip(self): + left = read_file(datasets.get_path("naturalearth_cities")) + world = read_file(datasets.get_path("naturalearth_lowres")) + south_america = world[world["continent"] == "South America"] + + expected = clip(left.geometry, south_america) + result = left.geometry.clip(south_america) + assert_geoseries_equal(result, expected) + def test_from_xy_points(self): x = self.landmarks.x.values y = self.landmarks.y.values diff --git a/geopandas/tools/clip.py b/geopandas/tools/clip.py index c875023..dda5e63 100644 --- a/geopandas/tools/clip.py +++ b/geopandas/tools/clip.py @@ -84,6 +84,11 @@ def clip(gdf, mask, keep_geom_type=False): Vector data (points, lines, polygons) from `gdf` clipped to polygon boundary from mask. + See also + -------- + GeoDataFrame.clip : equivalent GeoDataFrame method + GeoSeries.clip : equivalent GeoSeries method + Examples -------- Clip points (global cities) with a polygon (the South American continent): diff --git a/geopandas/tools/overlay.py b/geopandas/tools/overlay.py index 9a57d0e..bd6f7ba 100644 --- a/geopandas/tools/overlay.py +++ b/geopandas/tools/overlay.py @@ -218,6 +218,7 @@ def overlay(df1, df2, how="intersection", keep_geom_type=None, make_valid=True): See also -------- sjoin : spatial join + GeoDataFrame.overlay : equivalent method Notes ------ diff --git a/geopandas/tools/sjoin.py b/geopandas/tools/sjoin.py index 9a68a22..b2ceac1 100644 --- a/geopandas/tools/sjoin.py +++ b/geopandas/tools/sjoin.py @@ -499,6 +499,7 @@ countries_w_city_data[countries_w_city_data["name_left"] == "Italy"] See also -------- sjoin : binary predicate joins + GeoDataFrame.sjoin_nearest : equivalent method Notes ----- From f4ad534a89d614c57a78b2acf819a14ff0570724 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Sun, 3 Oct 2021 20:39:52 +0200 Subject: [PATCH 250/316] DOC/RLS: add changelog for 0.10 release (#2134) Co-authored-by: Martin Fleischmann --- CHANGELOG.md | 87 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5c216b1..3b16e12 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,93 @@ Changelog ========= +Version 0.10.0 (October 3, 2021) +-------------------------------- + +Highlights of this release: + +- A new `sjoin_nearest()` method to join based on proximity, with the + ability to set a maximum search radius (#1865). In addition, the `sindex` + attribute gained a new method for a "nearest" spatial index query (#1865, + #2053). +- A new `explore()` method on GeoDataFrame and GeoSeries with native support + for interactive visualization based on folium / leaflet.js (#1953) +- The `geopandas.sjoin()`/`overlay()`/`clip()` functions are now also + available as methods on the GeoDataFrame (#2141, #1984, #2150). + +New features and improvements: + +- Add support for pandas' `value_counts()` method for geometry dtype (#2047). +- The `explode()` method has a new `ignore_index` keyword (consistent with + pandas' explode method) to reset the index in the result, and a new + `index_parts` keywords to control whether a cumulative count indexing the + parts of the exploded multi-geometries should be added (#1871). +- `points_from_xy()` is now available as a GeoSeries method `from_xy` (#1936). +- The `to_file()` method will now attempt to detect the driver (if not + specified) based on the extension of the provided filename, instead of + defaulting to ESRI Shapefile (#1609). +- Support for the `storage_options` keyword in `read_parquet()` for + specifying filesystem-specific options (e.g. for S3) based on fsspec (#2107). +- The read/write functions now support `~` (user home directory) expansion (#1876). +- Support the `convert_dtypes()` method from pandas to preserve the + GeoDataFrame class (#2115). +- Support WKB values in the hex format in `GeoSeries.from_wkb()` (#2106). +- Update the `estimate_utm_crs()` method to handle crossing the antimeridian + with pyproj 3.1+ (#2049). +- Improved heuristic to decide how many decimals to show in the repr based on + whether the CRS is projected or geographic (#1895). +- Switched the default for `geocode()` from GeoCode.Farm to the Photon + geocoding API (https://photon.komoot.io) (#2007). + +Deprecations and compatibility notes: + +- The `op=` keyword of `sjoin()` to indicate which spatial predicate to use + for joining is being deprecated and renamed in favor of a new `predicate=` + keyword (#1626). +- The `cascaded_union` attribute is deprecated, use `unary_union` instead (#2074). +- Constructing a GeoDataFrame with a duplicated "geometry" column is now + disallowed. This can also raise an error in the `pd.concat(.., axis=1)` + function if this results in duplicated active geometry columns (#2046). +- The `explode()` method currently returns a GeoSeries/GeoDataFrame with a + MultiIndex, with an additional level with indices of the parts of the + exploded multi-geometries. For consistency with pandas, this will change in + the future and the new `index_parts` keyword is added to control this. + +Bug fixes: + +- Fix in the `clip()` function to correctly clip MultiPoints instead of + leaving them intact when partly outside of the clip bounds (#2148). +- Fix `GeoSeries.isna()` to correctly return a boolean Series in case of an + empty GeoSeries (#2073). +- Fix the GeoDataFrame constructor to preserve the geometry name when the + argument is already a GeoDataFrame object (i.e. `GeoDataFrame(gdf)`) (#2138). +- Fix loss of the values' CRS when setting those values as a column + (`GeoDataFrame.__setitem__`) (#1963) +- Fix in `GeoDataFrame.apply()` to preserve the active geometry column name + (#1955). +- Fix in `sjoin()` to not ignore the suffixes in case of a right-join + (`how="right`) (#2065). +- Fix `GeoDataFrame.explode()` with a MultiIndex (#1945). +- Fix the handling of missing values in `to/from_wkb` and `to_from_wkt` (#1891). +- Fix `to_file()` and `to_json()` when DataFrame has duplicate columns to + raise an error (#1900). +- Fix bug in the colors shown with user-defined classification scheme (#2019). +- Fix handling of the `path_effects` keyword in `plot()` (#2127). +- Fix `GeoDataFrame.explode()` to preserve `attrs` (#1935) + +Notes on (optional) dependencies: + +- GeoPandas 0.9.0 dropped support for Python 3.6 and pandas 0.24. Further, + the minimum required versions are numpy 1.18, shapely 1.6, fiona 1.8, + matplotlib 3.1 and pyproj 2.2. +- Plotting with a classification schema now requires mapclassify version >= + 2.4 (#1737). +- Compatibility fixes for the latest numpy in combination with Shapely 1.7 (#2072) +- Compatibility fixes for the upcoming Shapely 1.8 (#2087). +- Compatibility fixes for the latest PyGEOS (#1872, #2014) and matplotlib + (colorbar issue, #2066). + + Version 0.9.0 (February 28, 2021) --------------------------------- From 0be92da324d6a83d2a65904cde5c983c433a1584 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Sun, 3 Oct 2021 20:40:39 +0200 Subject: [PATCH 251/316] RLS: v0.10.0 From 0c9d04ec808f6a953eff96b02762945bc3b39f30 Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Fri, 8 Oct 2021 09:27:58 +0100 Subject: [PATCH 252/316] REGR: avoid bbox check in overlay if how != intersection (#2157) Co-authored-by: Joris Van den Bossche --- CHANGELOG.md | 9 +++++ geopandas/tests/test_overlay.py | 71 +++++++++++++++++++++++++++++++-- geopandas/tools/overlay.py | 42 ++++++++++--------- 3 files changed, 100 insertions(+), 22 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3b16e12..663d46d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,15 @@ Changelog ========= +Version 0.10.1 (October 8, 2021) +-------------------------------- + +Small bug-fix release: + +- Fix regression in `overlay()` with non-overlapping geometries and a + non-default `how` (.e. not "intersection") (#2157). + + Version 0.10.0 (October 3, 2021) -------------------------------- diff --git a/geopandas/tests/test_overlay.py b/geopandas/tests/test_overlay.py index ec9b682..1efee5d 100644 --- a/geopandas/tests/test_overlay.py +++ b/geopandas/tests/test_overlay.py @@ -1,6 +1,7 @@ import os from distutils.version import LooseVersion +import numpy as np import pandas as pd from shapely.geometry import Point, Polygon, LineString, GeometryCollection, box @@ -374,7 +375,7 @@ def test_empty_intersection(dfs): df3 = GeoDataFrame({"geometry": polys3, "col3": [1, 2]}) expected = GeoDataFrame([], columns=["col1", "col3", "geometry"]) result = overlay(df1, df3) - assert_geodataframe_equal(result, expected, check_like=True) + assert_geodataframe_equal(result, expected, check_dtype=False) def test_correct_index(dfs): @@ -656,5 +657,69 @@ def test_empty_overlay_return_non_duplicated_columns(): result = geopandas.overlay(nybb, nybb2) - assert all(result.columns.isin(nybb.columns)) - assert len(result.columns) == len(nybb.columns) + expected = GeoDataFrame( + columns=[ + "BoroCode_1", + "BoroName_1", + "Shape_Leng_1", + "Shape_Area_1", + "BoroCode_2", + "BoroName_2", + "Shape_Leng_2", + "Shape_Area_2", + "geometry", + ], + crs=nybb.crs, + ) + assert_geodataframe_equal(result, expected, check_dtype=False) + + +def test_non_overlapping(how): + p1 = Polygon([(0, 0), (2, 0), (2, 2), (0, 2)]) + p2 = Polygon([(3, 3), (5, 3), (5, 5), (3, 5)]) + df1 = GeoDataFrame({"col1": [1], "geometry": [p1]}) + df2 = GeoDataFrame({"col2": [2], "geometry": [p2]}) + result = overlay(df1, df2, how=how) + + if how == "intersection": + expected = GeoDataFrame( + { + "col1": np.array([], dtype="int64"), + "col2": np.array([], dtype="int64"), + "geometry": [], + }, + index=pd.Index([], dtype="object"), + ) + elif how == "union": + expected = GeoDataFrame( + { + "col1": [1, np.nan], + "col2": [np.nan, 2], + "geometry": [p1, p2], + } + ) + elif how == "identity": + expected = GeoDataFrame( + { + "col1": [1.0], + "col2": [np.nan], + "geometry": [p1], + } + ) + elif how == "symmetric_difference": + expected = GeoDataFrame( + { + "col1": [1, np.nan], + "col2": [np.nan, 2], + "geometry": [p1, p2], + } + ) + elif how == "difference": + expected = GeoDataFrame( + { + "col1": [1], + "geometry": [p1], + } + ) + + assert_geodataframe_equal(result, expected) diff --git a/geopandas/tools/overlay.py b/geopandas/tools/overlay.py index bd6f7ba..7973e21 100644 --- a/geopandas/tools/overlay.py +++ b/geopandas/tools/overlay.py @@ -59,11 +59,15 @@ def _overlay_intersection(df1, df2): return GeoDataFrame(dfinter, geometry=geom_intersect, crs=df1.crs) else: - return GeoDataFrame( - [], - columns=list(set(df1.columns).union(df2.columns)) + ["__idx1", "__idx2"], - crs=df1.crs, + result = df1.iloc[:0].merge( + df2.iloc[:0].drop(df2.geometry.name, axis=1), + left_index=True, + right_index=True, + suffixes=("_1", "_2"), ) + return result[ + result.columns.drop(df1.geometry.name).tolist() + [df1.geometry.name] + ] def _overlay_difference(df1, df2): @@ -265,23 +269,23 @@ def overlay(df1, df2, how="intersection", keep_geom_type=None, make_valid=True): "df{} contains mixed geometry types.".format(i + 1) ) - box_gdf1 = df1.total_bounds - box_gdf2 = df2.total_bounds + if how == "intersection": + box_gdf1 = df1.total_bounds + box_gdf2 = df2.total_bounds - if not ( - ((box_gdf1[0] <= box_gdf2[2]) and (box_gdf2[0] <= box_gdf1[2])) - and ((box_gdf1[1] <= box_gdf2[3]) and (box_gdf2[1] <= box_gdf1[3])) - ): - return GeoDataFrame( - [], - columns=list( - set( - df1.drop(df1.geometry.name, axis=1).columns.to_list() - + df2.drop(df2.geometry.name, axis=1).columns.to_list() - ) + if not ( + ((box_gdf1[0] <= box_gdf2[2]) and (box_gdf2[0] <= box_gdf1[2])) + and ((box_gdf1[1] <= box_gdf2[3]) and (box_gdf2[1] <= box_gdf1[3])) + ): + result = df1.iloc[:0].merge( + df2.iloc[:0].drop(df2.geometry.name, axis=1), + left_index=True, + right_index=True, + suffixes=("_1", "_2"), ) - + ["geometry"], - ) + return result[ + result.columns.drop(df1.geometry.name).tolist() + [df1.geometry.name] + ] # Computations def _make_valid(df): From f9e168181de34d3fdb6ea753a7b6d8467369da38 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Fri, 8 Oct 2021 10:28:30 +0200 Subject: [PATCH 253/316] RLS: v0.10.1 From 1cabaaa860c6d407cae710b878e98f6ea83d1ae0 Mon Sep 17 00:00:00 2001 From: "Hugh Brown (Saint Aardvark the Carpeted)" Date: Fri, 8 Oct 2021 14:54:49 -0700 Subject: [PATCH 254/316] DOC: Update link to Pydagogue site in contributing.rst (#2162) Signed-off-by: Hugh Brown (Saint Aardvark the Carpeted) --- doc/source/community/contributing.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/community/contributing.rst b/doc/source/community/contributing.rst index 3aa7901..759e1b3 100644 --- a/doc/source/community/contributing.rst +++ b/doc/source/community/contributing.rst @@ -82,7 +82,7 @@ Some great resources for learning Git: * Software Carpentry's `Git Tutorial `_ * `Atlassian `_ * the `GitHub help pages `_. -* Matthew Brett's `Pydagogue `_. +* Matthew Brett's `Pydagogue `_. Getting started with Git ~~~~~~~~~~~~~~~~~~~~~~~~ From ce285d2cc671a12a85f166ce6a3fbf1713b7879b Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Tue, 12 Oct 2021 07:23:50 +0100 Subject: [PATCH 255/316] REGR: mapclassify formatting regression (#2166) --- geopandas/plotting.py | 8 ++++++-- geopandas/tests/test_plotting.py | 31 +++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/geopandas/plotting.py b/geopandas/plotting.py index b3b6460..463ebd4 100644 --- a/geopandas/plotting.py +++ b/geopandas/plotting.py @@ -773,9 +773,11 @@ GON (((-122.84000 49.00000, -120.0000... if not show_interval: labels = [c[1:-1] for c in labels] - values = pd.Categorical([np.nan] * len(values), categories=labels, ordered=True) + values = pd.Categorical( + [np.nan] * len(values), categories=binning.bins, ordered=True + ) values[~nan_idx] = pd.Categorical.from_codes( - binning.yb, categories=labels, ordered=True + binning.yb, categories=binning.bins, ordered=True ) if cmap is None: cmap = "viridis" @@ -884,6 +886,8 @@ GON (((-122.84000 49.00000, -120.0000... norm = Normalize(vmin=mn, vmax=mx) n_cmap = cm.ScalarMappable(norm=norm, cmap=cmap) if categorical: + if scheme is not None: + categories = labels patches = [] for value, cat in enumerate(categories): patches.append( diff --git a/geopandas/tests/test_plotting.py b/geopandas/tests/test_plotting.py index 8e91ba1..cce912f 100644 --- a/geopandas/tests/test_plotting.py +++ b/geopandas/tests/test_plotting.py @@ -1073,6 +1073,8 @@ class TestMapclassifyPlotting: cls.df["mid_vals"] = np.linspace(0.3, 0.7, cls.df.shape[0]) cls.df["high_vals"] = np.linspace(0.7, 1.0, cls.df.shape[0]) cls.df.loc[cls.df.index[:20:2], "high_vals"] = np.nan + cls.nybb = read_file(get_path("nybb")) + cls.nybb["vals"] = [0.001, 0.002, 0.003, 0.004, 0.005] def test_legend(self): with warnings.catch_warnings(record=True) as _: # don't print warning @@ -1333,6 +1335,35 @@ class TestMapclassifyPlotting: line.get_markerfacecolor() for line in ax3.get_legend().get_lines() ] == legend_colors_exp + def test_equally_formatted_bins(self): + ax = self.nybb.plot( + "vals", + scheme="quantiles", + legend=True, + ) + labels = [t.get_text() for t in ax.get_legend().get_texts()] + expected = [ + "0.00, 0.00", + "0.00, 0.00", + "0.00, 0.00", + "0.00, 0.00", + "0.00, 0.01", + ] + assert labels == expected + + ax2 = self.nybb.plot( + "vals", scheme="quantiles", legend=True, legend_kwds=dict(fmt="{:.3f}") + ) + labels = [t.get_text() for t in ax2.get_legend().get_texts()] + expected = [ + "0.001, 0.002", + "0.002, 0.003", + "0.003, 0.003", + "0.003, 0.004", + "0.004, 0.005", + ] + assert labels == expected + class TestPlotCollections: def setup_method(self): From 8bd3ea900d21389dafef067bcb8a2a80f9b113ed Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Wed, 13 Oct 2021 14:10:28 +0100 Subject: [PATCH 256/316] REGR: fix non-intersecting overlay (#2172) --- geopandas/tests/test_overlay.py | 11 +++++++++++ geopandas/tools/overlay.py | 2 ++ 2 files changed, 13 insertions(+) diff --git a/geopandas/tests/test_overlay.py b/geopandas/tests/test_overlay.py index 1efee5d..058da69 100644 --- a/geopandas/tests/test_overlay.py +++ b/geopandas/tests/test_overlay.py @@ -723,3 +723,14 @@ def test_non_overlapping(how): ) assert_geodataframe_equal(result, expected) + + +def test_no_intersection(): + # overlapping bounds but non-overlapping geometries + gs = GeoSeries([Point(x, x).buffer(0.1) for x in range(3)]) + gdf1 = GeoDataFrame({"foo": ["a", "b", "c"]}, geometry=gs) + gdf2 = GeoDataFrame({"bar": ["1", "3", "5"]}, geometry=gs.translate(1)) + + expected = GeoDataFrame(columns=["foo", "bar", "geometry"]) + result = overlay(gdf1, gdf2, how="intersection") + assert_geodataframe_equal(result, expected, check_index_type=False) diff --git a/geopandas/tools/overlay.py b/geopandas/tools/overlay.py index 7973e21..75dcb55 100644 --- a/geopandas/tools/overlay.py +++ b/geopandas/tools/overlay.py @@ -65,6 +65,8 @@ def _overlay_intersection(df1, df2): right_index=True, suffixes=("_1", "_2"), ) + result["__idx1"] = None + result["__idx2"] = None return result[ result.columns.drop(df1.geometry.name).tolist() + [df1.geometry.name] ] From 4d2bca3b43eb463c11b384a2cc7c218b53f9206e Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Wed, 13 Oct 2021 16:00:53 +0100 Subject: [PATCH 257/316] BUG: explore() vmin, vmax ignored if 0 (#2175) --- geopandas/explore.py | 4 ++-- geopandas/tests/test_explore.py | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/geopandas/explore.py b/geopandas/explore.py index b8b3bb7..4d03220 100644 --- a/geopandas/explore.py +++ b/geopandas/explore.py @@ -396,8 +396,8 @@ GON (((180.00000 -16.06713, 180.00000... color = list(map(lambda x: cmap(x), df[column])) else: - vmin = gdf[column].min() if not vmin else vmin - vmax = gdf[column].max() if not vmax else vmax + vmin = gdf[column].min() if vmin is None else vmin + vmax = gdf[column].max() if vmax is None else vmax # get bins if scheme is not None: diff --git a/geopandas/tests/test_explore.py b/geopandas/tests/test_explore.py index b72e618..4b7c932 100644 --- a/geopandas/tests/test_explore.py +++ b/geopandas/tests/test_explore.py @@ -466,6 +466,20 @@ class TestExplore: assert 'case"119":return{"color":"#414287","fillColor":"#414287"' in out_str assert 'case"3":return{"color":"#482173","fillColor":"#482173"' in out_str + # test 0 + df2 = self.nybb.copy() + df2["values"] = df2["BoroCode"] * 10.0 + m = df2[df2["values"] >= 30].explore("values", vmin=0) + out_str = self._fetch_map_string(m) + assert 'case"1":return{"color":"#7ad151","fillColor":"#7ad151"' in out_str + assert 'case"2":return{"color":"#22a884","fillColor":"#22a884"' in out_str + + df2["values_negative"] = df2["BoroCode"] * -10.0 + m = df2[df2["values_negative"] <= 30].explore("values_negative", vmax=0) + out_str = self._fetch_map_string(m) + assert 'case"1":return{"color":"#414487","fillColor":"#414487"' in out_str + assert 'case"2":return{"color":"#2a788e","fillColor":"#2a788e"' in out_str + def test_missing_vals(self): m = self.missing.explore("continent") assert '"fillColor":null' in self._fetch_map_string(m) From 70e73e393e81a8acd898c44b237e37407a45aaa0 Mon Sep 17 00:00:00 2001 From: James McBride Date: Wed, 13 Oct 2021 23:59:35 -0700 Subject: [PATCH 258/316] BUG: Use keep_geom_type logic for all overlay methods (#2164) In cases of using method="difference" in overlays, we were not applying the keep_geom_type logic. This change makes all overlay methods proceed through that step. --- geopandas/tests/test_overlay.py | 29 +++++++++++++++++++++++++++++ geopandas/tools/overlay.py | 6 ++++-- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/geopandas/tests/test_overlay.py b/geopandas/tests/test_overlay.py index 058da69..1b8c3a0 100644 --- a/geopandas/tests/test_overlay.py +++ b/geopandas/tests/test_overlay.py @@ -628,6 +628,35 @@ def test_keep_geom_type_geometry_collection2(): assert_geodataframe_equal(result1, expected1) +def test_keep_geom_type_geometry_collection_difference(): + # GH 2163 + + polys1 = [ + box(0, 0, 1, 1), + box(1, 1, 2, 2), + ] + + # the tiny sliver in the second geometry may be converted to a + # linestring during the overlay process due to floating point errors + # on some platforms + polys2 = [ + box(0, 0, 1, 1), + box(1, 1, 2, 3).union(box(2, 2, 3, 2.00000000000000001)), + ] + df1 = GeoDataFrame({"left": [0, 1], "geometry": polys1}) + df2 = GeoDataFrame({"right": [0, 1], "geometry": polys2}) + + result1 = overlay(df2, df1, keep_geom_type=True, how="difference") + expected1 = GeoDataFrame( + { + "right": [1], + "geometry": [box(1, 2, 2, 3)], + }, + ) + + assert_geodataframe_equal(result1, expected1) + + @pytest.mark.parametrize("make_valid", [True, False]) def test_overlap_make_valid(make_valid): bowtie = Polygon([(1, 1), (9, 9), (9, 1), (1, 9), (1, 1)]) diff --git a/geopandas/tools/overlay.py b/geopandas/tools/overlay.py index 75dcb55..78484e3 100644 --- a/geopandas/tools/overlay.py +++ b/geopandas/tools/overlay.py @@ -312,7 +312,7 @@ def overlay(df1, df2, how="intersection", keep_geom_type=None, make_valid=True): with warnings.catch_warnings(): # CRS checked above, suppress array-level warning warnings.filterwarnings("ignore", message="CRS mismatch between the CRS") if how == "difference": - return _overlay_difference(df1, df2) + result = _overlay_difference(df1, df2) elif how == "intersection": result = _overlay_intersection(df1, df2) elif how == "symmetric_difference": @@ -323,6 +323,9 @@ def overlay(df1, df2, how="intersection", keep_geom_type=None, make_valid=True): dfunion = _overlay_union(df1, df2) result = dfunion[dfunion["__idx1"].notnull()].copy() + if how in ["intersection", "symmetric_difference", "union", "identity"]: + result.drop(["__idx1", "__idx2"], axis=1, inplace=True) + if keep_geom_type: geom_type = df1.geom_type.iloc[0] @@ -387,5 +390,4 @@ def overlay(df1, df2, how="intersection", keep_geom_type=None, make_valid=True): ) result.reset_index(drop=True, inplace=True) - result.drop(["__idx1", "__idx2"], axis=1, inplace=True) return result From 220a2f75f9fca1eb9913ec21a97a6bb85311128e Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Thu, 14 Oct 2021 08:03:02 +0100 Subject: [PATCH 259/316] BUG: support None in unary_union (shapely) (#2181) --- geopandas/_vectorized.py | 6 +++++- geopandas/tests/test_geom_methods.py | 6 ++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/geopandas/_vectorized.py b/geopandas/_vectorized.py index 7569e37..611551f 100644 --- a/geopandas/_vectorized.py +++ b/geopandas/_vectorized.py @@ -891,7 +891,11 @@ def unary_union(data): if compat.USE_PYGEOS: return _pygeos_to_shapely(pygeos.union_all(data)) else: - return shapely.ops.unary_union(data) + data = [g for g in data if g is not None] + if data: + return shapely.ops.unary_union(data) + else: + return None # diff --git a/geopandas/tests/test_geom_methods.py b/geopandas/tests/test_geom_methods.py index 1c70e85..221eca3 100644 --- a/geopandas/tests/test_geom_methods.py +++ b/geopandas/tests/test_geom_methods.py @@ -354,6 +354,12 @@ class TestGeomMethods: self._test_unary_topological("unary_union", expected, g) + g2 = GeoSeries([p1, None]) + self._test_unary_topological("unary_union", p1, g2) + + g3 = GeoSeries([None, None]) + assert g3.unary_union is None + def test_cascaded_union_deprecated(self): p1 = self.t1 p2 = Polygon([(2, 0), (3, 0), (3, 1)]) From 0746be9a2b06409164ffca06fed82eee58669ef3 Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Thu, 14 Oct 2021 22:06:44 +0100 Subject: [PATCH 260/316] REGR: overlay keep_geom_type issue with collections of different types (#2177) Co-authored-by: Joris Van den Bossche --- geopandas/tests/test_overlay.py | 32 ++++++++++++++++++++++++++++++++ geopandas/tools/overlay.py | 10 ++++++---- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/geopandas/tests/test_overlay.py b/geopandas/tests/test_overlay.py index 1b8c3a0..f145893 100644 --- a/geopandas/tests/test_overlay.py +++ b/geopandas/tests/test_overlay.py @@ -628,6 +628,38 @@ def test_keep_geom_type_geometry_collection2(): assert_geodataframe_equal(result1, expected1) +def test_keep_geom_type_geomcoll_different_types(): + polys1 = [box(0, 1, 1, 3), box(10, 10, 12, 12)] + polys2 = [ + Polygon([(1, 0), (3, 0), (3, 3), (1, 3), (1, 2), (2, 2), (2, 1), (1, 1)]), + box(11, 11, 13, 13), + ] + df1 = GeoDataFrame({"left": [0, 1], "geometry": polys1}) + df2 = GeoDataFrame({"right": [0, 1], "geometry": polys2}) + result1 = overlay(df1, df2, keep_geom_type=True) + expected1 = GeoDataFrame( + { + "left": [1], + "right": [1], + "geometry": [box(11, 11, 12, 12)], + } + ) + assert_geodataframe_equal(result1, expected1) + + result2 = overlay(df1, df2, keep_geom_type=False) + expected2 = GeoDataFrame( + { + "left": [0, 1], + "right": [0, 1], + "geometry": [ + GeometryCollection([LineString([(1, 2), (1, 3)]), Point(1, 1)]), + box(11, 11, 12, 12), + ], + } + ) + assert_geodataframe_equal(result2, expected2) + + def test_keep_geom_type_geometry_collection_difference(): # GH 2163 diff --git a/geopandas/tools/overlay.py b/geopandas/tools/overlay.py index 78484e3..babb67a 100644 --- a/geopandas/tools/overlay.py +++ b/geopandas/tools/overlay.py @@ -343,16 +343,18 @@ def overlay(df1, df2, how="intersection", keep_geom_type=None, make_valid=True): orig_num_geoms_exploded = exploded.shape[0] if geom_type in polys: - exploded = exploded.loc[exploded.geom_type.isin(polys)] + exploded.loc[~exploded.geom_type.isin(polys), geom_col] = None elif geom_type in lines: - exploded = exploded.loc[exploded.geom_type.isin(lines)] + exploded.loc[~exploded.geom_type.isin(lines), geom_col] = None elif geom_type in points: - exploded = exploded.loc[exploded.geom_type.isin(points)] + exploded.loc[~exploded.geom_type.isin(points), geom_col] = None else: raise TypeError( "`keep_geom_type` does not support {}.".format(geom_type) ) - num_dropped_collection = orig_num_geoms_exploded - exploded.shape[0] + num_dropped_collection = ( + orig_num_geoms_exploded - exploded.geometry.isna().sum() + ) # level_0 created with above reset_index operation # and represents the original geometry collections From 07b26716a8859a5cd0f92f8c2461c4d152d262e1 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Sat, 16 Oct 2021 08:23:41 +0200 Subject: [PATCH 261/316] BUG: avoid warning from deprecated explode in clip() (#2179) --- geopandas/tools/clip.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/geopandas/tools/clip.py b/geopandas/tools/clip.py index dda5e63..27ff372 100644 --- a/geopandas/tools/clip.py +++ b/geopandas/tools/clip.py @@ -182,7 +182,7 @@ def clip(gdf, mask, keep_geom_type=False): elif new_collection or more_types: orig_type = gdf.geom_type.iloc[0] if new_collection: - clipped = clipped.explode() + clipped = clipped.explode(index_parts=False) if orig_type in polys: clipped = clipped.loc[clipped.geom_type.isin(polys)] elif orig_type in lines: From adc47131501c3cca88d21722d79a594f9b9e29d7 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Sat, 16 Oct 2021 08:25:02 +0200 Subject: [PATCH 262/316] DOC/RLS: add changelog for 0.10.2 release (#2183) --- CHANGELOG.md | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 663d46d..c48d3a1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,13 +1,33 @@ Changelog ========= +Version 0.10.2 (October 16, 2021) +--------------------------------- + +Small bug-fix release: + +- Fix regression in `overlay()` in case no geometries are intersecting (but + have overlapping total bounds) (#2172). +- Fix regression in `overlay()` with `keep_geom_type=True` in case the + overlay of two geometries in a GeometryCollection with other geometry types + (#2177). +- Fix `overlay()` to honor the `keep_geom_type` keyword for the + `op="differnce"` case (#2164). +- Fix regression in `plot()` with a mapclassify `scheme` in case the + formatted legend labels have duplicates (#2166). +- Fix a bug in the `explore()` method ignoring the `vmin` and `vmax` keywords + in case they are set to 0 (#2175). +- Fix `unary_union` to correctly handle a GeoSeries with missing values (#2181). +- Avoid internal deprecation warning in `clip()` (#2179). + + Version 0.10.1 (October 8, 2021) -------------------------------- Small bug-fix release: - Fix regression in `overlay()` with non-overlapping geometries and a - non-default `how` (.e. not "intersection") (#2157). + non-default `how` (i.e. not "intersection") (#2157). Version 0.10.0 (October 3, 2021) @@ -86,7 +106,7 @@ Bug fixes: Notes on (optional) dependencies: -- GeoPandas 0.9.0 dropped support for Python 3.6 and pandas 0.24. Further, +- GeoPandas 0.10.0 dropped support for Python 3.6 and pandas 0.24. Further, the minimum required versions are numpy 1.18, shapely 1.6, fiona 1.8, matplotlib 3.1 and pyproj 2.2. - Plotting with a classification schema now requires mapclassify version >= From 04d377f321972801888381356cb6259766eb63b6 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Sat, 16 Oct 2021 08:58:30 +0200 Subject: [PATCH 263/316] RLS: v0.10.2 From 409d8f0a1562df088ce28c39a48fe4df669660fe Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Thu, 21 Oct 2021 14:17:24 +0200 Subject: [PATCH 264/316] TST: fix explore() tests for change in CartoDB max zoom level in latest xyzservices (#2192) --- ci/envs/38-dev.yaml | 2 +- geopandas/tests/test_explore.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ci/envs/38-dev.yaml b/ci/envs/38-dev.yaml index 56b6632..7fcde2c 100644 --- a/ci/envs/38-dev.yaml +++ b/ci/envs/38-dev.yaml @@ -25,7 +25,7 @@ dependencies: # dev versions of packages - git+https://github.com/numpy/numpy.git@main - git+https://github.com/pydata/pandas.git@master - - git+https://github.com/matplotlib/matplotlib.git@master + - git+https://github.com/matplotlib/matplotlib.git@main - git+https://github.com/Toblerity/Shapely.git@master - git+https://github.com/pygeos/pygeos.git@master - git+https://github.com/python-visualization/folium.git@master diff --git a/geopandas/tests/test_explore.py b/geopandas/tests/test_explore.py index 4b7c932..205100d 100644 --- a/geopandas/tests/test_explore.py +++ b/geopandas/tests/test_explore.py @@ -608,7 +608,7 @@ class TestExplore: 'attribution":"\\u0026copy;\\u003cahref=\\"https://www.openstreetmap.org' in out_str ) - assert '"maxNativeZoom":19,"maxZoom":19,"minZoom":0' in out_str + assert '"maxNativeZoom":20,"maxZoom":20,"minZoom":0' in out_str def test_xyzservices_query_name(self): pytest.importorskip("xyzservices") @@ -624,7 +624,7 @@ class TestExplore: 'attribution":"\\u0026copy;\\u003cahref=\\"https://www.openstreetmap.org' in out_str ) - assert '"maxNativeZoom":19,"maxZoom":19,"minZoom":0' in out_str + assert '"maxNativeZoom":20,"maxZoom":20,"minZoom":0' in out_str def test_linearrings(self): rings = self.nybb.explode(index_parts=True).exterior From 020a9c4cb7d5d47c643bc5bfaa50378ccd86920f Mon Sep 17 00:00:00 2001 From: Guillaume Lostis Date: Sun, 31 Oct 2021 12:14:22 +0100 Subject: [PATCH 265/316] DOC: Fix minor typos in docstrings (#2203) --- doc/source/docs/user_guide/geometric_manipulations.rst | 2 +- geopandas/array.py | 2 +- geopandas/base.py | 4 ++-- geopandas/explore.py | 2 +- geopandas/geodataframe.py | 6 +++--- geopandas/io/tests/test_sql.py | 4 ++-- geopandas/sindex.py | 2 +- geopandas/tests/test_explore.py | 6 +++--- geopandas/tests/test_extension_array.py | 2 +- geopandas/tests/test_geoseries.py | 2 +- geopandas/tests/test_pandas_methods.py | 4 ++-- geopandas/tools/sjoin.py | 4 ++-- geopandas/tools/tests/test_sjoin.py | 2 +- versioneer.py | 4 ++-- 14 files changed, 23 insertions(+), 23 deletions(-) diff --git a/doc/source/docs/user_guide/geometric_manipulations.rst b/doc/source/docs/user_guide/geometric_manipulations.rst index 525833b..d29eeb6 100644 --- a/doc/source/docs/user_guide/geometric_manipulations.rst +++ b/doc/source/docs/user_guide/geometric_manipulations.rst @@ -60,7 +60,7 @@ Affine transformations .. method:: GeoSeries.scale(self, xfact=1.0, yfact=1.0, zfact=1.0, origin='center') - Scale the geometries of the :class:`~geopandas.GeoSeries` along each (x, y, z) dimensio. + Scale the geometries of the :class:`~geopandas.GeoSeries` along each (x, y, z) dimension. .. method:: GeoSeries.skew(self, angle, origin='center', use_radians=False) diff --git a/geopandas/array.py b/geopandas/array.py index f4924c8..0532c08 100644 --- a/geopandas/array.py +++ b/geopandas/array.py @@ -1182,7 +1182,7 @@ class GeometryArray(ExtensionArray): Returns ------- values : ndarray - An array suitable for factoraization. This should maintain order + An array suitable for factorization. This should maintain order and be a supported dtype (Float64, Int64, UInt64, String, Object). By default, the extension array is cast to object dtype. na_value : object diff --git a/geopandas/base.py b/geopandas/base.py index 19acae9..2edf647 100644 --- a/geopandas/base.py +++ b/geopandas/base.py @@ -974,7 +974,7 @@ GeometryCollection other : GeoSeries or geometric object The GeoSeries (elementwise) or geometric object to compare to. decimal : int - Decimal place presion used when testing for approximate equality. + Decimal place precision used when testing for approximate equality. align : bool (default True) If True, automatically aligns GeoSeries based on their indices. If False, the order of elements is preserved. @@ -1042,7 +1042,7 @@ GeometryCollection other : GeoSeries or geometric object The GeoSeries (elementwise) or geometric object to compare to. tolerance : float - Decimal place presion used when testing for approximate equality. + Decimal place precision used when testing for approximate equality. align : bool (default True) If True, automatically aligns GeoSeries based on their indices. If False, the order of elements is preserved. diff --git a/geopandas/explore.py b/geopandas/explore.py index 4d03220..12d4b41 100644 --- a/geopandas/explore.py +++ b/geopandas/explore.py @@ -526,7 +526,7 @@ GON (((180.00000 -16.06713, 180.00000... ] gdf = gdf.drop(columns=non_active_geoms) - # preprare tooltip and popup + # prepare tooltip and popup if isinstance(gdf, geopandas.GeoDataFrame): # add named index to the tooltip if gdf.index.name is not None: diff --git a/geopandas/geodataframe.py b/geopandas/geodataframe.py index 9416ee2..787a893 100644 --- a/geopandas/geodataframe.py +++ b/geopandas/geodataframe.py @@ -1510,7 +1510,7 @@ individually so that features may have different properties See also -------- - GeoDataFrame.explode : explode muti-part geometries into single geometries + GeoDataFrame.explode : explode multi-part geometries into single geometries """ @@ -1553,7 +1553,7 @@ individually so that features may have different properties # overrides the pandas native explode method to break up features geometrically def explode(self, column=None, ignore_index=False, index_parts=None, **kwargs): """ - Explode muti-part geometries into multiple single geometries. + Explode multi-part geometries into multiple single geometries. Each row containing a multi-part geometry will be split into multiple rows with single geometries, thereby increasing the vertical @@ -2041,7 +2041,7 @@ countries_w_city_data[countries_w_city_data["name_left"] == "Italy"] Notes ----- - Since this join relies on distances, results will be innaccurate + Since this join relies on distances, results will be inaccurate if your geometries are in a geographic CRS. Every operation in GeoPandas is planar, i.e. the potential third diff --git a/geopandas/io/tests/test_sql.py b/geopandas/io/tests/test_sql.py index 7622e6a..3376447 100644 --- a/geopandas/io/tests/test_sql.py +++ b/geopandas/io/tests/test_sql.py @@ -26,7 +26,7 @@ def df_nybb(): @pytest.fixture() def connection_postgis(): """ - Initiaties a connection to a postGIS database that must already exist. + Initiates a connection to a postGIS database that must already exist. See create_postgis for more information. """ psycopg2 = pytest.importorskip("psycopg2") @@ -51,7 +51,7 @@ def connection_postgis(): @pytest.fixture() def engine_postgis(): """ - Initiaties a connection engine to a postGIS database that must already exist. + Initiates a connection engine to a postGIS database that must already exist. """ sqlalchemy = pytest.importorskip("sqlalchemy") from sqlalchemy.engine.url import URL diff --git a/geopandas/sindex.py b/geopandas/sindex.py index 8c8308f..736059b 100644 --- a/geopandas/sindex.py +++ b/geopandas/sindex.py @@ -453,7 +453,7 @@ if compat.HAS_RTREE: # handle empty / invalid geometries if geometry is None: - # return an empty integer array, similar to pygeys.STRtree.query. + # return an empty integer array, similar to pygeos.STRtree.query. return np.array([], dtype=np.intp) if not isinstance(geometry, BaseGeometry): diff --git a/geopandas/tests/test_explore.py b/geopandas/tests/test_explore.py index 205100d..25a34fb 100644 --- a/geopandas/tests/test_explore.py +++ b/geopandas/tests/test_explore.py @@ -62,7 +62,7 @@ class TestExplore: assert "openstreetmap" in m.to_dict()["children"].keys() def test_map_settings_custom(self): - """Check custom map settins""" + """Check custom map settings""" m = self.nybb.explore( zoom_control=False, width=200, @@ -413,7 +413,7 @@ class TestExplore: assert "BoroName" in out_str def test_default_markers(self): - # check overriden default for points + # check overridden default for points m = self.cities.explore() strings = ['"radius":2', '"fill":true', "CircleMarker(latlng,opts)"] out_str = self._fetch_map_string(m) @@ -542,7 +542,7 @@ class TestExplore: assert out_str.count("#5ec962ff") == 100 assert out_str.count("#fde725ff") == 100 - # scale legend accorrdingly + # scale legend accordingly m = self.world.explore( "pop_est", legend=True, diff --git a/geopandas/tests/test_extension_array.py b/geopandas/tests/test_extension_array.py index 1c37bdc..6e1205b 100644 --- a/geopandas/tests/test_extension_array.py +++ b/geopandas/tests/test_extension_array.py @@ -293,7 +293,7 @@ class TestDtype(extension_tests.BaseDtypeTests): class TestInterface(extension_tests.BaseInterfaceTests): def test_array_interface(self, data): # we are overriding this base test because the creation of `expected` - # potentionally doesn't work for shapely geometries + # potentially doesn't work for shapely geometries # TODO can be removed with Shapely 2.0 result = np.array(data) assert result[0] == data[0] diff --git a/geopandas/tests/test_geoseries.py b/geopandas/tests/test_geoseries.py index b870a65..c9d2740 100644 --- a/geopandas/tests/test_geoseries.py +++ b/geopandas/tests/test_geoseries.py @@ -412,7 +412,7 @@ def test_missing_values(): def test_isna_empty_geoseries(): - # ensure that isna() result for emtpy GeoSeries has the correct bool dtype + # ensure that isna() result for empty GeoSeries has the correct bool dtype s = GeoSeries([]) result = s.isna() assert_series_equal(result, pd.Series([], dtype="bool")) diff --git a/geopandas/tests/test_pandas_methods.py b/geopandas/tests/test_pandas_methods.py index 4d18bad..9b553d4 100644 --- a/geopandas/tests/test_pandas_methods.py +++ b/geopandas/tests/test_pandas_methods.py @@ -88,7 +88,7 @@ def test_repr_empty(): def test_indexing(s, df): - # accessing scalar from the geometry (colunm) + # accessing scalar from the geometry (column) exp = Point(1, 1) assert s[1] == exp assert s.loc[1] == exp @@ -241,7 +241,7 @@ def test_astype(s, df): res = df.astype({"value1": float}) assert isinstance(res, GeoDataFrame) - # check whether returned object is a datafrane + # check whether returned object is a dataframe res = df.astype(str) assert isinstance(res, pd.DataFrame) and not isinstance(res, GeoDataFrame) diff --git a/geopandas/tools/sjoin.py b/geopandas/tools/sjoin.py index b2ceac1..056fe1a 100644 --- a/geopandas/tools/sjoin.py +++ b/geopandas/tools/sjoin.py @@ -107,7 +107,7 @@ stria AUT 416600.0 "A non-default value for `predicate` was passed" f' (got `predicate="{predicate}"`' f' in combination with `op="{op}"`).' - " The value of `predicate` will be overriden by the value of `op`," + " The value of `predicate` will be overridden by the value of `op`," " , which may result in unexpected behavior." f"\n{deprecation_message}" ) @@ -503,7 +503,7 @@ countries_w_city_data[countries_w_city_data["name_left"] == "Italy"] Notes ----- - Since this join relies on distances, results will be innaccurate + Since this join relies on distances, results will be inaccurate if your geometries are in a geographic CRS. Every operation in GeoPandas is planar, i.e. the potential third diff --git a/geopandas/tools/tests/test_sjoin.py b/geopandas/tools/tests/test_sjoin.py index 828da8c..e7c6eae 100644 --- a/geopandas/tools/tests/test_sjoin.py +++ b/geopandas/tools/tests/test_sjoin.py @@ -137,7 +137,7 @@ class TestSpatialJoin: if op != predicate: warntype = UserWarning match = ( - "`predicate` will be overriden by the value of `op`" + "`predicate` will be overridden by the value of `op`" + r"(.|\s)*" + match ) diff --git a/versioneer.py b/versioneer.py index 7ed2a21..cb0aa14 100644 --- a/versioneer.py +++ b/versioneer.py @@ -836,7 +836,7 @@ def render_pep440_old(pieces): The ".dev0" means dirty. - Eexceptions: + Exceptions: 1: no tags. 0.postDISTANCE[.dev0] """ if pieces["closest-tag"]: @@ -1302,7 +1302,7 @@ def render_pep440_old(pieces): The ".dev0" means dirty. - Eexceptions: + Exceptions: 1: no tags. 0.postDISTANCE[.dev0] """ if pieces["closest-tag"]: From 528abfc6fe4a501ebffa7aa16cb05a5aa656c8dd Mon Sep 17 00:00:00 2001 From: Ray Bell Date: Sun, 31 Oct 2021 07:19:26 -0400 Subject: [PATCH 266/316] DOC: distance units in sjoin_nearest (#2195) * DOC: distance units in sjoin_nearest * rm white space * Update sjoin.py * DOC: move units to description * rm white space * Update geopandas/tools/sjoin.py Co-authored-by: Brendan Ward Co-authored-by: Brendan Ward --- geopandas/tools/sjoin.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/geopandas/tools/sjoin.py b/geopandas/tools/sjoin.py index 056fe1a..2241925 100644 --- a/geopandas/tools/sjoin.py +++ b/geopandas/tools/sjoin.py @@ -417,6 +417,9 @@ def sjoin_nearest( Results will include multiple output records for a single input record where there are multiple equidistant nearest or intersected neighbors. + Distance is calculated in CRS units and can be returned using the + `distance_col` parameter. + See the User Guide page https://geopandas.readthedocs.io/en/latest/docs/user_guide/mergingdata.html for more details. From 733e43f4cf9dc140130e4fbdcc3ff17ba43905e8 Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Sat, 6 Nov 2021 09:16:37 +0000 Subject: [PATCH 267/316] DOC: fix link on contributing page (#2218) --- doc/source/community/contributing.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/community/contributing.rst b/doc/source/community/contributing.rst index 759e1b3..b5d4310 100644 --- a/doc/source/community/contributing.rst +++ b/doc/source/community/contributing.rst @@ -21,7 +21,7 @@ In particular, when submitting a pull request: - All existing tests should pass. Please make sure that the test suite passes, both locally and on - `GitHub Actions `_. Status on + `GitHub Actions `_. Status on GHA will be visible on a pull request. GHA are automatically enabled on your own fork as well. To trigger a check, make a PR to your own fork. From 6925f68f8cc8a063ba3d6cc06eb18ef8376e7615 Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Mon, 8 Nov 2021 20:34:14 +0000 Subject: [PATCH 268/316] CI: use shapely main instead of master (#2206) --- ci/envs/38-dev.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/envs/38-dev.yaml b/ci/envs/38-dev.yaml index 7fcde2c..cb4e67d 100644 --- a/ci/envs/38-dev.yaml +++ b/ci/envs/38-dev.yaml @@ -26,7 +26,7 @@ dependencies: - git+https://github.com/numpy/numpy.git@main - git+https://github.com/pydata/pandas.git@master - git+https://github.com/matplotlib/matplotlib.git@main - - git+https://github.com/Toblerity/Shapely.git@master + - git+https://github.com/Toblerity/Shapely.git@main - git+https://github.com/pygeos/pygeos.git@master - git+https://github.com/python-visualization/folium.git@master - git+https://github.com/geopandas/xyzservices.git@main From 9a1509476a8ce2c0092ca8fae3b1c1f5bc741c67 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Tue, 9 Nov 2021 08:48:44 +0100 Subject: [PATCH 269/316] DOC: remove the "dirty" from version on home page title (#1831) --- doc/source/conf.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/doc/source/conf.py b/doc/source/conf.py index f8d15c4..44cfda6 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -93,7 +93,12 @@ copyright = u"2013–2021, GeoPandas developers" # built documents. import geopandas -version = release = geopandas.__version__ +release = release = geopandas.__version__ +version = release +if "+" in version: + version, remainder = release.split("+") + if not remainder.startswith("0"): + version = version + ".dev+" + remainder.split(".")[0] # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. From 17fe21ed15442d2cd30bd3d39171e1e6e2b44b68 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Fri, 12 Nov 2021 00:49:12 +0100 Subject: [PATCH 270/316] TST/COMPAT: update GeometryArray getitem error type + fix tests (#2219) * TST/COMPAT: update GeometryArray getitem error type + fix tests * fix doctest for GEOS 3.10 --- geopandas/array.py | 11 +++++++---- geopandas/tests/test_extension_array.py | 12 ++++++++++++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/geopandas/array.py b/geopandas/array.py index 0532c08..fd7b7fc 100644 --- a/geopandas/array.py +++ b/geopandas/array.py @@ -363,10 +363,12 @@ class GeometryArray(ExtensionArray): # for pandas >= 1.0, validate and convert IntegerArray/BooleanArray # to numpy array, pass-through non-array-like indexers idx = pd.api.indexers.check_array_indexer(self, idx) - if isinstance(idx, (Iterable, slice)): return GeometryArray(self.data[idx], crs=self.crs) else: - raise TypeError("Index type not supported", idx) + if isinstance(idx, (Iterable, slice)): + return GeometryArray(self.data[idx], crs=self.crs) + else: + raise TypeError("Index type not supported", idx) def __setitem__(self, key, value): if compat.PANDAS_GE_10: @@ -740,8 +742,9 @@ class GeometryArray(ExtensionArray): >>> a = a.to_crs(3857) >>> to_wkt(a) - array(['POINT (111319 111325)', 'POINT (222639 222684)', - 'POINT (333958 334111)'], dtype=object) + array(['POINT (111319.490793 111325.142866)', + 'POINT (222638.981587 222684.208506)', + 'POINT (333958.47238 334111.171402)'], dtype=object) >>> a.crs # doctest: +SKIP Name: WGS 84 / Pseudo-Mercator diff --git a/geopandas/tests/test_extension_array.py b/geopandas/tests/test_extension_array.py index 6e1205b..9582404 100644 --- a/geopandas/tests/test_extension_array.py +++ b/geopandas/tests/test_extension_array.py @@ -231,6 +231,18 @@ def as_array(request): return request.param +@pytest.fixture +def invalid_scalar(data): + """ + A scalar that *cannot* be held by this ExtensionArray. + + The default should work for most subclasses, but is not guaranteed. + + If the array can hold any item (i.e. object dtype), then use pytest.skip. + """ + return object.__new__(object) + + # Fixtures defined in pandas/conftest.py that are also needed: defining them # here instead of importing for compatibility From 85a640508c47c688148c69abca6ee37a0aae01f5 Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Mon, 22 Nov 2021 20:04:05 +0000 Subject: [PATCH 271/316] CI: change folium master to main (#2228) --- ci/envs/38-dev.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ci/envs/38-dev.yaml b/ci/envs/38-dev.yaml index cb4e67d..61e2246 100644 --- a/ci/envs/38-dev.yaml +++ b/ci/envs/38-dev.yaml @@ -28,6 +28,5 @@ dependencies: - git+https://github.com/matplotlib/matplotlib.git@main - git+https://github.com/Toblerity/Shapely.git@main - git+https://github.com/pygeos/pygeos.git@master - - git+https://github.com/python-visualization/folium.git@master + - git+https://github.com/python-visualization/folium.git@main - git+https://github.com/geopandas/xyzservices.git@main - From 274373e33fe54824d848ec1fb6d36a86f23200d9 Mon Sep 17 00:00:00 2001 From: Ewout ter Hoeven Date: Tue, 23 Nov 2021 11:41:07 +0100 Subject: [PATCH 272/316] CI: Run on maintenance branches, update actions (#2232) - Run on pushes and pull-requests to maintenance branches (starting with 0.) - Lint job: Update to latest patch version pre-commit/action@v2.0.3 - Update codecov/codecov-action to v2 --- .github/workflows/tests.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index c6d6027..ffed2f0 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -2,9 +2,9 @@ name: Tests on: push: - branches: [master] + branches: [master, 0.**] pull_request: - branches: [master] + branches: [master, 0.**] schedule: - cron: "0 0 * * *" @@ -19,7 +19,7 @@ jobs: steps: - uses: actions/checkout@v2 - uses: actions/setup-python@v2 - - uses: pre-commit/action@v2.0.0 + - uses: pre-commit/action@v2.0.3 Test: needs: Linting @@ -120,4 +120,4 @@ jobs: run: | pytest -v --color=yes --doctest-only geopandas --ignore=geopandas/datasets - - uses: codecov/codecov-action@v1 + - uses: codecov/codecov-action@v2 From a5e6ca5737a46982b7db654e590398d987eef258 Mon Sep 17 00:00:00 2001 From: ryanward-io Date: Wed, 24 Nov 2021 08:44:55 +1100 Subject: [PATCH 273/316] DOC: Include links to matplotlib as per #2209 (#2233) --- geopandas/plotting.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/geopandas/plotting.py b/geopandas/plotting.py index 463ebd4..e17a4a3 100644 --- a/geopandas/plotting.py +++ b/geopandas/plotting.py @@ -563,8 +563,8 @@ def plot_dataframe( Size of the resulting matplotlib.figure.Figure. If the argument axes is given explicitly, figsize is ignored. legend_kwds : dict (default None) - Keyword arguments to pass to matplotlib.pyplot.legend() or - matplotlib.pyplot.colorbar(). + Keyword arguments to pass to :func:`matplotlib.pyplot.legend` or + :func:`matplotlib.pyplot.colorbar`. Additional accepted keywords when `scheme` is specified: fmt : string From da23d71243f6272664fa69492535523dd57606a4 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Sat, 27 Nov 2021 15:05:43 +0100 Subject: [PATCH 274/316] CI: use mamba (+mambaforge) for setting up environment (#2238) --- .github/workflows/tests.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index ffed2f0..93d9e71 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -70,6 +70,9 @@ jobs: uses: conda-incubator/setup-miniconda@v2 with: environment-file: ${{ matrix.env }} + miniforge-version: latest + miniforge-variant: Mambaforge + use-mamba: true - name: Check and Log Environment run: | From 4361c30f474df0751a7006e0d91f3fc8376b723c Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Sat, 27 Nov 2021 15:06:07 +0100 Subject: [PATCH 275/316] CI: use nightly wheels for numpy and pandas --- ci/envs/37-latest-defaults.yaml | 1 + ci/envs/37-minimal.yaml | 1 + ci/envs/38-dev.yaml | 5 +++-- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/ci/envs/37-latest-defaults.yaml b/ci/envs/37-latest-defaults.yaml index d1970c6..7a9a1fb 100644 --- a/ci/envs/37-latest-defaults.yaml +++ b/ci/envs/37-latest-defaults.yaml @@ -20,6 +20,7 @@ dependencies: #- geopy - SQLalchemy - libspatialite + - pip - pip: - geopy - mapclassify diff --git a/ci/envs/37-minimal.yaml b/ci/envs/37-minimal.yaml index 9e3e1a0..97fe978 100644 --- a/ci/envs/37-minimal.yaml +++ b/ci/envs/37-minimal.yaml @@ -24,5 +24,6 @@ dependencies: - SQLalchemy - libspatialite - pyarrow + - pip - pip: - pyproj==2.2.2 diff --git a/ci/envs/38-dev.yaml b/ci/envs/38-dev.yaml index 61e2246..54cd610 100644 --- a/ci/envs/38-dev.yaml +++ b/ci/envs/38-dev.yaml @@ -19,12 +19,13 @@ dependencies: - SQLalchemy - libspatialite - pyarrow + - pip - pip: - geopy - mapclassify>=2.4.0 # dev versions of packages - - git+https://github.com/numpy/numpy.git@main - - git+https://github.com/pydata/pandas.git@master + - --pre --extra-index https://pypi.anaconda.org/scipy-wheels-nightly/simple numpy + - --pre --extra-index https://pypi.anaconda.org/scipy-wheels-nightly/simple pandas - git+https://github.com/matplotlib/matplotlib.git@main - git+https://github.com/Toblerity/Shapely.git@main - git+https://github.com/pygeos/pygeos.git@master From 791b21bc4ad2eef225acc9e99d6340957df04079 Mon Sep 17 00:00:00 2001 From: ryanward-io Date: Sat, 4 Dec 2021 21:40:44 +1100 Subject: [PATCH 276/316] DOC: Replaced instances of deprecated op with predicate (#2249) --- benchmarks/sjoin.py | 4 +- doc/source/gallery/spatial_joins.ipynb | 78 +++++++++++++------------- 2 files changed, 41 insertions(+), 41 deletions(-) diff --git a/benchmarks/sjoin.py b/benchmarks/sjoin.py index 0d06391..81dbacf 100644 --- a/benchmarks/sjoin.py +++ b/benchmarks/sjoin.py @@ -26,5 +26,5 @@ class Bench: self.df1, self.df2 = df1, df2 - def time_sjoin(self, op): - sjoin(self.df1, self.df2, op=op) + def time_sjoin(self, predicate): + sjoin(self.df1, self.df2, predicate=predicate) diff --git a/doc/source/gallery/spatial_joins.ipynb b/doc/source/gallery/spatial_joins.ipynb index a295c41..38f06e3 100644 --- a/doc/source/gallery/spatial_joins.ipynb +++ b/doc/source/gallery/spatial_joins.ipynb @@ -2,6 +2,7 @@ "cells": [ { "cell_type": "markdown", + "metadata": {}, "source": [ "# Spatial Joins\n", "\n", @@ -12,11 +13,11 @@ "A common use case might be a spatial join between a point layer and a polygon layer where you want to retain the point geometries and grab the attributes of the intersecting polygons.\n", "\n", "![illustration](https://web.natur.cuni.cz/~langhamr/lectures/vtfg1/mapinfo_1/about_gis/Image23.gif)" - ], - "metadata": {} + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "\n", "## Types of spatial joins\n", @@ -84,21 +85,22 @@ " 0101000000F0D88AA0E1A4EEBF7052F7E5B115E9BF | 2 | 20\n", "(4 rows) \n", "```" - ], - "metadata": {} + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "## Spatial Joins between two GeoDataFrames\n", "\n", "Let's take a look at how we'd implement these using `GeoPandas`. First, load up the NYC test data into `GeoDataFrames`:" - ], - "metadata": {} + ] }, { "cell_type": "code", "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "%matplotlib inline\n", "from shapely.geometry import Point\n", @@ -118,101 +120,99 @@ "\n", "# Make sure they're using the same projection reference\n", "pointdf.crs = polydf.crs" - ], - "outputs": [], - "metadata": {} + ] }, { "cell_type": "code", "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "pointdf" - ], - "outputs": [], - "metadata": {} + ] }, { "cell_type": "code", "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "polydf" - ], - "outputs": [], - "metadata": {} + ] }, { "cell_type": "code", "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "pointdf.plot()" - ], - "outputs": [], - "metadata": {} + ] }, { "cell_type": "code", "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "polydf.plot()" - ], - "outputs": [], - "metadata": {} + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "## Joins" - ], - "metadata": {} + ] }, { "cell_type": "code", "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "join_left_df = pointdf.sjoin(polydf, how=\"left\")\n", "join_left_df\n", "# Note the NaNs where the point did not intersect a boro" - ], - "outputs": [], - "metadata": {} + ] }, { "cell_type": "code", "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "join_right_df = pointdf.sjoin(polydf, how=\"right\")\n", "join_right_df\n", "# Note Staten Island is repeated" - ], - "outputs": [], - "metadata": {} + ] }, { "cell_type": "code", "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "join_inner_df = pointdf.sjoin(polydf, how=\"inner\")\n", "join_inner_df\n", "# Note the lack of NaNs; dropped anything that didn't intersect" - ], - "outputs": [], - "metadata": {} + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "We're not limited to using the `intersection` binary predicate. Any of the `Shapely` geometry methods that return a Boolean can be used by specifying the `op` kwarg." - ], - "metadata": {} + ] }, { "cell_type": "code", "execution_count": null, - "source": [ - "pointdf.sjoin(polydf, how=\"left\", op=\"within\")" - ], + "metadata": {}, "outputs": [], - "metadata": {} + "source": [ + "pointdf.sjoin(polydf, how=\"left\", predicate=\"within\")" + ] } ], "metadata": { @@ -236,4 +236,4 @@ }, "nbformat": 4, "nbformat_minor": 4 -} \ No newline at end of file +} From 027cac0d975baee665bb6d1a7b346794e4adaa97 Mon Sep 17 00:00:00 2001 From: Ewout ter Hoeven Date: Sat, 4 Dec 2021 16:40:13 +0100 Subject: [PATCH 277/316] CI: Add Python 3.10 to job matrix (#2205) Also adds a conda environment yaml file for Python 3.10. This currently uses matplotlib-base instead of the regular matplotlib dependency. --- .github/workflows/tests.yaml | 3 ++- ci/envs/310-latest-conda-forge.yaml | 33 +++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 ci/envs/310-latest-conda-forge.yaml diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 93d9e71..4c1070b 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -8,7 +8,7 @@ on: schedule: - cron: "0 0 * * *" -concurrency: +concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true @@ -42,6 +42,7 @@ jobs: - ci/envs/37-latest-conda-forge.yaml - ci/envs/38-latest-conda-forge.yaml - ci/envs/39-latest-conda-forge.yaml + - ci/envs/310-latest-conda-forge.yaml include: - env: ci/envs/37-latest-conda-forge.yaml os: macos-latest diff --git a/ci/envs/310-latest-conda-forge.yaml b/ci/envs/310-latest-conda-forge.yaml new file mode 100644 index 0000000..b6c94f8 --- /dev/null +++ b/ci/envs/310-latest-conda-forge.yaml @@ -0,0 +1,33 @@ +name: test +channels: + - conda-forge +dependencies: + - python=3.10 + # required + - pandas + - shapely + - fiona + - pyproj + - pygeos + # testing + - pytest + - pytest-cov + - pytest-xdist + - fsspec + # optional + - rtree + - matplotlib-base + - mapclassify + - folium + - xyzservices + - scipy + - geopy + # installed in tests.yaml, because not available on windows + # - postgis + - SQLalchemy + - psycopg2 + - libspatialite + - geoalchemy2 + - pyarrow + # doctest testing + - pytest-doctestplus From 554d2ee376f1b71c0a36c92fc7db1dfbfe3fcdbc Mon Sep 17 00:00:00 2001 From: Ewout ter Hoeven Date: Mon, 6 Dec 2021 12:32:45 +0100 Subject: [PATCH 278/316] [Bot] Update Versioneer (#2250) --- geopandas/__init__.py | 5 +- geopandas/_version.py | 302 +++++++--- versioneer.py | 1267 +++++++++++++++++++++++++++-------------- 3 files changed, 1061 insertions(+), 513 deletions(-) diff --git a/geopandas/__init__.py b/geopandas/__init__.py index 63345b3..0ce113d 100644 --- a/geopandas/__init__.py +++ b/geopandas/__init__.py @@ -23,7 +23,6 @@ import geopandas as gpd # noqa import pandas as pd # noqa import numpy as np # noqa -from ._version import get_versions +from . import _version -__version__ = get_versions()["version"] -del get_versions +__version__ = _version.get_versions()["version"] diff --git a/geopandas/_version.py b/geopandas/_version.py index 6514cbd..9596c7f 100644 --- a/geopandas/_version.py +++ b/geopandas/_version.py @@ -5,7 +5,7 @@ # that just contains the computed version number. # This file is released into the public domain. Generated by -# versioneer-0.16 (https://github.com/warner/python-versioneer) +# versioneer-0.21 (https://github.com/python-versioneer/python-versioneer) """Git implementation of _version.py.""" @@ -14,6 +14,7 @@ import os import re import subprocess import sys +from typing import Callable, Dict def get_keywords(): @@ -24,7 +25,8 @@ def get_keywords(): # get_keywords(). git_refnames = "$Format:%d$" git_full = "$Format:%H$" - keywords = {"refnames": git_refnames, "full": git_full} + git_date = "$Format:%ci$" + keywords = {"refnames": git_refnames, "full": git_full, "date": git_date} return keywords @@ -50,12 +52,12 @@ class NotThisMethod(Exception): """Exception raised if a method is not valid for the current scenario.""" -LONG_VERSION_PY = {} -HANDLERS = {} +LONG_VERSION_PY: Dict[str, str] = {} +HANDLERS: Dict[str, Dict[str, Callable]] = {} def register_vcs_handler(vcs, method): # decorator - """Decorator to mark a method as the handler for a particular VCS.""" + """Create decorator to mark a method as the handler of a VCS.""" def decorate(f): """Store f in HANDLERS[vcs][method].""" @@ -67,63 +69,71 @@ def register_vcs_handler(vcs, method): # decorator return decorate -def run_command(commands, args, cwd=None, verbose=False, hide_stderr=False): +def run_command(commands, args, cwd=None, verbose=False, hide_stderr=False, env=None): """Call the given command(s).""" assert isinstance(commands, list) - p = None - for c in commands: + process = None + for command in commands: try: - dispcmd = str([c] + args) + dispcmd = str([command] + args) # remember shell=False, so use git.cmd on windows, not just git - p = subprocess.Popen( - [c] + args, + process = subprocess.Popen( + [command] + args, cwd=cwd, + env=env, stdout=subprocess.PIPE, stderr=(subprocess.PIPE if hide_stderr else None), ) break - except EnvironmentError: + except OSError: e = sys.exc_info()[1] if e.errno == errno.ENOENT: continue if verbose: print("unable to run %s" % dispcmd) print(e) - return None + return None, None else: if verbose: print("unable to find command, tried %s" % (commands,)) - return None - stdout = p.communicate()[0].strip() - if sys.version_info[0] >= 3: - stdout = stdout.decode() - if p.returncode != 0: + return None, None + stdout = process.communicate()[0].strip().decode() + if process.returncode != 0: if verbose: print("unable to run %s (error)" % dispcmd) - return None - return stdout + print("stdout was %s" % stdout) + return None, process.returncode + return stdout, process.returncode def versions_from_parentdir(parentdir_prefix, root, verbose): """Try to determine the version from the parent directory name. - Source tarballs conventionally unpack into a directory that includes - both the project name and a version string. + Source tarballs conventionally unpack into a directory that includes both + the project name and a version string. We will also support searching up + two directory levels for an appropriately named parent directory """ - dirname = os.path.basename(root) - if not dirname.startswith(parentdir_prefix): - if verbose: - print( - "guessing rootdir is '%s', but '%s' doesn't start with " - "prefix '%s'" % (root, dirname, parentdir_prefix) - ) - raise NotThisMethod("rootdir doesn't start with parentdir_prefix") - return { - "version": dirname[len(parentdir_prefix) :], - "full-revisionid": None, - "dirty": False, - "error": None, - } + rootdirs = [] + + for _ in range(3): + dirname = os.path.basename(root) + if dirname.startswith(parentdir_prefix): + return { + "version": dirname[len(parentdir_prefix) :], + "full-revisionid": None, + "dirty": False, + "error": None, + "date": None, + } + rootdirs.append(root) + root = os.path.dirname(root) # up a level + + if verbose: + print( + "Tried directories %s but none started with prefix %s" + % (str(rootdirs), parentdir_prefix) + ) + raise NotThisMethod("rootdir doesn't start with parentdir_prefix") @register_vcs_handler("git", "get_keywords") @@ -135,18 +145,21 @@ def git_get_keywords(versionfile_abs): # _version.py. keywords = {} try: - f = open(versionfile_abs, "r") - for line in f.readlines(): - if line.strip().startswith("git_refnames ="): - mo = re.search(r'=\s*"(.*)"', line) - if mo: - keywords["refnames"] = mo.group(1) - if line.strip().startswith("git_full ="): - mo = re.search(r'=\s*"(.*)"', line) - if mo: - keywords["full"] = mo.group(1) - f.close() - except EnvironmentError: + with open(versionfile_abs, "r") as fobj: + for line in fobj: + if line.strip().startswith("git_refnames ="): + mo = re.search(r'=\s*"(.*)"', line) + if mo: + keywords["refnames"] = mo.group(1) + if line.strip().startswith("git_full ="): + mo = re.search(r'=\s*"(.*)"', line) + if mo: + keywords["full"] = mo.group(1) + if line.strip().startswith("git_date ="): + mo = re.search(r'=\s*"(.*)"', line) + if mo: + keywords["date"] = mo.group(1) + except OSError: pass return keywords @@ -154,18 +167,31 @@ def git_get_keywords(versionfile_abs): @register_vcs_handler("git", "keywords") def git_versions_from_keywords(keywords, tag_prefix, verbose): """Get version information from git keywords.""" - if not keywords: - raise NotThisMethod("no keywords at all, weird") + if "refnames" not in keywords: + raise NotThisMethod("Short version file found") + date = keywords.get("date") + if date is not None: + # Use only the last line. Previous lines may contain GPG signature + # information. + date = date.splitlines()[-1] + + # git-2.2.0 added "%cI", which expands to an ISO-8601 -compliant + # datestamp. However we prefer "%ci" (which expands to an "ISO-8601 + # -like" string, which we must then edit to make compliant), because + # it's been around since git-1.5.3, and it's too difficult to + # discover which version we're using, or to work around using an + # older one. + date = date.strip().replace(" ", "T", 1).replace(" ", "", 1) refnames = keywords["refnames"].strip() if refnames.startswith("$Format"): if verbose: print("keywords are unexpanded, not using") raise NotThisMethod("unexpanded keywords, not a git-archive tarball") - refs = set([r.strip() for r in refnames.strip("()").split(",")]) + refs = {r.strip() for r in refnames.strip("()").split(",")} # starting in git-1.8.3, tags are listed as "tag: foo-1.0" instead of # just "foo-1.0". If we see a "tag: " prefix, prefer those. TAG = "tag: " - tags = set([r[len(TAG) :] for r in refs if r.startswith(TAG)]) + tags = {r[len(TAG) :] for r in refs if r.startswith(TAG)} if not tags: # Either we're using git < 1.8.3, or there really are no tags. We use # a heuristic: assume all version tags have a digit. The old git %d @@ -174,7 +200,7 @@ def git_versions_from_keywords(keywords, tag_prefix, verbose): # between branches and tags. By ignoring refnames without digits, we # filter out many common branch names like "release" and # "stabilization", as well as "HEAD" and "master". - tags = set([r for r in refs if re.search(r"\d", r)]) + tags = {r for r in refs if re.search(r"\d", r)} if verbose: print("discarding '%s', no digits" % ",".join(refs - tags)) if verbose: @@ -183,6 +209,11 @@ def git_versions_from_keywords(keywords, tag_prefix, verbose): # sorting will prefer e.g. "2.0" over "2.0rc1" if ref.startswith(tag_prefix): r = ref[len(tag_prefix) :] + # Filter out refs that exactly match prefix or that don't start + # with a number once the prefix is stripped (mostly a concern + # when prefix is '') + if not re.match(r"\d", r): + continue if verbose: print("picking %s" % r) return { @@ -190,6 +221,7 @@ def git_versions_from_keywords(keywords, tag_prefix, verbose): "full-revisionid": keywords["full"].strip(), "dirty": False, "error": None, + "date": date, } # no suitable tags, so version is "0+unknown", but full hex is still there if verbose: @@ -199,28 +231,33 @@ def git_versions_from_keywords(keywords, tag_prefix, verbose): "full-revisionid": keywords["full"].strip(), "dirty": False, "error": "no suitable tags", + "date": None, } @register_vcs_handler("git", "pieces_from_vcs") -def git_pieces_from_vcs(tag_prefix, root, verbose, run_command=run_command): +def git_pieces_from_vcs(tag_prefix, root, verbose, runner=run_command): """Get version from 'git describe' in the root of the source tree. This only gets called if the git-archive 'subst' keywords were *not* expanded, and _version.py hasn't already been rewritten with a short version string, meaning we're inside a checked out source tree. """ - if not os.path.exists(os.path.join(root, ".git")): - if verbose: - print("no .git in %s" % root) - raise NotThisMethod("no .git directory") - GITS = ["git"] + TAG_PREFIX_REGEX = "*" if sys.platform == "win32": GITS = ["git.cmd", "git.exe"] + TAG_PREFIX_REGEX = r"\*" + + _, rc = runner(GITS, ["rev-parse", "--git-dir"], cwd=root, hide_stderr=True) + if rc != 0: + if verbose: + print("Directory %s not under git control" % root) + raise NotThisMethod("'git rev-parse --git-dir' returned error") + # if there is a tag matching tag_prefix, this yields TAG-NUM-gHEX[-dirty] # if there isn't one, this yields HEX[-dirty] (no NUM) - describe_out = run_command( + describe_out, rc = runner( GITS, [ "describe", @@ -229,7 +266,7 @@ def git_pieces_from_vcs(tag_prefix, root, verbose, run_command=run_command): "--always", "--long", "--match", - "%s*" % tag_prefix, + "%s%s" % (tag_prefix, TAG_PREFIX_REGEX), ], cwd=root, ) @@ -237,7 +274,7 @@ def git_pieces_from_vcs(tag_prefix, root, verbose, run_command=run_command): if describe_out is None: raise NotThisMethod("'git describe' failed") describe_out = describe_out.strip() - full_out = run_command(GITS, ["rev-parse", "HEAD"], cwd=root) + full_out, rc = runner(GITS, ["rev-parse", "HEAD"], cwd=root) if full_out is None: raise NotThisMethod("'git rev-parse' failed") full_out = full_out.strip() @@ -247,6 +284,38 @@ def git_pieces_from_vcs(tag_prefix, root, verbose, run_command=run_command): pieces["short"] = full_out[:7] # maybe improved later pieces["error"] = None + branch_name, rc = runner(GITS, ["rev-parse", "--abbrev-ref", "HEAD"], cwd=root) + # --abbrev-ref was added in git-1.6.3 + if rc != 0 or branch_name is None: + raise NotThisMethod("'git rev-parse --abbrev-ref' returned error") + branch_name = branch_name.strip() + + if branch_name == "HEAD": + # If we aren't exactly on a branch, pick a branch which represents + # the current commit. If all else fails, we are on a branchless + # commit. + branches, rc = runner(GITS, ["branch", "--contains"], cwd=root) + # --contains was added in git-1.5.4 + if rc != 0 or branches is None: + raise NotThisMethod("'git branch --contains' returned error") + branches = branches.split("\n") + + # Remove the first line if we're running detached + if "(" in branches[0]: + branches.pop(0) + + # Strip off the leading "* " from the list of branches. + branches = [branch[2:] for branch in branches] + if "master" in branches: + branch_name = "master" + elif not branches: + branch_name = None + else: + # Pick the first branch that is returned. Good or bad. + branch_name = branches[0] + + pieces["branch"] = branch_name + # parse describe_out. It will be like TAG-NUM-gHEX[-dirty] or HEX[-dirty] # TAG might have hyphens. git_describe = describe_out @@ -263,7 +332,7 @@ def git_pieces_from_vcs(tag_prefix, root, verbose, run_command=run_command): # TAG-NUM-gHEX mo = re.search(r"^(.+)-(\d+)-g([0-9a-f]+)$", git_describe) if not mo: - # unparseable. Maybe git-describe is misbehaving? + # unparsable. Maybe git-describe is misbehaving? pieces["error"] = "unable to parse git-describe output: '%s'" % describe_out return pieces @@ -289,9 +358,16 @@ def git_pieces_from_vcs(tag_prefix, root, verbose, run_command=run_command): else: # HEX: no tags pieces["closest-tag"] = None - count_out = run_command(GITS, ["rev-list", "HEAD", "--count"], cwd=root) + count_out, rc = runner(GITS, ["rev-list", "HEAD", "--count"], cwd=root) pieces["distance"] = int(count_out) # total number of commits + # commit date: see ISO-8601 comment in git_versions_from_keywords() + date = runner(GITS, ["show", "-s", "--format=%ci", "HEAD"], cwd=root)[0].strip() + # Use only the last line. Previous lines may contain GPG signature + # information. + date = date.splitlines()[-1] + pieces["date"] = date.strip().replace(" ", "T", 1).replace(" ", "", 1) + return pieces @@ -326,19 +402,66 @@ def render_pep440(pieces): return rendered -def render_pep440_pre(pieces): - """TAG[.post.devDISTANCE] -- No -dirty. +def render_pep440_branch(pieces): + """TAG[[.dev0]+DISTANCE.gHEX[.dirty]] . + + The ".dev0" means not master branch. Note that .dev0 sorts backwards + (a feature branch will appear "older" than the master branch). Exceptions: - 1: no tags. 0.post.devDISTANCE + 1: no tags. 0[.dev0]+untagged.DISTANCE.gHEX[.dirty] """ if pieces["closest-tag"]: rendered = pieces["closest-tag"] - if pieces["distance"]: - rendered += ".post.dev%d" % pieces["distance"] + if pieces["distance"] or pieces["dirty"]: + if pieces["branch"] != "master": + rendered += ".dev0" + rendered += plus_or_dot(pieces) + rendered += "%d.g%s" % (pieces["distance"], pieces["short"]) + if pieces["dirty"]: + rendered += ".dirty" else: # exception #1 - rendered = "0.post.dev%d" % pieces["distance"] + rendered = "0" + if pieces["branch"] != "master": + rendered += ".dev0" + rendered += "+untagged.%d.g%s" % (pieces["distance"], pieces["short"]) + if pieces["dirty"]: + rendered += ".dirty" + return rendered + + +def pep440_split_post(ver): + """Split pep440 version string at the post-release segment. + + Returns the release segments before the post-release and the + post-release version number (or -1 if no post-release segment is present). + """ + vc = str.split(ver, ".post") + return vc[0], int(vc[1] or 0) if len(vc) == 2 else None + + +def render_pep440_pre(pieces): + """TAG[.postN.devDISTANCE] -- No -dirty. + + Exceptions: + 1: no tags. 0.post0.devDISTANCE + """ + if pieces["closest-tag"]: + if pieces["distance"]: + # update the post release segment + tag_version, post_version = pep440_split_post(pieces["closest-tag"]) + rendered = tag_version + if post_version is not None: + rendered += ".post%d.dev%d" % (post_version + 1, pieces["distance"]) + else: + rendered += ".post0.dev%d" % (pieces["distance"]) + else: + # no commits, use the tag as the version + rendered = pieces["closest-tag"] + else: + # exception #1 + rendered = "0.post0.dev%d" % pieces["distance"] return rendered @@ -369,6 +492,35 @@ def render_pep440_post(pieces): return rendered +def render_pep440_post_branch(pieces): + """TAG[.postDISTANCE[.dev0]+gHEX[.dirty]] . + + The ".dev0" means not master branch. + + Exceptions: + 1: no tags. 0.postDISTANCE[.dev0]+gHEX[.dirty] + """ + if pieces["closest-tag"]: + rendered = pieces["closest-tag"] + if pieces["distance"] or pieces["dirty"]: + rendered += ".post%d" % pieces["distance"] + if pieces["branch"] != "master": + rendered += ".dev0" + rendered += plus_or_dot(pieces) + rendered += "g%s" % pieces["short"] + if pieces["dirty"]: + rendered += ".dirty" + else: + # exception #1 + rendered = "0.post%d" % pieces["distance"] + if pieces["branch"] != "master": + rendered += ".dev0" + rendered += "+g%s" % pieces["short"] + if pieces["dirty"]: + rendered += ".dirty" + return rendered + + def render_pep440_old(pieces): """TAG[.postDISTANCE[.dev0]] . @@ -439,6 +591,7 @@ def render(pieces, style): "full-revisionid": pieces.get("long"), "dirty": None, "error": pieces["error"], + "date": None, } if not style or style == "default": @@ -446,10 +599,14 @@ def render(pieces, style): if style == "pep440": rendered = render_pep440(pieces) + elif style == "pep440-branch": + rendered = render_pep440_branch(pieces) elif style == "pep440-pre": rendered = render_pep440_pre(pieces) elif style == "pep440-post": rendered = render_pep440_post(pieces) + elif style == "pep440-post-branch": + rendered = render_pep440_post_branch(pieces) elif style == "pep440-old": rendered = render_pep440_old(pieces) elif style == "git-describe": @@ -464,6 +621,7 @@ def render(pieces, style): "full-revisionid": pieces["long"], "dirty": pieces["dirty"], "error": None, + "date": pieces.get("date"), } @@ -487,7 +645,7 @@ def get_versions(): # versionfile_source is the relative path from the top of the source # tree (where the .git directory might live) to this file. Invert # this to find the root from __file__. - for i in cfg.versionfile_source.split("/"): + for _ in cfg.versionfile_source.split("/"): root = os.path.dirname(root) except NameError: return { @@ -495,6 +653,7 @@ def get_versions(): "full-revisionid": None, "dirty": None, "error": "unable to find root of source tree", + "date": None, } try: @@ -514,4 +673,5 @@ def get_versions(): "full-revisionid": None, "dirty": None, "error": "unable to compute version", + "date": None, } diff --git a/versioneer.py b/versioneer.py index cb0aa14..d70f31b 100644 --- a/versioneer.py +++ b/versioneer.py @@ -1,5 +1,4 @@ - -# Version: 0.16 +# Version: 0.21 """The Versioneer - like a rocketeer, but for versions. @@ -7,16 +6,12 @@ The Versioneer ============== * like a rocketeer, but for versions! -* https://github.com/warner/python-versioneer +* https://github.com/python-versioneer/python-versioneer * Brian Warner * License: Public Domain -* Compatible With: python2.6, 2.7, 3.3, 3.4, 3.5, and pypy -* [![Latest Version] -(https://pypip.in/version/versioneer/badge.svg?style=flat) -](https://pypi.python.org/pypi/versioneer/) -* [![Build Status] -(https://travis-ci.org/warner/python-versioneer.png?branch=master) -](https://travis-ci.org/warner/python-versioneer) +* Compatible with: Python 3.6, 3.7, 3.8, 3.9 and pypy3 +* [![Latest Version][pypi-image]][pypi-url] +* [![Build Status][travis-image]][travis-url] This is a tool for managing a recorded version number in distutils-based python projects. The goal is to remove the tedious and error-prone "update @@ -27,9 +22,10 @@ system, and maybe making new tarballs. ## Quick Install -* `pip install versioneer` to somewhere to your $PATH -* add a `[versioneer]` section to your setup.cfg (see below) +* `pip install versioneer` to somewhere in your $PATH +* add a `[versioneer]` section to your setup.cfg (see [Install](INSTALL.md)) * run `versioneer install` in your source tree, commit the results +* Verify version information with `python setup.py version` ## Version Identifiers @@ -61,7 +57,7 @@ version 1.3). Many VCS systems can report a description that captures this, for example `git describe --tags --dirty --always` reports things like "0.7-1-g574ab98-dirty" to indicate that the checkout is one revision past the 0.7 tag, has a unique revision id of "574ab98", and is "dirty" (it has -uncommitted changes. +uncommitted changes). The version identifier is used for multiple purposes: @@ -88,127 +84,7 @@ the generated version data. ## Installation -First, decide on values for the following configuration variables: - -* `VCS`: the version control system you use. Currently accepts "git". - -* `style`: the style of version string to be produced. See "Styles" below for - details. Defaults to "pep440", which looks like - `TAG[+DISTANCE.gSHORTHASH[.dirty]]`. - -* `versionfile_source`: - - A project-relative pathname into which the generated version strings should - be written. This is usually a `_version.py` next to your project's main - `__init__.py` file, so it can be imported at runtime. If your project uses - `src/myproject/__init__.py`, this should be `src/myproject/_version.py`. - This file should be checked in to your VCS as usual: the copy created below - by `setup.py setup_versioneer` will include code that parses expanded VCS - keywords in generated tarballs. The 'build' and 'sdist' commands will - replace it with a copy that has just the calculated version string. - - This must be set even if your project does not have any modules (and will - therefore never import `_version.py`), since "setup.py sdist" -based trees - still need somewhere to record the pre-calculated version strings. Anywhere - in the source tree should do. If there is a `__init__.py` next to your - `_version.py`, the `setup.py setup_versioneer` command (described below) - will append some `__version__`-setting assignments, if they aren't already - present. - -* `versionfile_build`: - - Like `versionfile_source`, but relative to the build directory instead of - the source directory. These will differ when your setup.py uses - 'package_dir='. If you have `package_dir={'myproject': 'src/myproject'}`, - then you will probably have `versionfile_build='myproject/_version.py'` and - `versionfile_source='src/myproject/_version.py'`. - - If this is set to None, then `setup.py build` will not attempt to rewrite - any `_version.py` in the built tree. If your project does not have any - libraries (e.g. if it only builds a script), then you should use - `versionfile_build = None`. To actually use the computed version string, - your `setup.py` will need to override `distutils.command.build_scripts` - with a subclass that explicitly inserts a copy of - `versioneer.get_version()` into your script file. See - `test/demoapp-script-only/setup.py` for an example. - -* `tag_prefix`: - - a string, like 'PROJECTNAME-', which appears at the start of all VCS tags. - If your tags look like 'myproject-1.2.0', then you should use - tag_prefix='myproject-'. If you use unprefixed tags like '1.2.0', this - should be an empty string, using either `tag_prefix=` or `tag_prefix=''`. - -* `parentdir_prefix`: - - a optional string, frequently the same as tag_prefix, which appears at the - start of all unpacked tarball filenames. If your tarball unpacks into - 'myproject-1.2.0', this should be 'myproject-'. To disable this feature, - just omit the field from your `setup.cfg`. - -This tool provides one script, named `versioneer`. That script has one mode, -"install", which writes a copy of `versioneer.py` into the current directory -and runs `versioneer.py setup` to finish the installation. - -To versioneer-enable your project: - -* 1: Modify your `setup.cfg`, adding a section named `[versioneer]` and - populating it with the configuration values you decided earlier (note that - the option names are not case-sensitive): - - ```` - [versioneer] - VCS = git - style = pep440 - versionfile_source = src/myproject/_version.py - versionfile_build = myproject/_version.py - tag_prefix = - parentdir_prefix = myproject- - ```` - -* 2: Run `versioneer install`. This will do the following: - - * copy `versioneer.py` into the top of your source tree - * create `_version.py` in the right place (`versionfile_source`) - * modify your `__init__.py` (if one exists next to `_version.py`) to define - `__version__` (by calling a function from `_version.py`) - * modify your `MANIFEST.in` to include both `versioneer.py` and the - generated `_version.py` in sdist tarballs - - `versioneer install` will complain about any problems it finds with your - `setup.py` or `setup.cfg`. Run it multiple times until you have fixed all - the problems. - -* 3: add a `import versioneer` to your setup.py, and add the following - arguments to the setup() call: - - version=versioneer.get_version(), - cmdclass=versioneer.get_cmdclass(), - -* 4: commit these changes to your VCS. To make sure you won't forget, - `versioneer install` will mark everything it touched for addition using - `git add`. Don't forget to add `setup.py` and `setup.cfg` too. - -## Post-Installation Usage - -Once established, all uses of your tree from a VCS checkout should get the -current version string. All generated tarballs should include an embedded -version string (so users who unpack them will not need a VCS tool installed). - -If you distribute your project through PyPI, then the release process should -boil down to two steps: - -* 1: git tag 1.0 -* 2: python setup.py register sdist upload - -If you distribute it through github (i.e. users use github to generate -tarballs with `git archive`), the process is: - -* 1: git tag 1.0 -* 2: git push; git push --tags - -Versioneer will report "0+untagged.NUMCOMMITS.gHASH" until your tree has at -least one tag in its history. +See [INSTALL.md](./INSTALL.md) for detailed installation instructions. ## Version-String Flavors @@ -229,6 +105,10 @@ information: * `['full-revisionid']`: detailed revision identifier. For Git, this is the full SHA1 commit id, e.g. "1076c978a8d3cfc70f408fe5974aa6c092c949ac". +* `['date']`: Date and time of the latest `HEAD` commit. For Git, it is the + commit date in ISO 8601 format. This will be None if the date is not + available. + * `['dirty']`: a boolean, True if the tree has uncommitted changes. Note that this is only accurate if run in a VCS checkout, otherwise it is likely to be False or None @@ -267,8 +147,8 @@ that this commit is two revisions ("+2") beyond the "0.11" tag. For released software (exactly equal to a known tag), the identifier will only contain the stripped tag, e.g. "0.11". -Other styles are available. See details.md in the Versioneer source tree for -descriptions. +Other styles are available. See [details.md](details.md) in the Versioneer +source tree for descriptions. ## Debugging @@ -278,52 +158,84 @@ version`, which will run the version-lookup code in a verbose mode, and will display the full contents of `get_versions()` (including the `error` string, which may help identify what went wrong). +## Known Limitations + +Some situations are known to cause problems for Versioneer. This details the +most significant ones. More can be found on Github +[issues page](https://github.com/python-versioneer/python-versioneer/issues). + +### Subprojects + +Versioneer has limited support for source trees in which `setup.py` is not in +the root directory (e.g. `setup.py` and `.git/` are *not* siblings). The are +two common reasons why `setup.py` might not be in the root: + +* Source trees which contain multiple subprojects, such as + [Buildbot](https://github.com/buildbot/buildbot), which contains both + "master" and "slave" subprojects, each with their own `setup.py`, + `setup.cfg`, and `tox.ini`. Projects like these produce multiple PyPI + distributions (and upload multiple independently-installable tarballs). +* Source trees whose main purpose is to contain a C library, but which also + provide bindings to Python (and perhaps other languages) in subdirectories. + +Versioneer will look for `.git` in parent directories, and most operations +should get the right version string. However `pip` and `setuptools` have bugs +and implementation details which frequently cause `pip install .` from a +subproject directory to fail to find a correct version string (so it usually +defaults to `0+unknown`). + +`pip install --editable .` should work correctly. `setup.py install` might +work too. + +Pip-8.1.1 is known to have this problem, but hopefully it will get fixed in +some later version. + +[Bug #38](https://github.com/python-versioneer/python-versioneer/issues/38) is tracking +this issue. The discussion in +[PR #61](https://github.com/python-versioneer/python-versioneer/pull/61) describes the +issue from the Versioneer side in more detail. +[pip PR#3176](https://github.com/pypa/pip/pull/3176) and +[pip PR#3615](https://github.com/pypa/pip/pull/3615) contain work to improve +pip to let Versioneer work correctly. + +Versioneer-0.16 and earlier only looked for a `.git` directory next to the +`setup.cfg`, so subprojects were completely unsupported with those releases. + +### Editable installs with setuptools <= 18.5 + +`setup.py develop` and `pip install --editable .` allow you to install a +project into a virtualenv once, then continue editing the source code (and +test) without re-installing after every change. + +"Entry-point scripts" (`setup(entry_points={"console_scripts": ..})`) are a +convenient way to specify executable scripts that should be installed along +with the python package. + +These both work as expected when using modern setuptools. When using +setuptools-18.5 or earlier, however, certain operations will cause +`pkg_resources.DistributionNotFound` errors when running the entrypoint +script, which must be resolved by re-installing the package. This happens +when the install happens with one version, then the egg_info data is +regenerated while a different version is checked out. Many setup.py commands +cause egg_info to be rebuilt (including `sdist`, `wheel`, and installing into +a different virtualenv), so this can be surprising. + +[Bug #83](https://github.com/python-versioneer/python-versioneer/issues/83) describes +this one, but upgrading to a newer version of setuptools should probably +resolve it. + + ## Updating Versioneer To upgrade your project to a new release of Versioneer, do the following: * install the new Versioneer (`pip install -U versioneer` or equivalent) * edit `setup.cfg`, if necessary, to include any new configuration settings - indicated by the release notes + indicated by the release notes. See [UPGRADING](./UPGRADING.md) for details. * re-run `versioneer install` in your source tree, to replace `SRC/_version.py` * commit any changed files -### Upgrading to 0.16 - -Nothing special. - -### Upgrading to 0.15 - -Starting with this version, Versioneer is configured with a `[versioneer]` -section in your `setup.cfg` file. Earlier versions required the `setup.py` to -set attributes on the `versioneer` module immediately after import. The new -version will refuse to run (raising an exception during import) until you -have provided the necessary `setup.cfg` section. - -In addition, the Versioneer package provides an executable named -`versioneer`, and the installation process is driven by running `versioneer -install`. In 0.14 and earlier, the executable was named -`versioneer-installer` and was run without an argument. - -### Upgrading to 0.14 - -0.14 changes the format of the version string. 0.13 and earlier used -hyphen-separated strings like "0.11-2-g1076c97-dirty". 0.14 and beyond use a -plus-separated "local version" section strings, with dot-separated -components, like "0.11+2.g1076c97". PEP440-strict tools did not like the old -format, but should be ok with the new one. - -### Upgrading from 0.11 to 0.12 - -Nothing special. - -### Upgrading from 0.10 to 0.11 - -You must add a `versioneer.VCS = "git"` to your `setup.py` before re-running -`setup.py setup_versioneer`. This will enable the use of additional -version-control systems (SVN, etc) in the future. - ## Future Directions This tool is designed to make it easily extended to other version-control @@ -337,6 +249,14 @@ installation by editing setup.py . Alternatively, it might go the other direction and include code from all supported VCS systems, reducing the number of intermediate scripts. +## Similar projects + +* [setuptools_scm](https://github.com/pypa/setuptools_scm/) - a non-vendored build-time + dependency +* [minver](https://github.com/jbweston/miniver) - a lightweight reimplementation of + versioneer +* [versioningit](https://github.com/jwodder/versioningit) - a PEP 518-based setuptools + plugin ## License @@ -346,19 +266,27 @@ Specifically, both are released under the Creative Commons "Public Domain Dedication" license (CC0-1.0), as described in https://creativecommons.org/publicdomain/zero/1.0/ . -""" +[pypi-image]: https://img.shields.io/pypi/v/versioneer.svg +[pypi-url]: https://pypi.python.org/pypi/versioneer/ +[travis-image]: +https://img.shields.io/travis/com/python-versioneer/python-versioneer.svg +[travis-url]: https://travis-ci.com/github/python-versioneer/python-versioneer -from __future__ import print_function -try: - import configparser -except ImportError: - import ConfigParser as configparser +""" +# pylint:disable=invalid-name,import-outside-toplevel,missing-function-docstring +# pylint:disable=missing-class-docstring,too-many-branches,too-many-statements +# pylint:disable=raise-missing-from,too-many-lines,too-many-locals,import-error +# pylint:disable=too-few-public-methods,redefined-outer-name,consider-using-with +# pylint:disable=attribute-defined-outside-init,too-many-arguments + +import configparser import errno import json import os import re import subprocess import sys +from typing import Callable, Dict class VersioneerConfig: @@ -380,11 +308,13 @@ def get_root(): setup_py = os.path.join(root, "setup.py") versioneer_py = os.path.join(root, "versioneer.py") if not (os.path.exists(setup_py) or os.path.exists(versioneer_py)): - err = ("Versioneer was unable to run the project root directory. " - "Versioneer requires setup.py to be executed from " - "its immediate directory (like 'python setup.py COMMAND'), " - "or in a way that lets it use sys.argv[0] to find the root " - "(like 'python path/to/setup.py COMMAND').") + err = ( + "Versioneer was unable to run the project root directory. " + "Versioneer requires setup.py to be executed from " + "its immediate directory (like 'python setup.py COMMAND'), " + "or in a way that lets it use sys.argv[0] to find the root " + "(like 'python path/to/setup.py COMMAND')." + ) raise VersioneerBadRootError(err) try: # Certain runtime workflows (setup.py install/develop in a setuptools @@ -393,10 +323,14 @@ def get_root(): # module-import table will cache the first one. So we can't use # os.path.dirname(__file__), as that will find whichever # versioneer.py was first imported, even in later projects. - me = os.path.realpath(os.path.abspath(__file__)) - if os.path.splitext(me)[0] != os.path.splitext(versioneer_py)[0]: - print("Warning: build in %s is using versioneer.py from %s" - % (os.path.dirname(me), versioneer_py)) + my_path = os.path.realpath(os.path.abspath(__file__)) + me_dir = os.path.normcase(os.path.splitext(my_path)[0]) + vsr_dir = os.path.normcase(os.path.splitext(versioneer_py)[0]) + if me_dir != vsr_dir: + print( + "Warning: build in %s is using versioneer.py from %s" + % (os.path.dirname(my_path), versioneer_py) + ) except NameError: pass return root @@ -404,85 +338,92 @@ def get_root(): def get_config_from_root(root): """Read the project setup.cfg file to determine Versioneer config.""" - # This might raise EnvironmentError (if setup.cfg is missing), or + # This might raise OSError (if setup.cfg is missing), or # configparser.NoSectionError (if it lacks a [versioneer] section), or # configparser.NoOptionError (if it lacks "VCS="). See the docstring at # the top of versioneer.py for instructions on writing your setup.cfg . setup_cfg = os.path.join(root, "setup.cfg") - parser = configparser.SafeConfigParser() - with open(setup_cfg, "r") as f: - parser.readfp(f) + parser = configparser.ConfigParser() + with open(setup_cfg, "r") as cfg_file: + parser.read_file(cfg_file) VCS = parser.get("versioneer", "VCS") # mandatory - def get(parser, name): - if parser.has_option("versioneer", name): - return parser.get("versioneer", name) - return None + # Dict-like interface for non-mandatory entries + section = parser["versioneer"] + cfg = VersioneerConfig() cfg.VCS = VCS - cfg.style = get(parser, "style") or "" - cfg.versionfile_source = get(parser, "versionfile_source") - cfg.versionfile_build = get(parser, "versionfile_build") - cfg.tag_prefix = get(parser, "tag_prefix") + cfg.style = section.get("style", "") + cfg.versionfile_source = section.get("versionfile_source") + cfg.versionfile_build = section.get("versionfile_build") + cfg.tag_prefix = section.get("tag_prefix") if cfg.tag_prefix in ("''", '""'): cfg.tag_prefix = "" - cfg.parentdir_prefix = get(parser, "parentdir_prefix") - cfg.verbose = get(parser, "verbose") + cfg.parentdir_prefix = section.get("parentdir_prefix") + cfg.verbose = section.get("verbose") return cfg class NotThisMethod(Exception): """Exception raised if a method is not valid for the current scenario.""" + # these dictionaries contain VCS-specific tools -LONG_VERSION_PY = {} -HANDLERS = {} +LONG_VERSION_PY: Dict[str, str] = {} +HANDLERS: Dict[str, Dict[str, Callable]] = {} def register_vcs_handler(vcs, method): # decorator - """Decorator to mark a method as the handler for a particular VCS.""" + """Create decorator to mark a method as the handler of a VCS.""" + def decorate(f): """Store f in HANDLERS[vcs][method].""" - if vcs not in HANDLERS: - HANDLERS[vcs] = {} - HANDLERS[vcs][method] = f + HANDLERS.setdefault(vcs, {})[method] = f return f + return decorate -def run_command(commands, args, cwd=None, verbose=False, hide_stderr=False): +def run_command(commands, args, cwd=None, verbose=False, hide_stderr=False, env=None): """Call the given command(s).""" assert isinstance(commands, list) - p = None - for c in commands: + process = None + for command in commands: try: - dispcmd = str([c] + args) + dispcmd = str([command] + args) # remember shell=False, so use git.cmd on windows, not just git - p = subprocess.Popen([c] + args, cwd=cwd, stdout=subprocess.PIPE, - stderr=(subprocess.PIPE if hide_stderr - else None)) + process = subprocess.Popen( + [command] + args, + cwd=cwd, + env=env, + stdout=subprocess.PIPE, + stderr=(subprocess.PIPE if hide_stderr else None), + ) break - except EnvironmentError: + except OSError: e = sys.exc_info()[1] if e.errno == errno.ENOENT: continue if verbose: print("unable to run %s" % dispcmd) print(e) - return None + return None, None else: if verbose: print("unable to find command, tried %s" % (commands,)) - return None - stdout = p.communicate()[0].strip() - if sys.version_info[0] >= 3: - stdout = stdout.decode() - if p.returncode != 0: + return None, None + stdout = process.communicate()[0].strip().decode() + if process.returncode != 0: if verbose: print("unable to run %s (error)" % dispcmd) - return None - return stdout -LONG_VERSION_PY['git'] = ''' + print("stdout was %s" % stdout) + return None, process.returncode + return stdout, process.returncode + + +LONG_VERSION_PY[ + "git" +] = r''' # This file helps to compute a version number in source trees obtained from # git-archive tarball (such as those provided by githubs download-from-tag # feature). Distribution tarballs (built by setup.py sdist) and build @@ -490,7 +431,7 @@ LONG_VERSION_PY['git'] = ''' # that just contains the computed version number. # This file is released into the public domain. Generated by -# versioneer-0.16 (https://github.com/warner/python-versioneer) +# versioneer-0.21 (https://github.com/python-versioneer/python-versioneer) """Git implementation of _version.py.""" @@ -499,6 +440,7 @@ import os import re import subprocess import sys +from typing import Callable, Dict def get_keywords(): @@ -509,7 +451,8 @@ def get_keywords(): # get_keywords(). git_refnames = "%(DOLLAR)sFormat:%%d%(DOLLAR)s" git_full = "%(DOLLAR)sFormat:%%H%(DOLLAR)s" - keywords = {"refnames": git_refnames, "full": git_full} + git_date = "%(DOLLAR)sFormat:%%ci%(DOLLAR)s" + keywords = {"refnames": git_refnames, "full": git_full, "date": git_date} return keywords @@ -535,12 +478,12 @@ class NotThisMethod(Exception): """Exception raised if a method is not valid for the current scenario.""" -LONG_VERSION_PY = {} -HANDLERS = {} +LONG_VERSION_PY: Dict[str, str] = {} +HANDLERS: Dict[str, Dict[str, Callable]] = {} def register_vcs_handler(vcs, method): # decorator - """Decorator to mark a method as the handler for a particular VCS.""" + """Create decorator to mark a method as the handler of a VCS.""" def decorate(f): """Store f in HANDLERS[vcs][method].""" if vcs not in HANDLERS: @@ -550,55 +493,63 @@ def register_vcs_handler(vcs, method): # decorator return decorate -def run_command(commands, args, cwd=None, verbose=False, hide_stderr=False): +def run_command(commands, args, cwd=None, verbose=False, hide_stderr=False, + env=None): """Call the given command(s).""" assert isinstance(commands, list) - p = None - for c in commands: + process = None + for command in commands: try: - dispcmd = str([c] + args) + dispcmd = str([command] + args) # remember shell=False, so use git.cmd on windows, not just git - p = subprocess.Popen([c] + args, cwd=cwd, stdout=subprocess.PIPE, - stderr=(subprocess.PIPE if hide_stderr - else None)) + process = subprocess.Popen([command] + args, cwd=cwd, env=env, + stdout=subprocess.PIPE, + stderr=(subprocess.PIPE if hide_stderr + else None)) break - except EnvironmentError: + except OSError: e = sys.exc_info()[1] if e.errno == errno.ENOENT: continue if verbose: print("unable to run %%s" %% dispcmd) print(e) - return None + return None, None else: if verbose: print("unable to find command, tried %%s" %% (commands,)) - return None - stdout = p.communicate()[0].strip() - if sys.version_info[0] >= 3: - stdout = stdout.decode() - if p.returncode != 0: + return None, None + stdout = process.communicate()[0].strip().decode() + if process.returncode != 0: if verbose: print("unable to run %%s (error)" %% dispcmd) - return None - return stdout + print("stdout was %%s" %% stdout) + return None, process.returncode + return stdout, process.returncode def versions_from_parentdir(parentdir_prefix, root, verbose): """Try to determine the version from the parent directory name. - Source tarballs conventionally unpack into a directory that includes - both the project name and a version string. + Source tarballs conventionally unpack into a directory that includes both + the project name and a version string. We will also support searching up + two directory levels for an appropriately named parent directory """ - dirname = os.path.basename(root) - if not dirname.startswith(parentdir_prefix): - if verbose: - print("guessing rootdir is '%%s', but '%%s' doesn't start with " - "prefix '%%s'" %% (root, dirname, parentdir_prefix)) - raise NotThisMethod("rootdir doesn't start with parentdir_prefix") - return {"version": dirname[len(parentdir_prefix):], - "full-revisionid": None, - "dirty": False, "error": None} + rootdirs = [] + + for _ in range(3): + dirname = os.path.basename(root) + if dirname.startswith(parentdir_prefix): + return {"version": dirname[len(parentdir_prefix):], + "full-revisionid": None, + "dirty": False, "error": None, "date": None} + rootdirs.append(root) + root = os.path.dirname(root) # up a level + + if verbose: + print("Tried directories %%s but none started with prefix %%s" %% + (str(rootdirs), parentdir_prefix)) + raise NotThisMethod("rootdir doesn't start with parentdir_prefix") @register_vcs_handler("git", "get_keywords") @@ -610,18 +561,21 @@ def git_get_keywords(versionfile_abs): # _version.py. keywords = {} try: - f = open(versionfile_abs, "r") - for line in f.readlines(): - if line.strip().startswith("git_refnames ="): - mo = re.search(r'=\s*"(.*)"', line) - if mo: - keywords["refnames"] = mo.group(1) - if line.strip().startswith("git_full ="): - mo = re.search(r'=\s*"(.*)"', line) - if mo: - keywords["full"] = mo.group(1) - f.close() - except EnvironmentError: + with open(versionfile_abs, "r") as fobj: + for line in fobj: + if line.strip().startswith("git_refnames ="): + mo = re.search(r'=\s*"(.*)"', line) + if mo: + keywords["refnames"] = mo.group(1) + if line.strip().startswith("git_full ="): + mo = re.search(r'=\s*"(.*)"', line) + if mo: + keywords["full"] = mo.group(1) + if line.strip().startswith("git_date ="): + mo = re.search(r'=\s*"(.*)"', line) + if mo: + keywords["date"] = mo.group(1) + except OSError: pass return keywords @@ -629,18 +583,31 @@ def git_get_keywords(versionfile_abs): @register_vcs_handler("git", "keywords") def git_versions_from_keywords(keywords, tag_prefix, verbose): """Get version information from git keywords.""" - if not keywords: - raise NotThisMethod("no keywords at all, weird") + if "refnames" not in keywords: + raise NotThisMethod("Short version file found") + date = keywords.get("date") + if date is not None: + # Use only the last line. Previous lines may contain GPG signature + # information. + date = date.splitlines()[-1] + + # git-2.2.0 added "%%cI", which expands to an ISO-8601 -compliant + # datestamp. However we prefer "%%ci" (which expands to an "ISO-8601 + # -like" string, which we must then edit to make compliant), because + # it's been around since git-1.5.3, and it's too difficult to + # discover which version we're using, or to work around using an + # older one. + date = date.strip().replace(" ", "T", 1).replace(" ", "", 1) refnames = keywords["refnames"].strip() if refnames.startswith("$Format"): if verbose: print("keywords are unexpanded, not using") raise NotThisMethod("unexpanded keywords, not a git-archive tarball") - refs = set([r.strip() for r in refnames.strip("()").split(",")]) + refs = {r.strip() for r in refnames.strip("()").split(",")} # starting in git-1.8.3, tags are listed as "tag: foo-1.0" instead of # just "foo-1.0". If we see a "tag: " prefix, prefer those. TAG = "tag: " - tags = set([r[len(TAG):] for r in refs if r.startswith(TAG)]) + tags = {r[len(TAG):] for r in refs if r.startswith(TAG)} if not tags: # Either we're using git < 1.8.3, or there really are no tags. We use # a heuristic: assume all version tags have a digit. The old git %%d @@ -649,56 +616,67 @@ def git_versions_from_keywords(keywords, tag_prefix, verbose): # between branches and tags. By ignoring refnames without digits, we # filter out many common branch names like "release" and # "stabilization", as well as "HEAD" and "master". - tags = set([r for r in refs if re.search(r'\d', r)]) + tags = {r for r in refs if re.search(r'\d', r)} if verbose: - print("discarding '%%s', no digits" %% ",".join(refs-tags)) + print("discarding '%%s', no digits" %% ",".join(refs - tags)) if verbose: print("likely tags: %%s" %% ",".join(sorted(tags))) for ref in sorted(tags): # sorting will prefer e.g. "2.0" over "2.0rc1" if ref.startswith(tag_prefix): r = ref[len(tag_prefix):] + # Filter out refs that exactly match prefix or that don't start + # with a number once the prefix is stripped (mostly a concern + # when prefix is '') + if not re.match(r'\d', r): + continue if verbose: print("picking %%s" %% r) return {"version": r, "full-revisionid": keywords["full"].strip(), - "dirty": False, "error": None - } + "dirty": False, "error": None, + "date": date} # no suitable tags, so version is "0+unknown", but full hex is still there if verbose: print("no suitable tags, using unknown + full revision id") return {"version": "0+unknown", "full-revisionid": keywords["full"].strip(), - "dirty": False, "error": "no suitable tags"} + "dirty": False, "error": "no suitable tags", "date": None} @register_vcs_handler("git", "pieces_from_vcs") -def git_pieces_from_vcs(tag_prefix, root, verbose, run_command=run_command): +def git_pieces_from_vcs(tag_prefix, root, verbose, runner=run_command): """Get version from 'git describe' in the root of the source tree. This only gets called if the git-archive 'subst' keywords were *not* expanded, and _version.py hasn't already been rewritten with a short version string, meaning we're inside a checked out source tree. """ - if not os.path.exists(os.path.join(root, ".git")): - if verbose: - print("no .git in %%s" %% root) - raise NotThisMethod("no .git directory") - GITS = ["git"] + TAG_PREFIX_REGEX = "*" if sys.platform == "win32": GITS = ["git.cmd", "git.exe"] + TAG_PREFIX_REGEX = r"\*" + + _, rc = runner(GITS, ["rev-parse", "--git-dir"], cwd=root, + hide_stderr=True) + if rc != 0: + if verbose: + print("Directory %%s not under git control" %% root) + raise NotThisMethod("'git rev-parse --git-dir' returned error") + # if there is a tag matching tag_prefix, this yields TAG-NUM-gHEX[-dirty] # if there isn't one, this yields HEX[-dirty] (no NUM) - describe_out = run_command(GITS, ["describe", "--tags", "--dirty", - "--always", "--long", - "--match", "%%s*" %% tag_prefix], - cwd=root) + describe_out, rc = runner(GITS, ["describe", "--tags", "--dirty", + "--always", "--long", + "--match", + "%%s%%s" %% (tag_prefix, TAG_PREFIX_REGEX)], + cwd=root) # --long was added in git-1.5.5 if describe_out is None: raise NotThisMethod("'git describe' failed") describe_out = describe_out.strip() - full_out = run_command(GITS, ["rev-parse", "HEAD"], cwd=root) + full_out, rc = runner(GITS, ["rev-parse", "HEAD"], cwd=root) if full_out is None: raise NotThisMethod("'git rev-parse' failed") full_out = full_out.strip() @@ -708,6 +686,39 @@ def git_pieces_from_vcs(tag_prefix, root, verbose, run_command=run_command): pieces["short"] = full_out[:7] # maybe improved later pieces["error"] = None + branch_name, rc = runner(GITS, ["rev-parse", "--abbrev-ref", "HEAD"], + cwd=root) + # --abbrev-ref was added in git-1.6.3 + if rc != 0 or branch_name is None: + raise NotThisMethod("'git rev-parse --abbrev-ref' returned error") + branch_name = branch_name.strip() + + if branch_name == "HEAD": + # If we aren't exactly on a branch, pick a branch which represents + # the current commit. If all else fails, we are on a branchless + # commit. + branches, rc = runner(GITS, ["branch", "--contains"], cwd=root) + # --contains was added in git-1.5.4 + if rc != 0 or branches is None: + raise NotThisMethod("'git branch --contains' returned error") + branches = branches.split("\n") + + # Remove the first line if we're running detached + if "(" in branches[0]: + branches.pop(0) + + # Strip off the leading "* " from the list of branches. + branches = [branch[2:] for branch in branches] + if "master" in branches: + branch_name = "master" + elif not branches: + branch_name = None + else: + # Pick the first branch that is returned. Good or bad. + branch_name = branches[0] + + pieces["branch"] = branch_name + # parse describe_out. It will be like TAG-NUM-gHEX[-dirty] or HEX[-dirty] # TAG might have hyphens. git_describe = describe_out @@ -724,7 +735,7 @@ def git_pieces_from_vcs(tag_prefix, root, verbose, run_command=run_command): # TAG-NUM-gHEX mo = re.search(r'^(.+)-(\d+)-g([0-9a-f]+)$', git_describe) if not mo: - # unparseable. Maybe git-describe is misbehaving? + # unparsable. Maybe git-describe is misbehaving? pieces["error"] = ("unable to parse git-describe output: '%%s'" %% describe_out) return pieces @@ -749,10 +760,16 @@ def git_pieces_from_vcs(tag_prefix, root, verbose, run_command=run_command): else: # HEX: no tags pieces["closest-tag"] = None - count_out = run_command(GITS, ["rev-list", "HEAD", "--count"], - cwd=root) + count_out, rc = runner(GITS, ["rev-list", "HEAD", "--count"], cwd=root) pieces["distance"] = int(count_out) # total number of commits + # commit date: see ISO-8601 comment in git_versions_from_keywords() + date = runner(GITS, ["show", "-s", "--format=%%ci", "HEAD"], cwd=root)[0].strip() + # Use only the last line. Previous lines may contain GPG signature + # information. + date = date.splitlines()[-1] + pieces["date"] = date.strip().replace(" ", "T", 1).replace(" ", "", 1) + return pieces @@ -788,19 +805,67 @@ def render_pep440(pieces): return rendered -def render_pep440_pre(pieces): - """TAG[.post.devDISTANCE] -- No -dirty. +def render_pep440_branch(pieces): + """TAG[[.dev0]+DISTANCE.gHEX[.dirty]] . + + The ".dev0" means not master branch. Note that .dev0 sorts backwards + (a feature branch will appear "older" than the master branch). Exceptions: - 1: no tags. 0.post.devDISTANCE + 1: no tags. 0[.dev0]+untagged.DISTANCE.gHEX[.dirty] """ if pieces["closest-tag"]: rendered = pieces["closest-tag"] - if pieces["distance"]: - rendered += ".post.dev%%d" %% pieces["distance"] + if pieces["distance"] or pieces["dirty"]: + if pieces["branch"] != "master": + rendered += ".dev0" + rendered += plus_or_dot(pieces) + rendered += "%%d.g%%s" %% (pieces["distance"], pieces["short"]) + if pieces["dirty"]: + rendered += ".dirty" else: # exception #1 - rendered = "0.post.dev%%d" %% pieces["distance"] + rendered = "0" + if pieces["branch"] != "master": + rendered += ".dev0" + rendered += "+untagged.%%d.g%%s" %% (pieces["distance"], + pieces["short"]) + if pieces["dirty"]: + rendered += ".dirty" + return rendered + + +def pep440_split_post(ver): + """Split pep440 version string at the post-release segment. + + Returns the release segments before the post-release and the + post-release version number (or -1 if no post-release segment is present). + """ + vc = str.split(ver, ".post") + return vc[0], int(vc[1] or 0) if len(vc) == 2 else None + + +def render_pep440_pre(pieces): + """TAG[.postN.devDISTANCE] -- No -dirty. + + Exceptions: + 1: no tags. 0.post0.devDISTANCE + """ + if pieces["closest-tag"]: + if pieces["distance"]: + # update the post release segment + tag_version, post_version = pep440_split_post(pieces["closest-tag"]) + rendered = tag_version + if post_version is not None: + rendered += ".post%%d.dev%%d" %% (post_version+1, pieces["distance"]) + else: + rendered += ".post0.dev%%d" %% (pieces["distance"]) + else: + # no commits, use the tag as the version + rendered = pieces["closest-tag"] + else: + # exception #1 + rendered = "0.post0.dev%%d" %% pieces["distance"] return rendered @@ -831,6 +896,35 @@ def render_pep440_post(pieces): return rendered +def render_pep440_post_branch(pieces): + """TAG[.postDISTANCE[.dev0]+gHEX[.dirty]] . + + The ".dev0" means not master branch. + + Exceptions: + 1: no tags. 0.postDISTANCE[.dev0]+gHEX[.dirty] + """ + if pieces["closest-tag"]: + rendered = pieces["closest-tag"] + if pieces["distance"] or pieces["dirty"]: + rendered += ".post%%d" %% pieces["distance"] + if pieces["branch"] != "master": + rendered += ".dev0" + rendered += plus_or_dot(pieces) + rendered += "g%%s" %% pieces["short"] + if pieces["dirty"]: + rendered += ".dirty" + else: + # exception #1 + rendered = "0.post%%d" %% pieces["distance"] + if pieces["branch"] != "master": + rendered += ".dev0" + rendered += "+g%%s" %% pieces["short"] + if pieces["dirty"]: + rendered += ".dirty" + return rendered + + def render_pep440_old(pieces): """TAG[.postDISTANCE[.dev0]] . @@ -899,17 +993,22 @@ def render(pieces, style): return {"version": "unknown", "full-revisionid": pieces.get("long"), "dirty": None, - "error": pieces["error"]} + "error": pieces["error"], + "date": None} if not style or style == "default": style = "pep440" # the default if style == "pep440": rendered = render_pep440(pieces) + elif style == "pep440-branch": + rendered = render_pep440_branch(pieces) elif style == "pep440-pre": rendered = render_pep440_pre(pieces) elif style == "pep440-post": rendered = render_pep440_post(pieces) + elif style == "pep440-post-branch": + rendered = render_pep440_post_branch(pieces) elif style == "pep440-old": rendered = render_pep440_old(pieces) elif style == "git-describe": @@ -920,7 +1019,8 @@ def render(pieces, style): raise ValueError("unknown style '%%s'" %% style) return {"version": rendered, "full-revisionid": pieces["long"], - "dirty": pieces["dirty"], "error": None} + "dirty": pieces["dirty"], "error": None, + "date": pieces.get("date")} def get_versions(): @@ -944,12 +1044,13 @@ def get_versions(): # versionfile_source is the relative path from the top of the source # tree (where the .git directory might live) to this file. Invert # this to find the root from __file__. - for i in cfg.versionfile_source.split('/'): + for _ in cfg.versionfile_source.split('/'): root = os.path.dirname(root) except NameError: return {"version": "0+unknown", "full-revisionid": None, "dirty": None, - "error": "unable to find root of source tree"} + "error": "unable to find root of source tree", + "date": None} try: pieces = git_pieces_from_vcs(cfg.tag_prefix, root, verbose) @@ -965,7 +1066,7 @@ def get_versions(): return {"version": "0+unknown", "full-revisionid": None, "dirty": None, - "error": "unable to compute version"} + "error": "unable to compute version", "date": None} ''' @@ -978,18 +1079,21 @@ def git_get_keywords(versionfile_abs): # _version.py. keywords = {} try: - f = open(versionfile_abs, "r") - for line in f.readlines(): - if line.strip().startswith("git_refnames ="): - mo = re.search(r'=\s*"(.*)"', line) - if mo: - keywords["refnames"] = mo.group(1) - if line.strip().startswith("git_full ="): - mo = re.search(r'=\s*"(.*)"', line) - if mo: - keywords["full"] = mo.group(1) - f.close() - except EnvironmentError: + with open(versionfile_abs, "r") as fobj: + for line in fobj: + if line.strip().startswith("git_refnames ="): + mo = re.search(r'=\s*"(.*)"', line) + if mo: + keywords["refnames"] = mo.group(1) + if line.strip().startswith("git_full ="): + mo = re.search(r'=\s*"(.*)"', line) + if mo: + keywords["full"] = mo.group(1) + if line.strip().startswith("git_date ="): + mo = re.search(r'=\s*"(.*)"', line) + if mo: + keywords["date"] = mo.group(1) + except OSError: pass return keywords @@ -997,18 +1101,31 @@ def git_get_keywords(versionfile_abs): @register_vcs_handler("git", "keywords") def git_versions_from_keywords(keywords, tag_prefix, verbose): """Get version information from git keywords.""" - if not keywords: - raise NotThisMethod("no keywords at all, weird") + if "refnames" not in keywords: + raise NotThisMethod("Short version file found") + date = keywords.get("date") + if date is not None: + # Use only the last line. Previous lines may contain GPG signature + # information. + date = date.splitlines()[-1] + + # git-2.2.0 added "%cI", which expands to an ISO-8601 -compliant + # datestamp. However we prefer "%ci" (which expands to an "ISO-8601 + # -like" string, which we must then edit to make compliant), because + # it's been around since git-1.5.3, and it's too difficult to + # discover which version we're using, or to work around using an + # older one. + date = date.strip().replace(" ", "T", 1).replace(" ", "", 1) refnames = keywords["refnames"].strip() if refnames.startswith("$Format"): if verbose: print("keywords are unexpanded, not using") raise NotThisMethod("unexpanded keywords, not a git-archive tarball") - refs = set([r.strip() for r in refnames.strip("()").split(",")]) + refs = {r.strip() for r in refnames.strip("()").split(",")} # starting in git-1.8.3, tags are listed as "tag: foo-1.0" instead of # just "foo-1.0". If we see a "tag: " prefix, prefer those. TAG = "tag: " - tags = set([r[len(TAG):] for r in refs if r.startswith(TAG)]) + tags = {r[len(TAG) :] for r in refs if r.startswith(TAG)} if not tags: # Either we're using git < 1.8.3, or there really are no tags. We use # a heuristic: assume all version tags have a digit. The old git %d @@ -1017,56 +1134,81 @@ def git_versions_from_keywords(keywords, tag_prefix, verbose): # between branches and tags. By ignoring refnames without digits, we # filter out many common branch names like "release" and # "stabilization", as well as "HEAD" and "master". - tags = set([r for r in refs if re.search(r'\d', r)]) + tags = {r for r in refs if re.search(r"\d", r)} if verbose: - print("discarding '%s', no digits" % ",".join(refs-tags)) + print("discarding '%s', no digits" % ",".join(refs - tags)) if verbose: print("likely tags: %s" % ",".join(sorted(tags))) for ref in sorted(tags): # sorting will prefer e.g. "2.0" over "2.0rc1" if ref.startswith(tag_prefix): - r = ref[len(tag_prefix):] + r = ref[len(tag_prefix) :] + # Filter out refs that exactly match prefix or that don't start + # with a number once the prefix is stripped (mostly a concern + # when prefix is '') + if not re.match(r"\d", r): + continue if verbose: print("picking %s" % r) - return {"version": r, - "full-revisionid": keywords["full"].strip(), - "dirty": False, "error": None - } + return { + "version": r, + "full-revisionid": keywords["full"].strip(), + "dirty": False, + "error": None, + "date": date, + } # no suitable tags, so version is "0+unknown", but full hex is still there if verbose: print("no suitable tags, using unknown + full revision id") - return {"version": "0+unknown", - "full-revisionid": keywords["full"].strip(), - "dirty": False, "error": "no suitable tags"} + return { + "version": "0+unknown", + "full-revisionid": keywords["full"].strip(), + "dirty": False, + "error": "no suitable tags", + "date": None, + } @register_vcs_handler("git", "pieces_from_vcs") -def git_pieces_from_vcs(tag_prefix, root, verbose, run_command=run_command): +def git_pieces_from_vcs(tag_prefix, root, verbose, runner=run_command): """Get version from 'git describe' in the root of the source tree. This only gets called if the git-archive 'subst' keywords were *not* expanded, and _version.py hasn't already been rewritten with a short version string, meaning we're inside a checked out source tree. """ - if not os.path.exists(os.path.join(root, ".git")): - if verbose: - print("no .git in %s" % root) - raise NotThisMethod("no .git directory") - GITS = ["git"] + TAG_PREFIX_REGEX = "*" if sys.platform == "win32": GITS = ["git.cmd", "git.exe"] + TAG_PREFIX_REGEX = r"\*" + + _, rc = runner(GITS, ["rev-parse", "--git-dir"], cwd=root, hide_stderr=True) + if rc != 0: + if verbose: + print("Directory %s not under git control" % root) + raise NotThisMethod("'git rev-parse --git-dir' returned error") + # if there is a tag matching tag_prefix, this yields TAG-NUM-gHEX[-dirty] # if there isn't one, this yields HEX[-dirty] (no NUM) - describe_out = run_command(GITS, ["describe", "--tags", "--dirty", - "--always", "--long", - "--match", "%s*" % tag_prefix], - cwd=root) + describe_out, rc = runner( + GITS, + [ + "describe", + "--tags", + "--dirty", + "--always", + "--long", + "--match", + "%s%s" % (tag_prefix, TAG_PREFIX_REGEX), + ], + cwd=root, + ) # --long was added in git-1.5.5 if describe_out is None: raise NotThisMethod("'git describe' failed") describe_out = describe_out.strip() - full_out = run_command(GITS, ["rev-parse", "HEAD"], cwd=root) + full_out, rc = runner(GITS, ["rev-parse", "HEAD"], cwd=root) if full_out is None: raise NotThisMethod("'git rev-parse' failed") full_out = full_out.strip() @@ -1076,6 +1218,38 @@ def git_pieces_from_vcs(tag_prefix, root, verbose, run_command=run_command): pieces["short"] = full_out[:7] # maybe improved later pieces["error"] = None + branch_name, rc = runner(GITS, ["rev-parse", "--abbrev-ref", "HEAD"], cwd=root) + # --abbrev-ref was added in git-1.6.3 + if rc != 0 or branch_name is None: + raise NotThisMethod("'git rev-parse --abbrev-ref' returned error") + branch_name = branch_name.strip() + + if branch_name == "HEAD": + # If we aren't exactly on a branch, pick a branch which represents + # the current commit. If all else fails, we are on a branchless + # commit. + branches, rc = runner(GITS, ["branch", "--contains"], cwd=root) + # --contains was added in git-1.5.4 + if rc != 0 or branches is None: + raise NotThisMethod("'git branch --contains' returned error") + branches = branches.split("\n") + + # Remove the first line if we're running detached + if "(" in branches[0]: + branches.pop(0) + + # Strip off the leading "* " from the list of branches. + branches = [branch[2:] for branch in branches] + if "master" in branches: + branch_name = "master" + elif not branches: + branch_name = None + else: + # Pick the first branch that is returned. Good or bad. + branch_name = branches[0] + + pieces["branch"] = branch_name + # parse describe_out. It will be like TAG-NUM-gHEX[-dirty] or HEX[-dirty] # TAG might have hyphens. git_describe = describe_out @@ -1084,17 +1258,16 @@ def git_pieces_from_vcs(tag_prefix, root, verbose, run_command=run_command): dirty = git_describe.endswith("-dirty") pieces["dirty"] = dirty if dirty: - git_describe = git_describe[:git_describe.rindex("-dirty")] + git_describe = git_describe[: git_describe.rindex("-dirty")] # now we have TAG-NUM-gHEX or HEX if "-" in git_describe: # TAG-NUM-gHEX - mo = re.search(r'^(.+)-(\d+)-g([0-9a-f]+)$', git_describe) + mo = re.search(r"^(.+)-(\d+)-g([0-9a-f]+)$", git_describe) if not mo: - # unparseable. Maybe git-describe is misbehaving? - pieces["error"] = ("unable to parse git-describe output: '%s'" - % describe_out) + # unparsable. Maybe git-describe is misbehaving? + pieces["error"] = "unable to parse git-describe output: '%s'" % describe_out return pieces # tag @@ -1103,10 +1276,12 @@ def git_pieces_from_vcs(tag_prefix, root, verbose, run_command=run_command): if verbose: fmt = "tag '%s' doesn't start with prefix '%s'" print(fmt % (full_tag, tag_prefix)) - pieces["error"] = ("tag '%s' doesn't start with prefix '%s'" - % (full_tag, tag_prefix)) + pieces["error"] = "tag '%s' doesn't start with prefix '%s'" % ( + full_tag, + tag_prefix, + ) return pieces - pieces["closest-tag"] = full_tag[len(tag_prefix):] + pieces["closest-tag"] = full_tag[len(tag_prefix) :] # distance: number of commits since tag pieces["distance"] = int(mo.group(2)) @@ -1117,10 +1292,16 @@ def git_pieces_from_vcs(tag_prefix, root, verbose, run_command=run_command): else: # HEX: no tags pieces["closest-tag"] = None - count_out = run_command(GITS, ["rev-list", "HEAD", "--count"], - cwd=root) + count_out, rc = runner(GITS, ["rev-list", "HEAD", "--count"], cwd=root) pieces["distance"] = int(count_out) # total number of commits + # commit date: see ISO-8601 comment in git_versions_from_keywords() + date = runner(GITS, ["show", "-s", "--format=%ci", "HEAD"], cwd=root)[0].strip() + # Use only the last line. Previous lines may contain GPG signature + # information. + date = date.splitlines()[-1] + pieces["date"] = date.strip().replace(" ", "T", 1).replace(" ", "", 1) + return pieces @@ -1128,7 +1309,7 @@ def do_vcs_install(manifest_in, versionfile_source, ipy): """Git-specific installation logic for Versioneer. For Git, this means creating/changing .gitattributes to mark _version.py - for export-time keyword substitution. + for export-subst keyword substitution. """ GITS = ["git"] if sys.platform == "win32": @@ -1137,27 +1318,26 @@ def do_vcs_install(manifest_in, versionfile_source, ipy): if ipy: files.append(ipy) try: - me = __file__ - if me.endswith(".pyc") or me.endswith(".pyo"): - me = os.path.splitext(me)[0] + ".py" - versioneer_file = os.path.relpath(me) + my_path = __file__ + if my_path.endswith(".pyc") or my_path.endswith(".pyo"): + my_path = os.path.splitext(my_path)[0] + ".py" + versioneer_file = os.path.relpath(my_path) except NameError: versioneer_file = "versioneer.py" files.append(versioneer_file) present = False try: - f = open(".gitattributes", "r") - for line in f.readlines(): - if line.strip().startswith(versionfile_source): - if "export-subst" in line.strip().split()[1:]: - present = True - f.close() - except EnvironmentError: + with open(".gitattributes", "r") as fobj: + for line in fobj: + if line.strip().startswith(versionfile_source): + if "export-subst" in line.strip().split()[1:]: + present = True + break + except OSError: pass if not present: - f = open(".gitattributes", "a+") - f.write("%s export-subst\n" % versionfile_source) - f.close() + with open(".gitattributes", "a+") as fobj: + fobj.write(f"{versionfile_source} export-subst\n") files.append(".gitattributes") run_command(GITS, ["add", "--"] + files) @@ -1165,27 +1345,40 @@ def do_vcs_install(manifest_in, versionfile_source, ipy): def versions_from_parentdir(parentdir_prefix, root, verbose): """Try to determine the version from the parent directory name. - Source tarballs conventionally unpack into a directory that includes - both the project name and a version string. + Source tarballs conventionally unpack into a directory that includes both + the project name and a version string. We will also support searching up + two directory levels for an appropriately named parent directory """ - dirname = os.path.basename(root) - if not dirname.startswith(parentdir_prefix): - if verbose: - print("guessing rootdir is '%s', but '%s' doesn't start with " - "prefix '%s'" % (root, dirname, parentdir_prefix)) - raise NotThisMethod("rootdir doesn't start with parentdir_prefix") - return {"version": dirname[len(parentdir_prefix):], - "full-revisionid": None, - "dirty": False, "error": None} + rootdirs = [] + + for _ in range(3): + dirname = os.path.basename(root) + if dirname.startswith(parentdir_prefix): + return { + "version": dirname[len(parentdir_prefix) :], + "full-revisionid": None, + "dirty": False, + "error": None, + "date": None, + } + rootdirs.append(root) + root = os.path.dirname(root) # up a level + + if verbose: + print( + "Tried directories %s but none started with prefix %s" + % (str(rootdirs), parentdir_prefix) + ) + raise NotThisMethod("rootdir doesn't start with parentdir_prefix") + SHORT_VERSION_PY = """ -# This file was generated by 'versioneer.py' (0.16) from +# This file was generated by 'versioneer.py' (0.21) from # revision-control system data, or from the parent directory name of an # unpacked source archive. Distribution tarballs contain a pre-generated copy # of this file. import json -import sys version_json = ''' %s @@ -1202,10 +1395,15 @@ def versions_from_file(filename): try: with open(filename) as f: contents = f.read() - except EnvironmentError: + except OSError: raise NotThisMethod("unable to read _version.py") - mo = re.search(r"version_json = '''\n(.*)''' # END VERSION_JSON", - contents, re.M | re.S) + mo = re.search( + r"version_json = '''\n(.*)''' # END VERSION_JSON", contents, re.M | re.S + ) + if not mo: + mo = re.search( + r"version_json = '''\r\n(.*)''' # END VERSION_JSON", contents, re.M | re.S + ) if not mo: raise NotThisMethod("no version_json in _version.py") return json.loads(mo.group(1)) @@ -1214,8 +1412,7 @@ def versions_from_file(filename): def write_to_version_file(filename, versions): """Write the given version number to the given _version.py file.""" os.unlink(filename) - contents = json.dumps(versions, sort_keys=True, - indent=1, separators=(",", ": ")) + contents = json.dumps(versions, sort_keys=True, indent=1, separators=(",", ": ")) with open(filename, "w") as f: f.write(SHORT_VERSION_PY % contents) @@ -1247,26 +1444,72 @@ def render_pep440(pieces): rendered += ".dirty" else: # exception #1 - rendered = "0+untagged.%d.g%s" % (pieces["distance"], - pieces["short"]) + rendered = "0+untagged.%d.g%s" % (pieces["distance"], pieces["short"]) if pieces["dirty"]: rendered += ".dirty" return rendered -def render_pep440_pre(pieces): - """TAG[.post.devDISTANCE] -- No -dirty. +def render_pep440_branch(pieces): + """TAG[[.dev0]+DISTANCE.gHEX[.dirty]] . + + The ".dev0" means not master branch. Note that .dev0 sorts backwards + (a feature branch will appear "older" than the master branch). Exceptions: - 1: no tags. 0.post.devDISTANCE + 1: no tags. 0[.dev0]+untagged.DISTANCE.gHEX[.dirty] """ if pieces["closest-tag"]: rendered = pieces["closest-tag"] - if pieces["distance"]: - rendered += ".post.dev%d" % pieces["distance"] + if pieces["distance"] or pieces["dirty"]: + if pieces["branch"] != "master": + rendered += ".dev0" + rendered += plus_or_dot(pieces) + rendered += "%d.g%s" % (pieces["distance"], pieces["short"]) + if pieces["dirty"]: + rendered += ".dirty" else: # exception #1 - rendered = "0.post.dev%d" % pieces["distance"] + rendered = "0" + if pieces["branch"] != "master": + rendered += ".dev0" + rendered += "+untagged.%d.g%s" % (pieces["distance"], pieces["short"]) + if pieces["dirty"]: + rendered += ".dirty" + return rendered + + +def pep440_split_post(ver): + """Split pep440 version string at the post-release segment. + + Returns the release segments before the post-release and the + post-release version number (or -1 if no post-release segment is present). + """ + vc = str.split(ver, ".post") + return vc[0], int(vc[1] or 0) if len(vc) == 2 else None + + +def render_pep440_pre(pieces): + """TAG[.postN.devDISTANCE] -- No -dirty. + + Exceptions: + 1: no tags. 0.post0.devDISTANCE + """ + if pieces["closest-tag"]: + if pieces["distance"]: + # update the post release segment + tag_version, post_version = pep440_split_post(pieces["closest-tag"]) + rendered = tag_version + if post_version is not None: + rendered += ".post%d.dev%d" % (post_version + 1, pieces["distance"]) + else: + rendered += ".post0.dev%d" % (pieces["distance"]) + else: + # no commits, use the tag as the version + rendered = pieces["closest-tag"] + else: + # exception #1 + rendered = "0.post0.dev%d" % pieces["distance"] return rendered @@ -1297,6 +1540,35 @@ def render_pep440_post(pieces): return rendered +def render_pep440_post_branch(pieces): + """TAG[.postDISTANCE[.dev0]+gHEX[.dirty]] . + + The ".dev0" means not master branch. + + Exceptions: + 1: no tags. 0.postDISTANCE[.dev0]+gHEX[.dirty] + """ + if pieces["closest-tag"]: + rendered = pieces["closest-tag"] + if pieces["distance"] or pieces["dirty"]: + rendered += ".post%d" % pieces["distance"] + if pieces["branch"] != "master": + rendered += ".dev0" + rendered += plus_or_dot(pieces) + rendered += "g%s" % pieces["short"] + if pieces["dirty"]: + rendered += ".dirty" + else: + # exception #1 + rendered = "0.post%d" % pieces["distance"] + if pieces["branch"] != "master": + rendered += ".dev0" + rendered += "+g%s" % pieces["short"] + if pieces["dirty"]: + rendered += ".dirty" + return rendered + + def render_pep440_old(pieces): """TAG[.postDISTANCE[.dev0]] . @@ -1362,20 +1634,27 @@ def render_git_describe_long(pieces): def render(pieces, style): """Render the given version pieces into the requested style.""" if pieces["error"]: - return {"version": "unknown", - "full-revisionid": pieces.get("long"), - "dirty": None, - "error": pieces["error"]} + return { + "version": "unknown", + "full-revisionid": pieces.get("long"), + "dirty": None, + "error": pieces["error"], + "date": None, + } if not style or style == "default": style = "pep440" # the default if style == "pep440": rendered = render_pep440(pieces) + elif style == "pep440-branch": + rendered = render_pep440_branch(pieces) elif style == "pep440-pre": rendered = render_pep440_pre(pieces) elif style == "pep440-post": rendered = render_pep440_post(pieces) + elif style == "pep440-post-branch": + rendered = render_pep440_post_branch(pieces) elif style == "pep440-old": rendered = render_pep440_old(pieces) elif style == "git-describe": @@ -1385,8 +1664,13 @@ def render(pieces, style): else: raise ValueError("unknown style '%s'" % style) - return {"version": rendered, "full-revisionid": pieces["long"], - "dirty": pieces["dirty"], "error": None} + return { + "version": rendered, + "full-revisionid": pieces["long"], + "dirty": pieces["dirty"], + "error": None, + "date": pieces.get("date"), + } class VersioneerBadRootError(Exception): @@ -1409,8 +1693,9 @@ def get_versions(verbose=False): handlers = HANDLERS.get(cfg.VCS) assert handlers, "unrecognized VCS '%s'" % cfg.VCS verbose = verbose or cfg.verbose - assert cfg.versionfile_source is not None, \ - "please set versioneer.versionfile_source" + assert ( + cfg.versionfile_source is not None + ), "please set versioneer.versionfile_source" assert cfg.tag_prefix is not None, "please set versioneer.tag_prefix" versionfile_abs = os.path.join(root, cfg.versionfile_source) @@ -1464,8 +1749,13 @@ def get_versions(verbose=False): if verbose: print("unable to compute version") - return {"version": "0+unknown", "full-revisionid": None, - "dirty": None, "error": "unable to compute version"} + return { + "version": "0+unknown", + "full-revisionid": None, + "dirty": None, + "error": "unable to compute version", + "date": None, + } def get_version(): @@ -1473,8 +1763,12 @@ def get_version(): return get_versions()["version"] -def get_cmdclass(): - """Get the custom setuptools/distutils subclasses used by Versioneer.""" +def get_cmdclass(cmdclass=None): + """Get the custom setuptools/distutils subclasses used by Versioneer. + + If the package uses a different cmdclass (e.g. one from numpy), it + should be provide as an argument. + """ if "versioneer" in sys.modules: del sys.modules["versioneer"] # this fixes the "python setup.py develop" case (also 'install' and @@ -1488,9 +1782,9 @@ def get_cmdclass(): # parent is protected against the child's "import versioneer". By # removing ourselves from sys.modules here, before the child build # happens, we protect the child from the parent's versioneer too. - # Also see https://github.com/warner/python-versioneer/issues/52 + # Also see https://github.com/python-versioneer/python-versioneer/issues/52 - cmds = {} + cmds = {} if cmdclass is None else cmdclass.copy() # we add "version" to both distutils and setuptools from distutils.core import Command @@ -1511,8 +1805,10 @@ def get_cmdclass(): print("Version: %s" % vers["version"]) print(" full-revisionid: %s" % vers.get("full-revisionid")) print(" dirty: %s" % vers.get("dirty")) + print(" date: %s" % vers.get("date")) if vers["error"]: print(" error: %s" % vers["error"]) + cmds["version"] = cmd_version # we override "build_py" in both distutils and setuptools @@ -1524,9 +1820,16 @@ def get_cmdclass(): # setuptools/bdist_egg -> distutils/install_lib -> build_py # setuptools/install -> bdist_egg ->.. # setuptools/develop -> ? + # pip install: + # copies source tree to a tempdir before running egg_info/etc + # if .git isn't copied too, 'git describe' will fail + # then does setup.py bdist_wheel, or sometimes setup.py install + # setup.py egg_info -> ? # we override different "build_py" commands for both environments - if "setuptools" in sys.modules: + if "build_py" in cmds: + _build_py = cmds["build_py"] + elif "setuptools" in sys.modules: from setuptools.command.build_py import build_py as _build_py else: from distutils.command.build_py import build_py as _build_py @@ -1540,15 +1843,49 @@ def get_cmdclass(): # now locate _version.py in the new build/ directory and replace # it with an updated value if cfg.versionfile_build: - target_versionfile = os.path.join(self.build_lib, - cfg.versionfile_build) + target_versionfile = os.path.join(self.build_lib, cfg.versionfile_build) print("UPDATING %s" % target_versionfile) write_to_version_file(target_versionfile, versions) + cmds["build_py"] = cmd_build_py + if "build_ext" in cmds: + _build_ext = cmds["build_ext"] + elif "setuptools" in sys.modules: + from setuptools.command.build_ext import build_ext as _build_ext + else: + from distutils.command.build_ext import build_ext as _build_ext + + class cmd_build_ext(_build_ext): + def run(self): + root = get_root() + cfg = get_config_from_root(root) + versions = get_versions() + _build_ext.run(self) + if self.inplace: + # build_ext --inplace will only build extensions in + # build/lib<..> dir with no _version.py to write to. + # As in place builds will already have a _version.py + # in the module dir, we do not need to write one. + return + # now locate _version.py in the new build/ directory and replace + # it with an updated value + target_versionfile = os.path.join(self.build_lib, cfg.versionfile_build) + print("UPDATING %s" % target_versionfile) + write_to_version_file(target_versionfile, versions) + + cmds["build_ext"] = cmd_build_ext + if "cx_Freeze" in sys.modules: # cx_freeze enabled? from cx_Freeze.dist import build_exe as _build_exe + # nczeczulin reports that py2exe won't like the pep440-style string + # as FILEVERSION, but it can be used for PRODUCTVERSION, e.g. + # setup(console=[{ + # "version": versioneer.get_version().split("+", 1)[0], # FILEVERSION + # "product_version": versioneer.get_version(), + # ... + class cmd_build_exe(_build_exe): def run(self): root = get_root() @@ -1562,18 +1899,53 @@ def get_cmdclass(): os.unlink(target_versionfile) with open(cfg.versionfile_source, "w") as f: LONG = LONG_VERSION_PY[cfg.VCS] - f.write(LONG % - {"DOLLAR": "$", - "STYLE": cfg.style, - "TAG_PREFIX": cfg.tag_prefix, - "PARENTDIR_PREFIX": cfg.parentdir_prefix, - "VERSIONFILE_SOURCE": cfg.versionfile_source, - }) + f.write( + LONG + % { + "DOLLAR": "$", + "STYLE": cfg.style, + "TAG_PREFIX": cfg.tag_prefix, + "PARENTDIR_PREFIX": cfg.parentdir_prefix, + "VERSIONFILE_SOURCE": cfg.versionfile_source, + } + ) + cmds["build_exe"] = cmd_build_exe del cmds["build_py"] + if "py2exe" in sys.modules: # py2exe enabled? + from py2exe.distutils_buildexe import py2exe as _py2exe + + class cmd_py2exe(_py2exe): + def run(self): + root = get_root() + cfg = get_config_from_root(root) + versions = get_versions() + target_versionfile = cfg.versionfile_source + print("UPDATING %s" % target_versionfile) + write_to_version_file(target_versionfile, versions) + + _py2exe.run(self) + os.unlink(target_versionfile) + with open(cfg.versionfile_source, "w") as f: + LONG = LONG_VERSION_PY[cfg.VCS] + f.write( + LONG + % { + "DOLLAR": "$", + "STYLE": cfg.style, + "TAG_PREFIX": cfg.tag_prefix, + "PARENTDIR_PREFIX": cfg.parentdir_prefix, + "VERSIONFILE_SOURCE": cfg.versionfile_source, + } + ) + + cmds["py2exe"] = cmd_py2exe + # we override different "sdist" commands for both environments - if "setuptools" in sys.modules: + if "sdist" in cmds: + _sdist = cmds["sdist"] + elif "setuptools" in sys.modules: from setuptools.command.sdist import sdist as _sdist else: from distutils.command.sdist import sdist as _sdist @@ -1596,8 +1968,10 @@ def get_cmdclass(): # updated value target_versionfile = os.path.join(base_dir, cfg.versionfile_source) print("UPDATING %s" % target_versionfile) - write_to_version_file(target_versionfile, - self._versioneer_generated_versions) + write_to_version_file( + target_versionfile, self._versioneer_generated_versions + ) + cmds["sdist"] = cmd_sdist return cmds @@ -1640,23 +2014,26 @@ SAMPLE_CONFIG = """ """ -INIT_PY_SNIPPET = """ +OLD_SNIPPET = """ from ._version import get_versions __version__ = get_versions()['version'] del get_versions """ +INIT_PY_SNIPPET = """ +from . import {0} +__version__ = {0}.get_versions()['version'] +""" + def do_setup(): - """Main VCS-independent setup function for installing Versioneer.""" + """Do main VCS-independent setup function for installing Versioneer.""" root = get_root() try: cfg = get_config_from_root(root) - except (EnvironmentError, configparser.NoSectionError, - configparser.NoOptionError) as e: - if isinstance(e, (EnvironmentError, configparser.NoSectionError)): - print("Adding sample versioneer config to setup.cfg", - file=sys.stderr) + except (OSError, configparser.NoSectionError, configparser.NoOptionError) as e: + if isinstance(e, (OSError, configparser.NoSectionError)): + print("Adding sample versioneer config to setup.cfg", file=sys.stderr) with open(os.path.join(root, "setup.cfg"), "a") as f: f.write(SAMPLE_CONFIG) print(CONFIG_ERROR, file=sys.stderr) @@ -1665,25 +2042,34 @@ def do_setup(): print(" creating %s" % cfg.versionfile_source) with open(cfg.versionfile_source, "w") as f: LONG = LONG_VERSION_PY[cfg.VCS] - f.write(LONG % {"DOLLAR": "$", - "STYLE": cfg.style, - "TAG_PREFIX": cfg.tag_prefix, - "PARENTDIR_PREFIX": cfg.parentdir_prefix, - "VERSIONFILE_SOURCE": cfg.versionfile_source, - }) + f.write( + LONG + % { + "DOLLAR": "$", + "STYLE": cfg.style, + "TAG_PREFIX": cfg.tag_prefix, + "PARENTDIR_PREFIX": cfg.parentdir_prefix, + "VERSIONFILE_SOURCE": cfg.versionfile_source, + } + ) - ipy = os.path.join(os.path.dirname(cfg.versionfile_source), - "__init__.py") + ipy = os.path.join(os.path.dirname(cfg.versionfile_source), "__init__.py") if os.path.exists(ipy): try: with open(ipy, "r") as f: old = f.read() - except EnvironmentError: + except OSError: old = "" - if INIT_PY_SNIPPET not in old: + module = os.path.splitext(os.path.basename(cfg.versionfile_source))[0] + snippet = INIT_PY_SNIPPET.format(module) + if OLD_SNIPPET in old: + print(" replacing boilerplate in %s" % ipy) + with open(ipy, "w") as f: + f.write(old.replace(OLD_SNIPPET, snippet)) + elif snippet not in old: print(" appending to %s" % ipy) with open(ipy, "a") as f: - f.write(INIT_PY_SNIPPET) + f.write(snippet) else: print(" %s unmodified" % ipy) else: @@ -1702,7 +2088,7 @@ def do_setup(): if line.startswith("include "): for include in line.split()[1:]: simple_includes.add(include) - except EnvironmentError: + except OSError: pass # That doesn't cover everything MANIFEST.in can do # (http://docs.python.org/2/distutils/sourcedist.html#commands), so @@ -1715,15 +2101,17 @@ def do_setup(): else: print(" 'versioneer.py' already in MANIFEST.in") if cfg.versionfile_source not in simple_includes: - print(" appending versionfile_source ('%s') to MANIFEST.in" % - cfg.versionfile_source) + print( + " appending versionfile_source ('%s') to MANIFEST.in" + % cfg.versionfile_source + ) with open(manifest_in, "a") as f: f.write("include %s\n" % cfg.versionfile_source) else: print(" versionfile_source already in MANIFEST.in") # Make VCS-specific changes. For git, this means creating/changing - # .gitattributes to mark _version.py for export-time keyword + # .gitattributes to mark _version.py for export-subst keyword # substitution. do_vcs_install(manifest_in, cfg.versionfile_source, ipy) return 0 @@ -1765,6 +2153,7 @@ def scan_setup_py(): errors += 1 return errors + if __name__ == "__main__": cmd = sys.argv[1] if cmd == "setup": From ee8adfb27659e9f982ba8cdadbf62c6b36dcc053 Mon Sep 17 00:00:00 2001 From: ryanward-io Date: Sun, 12 Dec 2021 02:43:18 +1100 Subject: [PATCH 279/316] DOC: Added sjoin_nearest method to examples gallery. (#2259) --- doc/source/gallery/spatial_joins.ipynb | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/doc/source/gallery/spatial_joins.ipynb b/doc/source/gallery/spatial_joins.ipynb index 38f06e3..81f79a0 100644 --- a/doc/source/gallery/spatial_joins.ipynb +++ b/doc/source/gallery/spatial_joins.ipynb @@ -213,6 +213,24 @@ "source": [ "pointdf.sjoin(polydf, how=\"left\", predicate=\"within\")" ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can also conduct a nearest neighbour join with `sjoin_nearest`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pointdf.sjoin_nearest(polydf, how=\"left\", distance_col=\"Distances\")\n", + "# Note the optional Distances column with computed distances between each point\n", + "# and the nearest polydf geometry." + ] } ], "metadata": { From 54fe63d3b9daaca9ce0f50ed5711f78acd56c378 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Thu, 30 Dec 2021 14:06:32 +0100 Subject: [PATCH 280/316] CI: temporarily use released Shapely in the dev build (#2276) * CI: temporarily use released Shapely in the dev build * ensure to use latest numpy if already installed * that doesn't work .. --- ci/envs/38-dev.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ci/envs/38-dev.yaml b/ci/envs/38-dev.yaml index 54cd610..55cffde 100644 --- a/ci/envs/38-dev.yaml +++ b/ci/envs/38-dev.yaml @@ -5,6 +5,7 @@ dependencies: - python=3.8 - cython # required + - shapely - fiona - pyproj - geos @@ -27,7 +28,7 @@ dependencies: - --pre --extra-index https://pypi.anaconda.org/scipy-wheels-nightly/simple numpy - --pre --extra-index https://pypi.anaconda.org/scipy-wheels-nightly/simple pandas - git+https://github.com/matplotlib/matplotlib.git@main - - git+https://github.com/Toblerity/Shapely.git@main + # - git+https://github.com/Toblerity/Shapely.git@main - git+https://github.com/pygeos/pygeos.git@master - git+https://github.com/python-visualization/folium.git@main - git+https://github.com/geopandas/xyzservices.git@main From 60552cbff9ea143a7fd455834d93f462401a7a3e Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Thu, 30 Dec 2021 14:27:26 +0100 Subject: [PATCH 281/316] DEV: rename master to main (#2277) Co-authored-by: Martin Fleischmann --- .github/ISSUE_TEMPLATE/bug_report.md | 2 +- .github/workflows/tests.yaml | 4 ++-- CHANGELOG.md | 2 +- README.md | 2 +- doc/source/about/logo.md | 2 +- doc/source/community/contributing.rst | 12 ++++++------ doc/source/conf.py | 4 ++-- doc/source/docs/user_guide/set_operations.rst | 2 +- examples/README.md | 2 +- geopandas/io/tests/test_file.py | 4 ++-- 10 files changed, 18 insertions(+), 18 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 7c7a706..1b91ccf 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -11,7 +11,7 @@ labels: "bug, needs triage" - [ ] I have confirmed this bug exists on the latest version of geopandas. -- [ ] (optional) I have confirmed this bug exists on the master branch of geopandas. +- [ ] (optional) I have confirmed this bug exists on the main branch of geopandas. --- diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 4c1070b..6de9213 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -2,9 +2,9 @@ name: Tests on: push: - branches: [master, 0.**] + branches: [main, 0.**] pull_request: - branches: [master, 0.**] + branches: [main, 0.**] schedule: - cron: "0 0 * * *" diff --git a/CHANGELOG.md b/CHANGELOG.md index c48d3a1..f7322a2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -345,7 +345,7 @@ Bug fixes: - Fix bug in `GeoSeries.equals()` (#1451). - Fix plotting of multi-part geometries with additional style keywords (#1385). -And we now have a [Code of Conduct](https://github.com/geopandas/geopandas/blob/master/CODE_OF_CONDUCT.md)! +And we now have a [Code of Conduct](https://github.com/geopandas/geopandas/blob/main/CODE_OF_CONDUCT.md)! GeoPandas 0.8.0 is the last release to support Python 3.5. The next release will require Python 3.6, pandas 0.24, numpy 1.15 and shapely 1.6 or higher. diff --git a/README.md b/README.md index ff1cf8e..226e2f0 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -GeoPandas [![Actions Status](https://github.com/geopandas/geopandas/workflows/Tests/badge.svg)](https://github.com/geopandas/geopandas/actions?query=workflow%3ATests) [![Coverage Status](https://codecov.io/gh/geopandas/geopandas/branch/master/graph/badge.svg)](https://codecov.io/gh/geopandas/geopandas) [![Join the chat at https://gitter.im/geopandas/geopandas](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/geopandas/geopandas?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Binder](https://mybinder.org/badge.svg)](https://mybinder.org/v2/gh/geopandas/geopandas/master) [![DOI](https://zenodo.org/badge/11002815.svg)](https://zenodo.org/badge/latestdoi/11002815) +GeoPandas [![Actions Status](https://github.com/geopandas/geopandas/workflows/Tests/badge.svg)](https://github.com/geopandas/geopandas/actions?query=workflow%3ATests) [![Coverage Status](https://codecov.io/gh/geopandas/geopandas/branch/main/graph/badge.svg)](https://codecov.io/gh/geopandas/geopandas) [![Join the chat at https://gitter.im/geopandas/geopandas](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/geopandas/geopandas?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Binder](https://mybinder.org/badge.svg)](https://mybinder.org/v2/gh/geopandas/geopandas/main) [![DOI](https://zenodo.org/badge/11002815.svg)](https://zenodo.org/badge/latestdoi/11002815) ========= Python tools for geographic data diff --git a/doc/source/about/logo.md b/doc/source/about/logo.md index 0fea2d3..9910f69 100644 --- a/doc/source/about/logo.md +++ b/doc/source/about/logo.md @@ -44,7 +44,7 @@ Although it is possible to use icon independently, we would prefer using the com ## Download -You can download all version in SVG and PNG from [GitHub repository](https://github.com/geopandas/geopandas/tree/master/doc/source/_static/logo). +You can download all version in SVG and PNG from [GitHub repository](https://github.com/geopandas/geopandas/tree/main/doc/source/_static/logo). ## Colors diff --git a/doc/source/community/contributing.rst b/doc/source/community/contributing.rst index b5d4310..dfae1e1 100644 --- a/doc/source/community/contributing.rst +++ b/doc/source/community/contributing.rst @@ -114,7 +114,7 @@ check it prior to submitting the pull request. Creating a branch ~~~~~~~~~~~~~~~~~~ -You want your master branch to reflect only production-ready code, so create a +You want your main branch to reflect only production-ready code, so create a feature branch for making your changes. For example:: git branch shiny-new-feature @@ -129,12 +129,12 @@ changes in this branch specific to one bug or feature so it is clear what the branch brings to *GeoPandas*. You can have many shiny-new-features and switch in between them using the git checkout command. -To update this branch, you need to retrieve the changes from the master branch:: +To update this branch, you need to retrieve the changes from the main branch:: git fetch upstream - git rebase upstream/master + git rebase upstream/main -This will replay your commits on top of the latest GeoPandas git master. If this +This will replay your commits on top of the latest GeoPandas git main. If this leads to merge conflicts, you must resolve these before submitting your pull request. If you have uncommitted changes, you will need to ``stash`` them prior to updating. This will effectively store your changes and they can be reapplied @@ -253,7 +253,7 @@ mixture of reStructuredText syntax for ``rst`` files, `which is explained here `_ and MyST syntax for ``md`` files `explained here `_. The docstrings follow the `Numpy Docstring standard -`_. Some pages +`_. Some pages and examples are Jupyter notebooks converted to docs using `nbsphinx `_. Jupyter notebooks should be stored without the output. @@ -308,7 +308,7 @@ report any stylistic errors in your code. Therefore, it is helpful before submitting code to run the check yourself:: black geopandas - git diff upstream/master -u -- "*.py" | flake8 --diff + git diff upstream/main -u -- "*.py" | flake8 --diff to auto-format your code. Additionally, many editors have plugins that will apply ``black`` as you edit files. diff --git a/doc/source/conf.py b/doc/source/conf.py index 44cfda6..443c28e 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -331,9 +331,9 @@ nbsphinx_prolog = r""" .. note:: | This page was generated from `{{ docname }}`__. - | Interactive online version: :raw-html:`
Binder badge` + | Interactive online version: :raw-html:`Binder badge` - __ https://github.com/geopandas/geopandas/blob/master/doc/source/{{ docname }} + __ https://github.com/geopandas/geopandas/blob/main/doc/source/{{ docname }} """ # --Options for sphinx extensions ----------------------------------------------- diff --git a/doc/source/docs/user_guide/set_operations.rst b/doc/source/docs/user_guide/set_operations.rst index c75c238..f52a457 100644 --- a/doc/source/docs/user_guide/set_operations.rst +++ b/doc/source/docs/user_guide/set_operations.rst @@ -212,7 +212,7 @@ where two polygons intersects in a line or a point. More Examples ------------- -A larger set of examples of the use of :meth:`~geopandas.GeoDataFrame.overlay` can be found `here `_ +A larger set of examples of the use of :meth:`~geopandas.GeoDataFrame.overlay` can be found `here `_ diff --git a/examples/README.md b/examples/README.md index 8a5c42c..794634f 100644 --- a/examples/README.md +++ b/examples/README.md @@ -1,3 +1,3 @@ # Examples Gallery -Examples are available in the [documentation](https://geopandas.readthedocs.io/en/latest/gallery/index.html). Source Jupyter notebooks are in [`doc/source/gallery`](https://github.com/geopandas/geopandas/tree/master/doc/source/gallery). +Examples are available in the [documentation](https://geopandas.readthedocs.io/en/latest/gallery/index.html). Source Jupyter notebooks are in [`doc/source/gallery`](https://github.com/geopandas/geopandas/tree/main/doc/source/gallery). diff --git a/geopandas/io/tests/test_file.py b/geopandas/io/tests/test_file.py index 3267b20..89430d4 100644 --- a/geopandas/io/tests/test_file.py +++ b/geopandas/io/tests/test_file.py @@ -346,7 +346,7 @@ def test_read_file(df_nybb): def test_read_file_remote_geojson_url(): url = ( "https://raw.githubusercontent.com/geopandas/geopandas/" - "master/geopandas/tests/data/null_geom.geojson" + "main/geopandas/tests/data/null_geom.geojson" ) gdf = read_file(url) assert isinstance(gdf, geopandas.GeoDataFrame) @@ -356,7 +356,7 @@ def test_read_file_remote_geojson_url(): def test_read_file_remote_zipfile_url(): url = ( "https://raw.githubusercontent.com/geopandas/geopandas/" - "master/geopandas/datasets/nybb_16a.zip" + "main/geopandas/datasets/nybb_16a.zip" ) gdf = read_file(url) assert isinstance(gdf, geopandas.GeoDataFrame) From fa054b51ddf3569518157d58c7db4fc182b90692 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Fri, 31 Dec 2021 09:53:25 +0100 Subject: [PATCH 282/316] BUG: fix reading of pickle files with/without pygeos (#2237) --- geopandas/array.py | 7 ++-- geopandas/io/tests/test_pickle.py | 55 ++++++++++++++++++++++++------- 2 files changed, 48 insertions(+), 14 deletions(-) diff --git a/geopandas/array.py b/geopandas/array.py index fd7b7fc..bf3106a 100644 --- a/geopandas/array.py +++ b/geopandas/array.py @@ -422,13 +422,16 @@ class GeometryArray(ExtensionArray): return self.__dict__ def __setstate__(self, state): - if compat.USE_PYGEOS: - geoms = pygeos.from_wkb(state[0]) + if not isinstance(state, dict): + # pickle file saved with pygeos + geoms = vectorized.from_wkb(state[0]) self._crs = state[1] self._sindex = None # pygeos.STRtree could not be pickled yet self.data = geoms self.base = None else: + if compat.USE_PYGEOS: + state["data"] = vectorized.from_shapely(state["data"]) if "_crs" not in state: state["_crs"] = None self.__dict__.update(state) diff --git a/geopandas/io/tests/test_pickle.py b/geopandas/io/tests/test_pickle.py index 0327714..bd27ada 100644 --- a/geopandas/io/tests/test_pickle.py +++ b/geopandas/io/tests/test_pickle.py @@ -2,6 +2,7 @@ See generate_legacy_storage_files.py for the creation of the legacy files. """ +from contextlib import contextmanager from distutils.version import LooseVersion import glob import os @@ -36,12 +37,14 @@ def legacy_pickle(request): return request.param -@pytest.fixture -def with_use_pygeos_false(): +@contextmanager +def with_use_pygeos(option): orig = geopandas.options.use_pygeos - geopandas.options.use_pygeos = not orig - yield - geopandas.options.use_pygeos = orig + geopandas.options.use_pygeos = option + try: + yield + finally: + geopandas.options.use_pygeos = orig @pytest.mark.skipif( @@ -70,13 +73,41 @@ def test_round_trip_current(tmpdir, current_pickle_data): assert isinstance(result.has_sindex, bool) -@pytest.mark.skipif(not compat.HAS_PYGEOS, reason="requires pygeos to test #1745") -def test_pygeos_switch(tmpdir, with_use_pygeos_false): - gdf_crs = geopandas.GeoDataFrame( +def _create_gdf(): + return geopandas.GeoDataFrame( {"a": [0.1, 0.2, 0.3], "geometry": [Point(1, 1), Point(2, 2), Point(3, 3)]}, crs="EPSG:4326", ) - path = str(tmpdir / "gdf_crs.pickle") - gdf_crs.to_pickle(path) - result = pd.read_pickle(path) - assert_geodataframe_equal(result, gdf_crs) + + +@pytest.mark.skipif(not compat.HAS_PYGEOS, reason="requires pygeos to test #1745") +def test_pygeos_switch(tmpdir): + # writing and reading with pygeos disabled + with with_use_pygeos(False): + gdf = _create_gdf() + path = str(tmpdir / "gdf_crs1.pickle") + gdf.to_pickle(path) + result = pd.read_pickle(path) + assert_geodataframe_equal(result, gdf) + + # writing without pygeos, reading with pygeos + with with_use_pygeos(False): + gdf = _create_gdf() + path = str(tmpdir / "gdf_crs1.pickle") + gdf.to_pickle(path) + + with with_use_pygeos(True): + result = pd.read_pickle(path) + gdf = _create_gdf() + assert_geodataframe_equal(result, gdf) + + # writing with pygeos, reading without pygeos + with with_use_pygeos(True): + gdf = _create_gdf() + path = str(tmpdir / "gdf_crs1.pickle") + gdf.to_pickle(path) + + with with_use_pygeos(False): + result = pd.read_pickle(path) + gdf = _create_gdf() + assert_geodataframe_equal(result, gdf) From d3b3bd174a147df83b307177260e3023172eac7e Mon Sep 17 00:00:00 2001 From: Matt Richards <45483497+m-richards@users.noreply.github.com> Date: Fri, 31 Dec 2021 19:15:03 +1000 Subject: [PATCH 283/316] BUG: Losing the geometry column should convert to a DataFrame (#2060) Co-authored-by: Joris Van den Bossche --- geopandas/geodataframe.py | 52 ++++-- geopandas/geoseries.py | 7 - geopandas/io/tests/test_file.py | 2 +- geopandas/tests/test_op_output_types.py | 216 ++++++++++++++++++++++++ geopandas/tests/test_pandas_methods.py | 10 +- geopandas/tests/test_plotting.py | 2 +- geopandas/tools/sjoin.py | 1 + 7 files changed, 263 insertions(+), 27 deletions(-) create mode 100644 geopandas/tests/test_op_output_types.py diff --git a/geopandas/geodataframe.py b/geopandas/geodataframe.py index 787a893..e29b221 100644 --- a/geopandas/geodataframe.py +++ b/geopandas/geodataframe.py @@ -13,7 +13,7 @@ from pyproj import CRS from geopandas.array import GeometryArray, GeometryDtype, from_shapely, to_wkb, to_wkt from geopandas.base import GeoPandasBase, is_geometry_type -from geopandas.geoseries import GeoSeries +from geopandas.geoseries import GeoSeries, _geoseries_constructor_with_fallback import geopandas.io from geopandas.explore import _explore from . import _compat as compat @@ -23,6 +23,20 @@ from ._decorator import doc DEFAULT_GEO_COLUMN_NAME = "geometry" +def _geodataframe_constructor_with_fallback(*args, **kwargs): + """ + A flexible constructor for GeoDataFrame._constructor, which falls back + to returning a DataFrame (if a certain operation does not preserve the + geometry column) + """ + df = GeoDataFrame(*args, **kwargs) + geometry_cols_mask = df.dtypes == "geometry" + if len(geometry_cols_mask) == 0 or geometry_cols_mask.sum() == 0: + df = pd.DataFrame(df) + + return df + + def _ensure_geometry(data, crs=None): """ Ensure the data is of geometry dtype or converted to it. @@ -276,6 +290,9 @@ class GeoDataFrame(GeoPandasBase, DataFrame): frame = self else: frame = self.copy() + # if there is no previous self.geometry, self.copy() will downcast + if type(frame) == DataFrame: + frame = GeoDataFrame(frame) to_remove = None geo_column_name = self._geometry_column_name @@ -1390,20 +1407,26 @@ individually so that features may have different properties result = super().apply( func, axis=axis, raw=raw, result_type=result_type, args=args, **kwargs ) - if ( - isinstance(result, GeoDataFrame) - and self._geometry_column_name in result.columns - and isinstance(result[self._geometry_column_name].dtype, GeometryDtype) - ): - # apply calls _constructor which resets geom col name to geometry - result._geometry_column_name = self._geometry_column_name - if self.crs is not None and result.crs is None: - result.set_crs(self.crs, inplace=True) + # Reconstruct gdf if it was lost by apply + if self._geometry_column_name in result.columns: + # axis=1 apply will split GeometryDType to object, try and cast back + try: + result = result.set_geometry(self._geometry_column_name) + except TypeError: + pass + else: + if self.crs is not None and result.crs is None: + result.set_crs(self.crs, inplace=True) + return result @property def _constructor(self): - return GeoDataFrame + return _geodataframe_constructor_with_fallback + + @property + def _constructor_sliced(self): + return _geoseries_constructor_with_fallback def __finalize__(self, other, method=None, **kwargs): """propagate metadata from other to self""" @@ -1671,6 +1694,7 @@ individually so that features may have different properties df = ( df_copy.drop(df_copy._geometry_column_name, axis=1) .join(exploded_geom) + .set_geometry(self._geometry_column_name) .__finalize__(self) ) @@ -1688,8 +1712,7 @@ individually so that features may have different properties if f"__{level_str}" in df.columns: df = df.rename(columns={f"__{level_str}": level_str}) - geo_df = df.set_geometry(self._geometry_column_name) - return geo_df + return df # overrides the pandas astype method to ensure the correct return type def astype(self, dtype, copy=True, errors="raise", **kwargs): @@ -2209,3 +2232,6 @@ def _dataframe_set_geometry(self, col, drop=False, inplace=False, crs=None): DataFrame.set_geometry = _dataframe_set_geometry + +if compat.PANDAS_GE_10 and not compat.PANDAS_GE_11: # i.e. on pandas 1.0.x + _geodataframe_constructor_with_fallback._from_axes = GeoDataFrame._from_axes diff --git a/geopandas/geoseries.py b/geopandas/geoseries.py index d60d1fe..1f3bde6 100644 --- a/geopandas/geoseries.py +++ b/geopandas/geoseries.py @@ -627,13 +627,6 @@ class GeoSeries(GeoPandasBase, Series): result.set_crs(self.crs, inplace=True) return result - def __finalize__(self, other, method=None, **kwargs): - """propagate metadata from other to self""" - # NOTE: backported from pandas master (upcoming v0.13) - for name in self._metadata: - object.__setattr__(self, name, getattr(other, name, None)) - return self - def isna(self): """ Detect missing values. diff --git a/geopandas/io/tests/test_file.py b/geopandas/io/tests/test_file.py index 89430d4..f371282 100644 --- a/geopandas/io/tests/test_file.py +++ b/geopandas/io/tests/test_file.py @@ -214,7 +214,7 @@ def test_to_file_int64(tmpdir, df_points): def test_to_file_empty(tmpdir): - input_empty_df = GeoDataFrame() + input_empty_df = GeoDataFrame(columns=["geometry"]) tempfilename = os.path.join(str(tmpdir), "test.shp") with pytest.raises(ValueError, match="Cannot write empty DataFrame to file."): input_empty_df.to_file(tempfilename) diff --git a/geopandas/tests/test_op_output_types.py b/geopandas/tests/test_op_output_types.py new file mode 100644 index 0000000..3be6b35 --- /dev/null +++ b/geopandas/tests/test_op_output_types.py @@ -0,0 +1,216 @@ +import pandas as pd +import pyproj +import pytest + +from shapely.geometry import Point + +from geopandas import GeoDataFrame, GeoSeries + + +crs_osgb = pyproj.CRS(27700) +crs_wgs = pyproj.CRS(4326) + + +N = 10 + + +@pytest.fixture(params=["geometry", "point"]) +def df(request): + geo_name = request.param + + df = GeoDataFrame( + [ + { + "value1": x + y, + "value2": x * y, + geo_name: Point(x, y), # rename this col in tests + } + for x, y in zip(range(N), range(N)) + ], + crs=crs_wgs, + geometry=geo_name, + ) + # want geometry2 to be a GeoSeries not Series, test behaviour of non geom col + df["geometry2"] = df[geo_name].set_crs(crs_osgb, allow_override=True) + return df + + +def _check_metadata_gdf(gdf, geo_name="geometry", crs=crs_wgs): + assert gdf._geometry_column_name == geo_name + assert gdf.geometry.name == geo_name + assert gdf.crs == crs + + +def _check_metadata_gs(gs, name="geometry", crs=crs_wgs): + assert gs.name == name + assert gs.crs == crs + + +def assert_object(result, expected_type, geo_name="geometry", crs=crs_wgs): + """ + Helper method to make tests easier to read. Checks result is of the expected + type. If result is a GeoDataFrame or GeoSeries, checks geo_name + and crs match. If geo_name is None, then we expect a GeoDataFrame + where the geometry column is invalid/ isn't set. This is never desirable, + but is a reality of this first stage of implementation. + """ + assert type(result) is expected_type + + if expected_type == GeoDataFrame: + if geo_name is not None: + _check_metadata_gdf(result, geo_name=geo_name, crs=crs) + else: + with pytest.raises(AttributeError, match="No geometry data set yet"): + result.geometry.name # be explicit that geometry is invalid here + elif expected_type == GeoSeries: + _check_metadata_gs(result, name=geo_name, crs=crs) + + +def test_getitem(df): + geo_name = df.geometry.name + assert_object(df[["value1", "value2"]], pd.DataFrame) + assert_object(df[[geo_name, "geometry2"]], GeoDataFrame, geo_name) + assert_object(df[[geo_name]], GeoDataFrame, geo_name) + assert_object(df[["geometry2", "value1"]], pd.DataFrame) + assert_object(df[["geometry2"]], pd.DataFrame) + assert_object(df[["value1"]], pd.DataFrame) + # Series + assert_object(df[geo_name], GeoSeries, geo_name) + assert_object(df["geometry2"], GeoSeries, "geometry2", crs=crs_osgb) + assert_object(df["value1"], pd.Series) + + +def test_loc(df): + geo_name = df.geometry.name + assert_object(df.loc[:, ["value1", "value2"]], pd.DataFrame) + assert_object(df.loc[:, [geo_name, "geometry2"]], GeoDataFrame, geo_name) + assert_object(df.loc[:, [geo_name]], GeoDataFrame, geo_name) + # TODO: should this set the geometry column to geometry2 or return a DataFrame? + assert_object(df.loc[:, ["geometry2", "value1"]], GeoDataFrame, None) + assert_object(df.loc[:, ["geometry2"]], GeoDataFrame, None) + # Ideally this would mirror __getitem__ and below would be true + # assert_object(df.loc[:, ["geometry2", "value1"]], pd.DataFrame) + # assert_object(df.loc[:, ["geometry2"]], pd.DataFrame) + assert_object(df.loc[:, ["value1"]], pd.DataFrame) + # Series + assert_object(df.loc[:, geo_name], GeoSeries, geo_name) + assert_object(df.loc[:, "geometry2"], GeoSeries, "geometry2", crs=crs_osgb) + assert_object(df.loc[:, "value1"], pd.Series) + + +def test_iloc(df): + geo_name = df.geometry.name + assert_object(df.iloc[:, 0:2], pd.DataFrame) + assert_object(df.iloc[:, 2:4], GeoDataFrame, geo_name) + assert_object(df.iloc[:, [2]], GeoDataFrame, geo_name) + # TODO: should this set the geometry column to geometry2 or return a DataFrame? + assert_object(df.iloc[:, [3, 0]], GeoDataFrame, None) + assert_object(df.iloc[:, [3]], GeoDataFrame, None) + # Ideally this would mirror __getitem__ and below would be true + # assert_object(df.iloc[:, [3, 0]], pd.DataFrame) + # assert_object(df.iloc[:, [3]], pd.DataFrame) + assert_object(df.iloc[:, [0]], pd.DataFrame) + # Series + assert_object(df.iloc[:, 2], GeoSeries, geo_name) + assert_object(df.iloc[:, 3], GeoSeries, "geometry2", crs=crs_osgb) + assert_object(df.iloc[:, 0], pd.Series) + + +def test_squeeze(df): + geo_name = df.geometry.name + assert_object(df[[geo_name]].squeeze(), GeoSeries, geo_name) + + # Not ideal behaviour, but this is consistent with __getitem__ + assert_object(df[["geometry2"]].squeeze(), pd.Series) + + +def test_to_frame(df): + geo_name = df.geometry.name + # TODO this reflects current behaviour, but we should fix + # GeoSeries._constructor_expanddim so this doesn't happen + res1 = df[geo_name].to_frame() + if geo_name == "geometry": # -> this should be doable for any geo_name + assert_object(res1, GeoDataFrame, geo_name) + assert res1._geometry_column_name == "geometry" # -> should be geo_name + + res2 = df["geometry2"].to_frame() + assert type(res2) is GeoDataFrame + assert res2._geometry_column_name == "geometry" # -> should be geometry2 + assert res2.crs is None # -> should be crs_osgb + # also res2.geometry should not crash because geometry isn't set + + res3 = df["value1"].to_frame() + assert_object(res3, pd.DataFrame) + + +def test_reindex(df): + geo_name = df.geometry.name + assert_object(df.reindex(columns=["value1", "value2"]), pd.DataFrame) + assert_object(df.reindex(columns=[geo_name, "geometry2"]), GeoDataFrame, geo_name) + assert_object(df.reindex(columns=[geo_name]), GeoDataFrame, geo_name) + assert_object(df.reindex(columns=["new_col", geo_name]), GeoDataFrame, geo_name) + # TODO: should this set the geometry column to geometry2 or return a DataFrame? + assert_object(df.reindex(columns=["geometry2", "value1"]), GeoDataFrame, None) + assert_object(df.reindex(columns=["geometry2"]), GeoDataFrame, None) + # Ideally this would mirror __getitem__ and below would be true + # assert_object(df.reindex(columns=["geometry2", "value1"]), pd.DataFrame) + # assert_object(df.reindex(columns=["geometry2"]), pd.DataFrame) + assert_object(df.reindex(columns=["value1"]), pd.DataFrame) + + # reindexing the rows always preserves the GeoDataFrame + assert_object(df.reindex(index=[0, 1, 20]), GeoDataFrame, geo_name) + + # reindexing both rows and columns + assert_object( + df.reindex(index=[0, 1, 20], columns=[geo_name]), GeoDataFrame, geo_name + ) + assert_object(df.reindex(index=[0, 1, 20], columns=["value1"]), pd.DataFrame) + + +def test_drop(df): + geo_name = df.geometry.name + assert_object(df.drop(columns=[geo_name, "geometry2"]), pd.DataFrame) + assert_object(df.drop(columns=["value1", "value2"]), GeoDataFrame, geo_name) + cols = ["value1", "value2", "geometry2"] + assert_object(df.drop(columns=cols), GeoDataFrame, geo_name) + # TODO: should this set the geometry column to geometry2 or return a DataFrame? + assert_object(df.drop(columns=[geo_name, "value2"]), GeoDataFrame, None) + assert_object(df.drop(columns=["value1", "value2", geo_name]), GeoDataFrame, None) + # Ideally this would mirror __getitem__ and below would be true + # assert_object(df.drop(columns=[geo_name, "value2"]), pd.DataFrame) + # assert_object(df.drop(columns=["value1", "value2", geo_name]), pd.DataFrame) + assert_object(df.drop(columns=["geometry2", "value2", geo_name]), pd.DataFrame) + + +def test_apply(df): + geo_name = df.geometry.name + + def identity(x): + return x + + # axis = 0 + assert_object(df[["value1", "value2"]].apply(identity), pd.DataFrame) + assert_object(df[[geo_name, "geometry2"]].apply(identity), GeoDataFrame, geo_name) + assert_object(df[[geo_name]].apply(identity), GeoDataFrame, geo_name) + assert_object(df[["geometry2", "value1"]].apply(identity), pd.DataFrame) + assert_object(df[["geometry2"]].apply(identity), pd.DataFrame) + assert_object(df[["value1"]].apply(identity), pd.DataFrame) + + # axis = 0, Series + assert_object(df[geo_name].apply(identity), GeoSeries, geo_name) + assert_object(df["geometry2"].apply(identity), GeoSeries, "geometry2", crs=crs_osgb) + assert_object(df["value1"].apply(identity), pd.Series) + + # axis = 0, Series, no longer geometry + assert_object(df[geo_name].apply(lambda x: str(x)), pd.Series) + assert_object(df["geometry2"].apply(lambda x: str(x)), pd.Series) + + # axis = 1 + assert_object(df[["value1", "value2"]].apply(identity, axis=1), pd.DataFrame) + assert_object( + df[[geo_name, "geometry2"]].apply(identity, axis=1), GeoDataFrame, geo_name + ) + assert_object(df[[geo_name]].apply(identity, axis=1), GeoDataFrame, geo_name) + assert_object(df[["geometry2", "value1"]].apply(identity, axis=1), pd.DataFrame) + assert_object(df[["geometry2"]].apply(identity, axis=1), pd.DataFrame) + assert_object(df[["value1"]].apply(identity, axis=1), pd.DataFrame) diff --git a/geopandas/tests/test_pandas_methods.py b/geopandas/tests/test_pandas_methods.py index 9b553d4..709ad3d 100644 --- a/geopandas/tests/test_pandas_methods.py +++ b/geopandas/tests/test_pandas_methods.py @@ -139,8 +139,9 @@ def test_reindex(s, df): assert isinstance(res.geometry, GeoSeries) assert_frame_equal(res, df[["value1", "geometry"]]) - # TODO df.reindex(columns=['value1', 'value2']) still returns GeoDataFrame, - # should it return DataFrame instead ? + res = df.reindex(columns=["value1", "value2"]) + assert type(res) == pd.DataFrame + assert_frame_equal(res, df[["value1", "value2"]]) def test_take(s, df): @@ -587,13 +588,12 @@ def test_apply_no_geometry_result(df, crs): if crs: df = df.set_crs(crs) result = df.apply(lambda col: col.astype(str), axis=0) - # TODO this should actually not return a GeoDataFrame - assert isinstance(result, GeoDataFrame) + assert type(result) is pd.DataFrame expected = df.astype(str) assert_frame_equal(result, expected) result = df.apply(lambda col: col.astype(str), axis=1) - assert isinstance(result, GeoDataFrame) + assert type(result) is pd.DataFrame assert_frame_equal(result, expected) diff --git a/geopandas/tests/test_plotting.py b/geopandas/tests/test_plotting.py index cce912f..d1d8851 100644 --- a/geopandas/tests/test_plotting.py +++ b/geopandas/tests/test_plotting.py @@ -303,7 +303,7 @@ class TestPointPlotting: with pytest.warns(UserWarning): ax = s.plot() assert len(ax.collections) == 0 - df = GeoDataFrame([]) + df = GeoDataFrame([], columns=["geometry"]) with pytest.warns(UserWarning): ax = df.plot() assert len(ax.collections) == 0 diff --git a/geopandas/tools/sjoin.py b/geopandas/tools/sjoin.py index 2241925..c693ca1 100644 --- a/geopandas/tools/sjoin.py +++ b/geopandas/tools/sjoin.py @@ -343,6 +343,7 @@ def _frame_join(join_df, left_df, right_df, how, lsuffix, rsuffix): ) .set_index(index_right) .drop(["_key_left", "_key_right"], axis=1) + .set_geometry(right_df.geometry.name) ) if isinstance(index_right, list): joined.index.names = right_index_name From a08a2f152374b3ba39450d0245f460973e6c6fbb Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Fri, 31 Dec 2021 09:29:42 +0000 Subject: [PATCH 284/316] DOC: mention CRS requirement in explore docs (#2255) --- .../docs/user_guide/interactive_mapping.ipynb | 62 ++++++++++++------- 1 file changed, 41 insertions(+), 21 deletions(-) diff --git a/doc/source/docs/user_guide/interactive_mapping.ipynb b/doc/source/docs/user_guide/interactive_mapping.ipynb index 65944ed..58fe74d 100644 --- a/doc/source/docs/user_guide/interactive_mapping.ipynb +++ b/doc/source/docs/user_guide/interactive_mapping.ipynb @@ -2,6 +2,8 @@ "cells": [ { "cell_type": "markdown", + "id": "c554e753", + "metadata": {}, "source": [ "# Interactive mapping\n", "\n", @@ -10,48 +12,66 @@ "Creating maps for interactive exploration mirrors the API of [static plots](../reference/api/geopandas.GeoDataFrame.plot.html) in an [explore()](../reference/api/geopandas.GeoDataFrame.explore.html) method of a GeoSeries or GeoDataFrame.\n", "\n", "Loading some example data:" - ], - "metadata": {} + ] }, { "cell_type": "code", "execution_count": null, + "id": "caf2fbd5", + "metadata": {}, + "outputs": [], "source": [ "import geopandas\n", "\n", "nybb = geopandas.read_file(geopandas.datasets.get_path('nybb'))\n", "world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres'))\n", "cities = geopandas.read_file(geopandas.datasets.get_path('naturalearth_cities'))" - ], - "outputs": [], - "metadata": {} + ] }, { "cell_type": "markdown", + "id": "56bf1bcf", + "metadata": {}, "source": [ "The simplest option is to use `GeoDataFrame.explore()`:" - ], - "metadata": {} + ] }, { "cell_type": "code", "execution_count": null, + "id": "6b484ecc", + "metadata": {}, + "outputs": [], "source": [ "nybb.explore()" - ], - "outputs": [], - "metadata": {} + ] }, { "cell_type": "markdown", + "id": "7a797389", + "metadata": {}, "source": [ "Interactive plotting offers largely the same customisation as static one plus some features on top of that. Check the code below which plots a customised choropleth map. You can use `\"BoroName\"` column with NY boroughs names as an input of the choropleth, show (only) its name in the tooltip on hover but show all values on click. You can also pass custom background tiles (either a name supported by folium, a name recognized by `xyzservices.providers.query_name()`, XYZ URL or `xyzservices.TileProvider` object), specify colormap (all supported by `matplotlib`) and specify black outline." - ], - "metadata": {} + ] + }, + { + "cell_type": "markdown", + "id": "798bf532", + "metadata": {}, + "source": [ + "
\n", + "Note\n", + "\n", + "Note that the GeoDataFrame needs to have a CRS set if you want to use background tiles.\n", + "
" + ] }, { "cell_type": "code", "execution_count": null, + "id": "94b4ff24", + "metadata": {}, + "outputs": [], "source": [ "nybb.explore( \n", " column=\"BoroName\", # make choropleth based on \"BoroName\" column\n", @@ -61,20 +81,22 @@ " cmap=\"Set1\", # use \"Set1\" matplotlib colormap\n", " style_kwds=dict(color=\"black\") # use black outline\n", " )" - ], - "outputs": [], - "metadata": {} + ] }, { "cell_type": "markdown", + "id": "5a10291e", + "metadata": {}, "source": [ "The `explore()` method returns a `folium.Map` object, which can also be passed directly (as you do with `ax` in `plot()`). You can then use folium functionality directly on the resulting map. In the example below, you can plot two GeoDataFrames on the same map and add layer control using folium. You can also add additional tiles allowing you to change the background directly in the map." - ], - "metadata": {} + ] }, { "cell_type": "code", "execution_count": null, + "id": "cba9970b", + "metadata": {}, + "outputs": [], "source": [ "import folium\n", "\n", @@ -100,9 +122,7 @@ "folium.LayerControl().add_to(m) # use folium to add layer control\n", "\n", "m # show map" - ], - "outputs": [], - "metadata": {} + ] } ], "metadata": { @@ -126,4 +146,4 @@ }, "nbformat": 4, "nbformat_minor": 5 -} \ No newline at end of file +} From f5f423c1aebf078d32b0db6c147a76e08ed00792 Mon Sep 17 00:00:00 2001 From: Matt Richards <45483497+m-richards@users.noreply.github.com> Date: Fri, 31 Dec 2021 20:30:54 +1000 Subject: [PATCH 285/316] ENH: Round trip I/O of datetime fields for supported formats (#2202) Co-authored-by: Joris Van den Bossche --- geopandas/io/file.py | 18 ++++++++---- geopandas/io/tests/test_file.py | 51 +++++++++++++++++++++++++++++---- 2 files changed, 58 insertions(+), 11 deletions(-) diff --git a/geopandas/io/file.py b/geopandas/io/file.py index 5946781..a4c9e55 100644 --- a/geopandas/io/file.py +++ b/geopandas/io/file.py @@ -236,14 +236,22 @@ def _read_file(filename, bbox=None, mask=None, rows=None, **kwargs): f_filt = features # get list of columns columns = list(features.schema["properties"]) + datetime_fields = [ + k for (k, v) in features.schema["properties"].items() if v == "datetime" + ] if kwargs.get("ignore_geometry", False): - return pd.DataFrame( + df = pd.DataFrame( [record["properties"] for record in f_filt], columns=columns ) - - return GeoDataFrame.from_features( - f_filt, crs=crs, columns=columns + ["geometry"] - ) + else: + df = GeoDataFrame.from_features( + f_filt, crs=crs, columns=columns + ["geometry"] + ) + for k in datetime_fields: + # fiona only supports up to ms precision, any microseconds are + # floating point rounding error + df[k] = pd.to_datetime(df[k]).dt.round(freq="ms") + return df def read_file(*args, **kwargs): diff --git a/geopandas/io/tests/test_file.py b/geopandas/io/tests/test_file.py index f371282..7c13d11 100644 --- a/geopandas/io/tests/test_file.py +++ b/geopandas/io/tests/test_file.py @@ -1,5 +1,6 @@ from collections import OrderedDict import datetime +from distutils.version import LooseVersion import io import os import pathlib @@ -9,6 +10,8 @@ import numpy as np import pandas as pd import fiona +import pytz +from pandas.testing import assert_series_equal from shapely.geometry import Point, Polygon, box import geopandas @@ -21,6 +24,9 @@ from geopandas.tests.util import PACKAGE_DIR, validate_boro_df import pytest +FIONA_GE_1814 = str(fiona.__version__) >= LooseVersion("1.8.14") # datetime roundtrip + + _CRS = "epsg:4326" @@ -139,15 +145,48 @@ def test_to_file_bool(tmpdir, driver, ext): assert_correct_driver(tempfilename, ext) -def test_to_file_datetime(tmpdir): +TEST_DATE = datetime.datetime(2021, 11, 21, 1, 7, 43, 17500) +eastern = pytz.timezone("US/Eastern") + +datetime_type_tests = (TEST_DATE, eastern.localize(TEST_DATE)) + + +@pytest.mark.parametrize( + "time", datetime_type_tests, ids=("naive_datetime", "datetime_with_timezone") +) +@pytest.mark.parametrize("driver,ext", driver_ext_pairs) +def test_to_file_datetime(tmpdir, driver, ext, time): """Test writing a data file with the datetime column type""" - tempfilename = os.path.join(str(tmpdir), "test_datetime.gpkg") + if ext in (".shp", ""): + pytest.skip(f"Driver corresponding to ext {ext} doesn't support dt fields") + if time.tzinfo is not None and FIONA_GE_1814 is False: + # https://github.com/Toblerity/Fiona/pull/915 + pytest.skip("Fiona >= 1.8.14 needed for timezone support") + + tempfilename = os.path.join(str(tmpdir), f"test_datetime{ext}") point = Point(0, 0) - now = datetime.datetime.now() - df = GeoDataFrame({"a": [1, 2], "b": [now, now]}, geometry=[point, point], crs=4326) - df.to_file(tempfilename, driver="GPKG") + + df = GeoDataFrame( + {"a": [1, 2], "b": [time, time]}, geometry=[point, point], crs=4326 + ) + if FIONA_GE_1814: + fiona_precision_limit = "ms" + else: + fiona_precision_limit = "s" + df["b"] = df["b"].dt.round(freq=fiona_precision_limit) + + df.to_file(tempfilename, driver=driver) df_read = read_file(tempfilename) - assert_geoseries_equal(df.geometry, df_read.geometry) + + assert_geodataframe_equal(df.drop(columns=["b"]), df_read.drop(columns=["b"])) + if df["b"].dt.tz is not None: + # US/Eastern becomes pytz.FixedOffset(-300) when read from file + # so compare fairly in terms of UTC + assert_series_equal( + df["b"].dt.tz_convert(pytz.utc), df_read["b"].dt.tz_convert(pytz.utc) + ) + else: + assert_series_equal(df["b"], df_read["b"]) @pytest.mark.parametrize("driver,ext", driver_ext_pairs) From 831108dcb369517e311cd0ee3821db1f2fb7122d Mon Sep 17 00:00:00 2001 From: Matt Richards <45483497+m-richards@users.noreply.github.com> Date: Fri, 31 Dec 2021 22:04:15 +1000 Subject: [PATCH 286/316] DEP: GeometryArray.almost_equals and GeometryArray.almost_equals_exact (#2267) --- geopandas/array.py | 18 ------------------ geopandas/tests/test_array.py | 19 ++++--------------- 2 files changed, 4 insertions(+), 33 deletions(-) diff --git a/geopandas/array.py b/geopandas/array.py index bf3106a..cbfd5a6 100644 --- a/geopandas/array.py +++ b/geopandas/array.py @@ -566,24 +566,6 @@ class GeometryArray(ExtensionArray): return self.geom_equals_exact(other, 0.5 * 10 ** (-decimal)) # return _binary_predicate("almost_equals", self, other, decimal=decimal) - def equals_exact(self, other, tolerance): - warnings.warn( - "GeometryArray.equals_exact() is now GeometryArray.geom_equals_exact(). " - "GeometryArray.equals_exact() will be deprecated in the future.", - FutureWarning, - stacklevel=2, - ) - return self._binary_method("equals_exact", self, other, tolerance=tolerance) - - def almost_equals(self, other, decimal): - warnings.warn( - "GeometryArray.almost_equals() is now GeometryArray.geom_almost_equals(). " - "GeometryArray.almost_equals() will be deprecated in the future.", - FutureWarning, - stacklevel=2, - ) - return self.geom_equals_exact(other, 0.5 * 10 ** (-decimal)) - # # Binary operations that return new geometries # diff --git a/geopandas/tests/test_array.py b/geopandas/tests/test_array.py index 885f92d..42023cd 100644 --- a/geopandas/tests/test_array.py +++ b/geopandas/tests/test_array.py @@ -205,12 +205,14 @@ def test_from_wkt(string_type): L_wkt = [f(p.wkt) for p in points_no_missing] res = from_wkt(L_wkt) assert isinstance(res, GeometryArray) - assert all(v.almost_equals(t) for v, t in zip(res, points_no_missing)) + tol = 0.5 * 10 ** (-6) + assert all(v.equals_exact(t, tolerance=tol) for v, t in zip(res, points_no_missing)) + assert all(v.equals_exact(t, tolerance=tol) for v, t in zip(res, points_no_missing)) # array res = from_wkt(np.array(L_wkt, dtype=object)) assert isinstance(res, GeometryArray) - assert all(v.almost_equals(t) for v, t in zip(res, points_no_missing)) + assert all(v.equals_exact(t, tolerance=tol) for v, t in zip(res, points_no_missing)) # missing values # TODO(pygeos) does not support empty strings, np.nan, or pd.NA @@ -340,19 +342,6 @@ def test_predicates_vector_vector(attr, args): assert result.tolist() == expected -@pytest.mark.parametrize( - "attr,args", [("equals_exact", (0.1,)), ("almost_equals", (3,))] -) -def test_equals_deprecation(attr, args): - point = points[0] - tri = triangles[0] - - for other in [point, tri, shapely.geometry.Polygon()]: - with pytest.warns(FutureWarning): - result = getattr(T, attr)(other, *args) - assert result.tolist() == getattr(T, "geom_" + attr)(other, *args).tolist() - - @pytest.mark.parametrize( "attr", [ From 3d53170d4c77ce861fbfcb9f9e900dd2ef596ed1 Mon Sep 17 00:00:00 2001 From: Matt Richards <45483497+m-richards@users.noreply.github.com> Date: Sun, 9 Jan 2022 23:50:52 +1000 Subject: [PATCH 287/316] TST: fix test_value_counts test for pandas 1.4 (#2289) --- geopandas/_compat.py | 1 + geopandas/tests/test_pandas_methods.py | 19 +++++++++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/geopandas/_compat.py b/geopandas/_compat.py index e5ac045..000db2a 100644 --- a/geopandas/_compat.py +++ b/geopandas/_compat.py @@ -19,6 +19,7 @@ PANDAS_GE_10 = str(pd.__version__) >= LooseVersion("1.0.0") PANDAS_GE_11 = str(pd.__version__) >= LooseVersion("1.1.0") PANDAS_GE_115 = str(pd.__version__) >= LooseVersion("1.1.5") PANDAS_GE_12 = str(pd.__version__) >= LooseVersion("1.2.0") +PANDAS_GE_14 = str(pd.__version__) >= LooseVersion("1.4.0") # ----------------------------------------------------------------------------- diff --git a/geopandas/tests/test_pandas_methods.py b/geopandas/tests/test_pandas_methods.py index 709ad3d..ed080af 100644 --- a/geopandas/tests/test_pandas_methods.py +++ b/geopandas/tests/test_pandas_methods.py @@ -445,33 +445,44 @@ def test_unique(): assert_array_equal(s.unique(), exp) +def pd14_compat_index(index): + if compat.PANDAS_GE_14: + return from_shapely(index) + else: + return index + + def test_value_counts(): # each object is considered unique s = GeoSeries([Point(0, 0), Point(1, 1), Point(0, 0)]) res = s.value_counts() with compat.ignore_shapely2_warnings(): - exp = pd.Series([2, 1], index=[Point(0, 0), Point(1, 1)]) + exp = pd.Series([2, 1], index=pd14_compat_index([Point(0, 0), Point(1, 1)])) assert_series_equal(res, exp) # Check crs doesn't make a difference - note it is not kept in output index anyway s2 = GeoSeries([Point(0, 0), Point(1, 1), Point(0, 0)], crs="EPSG:4326") res2 = s2.value_counts() assert_series_equal(res2, exp) + if compat.PANDAS_GE_14: + # TODO should/ can we fix CRS being lost + assert s2.value_counts().index.array.crs is None # check mixed geometry s3 = GeoSeries([Point(0, 0), LineString([[1, 1], [2, 2]]), Point(0, 0)]) res3 = s3.value_counts() + index = pd14_compat_index([Point(0, 0), LineString([[1, 1], [2, 2]])]) with compat.ignore_shapely2_warnings(): - exp3 = pd.Series([2, 1], index=[Point(0, 0), LineString([[1, 1], [2, 2]])]) + exp3 = pd.Series([2, 1], index=index) assert_series_equal(res3, exp3) # check None is handled s4 = GeoSeries([Point(0, 0), None, Point(0, 0)]) res4 = s4.value_counts(dropna=True) with compat.ignore_shapely2_warnings(): - exp4_dropna = pd.Series([2], index=[Point(0, 0)]) + exp4_dropna = pd.Series([2], index=pd14_compat_index([Point(0, 0)])) assert_series_equal(res4, exp4_dropna) with compat.ignore_shapely2_warnings(): - exp4_keepna = pd.Series([2, 1], index=[Point(0, 0), None]) + exp4_keepna = pd.Series([2, 1], index=pd14_compat_index([Point(0, 0), None])) res4_keepna = s4.value_counts(dropna=False) assert_series_equal(res4_keepna, exp4_keepna) From 8e7133aef9e6c0d2465e07e92d954e95dedd3881 Mon Sep 17 00:00:00 2001 From: Will Schlitzer Date: Mon, 10 Jan 2022 14:01:52 +0000 Subject: [PATCH 288/316] DOC: Update copyright year to 2022 in conf.py (#2293) --- doc/source/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/conf.py b/doc/source/conf.py index 443c28e..3ce5df8 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -86,7 +86,7 @@ master_doc = "index" # General information about the project. project = u"GeoPandas" -copyright = u"2013–2021, GeoPandas developers" +copyright = u"2013–2022, GeoPandas developers" # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the From 4275136827bc171bd76f7d17df85be557b0180d9 Mon Sep 17 00:00:00 2001 From: James McBride Date: Wed, 12 Jan 2022 10:55:31 -0800 Subject: [PATCH 289/316] BUG: Handle case where legend=True and missing_kwds for categorical (#2281) * Handle missing_kwds when no missing data * Add basic test that plotting with missing_kwds works * Improve test of categorical missing_kwds case Need legend=True for a categorical variable where no missing data. --- geopandas/plotting.py | 5 +++-- geopandas/tests/test_plotting.py | 8 +++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/geopandas/plotting.py b/geopandas/plotting.py index e17a4a3..ba6ef8a 100644 --- a/geopandas/plotting.py +++ b/geopandas/plotting.py @@ -860,7 +860,8 @@ GON (((-122.84000 49.00000, -120.0000... **style_kwds, ) - if missing_kwds is not None and not expl_series[nan_idx].empty: + missing_data = not expl_series[nan_idx].empty + if missing_kwds is not None and missing_data: if color: if "color" not in missing_kwds: missing_kwds["color"] = color @@ -902,7 +903,7 @@ GON (((-122.84000 49.00000, -120.0000... markeredgewidth=0, ) ) - if missing_kwds is not None: + if missing_kwds is not None and missing_data: if "color" in merged_kwds: merged_kwds["facecolor"] = merged_kwds["color"] patches.append( diff --git a/geopandas/tests/test_plotting.py b/geopandas/tests/test_plotting.py index d1d8851..5501687 100644 --- a/geopandas/tests/test_plotting.py +++ b/geopandas/tests/test_plotting.py @@ -404,7 +404,7 @@ class TestPointPlotting: ): self.df.plot(column="cats", categories=["cat1"]) - def test_misssing(self): + def test_missing(self): self.df.loc[0, "values"] = np.nan ax = self.df.plot("values") cmap = plt.get_cmap() @@ -428,6 +428,12 @@ class TestPointPlotting: np.testing.assert_array_equal(point_colors[0], leg_colors[0]) np.testing.assert_array_equal(nan_color[0], leg_colors1[0]) + def test_no_missing_and_missing_kwds(self): + # GH2210 + df = self.df.copy() + df["category"] = df["values"].astype("str") + df.plot("category", missing_kwds={"facecolor": "none"}, legend=True) + class TestPointZPlotting: def setup_method(self): From f35e4c07305d1247f850efdd05d91bb8c90ba2b4 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Fri, 14 Jan 2022 13:53:22 +0100 Subject: [PATCH 290/316] CI: test against pandas 1.4 release candidate (#2299) --- .github/workflows/tests.yaml | 5 ++++- ci/envs/{38-dev.yaml => 310-dev.yaml} | 2 +- ci/envs/39-rc.yaml | 31 +++++++++++++++++++++++++++ 3 files changed, 36 insertions(+), 2 deletions(-) rename ci/envs/{38-dev.yaml => 310-dev.yaml} (98%) create mode 100644 ci/envs/39-rc.yaml diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 6de9213..e86739a 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -60,7 +60,10 @@ jobs: os: windows-latest postgis: false dev: false - - env: ci/envs/38-dev.yaml + - env: ci/envs/39-rc.yaml + os: ubuntu-latest + dev: true + - env: ci/envs/310-dev.yaml os: ubuntu-latest dev: true diff --git a/ci/envs/38-dev.yaml b/ci/envs/310-dev.yaml similarity index 98% rename from ci/envs/38-dev.yaml rename to ci/envs/310-dev.yaml index 55cffde..abff1cf 100644 --- a/ci/envs/38-dev.yaml +++ b/ci/envs/310-dev.yaml @@ -2,7 +2,7 @@ name: test channels: - conda-forge dependencies: - - python=3.8 + - python=3.10 - cython # required - shapely diff --git a/ci/envs/39-rc.yaml b/ci/envs/39-rc.yaml new file mode 100644 index 0000000..8b080a5 --- /dev/null +++ b/ci/envs/39-rc.yaml @@ -0,0 +1,31 @@ +name: test +channels: + - conda-forge +dependencies: + - python=3.9 + - cython + # required + - shapely + - fiona + - pyproj + # testing + - pytest + - pytest-cov + - pytest-xdist + - fsspec + # optional + - rtree + - matplotlib-base + - mapclassify + - folium + - xyzservices + - scipy + - geopy + #- geopy + - SQLalchemy + - libspatialite + - pyarrow + - pip + - pip: + # dev versions of packages + - git+https://github.com/pydata/pandas.git@1.4.x From d01d99b3684a04f98c22fca916b42dd5e23ca57e Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Fri, 14 Jan 2022 14:22:16 +0100 Subject: [PATCH 291/316] CI: diversify pandas versions in the test environments (#2300) --- ci/envs/38-latest-conda-forge.yaml | 2 +- ci/envs/39-latest-conda-forge.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/envs/38-latest-conda-forge.yaml b/ci/envs/38-latest-conda-forge.yaml index cf84fcf..340d4b8 100644 --- a/ci/envs/38-latest-conda-forge.yaml +++ b/ci/envs/38-latest-conda-forge.yaml @@ -4,7 +4,7 @@ channels: dependencies: - python=3.8 # required - - pandas=1.3.2 # temporary pin because 1.3.3 has regression for overlay (GH2101) + - pandas=1.2 - shapely - fiona - pyproj diff --git a/ci/envs/39-latest-conda-forge.yaml b/ci/envs/39-latest-conda-forge.yaml index 05825b2..7479560 100644 --- a/ci/envs/39-latest-conda-forge.yaml +++ b/ci/envs/39-latest-conda-forge.yaml @@ -4,7 +4,7 @@ channels: dependencies: - python=3.9 # required - - pandas + - pandas=1.3 - shapely - fiona - pyproj From 86b0b9dec6b7e8210f3cbc801c56ace67fdbc739 Mon Sep 17 00:00:00 2001 From: Martina Oefelein Date: Mon, 17 Jan 2022 19:28:08 +0100 Subject: [PATCH 292/316] DOC: Document full capabilities of aggfunc argument (#2303) * Document full capabilities of aggfunc argument Resolves #2302 * Apply black formatting Co-authored-by: Martin Fleischmann Co-authored-by: Martin Fleischmann --- .../user_guide/aggregation_with_dissolve.rst | 22 +++++++++++++++++++ geopandas/geodataframe.py | 5 +++++ 2 files changed, 27 insertions(+) diff --git a/doc/source/docs/user_guide/aggregation_with_dissolve.rst b/doc/source/docs/user_guide/aggregation_with_dissolve.rst index f6952dd..c8a10cd 100644 --- a/doc/source/docs/user_guide/aggregation_with_dissolve.rst +++ b/doc/source/docs/user_guide/aggregation_with_dissolve.rst @@ -75,3 +75,25 @@ However it also accepts other summary statistic options as allowed by :meth:`pan * 'sum' * 'mean' * 'median' +* function +* string function name +* list of functions and/or function names, e.g. [np.sum, 'mean'] +* dict of axis labels -> functions, function names or list of such. + +For example, to get the number of contries on each continent, +as well as the populations of the largest and smallest country of each, +we can aggregate the ``'name'`` column using ``'count'``, +and the ``'pop_est'`` column using ``'min'`` and ``'max'``: + +.. ipython:: python + + world = geopandas.read_file(geopandas.datasets.get_path("naturalearth_lowres")) + continents = world.dissolve( + by="continent", + aggfunc={ + "name": "count", + "pop_est": ["min", "max"], + }, + ) + + continents.head() \ No newline at end of file diff --git a/geopandas/geodataframe.py b/geopandas/geodataframe.py index e29b221..9377697 100644 --- a/geopandas/geodataframe.py +++ b/geopandas/geodataframe.py @@ -1476,6 +1476,11 @@ individually so that features may have different properties aggfunc : function or string, default "first" Aggregation function for manipulation of data associated with each group. Passed to pandas `groupby.agg` method. + Accepted combinations are: + - function + - string function name + - list of functions and/or function names, e.g. [np.sum, 'mean'] + - dict of axis labels -> functions, function names or list of such. as_index : boolean, default True If true, groupby columns become index of result. level : int or str or sequence of int or sequence of str, default None From ca6193374672ac4edd38a74f3e83ae6a496a5098 Mon Sep 17 00:00:00 2001 From: readthedocs-assistant <96542097+readthedocs-assistant@users.noreply.github.com> Date: Wed, 19 Jan 2022 21:29:33 +0100 Subject: [PATCH 293/316] Update Read the Docs configuration (automatic) (#2309) --- readthedocs.yml | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/readthedocs.yml b/readthedocs.yml index 6e71009..af979a2 100644 --- a/readthedocs.yml +++ b/readthedocs.yml @@ -1,9 +1,12 @@ version: 2 -formats: [] -conda: - environment: doc/environment.yml +build: + os: ubuntu-20.04 + tools: + python: mambaforge-4.10 python: - version: 3 - install: - - method: pip - path: . + install: + - method: pip + path: . +conda: + environment: doc/environment.yml +formats: [] From ec4a35e9ab3b748a5ee79b4b9bbcb193dbdda6d3 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Wed, 19 Jan 2022 21:30:41 +0100 Subject: [PATCH 294/316] DOC: fixup rst formatting in dissolve docstring (#2307) --- geopandas/geodataframe.py | 1 + 1 file changed, 1 insertion(+) diff --git a/geopandas/geodataframe.py b/geopandas/geodataframe.py index 9377697..25c2793 100644 --- a/geopandas/geodataframe.py +++ b/geopandas/geodataframe.py @@ -1477,6 +1477,7 @@ individually so that features may have different properties Aggregation function for manipulation of data associated with each group. Passed to pandas `groupby.agg` method. Accepted combinations are: + - function - string function name - list of functions and/or function names, e.g. [np.sum, 'mean'] From 41d900e29f31bae1928fb6d2f56b00ac3d28d59f Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Wed, 19 Jan 2022 21:31:40 +0100 Subject: [PATCH 295/316] TST: test groupby apply with function that requires GeoDataFrame attributes (#2298) --- geopandas/_compat.py | 1 + geopandas/tests/test_pandas_methods.py | 38 ++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/geopandas/_compat.py b/geopandas/_compat.py index 000db2a..f233eee 100644 --- a/geopandas/_compat.py +++ b/geopandas/_compat.py @@ -19,6 +19,7 @@ PANDAS_GE_10 = str(pd.__version__) >= LooseVersion("1.0.0") PANDAS_GE_11 = str(pd.__version__) >= LooseVersion("1.1.0") PANDAS_GE_115 = str(pd.__version__) >= LooseVersion("1.1.5") PANDAS_GE_12 = str(pd.__version__) >= LooseVersion("1.2.0") +PANDAS_GE_13 = str(pd.__version__) >= LooseVersion("1.3.0") PANDAS_GE_14 = str(pd.__version__) >= LooseVersion("1.4.0") diff --git a/geopandas/tests/test_pandas_methods.py b/geopandas/tests/test_pandas_methods.py index ed080af..c6d0420 100644 --- a/geopandas/tests/test_pandas_methods.py +++ b/geopandas/tests/test_pandas_methods.py @@ -558,6 +558,44 @@ def test_groupby_groups(df): assert_frame_equal(res, exp) +@pytest.mark.skipif( + compat.PANDAS_GE_13 and not compat.PANDAS_GE_14, + reason="this was broken in pandas 1.3.5 (GH-2294)", +) +@pytest.mark.parametrize("crs", [None, "EPSG:4326"]) +def test_groupby_metadata(crs): + # https://github.com/geopandas/geopandas/issues/2294 + df = GeoDataFrame( + { + "geometry": [Point(0, 0), Point(1, 1), Point(0, 0)], + "value1": np.arange(3, dtype="int64"), + "value2": np.array([1, 2, 1], dtype="int64"), + }, + crs=crs, + ) + + # dummy test asserting we can access the crs + def func(group): + assert isinstance(group, GeoDataFrame) + assert group.crs == crs + + df.groupby("value2").apply(func) + + # actual test with functionality + res = df.groupby("value2").apply( + lambda x: geopandas.sjoin(x, x[["geometry", "value1"]], how="inner") + ) + + expected = ( + df.take([0, 2, 0, 2, 1]) + .set_index("value2", drop=False, append=True) + .swaplevel() + .rename(columns={"value1": "value1_left"}) + .assign(value1_right=[0, 0, 2, 2, 1]) + ) + assert_geodataframe_equal(res.drop(columns=["index_right"]), expected) + + def test_apply(s): # function that returns geometry preserves GeoSeries class def geom_func(geom): From c8d23f1158018a856b4af659c65aae0c9f5b8805 Mon Sep 17 00:00:00 2001 From: Nathan Lis <42682122+wxman22@users.noreply.github.com> Date: Wed, 19 Jan 2022 15:36:37 -0500 Subject: [PATCH 296/316] DOC: contributing guide: point users to environment file to install deps (#2284) --- doc/source/community/contributing.rst | 31 +++++++++++++++++---- environment-dev.yml | 40 ++++++++++++++++----------- 2 files changed, 50 insertions(+), 21 deletions(-) diff --git a/doc/source/community/contributing.rst b/doc/source/community/contributing.rst index dfae1e1..21444db 100644 --- a/doc/source/community/contributing.rst +++ b/doc/source/community/contributing.rst @@ -155,7 +155,23 @@ An easy way to create a *GeoPandas* development environment is as follows: - Make sure that you have :ref:`cloned the repository ` - ``cd`` to the *geopandas** source directory -Tell conda to create a new environment, named ``geopandas_dev``, or any other name you would like +Using the provided environment +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +*GeoPandas* provides an environment which includes the required dependencies for development. +The environment file is located in the top level of the repo and is named ``environment-dev.yml``. +You can create this environment by navigating to the the *GeoPandas* source directory +and running:: + + conda env create -f environment-dev.yml + +This will create a new conda environment named ``geopandas_dev``. + +Creating the environment manually +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Alternatively, it is possible to create a development environment manually. To do this, +tell conda to create a new environment named ``geopandas_dev``, or any other name you would like for this environment, by running:: conda create -n geopandas_dev python @@ -163,6 +179,9 @@ for this environment, by running:: This will create the new environment, and not touch any of your existing environments, nor any existing python installation. +Working with the environment +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + To work in this environment, you need to ``activate`` it. The instructions below should work for both Windows, Mac and Linux:: @@ -183,12 +202,14 @@ See the full conda docs `here `__. At this point you can easily do a *development* install, as detailed in the next sections. + 3) Installing Dependencies -------------------------- To run *GeoPandas* in an development environment, you must first install -*GeoPandas*'s dependencies. We suggest doing so using the following commands -(executed after your development environment has been activated):: +*GeoPandas*'s dependencies. If you used the provided environment in section 2, skip this +step and continue to section 4. If you created the environment manually, we suggest installing +dependencies using the following commands (executed after your development environment has been activated):: conda install -c conda-forge pandas fiona shapely pyproj rtree pytest @@ -314,8 +335,8 @@ to auto-format your code. Additionally, many editors have plugins that will apply ``black`` as you edit files. Optionally (but recommended), you can setup `pre-commit hooks `_ -to automatically run ``black`` and ``flake8`` when you make a git commit. This -can be done by installing ``pre-commit``:: +to automatically run ``black`` and ``flake8`` when you make a git commit. If you did not +use the provided development environment in ``environment-dev.yml``, you must first install ``pre-commit``:: $ python -m pip install pre-commit diff --git a/environment-dev.yml b/environment-dev.yml index 8b619a9..b3413e2 100644 --- a/environment-dev.yml +++ b/environment-dev.yml @@ -2,31 +2,39 @@ name: geopandas-dev channels: - conda-forge dependencies: + - python # required - fiona>=1.8 - pandas>=0.25 + - pygeos - pyproj>=2.2.0 - shapely>=1.6 - - # geodatabase access - - psycopg2>=2.5.1 - - SQLAlchemy>=0.8.3 - - # geocoding - - geopy - - # plotting - - matplotlib>=2.2 - - mapclassify - # testing - pytest>=3.1.0 - pytest-cov + - pytest-xdist + - fsspec - codecov - - # spatial access methods - - rtree>=0.8 - # styling - black - pre-commit + + # optional + - folium + - xyzservices + - scipy + - libspatialite + - geoalchemy2 + - pyarrow + # doctest testing + - pytest-doctestplus + # geocoding + - geopy + # geodatabase access + - psycopg2>=2.5.1 + - SQLAlchemy>=0.8.3 + # plotting + - matplotlib>=2.2 + - mapclassify + # spatial access methods + - rtree>=0.8 From 4346120b5e3987d7b6a5e0dc35d2ca11a3672638 Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Wed, 19 Jan 2022 21:33:48 +0000 Subject: [PATCH 297/316] REF: replace deprecated distutils LooseVersion with packaging parse (#2084) --- README.md | 1 + ci/envs/310-dev.yaml | 1 + ci/envs/310-latest-conda-forge.yaml | 1 + ci/envs/37-latest-conda-forge.yaml | 2 +- ci/envs/37-latest-defaults.yaml | 1 + ci/envs/37-minimal.yaml | 1 + ci/envs/37-pd10.yaml | 1 + ci/envs/38-latest-conda-forge.yaml | 3 ++- ci/envs/38-no-optional-deps.yaml | 1 + ci/envs/39-latest-conda-forge.yaml | 1 + ci/envs/39-rc.yaml | 1 + doc/environment.yml | 1 + doc/source/getting_started/install.rst | 3 +++ environment-dev.yml | 2 ++ environment.yml | 1 + geopandas/_compat.py | 34 +++++++++++++------------- geopandas/io/arrow.py | 8 +++--- geopandas/io/file.py | 4 +-- geopandas/io/tests/test_arrow.py | 10 ++++---- geopandas/io/tests/test_file.py | 4 +-- geopandas/io/tests/test_pickle.py | 4 +-- geopandas/plotting.py | 8 +++--- geopandas/tests/test_crs.py | 4 +-- geopandas/tests/test_explore.py | 4 +-- geopandas/tests/test_geodataframe.py | 6 ++--- geopandas/tests/test_overlay.py | 4 +-- geopandas/tests/test_plotting.py | 6 ++--- geopandas/tools/tests/test_clip.py | 4 +-- geopandas/tools/tests/test_sjoin.py | 4 +-- geopandas/tools/tests/test_tools.py | 4 +-- requirements-dev.txt | 1 + setup.py | 1 + 32 files changed, 75 insertions(+), 56 deletions(-) diff --git a/README.md b/README.md index 226e2f0..b66c11f 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,7 @@ for all details. GeoPandas depends on the following packages: - ``shapely`` - ``fiona`` - ``pyproj`` +- ``packaging`` Further, ``matplotlib`` is an optional dependency, required for plotting, and [``rtree``](https://github.com/Toblerity/rtree) is an optional diff --git a/ci/envs/310-dev.yaml b/ci/envs/310-dev.yaml index abff1cf..52575db 100644 --- a/ci/envs/310-dev.yaml +++ b/ci/envs/310-dev.yaml @@ -9,6 +9,7 @@ dependencies: - fiona - pyproj - geos + - packaging # testing - pytest - pytest-cov diff --git a/ci/envs/310-latest-conda-forge.yaml b/ci/envs/310-latest-conda-forge.yaml index b6c94f8..eb4fe0c 100644 --- a/ci/envs/310-latest-conda-forge.yaml +++ b/ci/envs/310-latest-conda-forge.yaml @@ -9,6 +9,7 @@ dependencies: - fiona - pyproj - pygeos + - packaging # testing - pytest - pytest-cov diff --git a/ci/envs/37-latest-conda-forge.yaml b/ci/envs/37-latest-conda-forge.yaml index d9f37ab..dadd2c4 100644 --- a/ci/envs/37-latest-conda-forge.yaml +++ b/ci/envs/37-latest-conda-forge.yaml @@ -9,6 +9,7 @@ dependencies: - fiona - pyproj - pygeos + - packaging # testing - pytest - pytest-cov @@ -25,4 +26,3 @@ dependencies: - SQLalchemy - libspatialite - pyarrow - diff --git a/ci/envs/37-latest-defaults.yaml b/ci/envs/37-latest-defaults.yaml index 7a9a1fb..071d3ea 100644 --- a/ci/envs/37-latest-defaults.yaml +++ b/ci/envs/37-latest-defaults.yaml @@ -9,6 +9,7 @@ dependencies: - fiona - pyproj - geos + - packaging # testing - pytest - pytest-cov diff --git a/ci/envs/37-minimal.yaml b/ci/envs/37-minimal.yaml index 97fe978..5fd0714 100644 --- a/ci/envs/37-minimal.yaml +++ b/ci/envs/37-minimal.yaml @@ -9,6 +9,7 @@ dependencies: - pandas==0.25 - shapely=1.6 - fiona=1.8.13 + - packaging #- pyproj # testing - pytest diff --git a/ci/envs/37-pd10.yaml b/ci/envs/37-pd10.yaml index a42aee3..83cfb24 100644 --- a/ci/envs/37-pd10.yaml +++ b/ci/envs/37-pd10.yaml @@ -10,6 +10,7 @@ dependencies: - numpy=<1.19 #- pyproj - geos + - packaging # testing - pytest - pytest-cov diff --git a/ci/envs/38-latest-conda-forge.yaml b/ci/envs/38-latest-conda-forge.yaml index 340d4b8..6d2348f 100644 --- a/ci/envs/38-latest-conda-forge.yaml +++ b/ci/envs/38-latest-conda-forge.yaml @@ -9,6 +9,7 @@ dependencies: - fiona - pyproj - pygeos + - packaging # testing - pytest - pytest-cov @@ -30,4 +31,4 @@ dependencies: - geoalchemy2 - pyarrow # doctest testing - - pytest-doctestplus \ No newline at end of file + - pytest-doctestplus diff --git a/ci/envs/38-no-optional-deps.yaml b/ci/envs/38-no-optional-deps.yaml index d1d3f0c..7261cc6 100644 --- a/ci/envs/38-no-optional-deps.yaml +++ b/ci/envs/38-no-optional-deps.yaml @@ -8,6 +8,7 @@ dependencies: - shapely - fiona - pyproj + - packaging # testing - pytest - pytest-cov diff --git a/ci/envs/39-latest-conda-forge.yaml b/ci/envs/39-latest-conda-forge.yaml index 7479560..49c7f64 100644 --- a/ci/envs/39-latest-conda-forge.yaml +++ b/ci/envs/39-latest-conda-forge.yaml @@ -9,6 +9,7 @@ dependencies: - fiona - pyproj - pygeos + - packaging # testing - pytest - pytest-cov diff --git a/ci/envs/39-rc.yaml b/ci/envs/39-rc.yaml index 8b080a5..83dbb4b 100644 --- a/ci/envs/39-rc.yaml +++ b/ci/envs/39-rc.yaml @@ -8,6 +8,7 @@ dependencies: - shapely - fiona - pyproj + - packaging # testing - pytest - pytest-cov diff --git a/doc/environment.yml b/doc/environment.yml index 25fc07e..bd8b4ae 100644 --- a/doc/environment.yml +++ b/doc/environment.yml @@ -39,6 +39,7 @@ dependencies: - libpysal=4.5.1 - pygeos=0.10.2 - xyzservices=2021.9.1 + - packaging=21.0 - pip - pip: - sphinx-toggleprompt diff --git a/doc/source/getting_started/install.rst b/doc/source/getting_started/install.rst index 2f65ad7..a9b889d 100644 --- a/doc/source/getting_started/install.rst +++ b/doc/source/getting_started/install.rst @@ -142,6 +142,7 @@ Required dependencies: - `shapely`_ (interface to `GEOS`_) - `fiona`_ (interface to `GDAL`_) - `pyproj`_ (interface to `PROJ`_; version 2.2.0 or later) +- `packaging`_ Further, optional dependencies are: @@ -242,3 +243,5 @@ More specifically, whether the speedups are used or not is determined by: .. _PROJ: https://proj.org/ .. _PyGEOS: https://github.com/pygeos/pygeos/ + +.. _packaging: https://packaging.pypa.io/en/latest/ \ No newline at end of file diff --git a/environment-dev.yml b/environment-dev.yml index b3413e2..2487d60 100644 --- a/environment-dev.yml +++ b/environment-dev.yml @@ -9,6 +9,8 @@ dependencies: - pygeos - pyproj>=2.2.0 - shapely>=1.6 + - packaging + # testing - pytest>=3.1.0 - pytest-cov diff --git a/environment.yml b/environment.yml index e6fe56e..3bd63d1 100644 --- a/environment.yml +++ b/environment.yml @@ -18,3 +18,4 @@ dependencies: - rasterio - geoplot - folium + - packaging diff --git a/geopandas/_compat.py b/geopandas/_compat.py index f233eee..b9142e6 100644 --- a/geopandas/_compat.py +++ b/geopandas/_compat.py @@ -1,5 +1,5 @@ import contextlib -from distutils.version import LooseVersion +from packaging.version import Version import importlib import os import warnings @@ -15,12 +15,12 @@ import shapely.geos # pandas compat # ----------------------------------------------------------------------------- -PANDAS_GE_10 = str(pd.__version__) >= LooseVersion("1.0.0") -PANDAS_GE_11 = str(pd.__version__) >= LooseVersion("1.1.0") -PANDAS_GE_115 = str(pd.__version__) >= LooseVersion("1.1.5") -PANDAS_GE_12 = str(pd.__version__) >= LooseVersion("1.2.0") -PANDAS_GE_13 = str(pd.__version__) >= LooseVersion("1.3.0") -PANDAS_GE_14 = str(pd.__version__) >= LooseVersion("1.4.0") +PANDAS_GE_10 = Version(pd.__version__) >= Version("1.0.0") +PANDAS_GE_11 = Version(pd.__version__) >= Version("1.1.0") +PANDAS_GE_115 = Version(pd.__version__) >= Version("1.1.5") +PANDAS_GE_12 = Version(pd.__version__) >= Version("1.2.0") +PANDAS_GE_13 = Version(pd.__version__) >= Version("1.3.0") +PANDAS_GE_14 = Version(pd.__version__) >= Version("1.4.0rc0") # ----------------------------------------------------------------------------- @@ -28,9 +28,9 @@ PANDAS_GE_14 = str(pd.__version__) >= LooseVersion("1.4.0") # ----------------------------------------------------------------------------- -SHAPELY_GE_17 = str(shapely.__version__) >= LooseVersion("1.7.0") -SHAPELY_GE_18 = str(shapely.__version__) >= LooseVersion("1.8") -SHAPELY_GE_20 = str(shapely.__version__) >= LooseVersion("2.0") +SHAPELY_GE_17 = Version(shapely.__version__) >= Version("1.7.0") +SHAPELY_GE_18 = Version(shapely.__version__) >= Version("1.8") +SHAPELY_GE_20 = Version(shapely.__version__) >= Version("2.0") GEOS_GE_390 = shapely.geos.geos_version >= (3, 9, 0) @@ -49,10 +49,10 @@ try: import pygeos # noqa # only automatically use pygeos if version is high enough - if str(pygeos.__version__) >= LooseVersion("0.8"): + if Version(pygeos.__version__) >= Version("0.8"): HAS_PYGEOS = True - PYGEOS_GE_09 = str(pygeos.__version__) >= LooseVersion("0.9") - PYGEOS_GE_010 = str(pygeos.__version__) >= LooseVersion("0.10") + PYGEOS_GE_09 = Version(pygeos.__version__) >= Version("0.9") + PYGEOS_GE_010 = Version(pygeos.__version__) >= Version("0.10") else: warnings.warn( "The installed version of PyGEOS is too old ({0} installed, 0.8 required)," @@ -94,7 +94,7 @@ def set_use_pygeos(val=None): import pygeos # noqa # validate the pygeos version - if not str(pygeos.__version__) >= LooseVersion("0.8"): + if not Version(pygeos.__version__) >= Version("0.8"): raise ImportError( "PyGEOS >= 0.8 is required, version {0} is installed".format( pygeos.__version__ @@ -152,7 +152,7 @@ if shapely_warning is not None and not SHAPELY_GE_20: yield -elif (str(np.__version__) >= LooseVersion("1.21")) and not SHAPELY_GE_20: +elif (Version(np.__version__) >= Version("1.21")) and not SHAPELY_GE_20: @contextlib.contextmanager def ignore_shapely2_warnings(): @@ -226,5 +226,5 @@ except ImportError: # pyproj compat # ----------------------------------------------------------------------------- -PYPROJ_LT_3 = LooseVersion(pyproj.__version__) < LooseVersion("3") -PYPROJ_GE_31 = LooseVersion(pyproj.__version__) >= LooseVersion("3.1") +PYPROJ_LT_3 = Version(pyproj.__version__) < Version("3") +PYPROJ_GE_31 = Version(pyproj.__version__) >= Version("3.1") diff --git a/geopandas/io/arrow.py b/geopandas/io/arrow.py index 9aab7c3..857b82f 100644 --- a/geopandas/io/arrow.py +++ b/geopandas/io/arrow.py @@ -1,4 +1,4 @@ -from distutils.version import LooseVersion +from packaging.version import Version import json import warnings @@ -288,7 +288,7 @@ def _to_feather(df, path, index=None, compression=None, **kwargs): # TODO move this into `import_optional_dependency` import pyarrow - if pyarrow.__version__ < LooseVersion("0.17.0"): + if Version(pyarrow.__version__) < Version("0.17.0"): raise ImportError("pyarrow >= 0.17 required for Feather support") path = _expand_user(path) @@ -361,7 +361,7 @@ def _get_filesystem_path(path, filesystem=None, storage_options=None): isinstance(path, str) and storage_options is None and filesystem is None - and LooseVersion(pyarrow.__version__) >= "5.0.0" + and Version(pyarrow.__version__) >= Version("5.0.0") ): # Use the native pyarrow filesystem if possible. try: @@ -513,7 +513,7 @@ def _read_feather(path, columns=None, **kwargs): # TODO move this into `import_optional_dependency` import pyarrow - if pyarrow.__version__ < LooseVersion("0.17.0"): + if Version(pyarrow.__version__) < Version("0.17.0"): raise ImportError("pyarrow >= 0.17 required for Feather support") path = _expand_user(path) diff --git a/geopandas/io/file.py b/geopandas/io/file.py index a4c9e55..423ca86 100644 --- a/geopandas/io/file.py +++ b/geopandas/io/file.py @@ -1,5 +1,5 @@ import os -from distutils.version import LooseVersion +from packaging.version import Version from pathlib import Path import warnings @@ -394,7 +394,7 @@ def _to_file( gdal_version = fiona.env.get_gdal_release_name() except AttributeError: gdal_version = "2.0.0" # just assume it is not the latest - if LooseVersion(gdal_version) >= LooseVersion("3.0.0") and crs: + if Version(gdal_version) >= Version("3.0.0") and crs: crs_wkt = crs.to_wkt() elif crs: crs_wkt = crs.to_wkt("WKT1_GDAL") diff --git a/geopandas/io/tests/test_arrow.py b/geopandas/io/tests/test_arrow.py index 4732599..438719e 100644 --- a/geopandas/io/tests/test_arrow.py +++ b/geopandas/io/tests/test_arrow.py @@ -1,6 +1,6 @@ from __future__ import absolute_import -from distutils.version import LooseVersion +from packaging.version import Version import os import pytest @@ -38,7 +38,7 @@ pytestmark = pytest.mark.filterwarnings("ignore:.*initial implementation of Parq pytest.param( "feather", marks=pytest.mark.skipif( - pyarrow.__version__ < LooseVersion("0.17.0"), + Version(pyarrow.__version__) < Version("0.17.0"), reason="needs pyarrow >= 0.17", ), ), @@ -271,7 +271,7 @@ def test_parquet_compression(compression, tmpdir): @pytest.mark.skipif( - pyarrow.__version__ < LooseVersion("0.17.0"), + Version(pyarrow.__version__) < Version("0.17.0"), reason="Feather only supported for pyarrow >= 0.17", ) @pytest.mark.parametrize("compression", ["uncompressed", "lz4", "zstd"]) @@ -489,7 +489,7 @@ def test_missing_crs(tmpdir, file_format): @pytest.mark.skipif( - pyarrow.__version__ >= LooseVersion("0.17.0"), + Version(pyarrow.__version__) >= Version("0.17.0"), reason="Feather only supported for pyarrow >= 0.17", ) def test_feather_arrow_version(tmpdir): @@ -536,7 +536,7 @@ def test_non_fsspec_url_with_storage_options_raises(): @pytest.mark.skipif( - pyarrow.__version__ < LooseVersion("5.0.0"), + Version(pyarrow.__version__) < Version("5.0.0"), reason="pyarrow.fs requires pyarrow>=5.0.0", ) def test_prefers_pyarrow_fs(): diff --git a/geopandas/io/tests/test_file.py b/geopandas/io/tests/test_file.py index 7c13d11..16f2678 100644 --- a/geopandas/io/tests/test_file.py +++ b/geopandas/io/tests/test_file.py @@ -1,6 +1,6 @@ from collections import OrderedDict import datetime -from distutils.version import LooseVersion +from packaging.version import Version import io import os import pathlib @@ -24,7 +24,7 @@ from geopandas.tests.util import PACKAGE_DIR, validate_boro_df import pytest -FIONA_GE_1814 = str(fiona.__version__) >= LooseVersion("1.8.14") # datetime roundtrip +FIONA_GE_1814 = Version(fiona.__version__) >= Version("1.8.14") # datetime roundtrip _CRS = "epsg:4326" diff --git a/geopandas/io/tests/test_pickle.py b/geopandas/io/tests/test_pickle.py index bd27ada..85bbcba 100644 --- a/geopandas/io/tests/test_pickle.py +++ b/geopandas/io/tests/test_pickle.py @@ -3,7 +3,7 @@ See generate_legacy_storage_files.py for the creation of the legacy files. """ from contextlib import contextmanager -from distutils.version import LooseVersion +from packaging.version import Version import glob import os import pathlib @@ -48,7 +48,7 @@ def with_use_pygeos(option): @pytest.mark.skipif( - compat.USE_PYGEOS or (str(pyproj.__version__) < LooseVersion("2.4")), + compat.USE_PYGEOS or (Version(pyproj.__version__) < Version("2.4")), reason=( "pygeos-based unpickling currently only works for pygeos-written files; " "old pyproj versions can't read pickles from newer pyproj versions" diff --git a/geopandas/plotting.py b/geopandas/plotting.py index ba6ef8a..603b8b8 100644 --- a/geopandas/plotting.py +++ b/geopandas/plotting.py @@ -6,7 +6,7 @@ from pandas.plotting import PlotAccessor import geopandas -from distutils.version import LooseVersion +from packaging.version import Version from ._decorator import doc @@ -70,8 +70,8 @@ def _expand_kwargs(kwargs, multiindex): from matplotlib.colors import is_color_like from typing import Iterable - mpl = matplotlib.__version__ - if mpl >= LooseVersion("3.4") or (mpl > LooseVersion("3.3.2") and "+" in mpl): + mpl = Version(matplotlib.__version__) + if mpl >= Version("3.4") or (mpl > Version("3.3.2") and "+" in mpl): # alpha is supported as array argument with matplotlib 3.4+ scalar_kwargs = ["marker", "path_effects"] else: @@ -737,7 +737,7 @@ GON (((-122.84000 49.00000, -120.0000... except ImportError: raise ImportError(mc_err) - if mapclassify.__version__ < LooseVersion("2.4.0"): + if Version(mapclassify.__version__) < Version("2.4.0"): raise ImportError(mc_err) if classification_kwds is None: diff --git a/geopandas/tests/test_crs.py b/geopandas/tests/test_crs.py index ca237b0..b7be666 100644 --- a/geopandas/tests/test_crs.py +++ b/geopandas/tests/test_crs.py @@ -1,4 +1,4 @@ -from distutils.version import LooseVersion +from packaging.version import Version import os import random @@ -18,7 +18,7 @@ import pytest # pyproj 2.3.1 fixed a segfault for the case working in an environment with # 'init' dicts (https://github.com/pyproj4/pyproj/issues/415) -PYPROJ_LT_231 = LooseVersion(pyproj.__version__) < LooseVersion("2.3.1") +PYPROJ_LT_231 = Version(pyproj.__version__) < Version("2.3.1") def _create_df(x, y=None, crs=None): diff --git a/geopandas/tests/test_explore.py b/geopandas/tests/test_explore.py index 25a34fb..b95d096 100644 --- a/geopandas/tests/test_explore.py +++ b/geopandas/tests/test_explore.py @@ -2,7 +2,7 @@ import geopandas as gpd import numpy as np import pandas as pd import pytest -from distutils.version import LooseVersion +from packaging.version import Version folium = pytest.importorskip("folium") branca = pytest.importorskip("branca") @@ -13,7 +13,7 @@ import matplotlib.cm as cm # noqa import matplotlib.colors as colors # noqa from branca.colormap import StepColormap # noqa -BRANCA_05 = str(branca.__version__) > LooseVersion("0.4.2") +BRANCA_05 = Version(branca.__version__) > Version("0.4.2") class TestExplore: diff --git a/geopandas/tests/test_geodataframe.py b/geopandas/tests/test_geodataframe.py index 120ffb3..ef35434 100644 --- a/geopandas/tests/test_geodataframe.py +++ b/geopandas/tests/test_geodataframe.py @@ -2,7 +2,7 @@ import json import os import shutil import tempfile -from distutils.version import LooseVersion +from packaging.version import Version import numpy as np import pandas as pd @@ -24,9 +24,9 @@ from pandas.testing import assert_frame_equal, assert_index_equal, assert_series import pytest -PYPROJ_LT_3 = LooseVersion(pyproj.__version__) < LooseVersion("3") +PYPROJ_LT_3 = Version(pyproj.__version__) < Version("3") TEST_NEAREST = compat.PYGEOS_GE_010 and compat.USE_PYGEOS -pandas_133 = pd.__version__ == LooseVersion("1.3.3") +pandas_133 = Version(pd.__version__) == Version("1.3.3") @pytest.fixture diff --git a/geopandas/tests/test_overlay.py b/geopandas/tests/test_overlay.py index f145893..14ea914 100644 --- a/geopandas/tests/test_overlay.py +++ b/geopandas/tests/test_overlay.py @@ -1,5 +1,5 @@ import os -from distutils.version import LooseVersion +from packaging.version import Version import numpy as np import pandas as pd @@ -18,7 +18,7 @@ DATA = os.path.join(os.path.abspath(os.path.dirname(__file__)), "data", "overlay pytestmark = pytest.mark.skip_no_sindex -pandas_133 = pd.__version__ == LooseVersion("1.3.3") +pandas_133 = Version(pd.__version__) == Version("1.3.3") @pytest.fixture diff --git a/geopandas/tests/test_plotting.py b/geopandas/tests/test_plotting.py index 5501687..d2cac73 100644 --- a/geopandas/tests/test_plotting.py +++ b/geopandas/tests/test_plotting.py @@ -1,4 +1,4 @@ -from distutils.version import LooseVersion +from packaging.version import Version import itertools import warnings @@ -33,7 +33,7 @@ import matplotlib.pyplot as plt # noqa try: # skipif and importorskip do not work for decorators from matplotlib.testing.decorators import check_figures_equal - if matplotlib.__version__ >= LooseVersion("3.3.0"): + if Version(matplotlib.__version__) >= Version("3.3.0"): MPL_DECORATORS = True else: @@ -1843,7 +1843,7 @@ def _get_ax(fig, label): Previously, we did `fig.axes[1]`, but in matplotlib 3.4 the order switched and the colorbar ax was first and subplot ax second. """ - if matplotlib.__version__ < LooseVersion("3.0.0"): + if Version(matplotlib.__version__) < Version("3.0.0"): if label == "": return fig.axes[1] elif label == "": diff --git a/geopandas/tools/tests/test_clip.py b/geopandas/tools/tests/test_clip.py index f71ed39..8076747 100644 --- a/geopandas/tools/tests/test_clip.py +++ b/geopandas/tools/tests/test_clip.py @@ -1,7 +1,7 @@ """Tests for the clip module.""" import warnings -from distutils.version import LooseVersion +from packaging.version import Version import numpy as np import pandas as pd @@ -24,7 +24,7 @@ import pytest pytestmark = pytest.mark.skip_no_sindex -pandas_133 = pd.__version__ == LooseVersion("1.3.3") +pandas_133 = Version(pd.__version__) == Version("1.3.3") @pytest.fixture diff --git a/geopandas/tools/tests/test_sjoin.py b/geopandas/tools/tests/test_sjoin.py index e7c6eae..c14367c 100644 --- a/geopandas/tools/tests/test_sjoin.py +++ b/geopandas/tools/tests/test_sjoin.py @@ -1,4 +1,4 @@ -from distutils.version import LooseVersion +from packaging.version import Version import math from typing import Sequence from geopandas.testing import assert_geodataframe_equal @@ -354,7 +354,7 @@ class TestSpatialJoin: exp.index.names = df2.index.names # GH 1364 fix of behaviour was done in pandas 1.1.0 - if predicate == "within" and str(pd.__version__) >= LooseVersion("1.1.0"): + if predicate == "within" and Version(pd.__version__) >= Version("1.1.0"): exp = exp.sort_index() assert_frame_equal(res, exp, check_index_type=False) diff --git a/geopandas/tools/tests/test_tools.py b/geopandas/tools/tests/test_tools.py index b7b9faf..7117a2a 100644 --- a/geopandas/tools/tests/test_tools.py +++ b/geopandas/tools/tests/test_tools.py @@ -1,4 +1,4 @@ -from distutils.version import LooseVersion +from packaging.version import Version from shapely.geometry import LineString, MultiPoint, Point import pyproj @@ -13,7 +13,7 @@ import pytest # pyproj 2.3.1 fixed a segfault for the case working in an environment with # 'init' dicts (https://github.com/pyproj4/pyproj/issues/415) -PYPROJ_LT_231 = LooseVersion(pyproj.__version__) < LooseVersion("2.3.1") +PYPROJ_LT_231 = Version(pyproj.__version__) < Version("2.3.1") class TestTools: diff --git a/requirements-dev.txt b/requirements-dev.txt index 07be51c..8adc89e 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -3,6 +3,7 @@ fiona>=1.8 pandas>=0.25 pyproj>=2.2.0 shapely>=1.6 +packaging # geodatabase access psycopg2>=2.5.1 diff --git a/setup.py b/setup.py index f029a5f..2a58918 100644 --- a/setup.py +++ b/setup.py @@ -34,6 +34,7 @@ else: "shapely >= 1.6", "fiona >= 1.8", "pyproj >= 2.2.0", + "packaging", ] # get all data dirs in the datasets module From cebb5873d04a81bf37376dfb5d4b2adcfe9d87af Mon Sep 17 00:00:00 2001 From: Matt Richards <45483497+m-richards@users.noreply.github.com> Date: Thu, 20 Jan 2022 19:18:46 +1000 Subject: [PATCH 298/316] REGR: fix bug in apply when returning a series (#2286) --- geopandas/geodataframe.py | 5 ++++- geopandas/tests/test_pandas_methods.py | 9 +++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/geopandas/geodataframe.py b/geopandas/geodataframe.py index 25c2793..f39f875 100644 --- a/geopandas/geodataframe.py +++ b/geopandas/geodataframe.py @@ -1408,7 +1408,10 @@ individually so that features may have different properties func, axis=axis, raw=raw, result_type=result_type, args=args, **kwargs ) # Reconstruct gdf if it was lost by apply - if self._geometry_column_name in result.columns: + if ( + isinstance(result, DataFrame) + and self._geometry_column_name in result.columns + ): # axis=1 apply will split GeometryDType to object, try and cast back try: result = result.set_geometry(self._geometry_column_name) diff --git a/geopandas/tests/test_pandas_methods.py b/geopandas/tests/test_pandas_methods.py index c6d0420..72dbcff 100644 --- a/geopandas/tests/test_pandas_methods.py +++ b/geopandas/tests/test_pandas_methods.py @@ -652,6 +652,15 @@ def test_apply_preserves_geom_col_name(df): assert result.geometry.name == "geom" +def test_df_apply_returning_series(df): + # https://github.com/geopandas/geopandas/issues/2283 + result = df.apply(lambda row: row.geometry, axis=1) + assert_geoseries_equal(result, df.geometry, check_crs=False) + + result = df.apply(lambda row: row.value1, axis=1) + assert_series_equal(result, df["value1"].rename(None)) + + @pytest.mark.skipif(not compat.PANDAS_GE_10, reason="attrs introduced in pandas 1.0") def test_preserve_attrs(df): # https://github.com/geopandas/geopandas/issues/1654 From ae4fe4d14cb7c0c2afc3b50feda2c96cf3f2b35b Mon Sep 17 00:00:00 2001 From: Matt Richards <45483497+m-richards@users.noreply.github.com> Date: Sun, 23 Jan 2022 19:14:53 +1000 Subject: [PATCH 299/316] CI: update use of deprecated iteritems to avoid warnings (#2316) --- geopandas/geoseries.py | 2 +- geopandas/testing.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/geopandas/geoseries.py b/geopandas/geoseries.py index 1f3bde6..5468718 100644 --- a/geopandas/geoseries.py +++ b/geopandas/geoseries.py @@ -913,7 +913,7 @@ class GeoSeries(GeoPandasBase, Series): index = [] geometries = [] - for idx, s in self.geometry.iteritems(): + for idx, s in self.geometry.items(): if s.type.startswith("Multi") or s.type == "GeometryCollection": geoms = s.geoms idxs = [(idx, i) for i in range(len(geoms))] diff --git a/geopandas/testing.py b/geopandas/testing.py index 0c89730..72ba71d 100644 --- a/geopandas/testing.py +++ b/geopandas/testing.py @@ -316,7 +316,7 @@ def assert_geodataframe_equal( ) # geometry comparison - for col, dtype in left.dtypes.iteritems(): + for col, dtype in left.dtypes.items(): if isinstance(dtype, GeometryDtype): assert_geoseries_equal( left[col], From ff9e9358c64c4fa3772f8222badef2d1927e3124 Mon Sep 17 00:00:00 2001 From: Martina Oefelein Date: Sun, 23 Jan 2022 10:37:55 +0100 Subject: [PATCH 300/316] TST: Fix first_dissolve not picked up by pytest (#2318) --- geopandas/tests/test_dissolve.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/geopandas/tests/test_dissolve.py b/geopandas/tests/test_dissolve.py index 20e628f..6e16523 100644 --- a/geopandas/tests/test_dissolve.py +++ b/geopandas/tests/test_dissolve.py @@ -71,7 +71,7 @@ def test_dissolve_retains_nonexisting_crs(nybb_polydf): assert test.crs is None -def first_dissolve(nybb_polydf, first): +def test_first_dissolve(nybb_polydf, first): test = nybb_polydf.dissolve("manhattan_bronx") assert_frame_equal(first, test, check_column_type=False) From 98940d843272843f929414e850c763bc7e992216 Mon Sep 17 00:00:00 2001 From: Martina Oefelein Date: Sun, 23 Jan 2022 10:41:07 +0100 Subject: [PATCH 301/316] BUG: Fix FutureWarning with multiple aggregations in dissolve (#2305) --- geopandas/geodataframe.py | 1 + geopandas/tests/test_dissolve.py | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/geopandas/geodataframe.py b/geopandas/geodataframe.py index f39f875..b6872fa 100644 --- a/geopandas/geodataframe.py +++ b/geopandas/geodataframe.py @@ -1561,6 +1561,7 @@ individually so that features may have different properties # Process non-spatial component data = self.drop(labels=self.geometry.name, axis=1) aggregated_data = data.groupby(**groupby_kwargs).agg(aggfunc) + aggregated_data.columns = aggregated_data.columns.to_flat_index() # Process spatial component def merge_geometries(block): diff --git a/geopandas/tests/test_dissolve.py b/geopandas/tests/test_dissolve.py index 6e16523..2d88761 100644 --- a/geopandas/tests/test_dissolve.py +++ b/geopandas/tests/test_dissolve.py @@ -8,6 +8,8 @@ from geopandas import _compat as compat from pandas.testing import assert_frame_equal import pytest +from geopandas.testing import assert_geodataframe_equal + @pytest.fixture def nybb_polydf(): @@ -297,3 +299,21 @@ def test_dissolve_dropna_warn(nybb_polydf): UserWarning, match="dropna kwarg is not supported for pandas < 1.1.0" ): nybb_polydf.dissolve(dropna=False) + + +def test_dissolve_multi_agg(nybb_polydf, merged_shapes): + + merged_shapes[("BoroCode", "min")] = [3, 1] + merged_shapes[("BoroCode", "max")] = [5, 2] + merged_shapes[("BoroName", "count")] = [3, 2] + + with pytest.warns(None) as record: + test = nybb_polydf.dissolve( + by="manhattan_bronx", + aggfunc={ + "BoroCode": ["min", "max"], + "BoroName": "count", + }, + ) + assert_geodataframe_equal(test, merged_shapes) + assert len(record) == 0 From 0ca95d5e7614e843045c973656ebb273e343ab1a Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Sun, 23 Jan 2022 10:52:57 +0100 Subject: [PATCH 302/316] TST: skip pandas groupby test if no sindex available (#2320) --- geopandas/tests/test_pandas_methods.py | 1 + 1 file changed, 1 insertion(+) diff --git a/geopandas/tests/test_pandas_methods.py b/geopandas/tests/test_pandas_methods.py index 72dbcff..42c79de 100644 --- a/geopandas/tests/test_pandas_methods.py +++ b/geopandas/tests/test_pandas_methods.py @@ -558,6 +558,7 @@ def test_groupby_groups(df): assert_frame_equal(res, exp) +@pytest.mark.skip_no_sindex @pytest.mark.skipif( compat.PANDAS_GE_13 and not compat.PANDAS_GE_14, reason="this was broken in pandas 1.3.5 (GH-2294)", From 212cb9c2b5112fdee4ce403bf0a51a395d528628 Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Sun, 23 Jan 2022 19:04:39 +0000 Subject: [PATCH 303/316] BUG: explode incorrectly expects unsorted index (#2292) --- geopandas/geodataframe.py | 43 ++++------- geopandas/tests/test_geom_methods.py | 103 +++++++++++++++++++++++++++ 2 files changed, 116 insertions(+), 30 deletions(-) diff --git a/geopandas/geodataframe.py b/geopandas/geodataframe.py index b6872fa..788e627 100644 --- a/geopandas/geodataframe.py +++ b/geopandas/geodataframe.py @@ -1684,43 +1684,26 @@ individually so that features may have different properties ) index_parts = True - df_copy = self.copy() + exploded_geom = self.geometry.reset_index(drop=True).explode(index_parts=True) - level_str = f"level_{df_copy.index.nlevels}" - - if level_str in df_copy.columns: # GH1393 - df_copy = df_copy.rename(columns={level_str: f"__{level_str}"}) - - if index_parts: - exploded_geom = df_copy.geometry.explode(index_parts=True) - exploded_index = exploded_geom.index - exploded_geom = exploded_geom.reset_index(level=-1, drop=True) - else: - exploded_geom = df_copy.geometry.explode(index_parts=True).reset_index( - level=-1, drop=True - ) - exploded_index = exploded_geom.index - - df = ( - df_copy.drop(df_copy._geometry_column_name, axis=1) - .join(exploded_geom) - .set_geometry(self._geometry_column_name) - .__finalize__(self) - ) + df = GeoDataFrame( + self.drop(self._geometry_column_name, axis=1).take( + exploded_geom.index.droplevel(-1) + ), + geometry=exploded_geom.values, + ).__finalize__(self) if ignore_index: df.reset_index(inplace=True, drop=True) elif index_parts: # reset to MultiIndex, otherwise df index is only first level of # exploded GeoSeries index. - df.set_index(exploded_index, inplace=True) - df.index.names = list(self.index.names) + [None] - else: - df.set_index(exploded_index, inplace=True) - df.index.names = self.index.names - - if f"__{level_str}" in df.columns: - df = df.rename(columns={f"__{level_str}": level_str}) + df = df.set_index( + exploded_geom.index.droplevel( + list(range(exploded_geom.index.nlevels - 1)) + ), + append=True, + ) return df diff --git a/geopandas/tests/test_geom_methods.py b/geopandas/tests/test_geom_methods.py index 221eca3..941b70f 100644 --- a/geopandas/tests/test_geom_methods.py +++ b/geopandas/tests/test_geom_methods.py @@ -1090,6 +1090,109 @@ class TestGeomMethods: test_df = df.explode(ignore_index=True, index_parts=True) assert_frame_equal(test_df, expected_df) + def test_explode_order(self): + df = GeoDataFrame( + {"vals": [1, 2, 3]}, + geometry=[MultiPoint([(x, x), (x, 0)]) for x in range(3)], + index=[2, 9, 7], + ) + test_df = df.explode(index_parts=True) + + expected_index = MultiIndex.from_arrays( + [[2, 2, 9, 9, 7, 7], [0, 1, 0, 1, 0, 1]], + ) + expected_geometry = GeoSeries( + [ + Point(0, 0), + Point(0, 0), + Point(1, 1), + Point(1, 0), + Point(2, 2), + Point(2, 0), + ], + index=expected_index, + ) + expected_df = GeoDataFrame( + {"vals": [1, 1, 2, 2, 3, 3]}, + geometry=expected_geometry, + index=expected_index, + ) + assert_geodataframe_equal(test_df, expected_df) + + def test_explode_order_no_multi(self): + df = GeoDataFrame( + {"vals": [1, 2, 3]}, + geometry=[Point(0, x) for x in range(3)], + index=[2, 9, 7], + ) + test_df = df.explode(index_parts=True) + + expected_index = MultiIndex.from_arrays( + [[2, 9, 7], [0, 0, 0]], + ) + expected_df = GeoDataFrame( + {"vals": [1, 2, 3]}, + geometry=[Point(0, x) for x in range(3)], + index=expected_index, + ) + assert_geodataframe_equal(test_df, expected_df) + + def test_explode_order_mixed(self): + df = GeoDataFrame( + {"vals": [1, 2, 3]}, + geometry=[MultiPoint([(x, x), (x, 0)]) for x in range(2)] + [Point(0, 10)], + index=[2, 9, 7], + ) + test_df = df.explode(index_parts=True) + + expected_index = MultiIndex.from_arrays( + [[2, 2, 9, 9, 7], [0, 1, 0, 1, 0]], + ) + expected_geometry = GeoSeries( + [ + Point(0, 0), + Point(0, 0), + Point(1, 1), + Point(1, 0), + Point(0, 10), + ], + index=expected_index, + ) + expected_df = GeoDataFrame( + {"vals": [1, 1, 2, 2, 3]}, + geometry=expected_geometry, + index=expected_index, + ) + assert_geodataframe_equal(test_df, expected_df) + + def test_explode_duplicated_index(self): + df = GeoDataFrame( + {"vals": [1, 2, 3]}, + geometry=[MultiPoint([(x, x), (x, 0)]) for x in range(3)], + index=[1, 1, 2], + ) + test_df = df.explode(index_parts=True) + expected_index = MultiIndex.from_arrays( + [[1, 1, 1, 1, 2, 2], [0, 1, 0, 1, 0, 1]], + ) + expected_geometry = GeoSeries( + [ + Point(0, 0), + Point(0, 0), + Point(1, 1), + Point(1, 0), + Point(2, 2), + Point(2, 0), + ], + index=expected_index, + ) + expected_df = GeoDataFrame( + {"vals": [1, 1, 2, 2, 3, 3]}, + geometry=expected_geometry, + index=expected_index, + ) + assert_geodataframe_equal(test_df, expected_df) + # # Test '&', '|', '^', and '-' # From c29458fe172f96b3db7d33ac6de828ef2e971467 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Sun, 23 Jan 2022 20:07:45 +0100 Subject: [PATCH 304/316] TST: fix array tests to use proper empty Polygon (#2274) --- geopandas/tests/test_array.py | 59 +++++++++++++++-------------------- 1 file changed, 26 insertions(+), 33 deletions(-) diff --git a/geopandas/tests/test_array.py b/geopandas/tests/test_array.py index 42023cd..2724b24 100644 --- a/geopandas/tests/test_array.py +++ b/geopandas/tests/test_array.py @@ -10,6 +10,7 @@ import shapely.affinity import shapely.geometry from shapely.geometry.base import CAP_STYLE, JOIN_STYLE import shapely.wkb +import shapely.wkt from shapely._buildcfg import geos_version import geopandas @@ -32,7 +33,7 @@ triangle_no_missing = [ shapely.geometry.Polygon([(random.random(), random.random()) for i in range(3)]) for _ in range(10) ] -triangles = triangle_no_missing + [shapely.geometry.Polygon(), None] +triangles = triangle_no_missing + [shapely.wkt.loads("POLYGON EMPTY"), None] T = from_shapely(triangles) points_no_missing = [ @@ -356,31 +357,8 @@ def test_predicates_vector_vector(attr, args): def test_unary_geo(attr): na_value = None - if attr == "boundary": - # pygeos returns None for empty geometries - if not compat.USE_PYGEOS: - # boundary raises for empty geometry - with pytest.raises(Exception): - T.boundary - - values = triangle_no_missing + [None] - A = from_shapely(values) - else: - values = triangles - A = T - - result = getattr(A, attr) - if attr == "exterior" and compat.USE_PYGEOS: - # TODO(pygeos) - # empty Polygon() has an exterior with shapely > 1.7, which gives - # empty LinearRing instead of None, - # but conversion to pygeos still results in empty GeometryCollection - expected = [ - getattr(t, attr) if t is not None and not t.is_empty else na_value - for t in values - ] - else: - expected = [getattr(t, attr) if t is not None else na_value for t in values] + result = getattr(T, attr) + expected = [getattr(t, attr) if t is not None else na_value for t in triangles] assert equal_geometries(result, expected) @@ -455,7 +433,14 @@ def test_binary_geo_scalar(attr): "has_z", # for is_ring we raise a warning about the value for Polygon changing pytest.param( - "is_ring", marks=pytest.mark.filterwarnings("ignore:is_ring:FutureWarning") + "is_ring", + marks=[ + pytest.mark.filterwarnings("ignore:is_ring:FutureWarning"), + pytest.mark.skipif( + not compat.SHAPELY_GE_17, + reason="is_ring on empty Polygon doesn't work in Shapely 1.6", + ), + ], ), ], ) @@ -473,11 +458,9 @@ def test_unary_predicates(attr): result = getattr(V, attr) - if attr == "is_simple" and (geos_version < (3, 8) or compat.USE_PYGEOS): + if attr == "is_simple" and geos_version < (3, 8): # poly.is_simple raises an error for empty polygon for GEOS < 3.8 # with shapely, pygeos always returns False for all GEOS versions - # But even for Shapely with GEOS >= 3.8, empty GeometryCollection - # returns True instead of False expected = [ getattr(t, attr) if t is not None and not t.is_empty else na_value for t in vals @@ -489,6 +472,9 @@ def test_unary_predicates(attr): else na_value for t in vals ] + # empty Linearring.is_ring gives False with Shapely < 2.0 + if compat.USE_PYGEOS and not compat.SHAPELY_GE_20: + expected[-2] = True else: expected = [getattr(t, attr) if t is not None else na_value for t in vals] assert result.tolist() == expected @@ -496,16 +482,23 @@ def test_unary_predicates(attr): # for is_ring we raise a warning about the value for Polygon changing @pytest.mark.filterwarnings("ignore:is_ring:FutureWarning") +@pytest.mark.skipif( + not compat.SHAPELY_GE_17, + reason="is_ring on empty Polygon doesn't work in Shapely 1.6", +) def test_is_ring(): g = [ shapely.geometry.LinearRing([(0, 0), (1, 1), (1, -1)]), shapely.geometry.LineString([(0, 0), (1, 1), (1, -1)]), shapely.geometry.LineString([(0, 0), (1, 1), (1, -1), (0, 0)]), shapely.geometry.Polygon([(0, 0), (1, 1), (1, -1)]), - shapely.geometry.Polygon(), + shapely.wkt.loads("POLYGON EMPTY"), None, ] - expected = [True, False, True, True, False, False] + expected = [True, False, True, True, True, False] + if not compat.USE_PYGEOS and not compat.SHAPELY_GE_20: + # empty polygon is_ring gives False with Shapely < 2.0 + expected[-2] = False result = from_shapely(g).is_ring @@ -525,7 +518,7 @@ def test_unary_float(attr): def test_geom_types(): cat = T.geom_type # empty polygon has GeometryCollection type - assert list(cat) == ["Polygon"] * (len(T) - 2) + ["GeometryCollection", None] + assert list(cat) == ["Polygon"] * (len(T) - 1) + [None] def test_geom_types_null_mixed(): From 13bec536192a48866334f3b3833e84817cb0fb65 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Mon, 24 Jan 2022 08:37:52 +0100 Subject: [PATCH 305/316] CI: ensure numpy nightly is installed in dev build (#2319) Co-authored-by: Matt Richards <45483497+m-richards@users.noreply.github.com> --- ci/envs/310-dev.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ci/envs/310-dev.yaml b/ci/envs/310-dev.yaml index 52575db..4274d67 100644 --- a/ci/envs/310-dev.yaml +++ b/ci/envs/310-dev.yaml @@ -26,8 +26,9 @@ dependencies: - geopy - mapclassify>=2.4.0 # dev versions of packages - - --pre --extra-index https://pypi.anaconda.org/scipy-wheels-nightly/simple numpy - - --pre --extra-index https://pypi.anaconda.org/scipy-wheels-nightly/simple pandas + - --pre --extra-index https://pypi.anaconda.org/scipy-wheels-nightly/simple + - numpy + - pandas - git+https://github.com/matplotlib/matplotlib.git@main # - git+https://github.com/Toblerity/Shapely.git@main - git+https://github.com/pygeos/pygeos.git@master From f990008d90fa09e60c33d29d61c7dbebc134b6ab Mon Sep 17 00:00:00 2001 From: rraymondgh <42769112+rraymondgh@users.noreply.github.com> Date: Thu, 27 Jan 2022 07:22:43 +0000 Subject: [PATCH 306/316] ENH: expose folium.map kwds as map_kwds in `explore()` (#2315) Co-authored-by: Martin Fleischmann --- geopandas/explore.py | 16 +++++++++++++++- geopandas/tests/test_explore.py | 19 +++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/geopandas/explore.py b/geopandas/explore.py index 12d4b41..7efab95 100644 --- a/geopandas/explore.py +++ b/geopandas/explore.py @@ -57,6 +57,7 @@ def _explore( tooltip_kwds={}, popup_kwds={}, legend_kwds={}, + map_kwds={}, **kwargs, ): """Interactive map based on GeoPandas and folium/leaflet.js @@ -225,6 +226,10 @@ def _explore( Applies if ``colorbar=False``. max_labels : int, default 10 Maximum number of colorbar tick labels (requires branca>=0.5.0) + map_kwds : dict (default {}) + Additional keywords to be passed to folium :class:`~folium.folium.Map`, + e.g. ``dragging``, or ``scrollWheelZoom``. + **kwargs : dict Additional options to be passed on to the folium object. @@ -302,7 +307,16 @@ GON (((180.00000 -16.06713, 180.00000... fit = False # get a subset of kwargs to be passed to folium.Map - map_kwds = {i: kwargs[i] for i in kwargs.keys() if i in _MAP_KWARGS} + for i in _MAP_KWARGS: + if i in map_kwds: + raise ValueError( + f"'{i}' cannot be specified in 'map_kwds'. " + f"Use the '{i}={map_kwds[i]}' argument instead." + ) + map_kwds = { + **map_kwds, + **{i: kwargs[i] for i in kwargs.keys() if i in _MAP_KWARGS}, + } if HAS_XYZSERVICES: # match provider name string to xyzservices.TileProvider diff --git a/geopandas/tests/test_explore.py b/geopandas/tests/test_explore.py index b95d096..73917a3 100644 --- a/geopandas/tests/test_explore.py +++ b/geopandas/tests/test_explore.py @@ -797,3 +797,22 @@ class TestExplore: gdf["centroid"] = gdf.centroid gdf.explore() + + def test_map_kwds(self): + def check(): + out_str = self._fetch_map_string(m) + assert "zoomControl:false" in out_str + assert "dragging:false" in out_str + assert "scrollWheelZoom:false" in out_str + + # check that folium and leaflet Map() parameters can be passed + m = self.world.explore( + zoom_control=False, map_kwds=dict(dragging=False, scrollWheelZoom=False) + ) + check() + with pytest.raises( + ValueError, match="'zoom_control' cannot be specified in 'map_kwds'" + ): + self.world.explore( + map_kwds=dict(dragging=False, scrollWheelZoom=False, zoom_control=False) + ) From 76e886ec23ddd12a032c933ab08b18693a8144a1 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Thu, 27 Jan 2022 08:22:51 +0100 Subject: [PATCH 307/316] COMPAT: avoid direct usage of pd.Int64Index (#2322) --- geopandas/io/file.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/geopandas/io/file.py b/geopandas/io/file.py index 423ca86..836dc02 100644 --- a/geopandas/io/file.py +++ b/geopandas/io/file.py @@ -5,6 +5,7 @@ import warnings import numpy as np import pandas as pd +from pandas.api.types import is_integer_dtype import pyproj from shapely.geometry import mapping @@ -365,10 +366,8 @@ def _to_file( if index is None: # Determine if index attribute(s) should be saved to file - index = list(df.index.names) != [None] or type(df.index) not in ( - pd.RangeIndex, - pd.Int64Index, - ) + # (only if they are named or are non-integer) + index = list(df.index.names) != [None] or not is_integer_dtype(df.index.dtype) if index: df = df.reset_index(drop=False) if schema is None: From b188710fe46f6094955535aa9bcf54f27a85a1d8 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Fri, 28 Jan 2022 18:12:46 +0100 Subject: [PATCH 308/316] Remove warning about no stability promise in Parquet/Feather export (#2327) --- geopandas/io/arrow.py | 28 ++-------------------------- geopandas/io/tests/test_arrow.py | 7 +------ 2 files changed, 3 insertions(+), 32 deletions(-) diff --git a/geopandas/io/arrow.py b/geopandas/io/arrow.py index 857b82f..2421211 100644 --- a/geopandas/io/arrow.py +++ b/geopandas/io/arrow.py @@ -174,21 +174,6 @@ def _geopandas_to_arrow(df, index=None): """ from pyarrow import Table - warnings.warn( - "this is an initial implementation of Parquet/Feather file support and " - "associated metadata. This is tracking version 0.1.0 of the metadata " - "specification at " - "https://github.com/geopandas/geo-arrow-spec\n\n" - "This metadata specification does not yet make stability promises. " - "We do not yet recommend using this in a production setting unless you " - "are able to rewrite your Parquet/Feather files.\n\n" - "To further ignore this warning, you can do: \n" - "import warnings; warnings.filterwarnings('ignore', " - "message='.*initial implementation of Parquet.*')", - UserWarning, - stacklevel=4, - ) - _validate_dataframe(df) # create geo metadata before altering incoming data frame @@ -213,16 +198,11 @@ def _to_parquet(df, path, index=None, compression="snappy", **kwargs): Requires 'pyarrow'. - WARNING: this is an initial implementation of Parquet file support and + This is an initial implementation of Parquet file support and associated metadata. This is tracking version 0.1.0 of the metadata specification at: https://github.com/geopandas/geo-arrow-spec - This metadata specification does not yet make stability promises. As such, - we do not yet recommend using this in a production setting unless you are - able to rewrite your Parquet files. - - .. versionadded:: 0.8 Parameters @@ -256,15 +236,11 @@ def _to_feather(df, path, index=None, compression=None, **kwargs): Requires 'pyarrow' >= 0.17. - WARNING: this is an initial implementation of Feather file support and + This is an initial implementation of Feather file support and associated metadata. This is tracking version 0.1.0 of the metadata specification at: https://github.com/geopandas/geo-arrow-spec - This metadata specification does not yet make stability promises. As such, - we do not yet recommend using this in a production setting unless you are - able to rewrite your Feather files. - .. versionadded:: 0.8 Parameters diff --git a/geopandas/io/tests/test_arrow.py b/geopandas/io/tests/test_arrow.py index 438719e..1e70158 100644 --- a/geopandas/io/tests/test_arrow.py +++ b/geopandas/io/tests/test_arrow.py @@ -28,9 +28,6 @@ from geopandas.testing import assert_geodataframe_equal, assert_geoseries_equal # Skip all tests in this module if pyarrow is not available pyarrow = pytest.importorskip("pyarrow") -# TEMPORARY: hide warning from to_parquet -pytestmark = pytest.mark.filterwarnings("ignore:.*initial implementation of Parquet.*") - @pytest.fixture( params=[ @@ -217,9 +214,7 @@ def test_roundtrip(tmpdir, file_format, test_dataset): filename = os.path.join(str(tmpdir), "test.pq") - # TEMP: Initial implementation should raise a UserWarning - with pytest.warns(UserWarning, match="initial implementation"): - writer(df, filename) + writer(df, filename) assert os.path.exists(filename) From a80081e52ed3bd069a75a4caaed44e45e35c647d Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Sat, 29 Jan 2022 00:51:07 +0100 Subject: [PATCH 309/316] CI: remove the temporary pandas RC build (#2331) --- .github/workflows/tests.yaml | 3 --- ci/envs/39-rc.yaml | 32 -------------------------------- 2 files changed, 35 deletions(-) delete mode 100644 ci/envs/39-rc.yaml diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index e86739a..f2b72c7 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -60,9 +60,6 @@ jobs: os: windows-latest postgis: false dev: false - - env: ci/envs/39-rc.yaml - os: ubuntu-latest - dev: true - env: ci/envs/310-dev.yaml os: ubuntu-latest dev: true diff --git a/ci/envs/39-rc.yaml b/ci/envs/39-rc.yaml deleted file mode 100644 index 83dbb4b..0000000 --- a/ci/envs/39-rc.yaml +++ /dev/null @@ -1,32 +0,0 @@ -name: test -channels: - - conda-forge -dependencies: - - python=3.9 - - cython - # required - - shapely - - fiona - - pyproj - - packaging - # testing - - pytest - - pytest-cov - - pytest-xdist - - fsspec - # optional - - rtree - - matplotlib-base - - mapclassify - - folium - - xyzservices - - scipy - - geopy - #- geopy - - SQLalchemy - - libspatialite - - pyarrow - - pip - - pip: - # dev versions of packages - - git+https://github.com/pydata/pandas.git@1.4.x From 55b7ad81edbbf0d018d8045400840e0d82c5d133 Mon Sep 17 00:00:00 2001 From: Matt Richards <45483497+m-richards@users.noreply.github.com> Date: Tue, 8 Feb 2022 19:18:39 +1000 Subject: [PATCH 310/316] CLN: remove CRS functions deprecated in 0.7 (#2340) --- geopandas/tools/__init__.py | 2 - geopandas/tools/crs.py | 57 ----------------------------- geopandas/tools/tests/test_tools.py | 34 ----------------- 3 files changed, 93 deletions(-) delete mode 100644 geopandas/tools/crs.py diff --git a/geopandas/tools/__init__.py b/geopandas/tools/__init__.py index 82e6e9e..495d504 100644 --- a/geopandas/tools/__init__.py +++ b/geopandas/tools/__init__.py @@ -1,4 +1,3 @@ -from .crs import explicit_crs_from_epsg from .geocoding import geocode, reverse_geocode from .overlay import overlay from .sjoin import sjoin, sjoin_nearest @@ -7,7 +6,6 @@ from .clip import clip __all__ = [ "collect", - "explicit_crs_from_epsg", "geocode", "overlay", "reverse_geocode", diff --git a/geopandas/tools/crs.py b/geopandas/tools/crs.py deleted file mode 100644 index fadc68a..0000000 --- a/geopandas/tools/crs.py +++ /dev/null @@ -1,57 +0,0 @@ -import warnings - -from pyproj import CRS - - -def explicit_crs_from_epsg(crs=None, epsg=None): - """ - Gets full/explicit CRS from EPSG code provided. - - Parameters - ---------- - crs : dict or string, default None - An existing crs dict or Proj string with the 'init' key specifying an EPSG code - epsg : string or int, default None - The EPSG code to lookup - """ - warnings.warn( - "explicit_crs_from_epsg is deprecated. " - "You can set the epsg on the GeoDataFrame (gdf) using gdf.crs=epsg", - FutureWarning, - stacklevel=2, - ) - if crs is not None: - return CRS.from_user_input(crs) - elif epsg is not None: - return CRS.from_epsg(epsg) - raise ValueError("Must pass either crs or epsg.") - - -def epsg_from_crs(crs): - """ - Returns an epsg code from a crs dict or Proj string. - - Parameters - ---------- - crs : dict or string, default None - A crs dict or Proj string - - """ - warnings.warn( - "epsg_from_crs is deprecated. " - "You can get the epsg code from GeoDataFrame (gdf) " - "using gdf.crs.to_epsg()", - FutureWarning, - stacklevel=2, - ) - crs = CRS.from_user_input(crs) - if "init=epsg" in crs.to_string().lower(): - epsg_code = crs.to_epsg(0) - else: - epsg_code = crs.to_epsg() - return epsg_code - - -def get_epsg_file_contents(): - warnings.warn("get_epsg_file_contents is deprecated.", FutureWarning, stacklevel=2) - return "" diff --git a/geopandas/tools/tests/test_tools.py b/geopandas/tools/tests/test_tools.py index 7117a2a..603aad0 100644 --- a/geopandas/tools/tests/test_tools.py +++ b/geopandas/tools/tests/test_tools.py @@ -1,21 +1,11 @@ -from packaging.version import Version - from shapely.geometry import LineString, MultiPoint, Point -import pyproj -from pyproj import CRS from geopandas import GeoSeries from geopandas.tools import collect -from geopandas.tools.crs import epsg_from_crs, explicit_crs_from_epsg import pytest -# pyproj 2.3.1 fixed a segfault for the case working in an environment with -# 'init' dicts (https://github.com/pyproj4/pyproj/issues/415) -PYPROJ_LT_231 = Version(pyproj.__version__) < Version("2.3.1") - - class TestTools: def setup_method(self): self.p1 = Point(0, 0) @@ -59,27 +49,3 @@ class TestTools: def test_collect_mixed_multi(self): with pytest.raises(ValueError): collect([self.mpc, self.mp1]) - - @pytest.mark.skipif(PYPROJ_LT_231, reason="segfault") - def test_epsg_from_crs(self): - with pytest.warns(FutureWarning): - assert epsg_from_crs({"init": "epsg:4326"}) == 4326 - assert epsg_from_crs({"init": "EPSG:4326"}) == 4326 - assert epsg_from_crs("+init=epsg:4326") == 4326 - - @pytest.mark.skipif(PYPROJ_LT_231, reason="segfault") - def test_explicit_crs_from_epsg(self): - with pytest.warns(FutureWarning): - assert explicit_crs_from_epsg(epsg=4326) == CRS.from_epsg(4326) - assert explicit_crs_from_epsg(epsg="4326") == CRS.from_epsg(4326) - assert explicit_crs_from_epsg(crs={"init": "epsg:4326"}) == CRS.from_dict( - {"init": "epsg:4326"} - ) - assert explicit_crs_from_epsg(crs="+init=epsg:4326") == CRS.from_proj4( - "+init=epsg:4326" - ) - - @pytest.mark.filterwarnings("ignore:explicit_crs_from_epsg:FutureWarning") - def test_explicit_crs_from_epsg__missing_input(self): - with pytest.raises(ValueError): - explicit_crs_from_epsg() From 21f34defe94f02e7d952fdd1c4b78951a28aaed4 Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Sat, 12 Feb 2022 19:43:18 +0000 Subject: [PATCH 311/316] CLN: remove isna warning (#2349) --- geopandas/geoseries.py | 15 --------------- geopandas/tests/test_geoseries.py | 9 --------- 2 files changed, 24 deletions(-) diff --git a/geopandas/geoseries.py b/geopandas/geoseries.py index 5468718..9be068b 100644 --- a/geopandas/geoseries.py +++ b/geopandas/geoseries.py @@ -665,21 +665,6 @@ class GeoSeries(GeoPandasBase, Series): GeoSeries.notna : inverse of isna GeoSeries.is_empty : detect empty geometries """ - if self.is_empty.any(): - warnings.warn( - "GeoSeries.isna() previously returned True for both missing (None) " - "and empty geometries. Now, it only returns True for missing values. " - "Since the calling GeoSeries contains empty geometries, the result " - "has changed compared to previous versions of GeoPandas.\n" - "Given a GeoSeries 's', you can use 's.is_empty | s.isna()' to get " - "back the old behaviour.\n\n" - "To further ignore this warning, you can do: \n" - "import warnings; warnings.filterwarnings('ignore', 'GeoSeries.isna', " - "UserWarning)", - UserWarning, - stacklevel=2, - ) - return super().isna() def isnull(self): diff --git a/geopandas/tests/test_geoseries.py b/geopandas/tests/test_geoseries.py index c9d2740..6d785d3 100644 --- a/geopandas/tests/test_geoseries.py +++ b/geopandas/tests/test_geoseries.py @@ -379,15 +379,6 @@ class TestSeries: assert_geoseries_equal(expected, GeoSeries.from_xy(x, y, z)) -def test_missing_values_empty_warning(): - s = GeoSeries([Point(1, 1), None, np.nan, BaseGeometry(), Polygon()]) - with pytest.warns(UserWarning): - s.isna() - - with pytest.warns(UserWarning): - s.notna() - - @pytest.mark.filterwarnings("ignore::UserWarning") def test_missing_values(): s = GeoSeries([Point(1, 1), None, np.nan, BaseGeometry(), Polygon()]) From 8c7845401171b96755e3facf9b241730f373483a Mon Sep 17 00:00:00 2001 From: simberaj Date: Mon, 14 Feb 2022 08:46:27 +0100 Subject: [PATCH 312/316] BUG: Fix error on .[xyz] on GeoSeries with empty points: return nan (#2335) --- geopandas/array.py | 27 ++++++++++++++++++++++++--- geopandas/tests/test_geom_methods.py | 14 ++++++++++++++ 2 files changed, 38 insertions(+), 3 deletions(-) diff --git a/geopandas/array.py b/geopandas/array.py index cbfd5a6..553fb69 100644 --- a/geopandas/array.py +++ b/geopandas/array.py @@ -867,7 +867,14 @@ class GeometryArray(ExtensionArray): def x(self): """Return the x location of point geometries in a GeoSeries""" if (self.geom_type[~self.isna()] == "Point").all(): - return vectorized.get_x(self.data) + empty = self.is_empty + if empty.any(): + nonempty = ~empty + coords = np.full_like(nonempty, dtype=float, fill_value=np.nan) + coords[nonempty] = vectorized.get_x(self.data[nonempty]) + return coords + else: + return vectorized.get_x(self.data) else: message = "x attribute access only provided for Point geometries" raise ValueError(message) @@ -876,7 +883,14 @@ class GeometryArray(ExtensionArray): def y(self): """Return the y location of point geometries in a GeoSeries""" if (self.geom_type[~self.isna()] == "Point").all(): - return vectorized.get_y(self.data) + empty = self.is_empty + if empty.any(): + nonempty = ~empty + coords = np.full_like(nonempty, dtype=float, fill_value=np.nan) + coords[nonempty] = vectorized.get_y(self.data[nonempty]) + return coords + else: + return vectorized.get_y(self.data) else: message = "y attribute access only provided for Point geometries" raise ValueError(message) @@ -885,7 +899,14 @@ class GeometryArray(ExtensionArray): def z(self): """Return the z location of point geometries in a GeoSeries""" if (self.geom_type[~self.isna()] == "Point").all(): - return vectorized.get_z(self.data) + empty = self.is_empty + if empty.any(): + nonempty = ~empty + coords = np.full_like(nonempty, dtype=float, fill_value=np.nan) + coords[nonempty] = vectorized.get_z(self.data[nonempty]) + return coords + else: + return vectorized.get_z(self.data) else: message = "z attribute access only provided for Point geometries" raise ValueError(message) diff --git a/geopandas/tests/test_geom_methods.py b/geopandas/tests/test_geom_methods.py index 941b70f..05475a9 100644 --- a/geopandas/tests/test_geom_methods.py +++ b/geopandas/tests/test_geom_methods.py @@ -7,6 +7,7 @@ from pandas import DataFrame, Index, MultiIndex, Series from shapely.geometry import LinearRing, LineString, MultiPoint, Point, Polygon from shapely.geometry.collection import GeometryCollection from shapely.ops import unary_union +from shapely import wkt from geopandas import GeoDataFrame, GeoSeries from geopandas.base import GeoPandasBase @@ -72,6 +73,10 @@ class TestGeomMethods: self.landmarks = GeoSeries([self.esb, self.sol], crs="epsg:4326") self.pt2d = Point(-73.9847, 40.7484) self.landmarks_mixed = GeoSeries([self.esb, self.sol, self.pt2d], crs=4326) + self.pt_empty = wkt.loads("POINT EMPTY") + self.landmarks_mixed_empty = GeoSeries( + [self.esb, self.sol, self.pt2d, self.pt_empty], crs=4326 + ) self.l1 = LineString([(0, 0), (0, 1), (1, 1)]) self.l2 = LineString([(0, 0), (1, 0), (1, 1), (0, 1)]) self.g5 = GeoSeries([self.l1, self.l2]) @@ -623,6 +628,15 @@ class TestGeomMethods: expected_z = [30.3244, 31.2344, np.nan] assert_array_dtype_equal(expected_z, self.landmarks_mixed.geometry.z) + def test_xyz_points_empty(self): + expected_x = [-73.9847, -74.0446, -73.9847, np.nan] + expected_y = [40.7484, 40.6893, 40.7484, np.nan] + expected_z = [30.3244, 31.2344, np.nan, np.nan] + + assert_array_dtype_equal(expected_x, self.landmarks_mixed_empty.geometry.x) + assert_array_dtype_equal(expected_y, self.landmarks_mixed_empty.geometry.y) + assert_array_dtype_equal(expected_z, self.landmarks_mixed_empty.geometry.z) + def test_xyz_polygons(self): # accessing x attribute in polygon geoseries should raise an error with pytest.raises(ValueError): From 753a7394c550466441f6318e5af2c10d51d52ae3 Mon Sep 17 00:00:00 2001 From: Matt Richards <45483497+m-richards@users.noreply.github.com> Date: Sun, 20 Feb 2022 22:13:08 +1000 Subject: [PATCH 313/316] DEP: Switch CRS mismatch future warnings to errors (#2100) --- doc/source/docs/user_guide/projections.rst | 18 +++++-------- geopandas/geodataframe.py | 31 ++++++++-------------- geopandas/geoseries.py | 9 ++----- geopandas/tests/test_crs.py | 19 ++++++------- 4 files changed, 29 insertions(+), 48 deletions(-) diff --git a/doc/source/docs/user_guide/projections.rst b/doc/source/docs/user_guide/projections.rst index c36fbc3..8a9896a 100644 --- a/doc/source/docs/user_guide/projections.rst +++ b/doc/source/docs/user_guide/projections.rst @@ -109,8 +109,8 @@ GeoPandas 0.8 implements support for different projections assigned to different columns of the same GeoDataFrame. The projection is now stored together with geometries per column (directly on the GeometryArray level). -Note that if GeometryArray has assigned projection, it is preferred over the -projection passed to GeoSeries or GeoDataFrame during the creation: +Note that if GeometryArray has an assigned projection, it cannot be overridden by an another inconsistent +projection during the creation of a GeoSeries or GeoDataFrame: .. code-block:: python @@ -121,18 +121,12 @@ projection passed to GeoSeries or GeoDataFrame during the creation: - Lat[north]: Geodetic latitude (degree) - Lon[east]: Geodetic longitude (degree) ... - >>> GeoSeries(array, crs=3395).crs # crs=3395 is ignored as array already has CRS - FutureWarning: CRS mismatch between CRS of the passed geometries and 'crs'. Use 'GeoDataFrame.set_crs(crs, allow_override=True)' to overwrite CRS or 'GeoDataFrame.to_crs(crs)' to reproject geometries. CRS mismatch will raise an error in the future versions of GeoPandas. + >>> GeoSeries(array, crs=4326) # crs=4326 is okay, as it matches the existing CRS + >>> GeoSeries(array, crs=3395) # crs=3395 is forbidden as array already has CRS + ValueError: CRS mismatch between CRS of the passed geometries and 'crs'. Use 'GeoSeries.set_crs(crs, allow_override=True)' to overwrite CRS or 'GeoSeries.to_crs(crs)' to reproject geometries. GeoSeries(array, crs=3395).crs - - Name: WGS 84 - Axis Info [ellipsoidal]: - - Lat[north]: Geodetic latitude (degree) - - Lon[east]: Geodetic longitude (degree) - ... - -If you want to overwrite projection, you can then assign it to the GeoSeries +If you want to overwrite the projection, you can then assign it to the GeoSeries manually or re-project geometries to the target projection using either ``GeoSeries.set_crs(epsg=3395, allow_override=True)`` or ``GeoSeries.to_crs(epsg=3395)``. diff --git a/geopandas/geodataframe.py b/geopandas/geodataframe.py index 788e627..87562e7 100644 --- a/geopandas/geodataframe.py +++ b/geopandas/geodataframe.py @@ -61,18 +61,12 @@ def _ensure_geometry(data, crs=None): return out -def _crs_mismatch_warning(): - # TODO: raise error in 0.9 or 0.10. - warnings.warn( - "CRS mismatch between CRS of the passed geometries " - "and 'crs'. Use 'GeoDataFrame.set_crs(crs, " - "allow_override=True)' to overwrite CRS or " - "'GeoDataFrame.to_crs(crs)' to reproject geometries. " - "CRS mismatch will raise an error in the future versions " - "of GeoPandas.", - FutureWarning, - stacklevel=3, - ) +crs_mismatch_error = ( + "CRS mismatch between CRS of the passed geometries " + "and 'crs'. Use 'GeoDataFrame.set_crs(crs, " + "allow_override=True)' to overwrite CRS or " + "'GeoDataFrame.to_crs(crs)' to reproject geometries. " +) class GeoDataFrame(GeoPandasBase, DataFrame): @@ -150,9 +144,7 @@ class GeoDataFrame(GeoPandasBase, DataFrame): if geometry is None and isinstance(data, GeoDataFrame): self._geometry_column_name = data._geometry_column_name if crs is not None and data.crs != crs: - _crs_mismatch_warning() - # TODO: raise error in 0.9 or 0.10. - return + raise ValueError(crs_mismatch_error) if geometry is None and "geometry" in self.columns: # Check for multiple columns with name "geometry". If there are, @@ -173,8 +165,7 @@ class GeoDataFrame(GeoPandasBase, DataFrame): and crs and not self["geometry"].values.crs == crs ): - _crs_mismatch_warning() - # TODO: raise error in 0.9 or 0.10. + raise ValueError(crs_mismatch_error) self["geometry"] = _ensure_geometry(self["geometry"].values, crs) except TypeError: pass @@ -193,8 +184,8 @@ class GeoDataFrame(GeoPandasBase, DataFrame): and crs and not geometry.crs == crs ): - _crs_mismatch_warning() - # TODO: raise error in 0.9 or 0.10. + raise ValueError(crs_mismatch_error) + self.set_geometry(geometry, inplace=True) if geometry is None and crs: @@ -488,7 +479,7 @@ class GeoDataFrame(GeoPandasBase, DataFrame): GeoDataFrame """ - dataframe = super().from_dict(data, **kwargs) + dataframe = DataFrame.from_dict(data, **kwargs) return GeoDataFrame(dataframe, geometry=geometry, crs=crs) @classmethod diff --git a/geopandas/geoseries.py b/geopandas/geoseries.py index 9be068b..2452bed 100644 --- a/geopandas/geoseries.py +++ b/geopandas/geoseries.py @@ -143,17 +143,12 @@ class GeoSeries(GeoPandasBase, Series): data = data.copy() else: if not data.crs == crs: - warnings.warn( + raise ValueError( "CRS mismatch between CRS of the passed geometries " - "and 'crs'. Use 'GeoDataFrame.set_crs(crs, " + "and 'crs'. Use 'GeoSeries.set_crs(crs, " "allow_override=True)' to overwrite CRS or " "'GeoSeries.to_crs(crs)' to reproject geometries. " - "CRS mismatch will raise an error in the future versions " - "of GeoPandas.", - FutureWarning, - stacklevel=2, ) - # TODO: raise error in 0.9 or 0.10. if isinstance(data, SingleBlockManager): if isinstance(data.blocks[0].dtype, GeometryDtype): diff --git a/geopandas/tests/test_crs.py b/geopandas/tests/test_crs.py index b7be666..2b995e4 100644 --- a/geopandas/tests/test_crs.py +++ b/geopandas/tests/test_crs.py @@ -200,7 +200,10 @@ class TestGeometryArrayCRS: assert s.crs == self.osgb assert s.values.crs == self.osgb - with pytest.warns(FutureWarning): + with pytest.raises( + ValueError, + match="CRS mismatch between CRS of the passed geometries and 'crs'", + ): s = GeoSeries(arr, crs=4326) assert s.crs == self.osgb @@ -219,17 +222,15 @@ class TestGeometryArrayCRS: assert df.geometry.crs == self.osgb assert df.geometry.values.crs == self.osgb - # different passed CRS than array CRS is ignored - with pytest.warns(FutureWarning, match="CRS mismatch"): + # different passed CRS than array CRS is now an error + match_str = "CRS mismatch between CRS of the passed geometries and 'crs'" + with pytest.raises(ValueError, match=match_str): df = GeoDataFrame(geometry=s, crs=4326) - assert df.crs == self.osgb - assert df.geometry.crs == self.osgb - assert df.geometry.values.crs == self.osgb - with pytest.warns(FutureWarning, match="CRS mismatch"): + with pytest.raises(ValueError, match=match_str): GeoDataFrame(geometry=s, crs=4326) - with pytest.warns(FutureWarning, match="CRS mismatch"): + with pytest.raises(ValueError, match=match_str): GeoDataFrame({"data": [1, 2], "geometry": s}, crs=4326) - with pytest.warns(FutureWarning, match="CRS mismatch"): + with pytest.raises(ValueError, match=match_str): GeoDataFrame(df, crs=4326).crs # manually change CRS From dafbc762cfa1a1d46b90173e7af1f2421fbe0154 Mon Sep 17 00:00:00 2001 From: Martin Fleischmann Date: Sun, 20 Feb 2022 14:48:06 +0000 Subject: [PATCH 314/316] TST: allow TypeError in fillna() with pandas main (#2351) * TST: allow TypeError in fillna() with pandas main * leave comment pointing to the issue --- geopandas/tests/test_pandas_methods.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/geopandas/tests/test_pandas_methods.py b/geopandas/tests/test_pandas_methods.py index 42c79de..801e88a 100644 --- a/geopandas/tests/test_pandas_methods.py +++ b/geopandas/tests/test_pandas_methods.py @@ -384,7 +384,7 @@ def test_fillna(s, df): df2["geometry"] = s2 res = df2.fillna(Point(1, 1)) assert_geodataframe_equal(res, df) - with pytest.raises(NotImplementedError): + with pytest.raises((NotImplementedError, TypeError)): # GH2351 df2.fillna(0) # allow non-geometry fill value if there are no missing values From bdee562e069fb289552ea03cb93e49c9953b26af Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Sun, 20 Feb 2022 15:49:17 +0100 Subject: [PATCH 315/316] REF: use composition instead of sublcassing pygeos.STRtree for SpatialIndex (#2324) --- geopandas/sindex.py | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/geopandas/sindex.py b/geopandas/sindex.py index 736059b..effa208 100644 --- a/geopandas/sindex.py +++ b/geopandas/sindex.py @@ -633,7 +633,7 @@ if compat.HAS_PYGEOS: _PYGEOS_PREDICATES = {p.name for p in pygeos.strtree.BinaryPredicate} | set([None]) - class PyGEOSSTRTreeIndex(pygeos.STRtree): + class PyGEOSSTRTreeIndex(BaseSpatialIndex): """A simple wrapper around pygeos's STRTree. @@ -651,7 +651,7 @@ if compat.HAS_PYGEOS: non_empty = geometry.copy() non_empty[pygeos.is_empty(non_empty)] = None # set empty geometries to None to maintain indexing - super().__init__(non_empty) + self._tree = pygeos.STRtree(non_empty) # store geometries, including empty geometries for user access self.geometries = geometry.copy() @@ -687,7 +687,7 @@ if compat.HAS_PYGEOS: if isinstance(geometry, BaseGeometry): geometry = array._shapely_to_geom(geometry) - matches = super().query(geometry=geometry, predicate=predicate) + matches = self._tree.query(geometry=geometry, predicate=predicate) if sort: return np.sort(matches) @@ -740,7 +740,7 @@ if compat.HAS_PYGEOS: geometry = self._as_geometry_array(geometry) - res = super().query_bulk(geometry, predicate) + res = self._tree.query_bulk(geometry, predicate) if sort: # sort by first array (geometry) and then second (tree) @@ -760,9 +760,9 @@ if compat.HAS_PYGEOS: geometry = self._as_geometry_array(geometry) if not return_all and max_distance is None and not return_distance: - return super().nearest(geometry) + return self._tree.nearest(geometry) - result = super().nearest_all( + result = self._tree.nearest_all( geometry, max_distance=max_distance, return_distance=return_distance ) if return_distance: @@ -804,9 +804,9 @@ if compat.HAS_PYGEOS: # need to convert tuple of bounds to a geometry object if len(coordinates) == 4: - indexes = super().query(pygeos.box(*coordinates)) + indexes = self._tree.query(pygeos.box(*coordinates)) elif len(coordinates) == 2: - indexes = super().query(pygeos.points(*coordinates)) + indexes = self._tree.query(pygeos.points(*coordinates)) else: raise TypeError( "Invalid coordinates, must be iterable in format " @@ -819,9 +819,12 @@ if compat.HAS_PYGEOS: @property @doc(BaseSpatialIndex.size) def size(self): - return len(self) + return len(self._tree) @property @doc(BaseSpatialIndex.is_empty) def is_empty(self): - return len(self) == 0 + return len(self._tree) == 0 + + def __len__(self): + return len(self._tree) From 4f1abc2e4d6dac81b259e60c672305aa34a9cd08 Mon Sep 17 00:00:00 2001 From: joooeey Date: Sun, 20 Feb 2022 15:59:22 +0100 Subject: [PATCH 316/316] ENH: convert error upon writing empty df to warning (#2240) * converted error upon writing empty df to warning * updated test to match new behaviour * add empty geometry to test dataframe Co-authored-by: Martin Fleischmann Co-authored-by: Martin Fleischmann --- geopandas/io/file.py | 11 ++++++----- geopandas/io/tests/test_file.py | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/geopandas/io/file.py b/geopandas/io/file.py index 836dc02..d524a80 100644 --- a/geopandas/io/file.py +++ b/geopandas/io/file.py @@ -256,8 +256,6 @@ def _read_file(filename, bbox=None, mask=None, rows=None, **kwargs): def read_file(*args, **kwargs): - import warnings - warnings.warn( "geopandas.io.file.read_file() is intended for internal " "use only, and will be deprecated. Use geopandas.read_file() instead.", @@ -269,8 +267,6 @@ def read_file(*args, **kwargs): def to_file(*args, **kwargs): - import warnings - warnings.warn( "geopandas.io.file.to_file() is intended for internal " "use only, and will be deprecated. Use GeoDataFrame.to_file() " @@ -432,7 +428,12 @@ def infer_schema(df): ) if df.empty: - raise ValueError("Cannot write empty DataFrame to file.") + warnings.warn( + "You are attempting to write an empty DataFrame to file. " + "For some drivers, this operation may fail.", + UserWarning, + stacklevel=3, + ) # Since https://github.com/Toblerity/Fiona/issues/446 resolution, # Fiona allows a list of geometry types diff --git a/geopandas/io/tests/test_file.py b/geopandas/io/tests/test_file.py index 16f2678..bd145fb 100644 --- a/geopandas/io/tests/test_file.py +++ b/geopandas/io/tests/test_file.py @@ -255,7 +255,7 @@ def test_to_file_int64(tmpdir, df_points): def test_to_file_empty(tmpdir): input_empty_df = GeoDataFrame(columns=["geometry"]) tempfilename = os.path.join(str(tmpdir), "test.shp") - with pytest.raises(ValueError, match="Cannot write empty DataFrame to file."): + with pytest.warns(UserWarning): input_empty_df.to_file(tempfilename)