diff --git a/.github/workflows/pypi.yaml b/.github/workflows/pypi.yaml
index 24d1fbcef..aa8d68d0a 100644
--- a/.github/workflows/pypi.yaml
+++ b/.github/workflows/pypi.yaml
@@ -50,7 +50,7 @@ jobs:
python -m twine check dist/*
- name: Publish package to PyPI
- uses: pypa/gh-action-pypi-publish@v1.10.1
+ uses: pypa/gh-action-pypi-publish@v1.10.2
with:
skip-existing: true
verbose: true
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
new file mode 100644
index 000000000..5ed565f50
--- /dev/null
+++ b/CODE_OF_CONDUCT.md
@@ -0,0 +1,148 @@
+# Code of Conduct
+
+## Our Pledge
+
+We, as members, contributors, creators, stewards, and maintainers, i.e. all the
+participants, of UXarray pledge to make participation in our software, system
+or hardware project and community a safe, healthy, open, productive, welcoming,
+diverse, inclusive, and harassment-free experience for everyone, regardless of
+age, body size, visible or invisible disability, ethnicity, sex characteristics,
+gender identity and expression, level of experience, education, socio-economic
+status, nationality, personal appearance, race, caste, color, religion, or
+sexual identity and orientation, as well as any other characteristic protected
+under applicable US federal or state law.
+
+All participants are required to abide by this Code of Conduct.
+
+## Our Standards
+
+Examples of behaviors that contribute to a positive environment for our community
+include:
+
+- Demonstrating empathy and kindness toward other people
+- Being considerate and respectful of and collaborative with differing opinions,
+ viewpoints, and experiences
+- Acknowledging the contributions of others
+- Giving and gracefully accepting constructive feedback
+- Accepting responsibility and apologizing to those affected by our mistakes,
+ and learning from the experience
+- Focusing on what is best not just for us as individuals, but for the overall
+ community
+- Respecting the rules and policies of the project and venue
+
+Examples of unacceptable behavior include, but are not limited to:
+
+- Public or private harassment, intimidation, or discrimination in any form
+- Physical, verbal, or written abuse by anyone to anyone, including repeated
+ use of pronouns other than those requested
+- The use of sexualized language or imagery, and sexual attention or advances
+ of any kind
+- Personal attacks directed at other guests, members, participants, etc.
+- Publishing others’ private information, such as a physical or electronic
+ address, without explicit permission
+- Alarming, intimidating, threatening, or hostile comments or conduct
+- Threatening or stalking anyone, including a participant
+- Trolling, insulting or derogatory comments, and personal or political attacks
+- Other conduct which could reasonably be considered inappropriate in a
+ professional setting
+
+## Enforcement Responsibilities
+
+Community leaders are responsible for clarifying and enforcing our standards of
+acceptable behavior and will take appropriate and fair corrective action in
+response to any behavior that they deem inappropriate, threatening, offensive,
+or harmful.
+
+Community leaders have the right and responsibility to remove, edit, or reject
+comments, commits, code, wiki edits, issues, and other contributions that are
+not aligned to this Code of Conduct, and will communicate reasons for moderation
+decisions when appropriate.
+
+## Scope
+
+This Code of Conduct applies to all community spaces managed by UXarray whether
+they be physical, online or face-to-face, and also applies when an individual is
+officially representing the community in public spaces. This includes but is not
+limited to project code, code repository, associated web pages, documentation,
+mailing lists, project websites and wiki pages, issue tracker, meetings, telecons,
+events, use of official email or social media accounts, and any other forums
+created by the project team which the community uses for communication. In
+addition, violations of this Code of Conduct outside these spaces may affect a
+person's ability to participate within them. Representation of a project may be
+further defined and clarified by project maintainers.
+
+## Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported to the the `@UXARRAY/uxarray-dev` GitHub handle as the community leaders
+in this group can view and manage the reported content, and hence are responsible
+for enforcement.
+
+All complaints will be reviewed and investigated promptly and fairly.
+
+All community leaders are obligated to respect the privacy and security of the
+reporter of any incident.
+
+## Enforcement Guidelines
+
+Community leaders will follow these Community Impact Guidelines in determining
+the consequences for any action they deem in violation of this Code of Conduct:
+
+### 1. Correction
+
+**Community Impact**: Use of inappropriate language or other behavior deemed
+unprofessional or unwelcome in the community.
+
+**Consequence**: A private, written warning from community leaders, providing
+clarity around the nature of the violation and an explanation of why the
+behavior was inappropriate. A public apology may be requested.
+
+### 2. Warning
+
+**Community Impact**: A violation through a single incident or series of
+actions.
+
+**Consequence**: A warning with consequences for continued behavior. No
+interaction with the people involved, including unsolicited interaction with
+those enforcing the Code of Conduct, for a specified period of time. This
+includes avoiding interactions in community spaces as well as external channels
+like social media. Violating these terms may lead to a temporary or permanent
+ban.
+
+### 3. Temporary Ban
+
+**Community Impact**: A serious violation of community standards, including
+sustained inappropriate behavior.
+
+**Consequence**: A temporary ban from any sort of interaction or public
+communication with the community for a specified period of time. No public or
+private interaction with the people involved, including unsolicited interaction
+with those enforcing the Code of Conduct, is allowed during this period.
+Violating these terms may lead to a permanent ban.
+
+### 4. Permanent Ban
+
+**Community Impact**: Demonstrating a pattern of violation of community
+standards, including sustained inappropriate behavior, harassment of an
+individual, or aggression toward or disparagement of classes of individuals.
+
+**Consequence**: A permanent ban from any sort of public interaction within the
+community.
+
+## Attribution
+
+This Code of Conduct is adapted from the [Contributor Covenant Code of Conduct,
+version 2.1][homepage], [version 2.1][v2.1].
+
+Community Impact Guidelines were inspired by
+[Mozilla's code of conduct enforcement ladder][Mozilla CoC].
+
+For answers to common questions about this code of conduct, see the FAQ at
+[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
+[https://www.contributor-covenant.org/translations][translations].
+
+[homepage]: https://www.contributor-covenant.org
+[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
+[Mozilla CoC]: https://github.com/mozilla/diversity
+[FAQ]: https://www.contributor-covenant.org/faq
+[translations]: https://www.contributor-covenant.org/translations
diff --git a/README.md b/README.md
index 78cffa66c..52a85e080 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,5 @@
-
+
+
-----------------
diff --git a/benchmarks/asv.conf.json b/benchmarks/asv.conf.json
index b108ec396..31a43921d 100644
--- a/benchmarks/asv.conf.json
+++ b/benchmarks/asv.conf.json
@@ -94,7 +94,7 @@
"setuptools_scm": [""],
"xarray": [""],
"netcdf4": [""],
- "pip+git+https://github.com/philipc2/pyfma.git": [""]
+ "pip+pyfma": [""]
},
diff --git a/benchmarks/face_bounds.py b/benchmarks/face_bounds.py
index db3106fcb..b249e7b99 100644
--- a/benchmarks/face_bounds.py
+++ b/benchmarks/face_bounds.py
@@ -28,13 +28,3 @@ def time_face_bounds(self, grid_path):
def peakmem_face_bounds(self, grid_path):
"""Peak memory usage obtain ``Grid.face_bounds."""
face_bounds = self.uxgrid.bounds
-
-class Bounds:
- def setup(self):
- self.uxgrid = ux.open_grid(r"C:\Users\chmie\PycharmProjects\ncar-uxarray\uxarray-hongyu\benchmarks\oQU480.grid.nc")
-
- def teardown(self):
- del self.uxgrid
-
- def time_bounds(self):
- self.uxgrid.bounds
diff --git a/benchmarks/mpas_ocean.py b/benchmarks/mpas_ocean.py
index b4d50da4b..f10fa6918 100644
--- a/benchmarks/mpas_ocean.py
+++ b/benchmarks/mpas_ocean.py
@@ -140,7 +140,20 @@ def time_nearest_neighbor_remapping(self):
def time_inverse_distance_weighted_remapping(self):
self.uxds_480["bottomDepth"].remap.inverse_distance_weighted(self.uxds_120.uxgrid)
-
class HoleEdgeIndices(DatasetBenchmark):
def time_construct_hole_edge_indices(self, resolution):
ux.grid.geometry._construct_hole_edge_indices(self.uxds.uxgrid.edge_face_connectivity)
+
+class CheckNorm:
+ param_names = ['resolution']
+ params = ['480km', '120km']
+
+ def setup(self, resolution):
+ self.uxgrid = ux.open_grid(file_path_dict[resolution][0])
+
+ def teardown(self, resolution):
+ del self.uxgrid
+
+ def time_check_norm(self, resolution):
+ from uxarray.grid.validation import _check_normalization
+ _check_normalization(self.uxgrid)
diff --git a/ci/asv.yml b/ci/asv.yml
index f807b3df6..a748ac96e 100644
--- a/ci/asv.yml
+++ b/ci/asv.yml
@@ -24,6 +24,7 @@ dependencies:
- scipy
- shapely
- spatialpandas
+ - geopandas
- xarray
- asv
- pip:
diff --git a/ci/docs.yml b/ci/docs.yml
index c6d7ec9cf..7fd333cc9 100644
--- a/ci/docs.yml
+++ b/ci/docs.yml
@@ -33,6 +33,7 @@ dependencies:
- pandas
- geocat-datafiles
- spatialpandas
+ - geopandas
- pip:
- antimeridian
- git+https://github.com/philipc2/pyfma.git # fix until https://github.com/nschloe/pyfma/pull/17 is merged
diff --git a/ci/environment.yml b/ci/environment.yml
index 6ef0b278c..ab49f1cdf 100644
--- a/ci/environment.yml
+++ b/ci/environment.yml
@@ -28,6 +28,7 @@ dependencies:
- scipy
- shapely
- spatialpandas
+ - geopandas
- xarray
- asv
- pip:
diff --git a/ci/install-upstream.sh b/ci/install-upstream.sh
index b0eee2b0b..790f08f4d 100644
--- a/ci/install-upstream.sh
+++ b/ci/install-upstream.sh
@@ -33,6 +33,7 @@ python -m pip install \
pandas \
scikit-learn \
scipy \
+ geopandas \
xarray
# install rest from source
diff --git a/docs/internal_api/index.rst b/docs/internal_api/index.rst
index 6dd40b2c0..122a1d96e 100644
--- a/docs/internal_api/index.rst
+++ b/docs/internal_api/index.rst
@@ -286,12 +286,17 @@ SCRIP
io._scrip._encode_scrip
-Shapefile
+GeoPandas
---------
.. autosummary::
:toctree: generated/
- io._shapefile._read_shpfile
+ io._geopandas._read_geodataframe
+ io._geopandas._read_geopandas
+ io._geopandas._encode_geopandas
+ io._geopandas._standardize_geopandas
+ io._geopandas._is_geopandas
+ io._geopandas._validate_minimum_geopandas
Vertices
--------
diff --git a/pyproject.toml b/pyproject.toml
index 9c04be544..47e0d95d0 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -42,6 +42,7 @@ dependencies = [
"scipy",
"shapely",
"spatialpandas",
+ "geopandas",
"xarray",
]
# minimal dependencies end
diff --git a/test/meshfiles/geojson/README.md b/test/meshfiles/geojson/README.md
new file mode 100644
index 000000000..dae56d52b
--- /dev/null
+++ b/test/meshfiles/geojson/README.md
@@ -0,0 +1,15 @@
+GeoJSON is a format for encoding a variety of geographic data structures, including points, lines, and polygons.
+
+This repository contains "sample_chicago_buildings" GeoJSON file featuring a selection of buildings in Chicago. The file includes:
+
+ Number of polygons: 10
+ Polygon 1: 26 sides
+ Polygon 2: 36 sides
+ Polygon 3: 29 sides
+ Polygon 4: 10 sides
+ Polygon 5: 30 sides
+ Polygon 6: 8 sides
+ Polygon 7: 7 sides
+ Polygon 8: 9 sides
+ Polygon 9: 7 sides
+ Polygon 10: 19 sides
diff --git a/test/meshfiles/geojson/sample_chicago_buildings.geojson b/test/meshfiles/geojson/sample_chicago_buildings.geojson
new file mode 100644
index 000000000..14c1c0c5a
--- /dev/null
+++ b/test/meshfiles/geojson/sample_chicago_buildings.geojson
@@ -0,0 +1,17 @@
+{
+"type": "FeatureCollection",
+"name": "sample_chicago_buildings",
+"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },
+"features": [
+{ "type": "Feature", "properties": { "element_type": "way", "osmid": 64393495, "amenity": null, "addr:housenumber": "190", "addr:street": "South La Salle Street", "addr:city": "Chicago", "addr:postcode": "60603", "addr:state": "IL", "layer": null, "parking": null, "name": "190 South Lasalle", "nodes": [ 792361008, 10956188506, 10956188527, 10956188517, 792361009, 10956188515, 10956188525, 10956188535, 10956376205, 10956188536, 10956188529, 10956188514, 792361010, 10956188512, 10956188531, 10956188511, 792361011, 10956188532, 10956188509, 10956188519, 10956188505, 10956182602, 10956376206, 10956188518, 10956188524, 10956188508, 792361008 ], "addr:street:name": "La Salle", "addr:street:prefix": "South", "addr:street:type": "Street", "building": "office", "building:use": "office", "chicago:building_id": "358320", "wikidata": "Q1886439", "wikipedia": "en:U.S. Bank Building (Chicago)", "building:levels": null, "comment": null, "height": null, "name:en": null, "alt_name": null, "old_name": null, "building:colour": null, "government": null, "name:etymology:wikidata": null, "name:etymology:wikipedia": null, "office": null, "roof:material": null, "roof:shape": null, "start_date": null, "website": null, "wheelchair": null, "ref:nrhp": null, "brand": null, "brand:wikidata": null, "building:material": null, "short_name": null, "tourism": null, "construction": null, "addr:housename": null, "operator": null, "townhall:type": null, "ele": null, "gnis:county_name": null, "gnis:feature_id": null, "gnis:import_uuid": null, "gnis:reviewed": null, "source": null, "phone": null, "access": null, "fee": null, "roof:colour": null, "building:flats": null, "building:name": null, "denomination": null, "religion": null, "university_of_chicago:building_id": null, "university_of_chicago:business_unit_name": null, "note": null, "opening_hours": null, "contact:phone": null, "branch": null, "official_name": null, "ref": null, "heritage": null, "religion:wikidata": null, "religion:wikipedia": null, "cuisine": null, "not:brand:wikidata": null, "air_conditioning": null, "email": null, "fax": null, "fixme": null, "internet_access": null, "internet_access:fee": null, "rooms": null, "smoking": null, "architect": null, "wikimedia_commons": null, "bench": null, "bin": null, "lit": null, "shelter_type": null, "alt_name_1": null, "ways": null, "operator:wikidata": null, "operator:wikipedia": null, "type": null }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -87.6329252, 41.8800066 ], [ -87.6327917, 41.8800073 ], [ -87.6327006, 41.8800078 ], [ -87.6326038, 41.8800083 ], [ -87.6324803, 41.8800089 ], [ -87.6324787, 41.8799589 ], [ -87.6324764, 41.8798892 ], [ -87.6324741, 41.8798157 ], [ -87.6324723, 41.8797588 ], [ -87.6324704, 41.8797019 ], [ -87.632468, 41.8796286 ], [ -87.6324656, 41.8795556 ], [ -87.632464, 41.879505 ], [ -87.6325944, 41.8795029 ], [ -87.6326843, 41.8795015 ], [ -87.6327812, 41.8794999 ], [ -87.6329114, 41.8794979 ], [ -87.6329116, 41.8795065 ], [ -87.6329128, 41.8795512 ], [ -87.6329697, 41.8795511 ], [ -87.6329715, 41.8796303 ], [ -87.6329764, 41.8798459 ], [ -87.6329482, 41.8798463 ], [ -87.6329208, 41.8798466 ], [ -87.6329219, 41.8798841 ], [ -87.6329238, 41.8799544 ], [ -87.6329252, 41.8800066 ] ] ] } },
+{ "type": "Feature", "properties": { "element_type": "way", "osmid": 64398410, "amenity": null, "addr:housenumber": "227", "addr:street": "West Monroe Street", "addr:city": null, "addr:postcode": "60606", "addr:state": null, "layer": null, "parking": null, "name": "Franklin Center North Tower", "nodes": [ 792393936, 10945665623, 10945665622, 10945665627, 10945665620, 10945665613, 10945665619, 10945665617, 10945665615, 10945665616, 10945665618, 10945665614, 10945665612, 792393940, 10945665609, 10945665610, 10945665633, 10945665611, 10945665608, 10945665693, 10945665607, 6431694242, 10945665691, 10945665690, 10945665692, 792393944, 6431694243, 1579011824, 792393948, 10945665640, 6431694244, 992938565, 992938579, 10945665632, 992938582, 992938585, 792393936 ], "addr:street:name": "Monroe", "addr:street:prefix": "West", "addr:street:type": "Street", "building": "commercial", "building:use": null, "chicago:building_id": "357973", "wikidata": null, "wikipedia": "en:AT&T Corporate Center", "building:levels": "60", "comment": "270 m tall without arch element at top which is 307", "height": "306.9", "name:en": "Franklin Center North Tower", "alt_name": null, "old_name": null, "building:colour": null, "government": null, "name:etymology:wikidata": null, "name:etymology:wikipedia": null, "office": null, "roof:material": null, "roof:shape": null, "start_date": null, "website": null, "wheelchair": null, "ref:nrhp": null, "brand": null, "brand:wikidata": null, "building:material": null, "short_name": null, "tourism": null, "construction": null, "addr:housename": null, "operator": null, "townhall:type": null, "ele": null, "gnis:county_name": null, "gnis:feature_id": null, "gnis:import_uuid": null, "gnis:reviewed": null, "source": null, "phone": null, "access": null, "fee": null, "roof:colour": null, "building:flats": null, "building:name": null, "denomination": null, "religion": null, "university_of_chicago:building_id": null, "university_of_chicago:business_unit_name": null, "note": null, "opening_hours": null, "contact:phone": null, "branch": null, "official_name": null, "ref": null, "heritage": null, "religion:wikidata": null, "religion:wikipedia": null, "cuisine": null, "not:brand:wikidata": null, "air_conditioning": null, "email": null, "fax": null, "fixme": null, "internet_access": null, "internet_access:fee": null, "rooms": null, "smoking": null, "architect": null, "wikimedia_commons": null, "bench": null, "bin": null, "lit": null, "shelter_type": null, "alt_name_1": null, "ways": null, "operator:wikidata": null, "operator:wikipedia": null, "type": null }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -87.6343336, 41.8805678 ], [ -87.6343734, 41.8805672 ], [ -87.6344274, 41.8805663 ], [ -87.6345106, 41.880565 ], [ -87.6345362, 41.8805646 ], [ -87.6346406, 41.880563 ], [ -87.6346653, 41.8805626 ], [ -87.63469, 41.8805621 ], [ -87.6347393, 41.8805612 ], [ -87.6347887, 41.8805603 ], [ -87.6348133, 41.8805599 ], [ -87.634838, 41.8805594 ], [ -87.6350541, 41.8805558 ], [ -87.635139, 41.8805544 ], [ -87.6351365, 41.8803841 ], [ -87.6351239, 41.8803841 ], [ -87.6351235, 41.880359 ], [ -87.6351231, 41.880349 ], [ -87.635136, 41.8803485 ], [ -87.6351356, 41.8803213 ], [ -87.6351335, 41.8801736 ], [ -87.6351156, 41.8801747 ], [ -87.6351129, 41.880122 ], [ -87.6351121, 41.8800878 ], [ -87.6351113, 41.8800554 ], [ -87.6351072, 41.8800099 ], [ -87.634609, 41.8800177 ], [ -87.6344072, 41.8800194 ], [ -87.6343265, 41.88002 ], [ -87.6343309, 41.8801572 ], [ -87.634332, 41.8801868 ], [ -87.6343328, 41.8803518 ], [ -87.634348, 41.8803522 ], [ -87.6343481, 41.8803758 ], [ -87.6343481, 41.8803993 ], [ -87.6343314, 41.8804001 ], [ -87.6343336, 41.8805678 ] ] ] } },
+{ "type": "Feature", "properties": { "element_type": "way", "osmid": 64888258, "amenity": null, "addr:housenumber": "135", "addr:street": "South La Salle Street", "addr:city": "Chicago", "addr:postcode": "60603", "addr:state": "IL", "layer": null, "parking": null, "name": "Bank of America Building", "nodes": [ 795322075, 6432905302, 10956393870, 1631359643, 10956393869, 10956393868, 6432903656, 1629958763, 1629958756, 795322076, 10956393867, 6432903675, 10956393866, 10956393865, 10956393864, 10956393863, 6432903679, 10956393862, 795322077, 10956393845, 10956393855, 10956393844, 795322078, 6432903668, 10956393874, 10956393873, 10956393872, 10956393871, 6432905305, 795322075 ], "addr:street:name": "La Salle", "addr:street:prefix": "South", "addr:street:type": "Street", "building": "office", "building:use": "office", "chicago:building_id": "358297", "wikidata": "Q3756447", "wikipedia": "en:Field Building (Chicago)", "building:levels": null, "comment": null, "height": null, "name:en": null, "alt_name": "LaSalle National Bank Building", "old_name": "Field Building", "building:colour": null, "government": null, "name:etymology:wikidata": null, "name:etymology:wikipedia": null, "office": null, "roof:material": null, "roof:shape": null, "start_date": null, "website": null, "wheelchair": null, "ref:nrhp": null, "brand": null, "brand:wikidata": null, "building:material": null, "short_name": null, "tourism": null, "construction": null, "addr:housename": null, "operator": null, "townhall:type": null, "ele": null, "gnis:county_name": null, "gnis:feature_id": null, "gnis:import_uuid": null, "gnis:reviewed": null, "source": null, "phone": null, "access": null, "fee": null, "roof:colour": null, "building:flats": null, "building:name": null, "denomination": null, "religion": null, "university_of_chicago:building_id": null, "university_of_chicago:business_unit_name": null, "note": null, "opening_hours": null, "contact:phone": null, "branch": null, "official_name": null, "ref": null, "heritage": null, "religion:wikidata": null, "religion:wikipedia": null, "cuisine": null, "not:brand:wikidata": null, "air_conditioning": null, "email": null, "fax": null, "fixme": null, "internet_access": null, "internet_access:fee": null, "rooms": null, "smoking": null, "architect": null, "wikimedia_commons": null, "bench": null, "bin": null, "lit": null, "shelter_type": null, "alt_name_1": null, "ways": null, "operator:wikidata": null, "operator:wikipedia": null, "type": null }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -87.6321492, 41.8795042 ], [ -87.6317371, 41.8795098 ], [ -87.6316123, 41.8795113 ], [ -87.6315592, 41.879512 ], [ -87.631507, 41.8795127 ], [ -87.631399, 41.879514 ], [ -87.631381, 41.8795143 ], [ -87.631208, 41.8795172 ], [ -87.6310351, 41.8795201 ], [ -87.6309724, 41.8795198 ], [ -87.6309744, 41.8796111 ], [ -87.6309764, 41.8797023 ], [ -87.6309772, 41.8797487 ], [ -87.6309775, 41.8797692 ], [ -87.6309778, 41.8797877 ], [ -87.6309782, 41.8798077 ], [ -87.6309799, 41.8798526 ], [ -87.6309822, 41.8800052 ], [ -87.6309827, 41.8800355 ], [ -87.6311699, 41.8800327 ], [ -87.6315507, 41.8800248 ], [ -87.6319709, 41.8800203 ], [ -87.6321625, 41.8800174 ], [ -87.632161, 41.879835 ], [ -87.6321593, 41.8797925 ], [ -87.6321585, 41.8797725 ], [ -87.6321576, 41.8797534 ], [ -87.6321567, 41.8797325 ], [ -87.6321544, 41.879677 ], [ -87.6321492, 41.8795042 ] ] ] } },
+{ "type": "Feature", "properties": { "element_type": "way", "osmid": 64888389, "amenity": null, "addr:housenumber": "50", "addr:street": "West Washington Street", "addr:city": "Chicago", "addr:postcode": "60602", "addr:state": "IL", "layer": null, "parking": null, "name": "Richard J. Daley Center", "nodes": [ 795323250, 2391049825, 9576621373, 2391049370, 795323251, 2391049371, 795323252, 2391041923, 795323253, 2391049826, 795323250 ], "addr:street:name": "Washington", "addr:street:prefix": "West", "addr:street:type": "Street", "building": "public", "building:use": "office", "chicago:building_id": "354504", "wikidata": "Q1766475", "wikipedia": "en:Richard J. Daley Center", "building:levels": "32", "comment": null, "height": "197.5", "name:en": null, "alt_name": null, "old_name": "Chicago Civic Center", "building:colour": "#493e3b", "government": "administrative", "name:etymology:wikidata": "Q295267", "name:etymology:wikipedia": "en:Richard J. Daley", "office": "government", "roof:material": "concrete", "roof:shape": "flat", "start_date": "1965", "website": "https://thedaleycenter.com/", "wheelchair": "yes", "ref:nrhp": null, "brand": null, "brand:wikidata": null, "building:material": null, "short_name": null, "tourism": null, "construction": null, "addr:housename": null, "operator": null, "townhall:type": null, "ele": null, "gnis:county_name": null, "gnis:feature_id": null, "gnis:import_uuid": null, "gnis:reviewed": null, "source": null, "phone": null, "access": null, "fee": null, "roof:colour": null, "building:flats": null, "building:name": null, "denomination": null, "religion": null, "university_of_chicago:building_id": null, "university_of_chicago:business_unit_name": null, "note": null, "opening_hours": null, "contact:phone": null, "branch": null, "official_name": null, "ref": null, "heritage": null, "religion:wikidata": null, "religion:wikipedia": null, "cuisine": null, "not:brand:wikidata": null, "air_conditioning": null, "email": null, "fax": null, "fixme": null, "internet_access": null, "internet_access:fee": null, "rooms": null, "smoking": null, "architect": null, "wikimedia_commons": null, "bench": null, "bin": null, "lit": null, "shelter_type": null, "alt_name_1": null, "ways": null, "operator:wikidata": null, "operator:wikipedia": null, "type": null }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -87.630693, 41.8842887 ], [ -87.6305128, 41.884292 ], [ -87.6302078, 41.8842957 ], [ -87.6298181, 41.8843005 ], [ -87.6297296, 41.884302 ], [ -87.6297228, 41.8840803 ], [ -87.6297189, 41.8838986 ], [ -87.63025, 41.8838922 ], [ -87.6306793, 41.8838892 ], [ -87.6306849, 41.8840835 ], [ -87.630693, 41.8842887 ] ] ] } },
+{ "type": "Feature", "properties": { "element_type": "way", "osmid": 64888429, "amenity": null, "addr:housenumber": "70", "addr:street": "West Madison Street", "addr:city": "Chicago", "addr:postcode": "60602", "addr:state": "IL", "layer": null, "parking": null, "name": "Three First National Plaza", "nodes": [ 8722717277, 8722717276, 8722717275, 8722717274, 8722717273, 8722717272, 8722717271, 8722717270, 8722717269, 8722717268, 8722717267, 8722717266, 8722717265, 8722717264, 8722717263, 8722717262, 8722717260, 8728746826, 8722717283, 8722717259, 10925917309, 795323398, 10957839518, 8722717286, 795323400, 8722717285, 6431773564, 10922954295, 10922954294, 6431773554, 8722717277 ], "addr:street:name": "Madison", "addr:street:prefix": "West", "addr:street:type": "Street", "building": "office", "building:use": "office", "chicago:building_id": "356148", "wikidata": "Q1787391", "wikipedia": "en:Three First National Plaza", "building:levels": "57", "comment": null, "height": "234", "name:en": null, "alt_name": null, "old_name": null, "building:colour": null, "government": null, "name:etymology:wikidata": null, "name:etymology:wikipedia": null, "office": null, "roof:material": null, "roof:shape": null, "start_date": null, "website": null, "wheelchair": null, "ref:nrhp": null, "brand": null, "brand:wikidata": null, "building:material": null, "short_name": null, "tourism": null, "construction": null, "addr:housename": null, "operator": null, "townhall:type": null, "ele": null, "gnis:county_name": null, "gnis:feature_id": null, "gnis:import_uuid": null, "gnis:reviewed": null, "source": null, "phone": null, "access": null, "fee": null, "roof:colour": null, "building:flats": null, "building:name": null, "denomination": null, "religion": null, "university_of_chicago:building_id": null, "university_of_chicago:business_unit_name": null, "note": null, "opening_hours": null, "contact:phone": null, "branch": null, "official_name": null, "ref": null, "heritage": null, "religion:wikidata": null, "religion:wikipedia": null, "cuisine": null, "not:brand:wikidata": null, "air_conditioning": null, "email": null, "fax": null, "fixme": null, "internet_access": null, "internet_access:fee": null, "rooms": null, "smoking": null, "architect": null, "wikimedia_commons": null, "bench": null, "bin": null, "lit": null, "shelter_type": null, "alt_name_1": null, "ways": null, "operator:wikidata": null, "operator:wikipedia": null, "type": null }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -87.6300234, 41.8823194 ], [ -87.6300104, 41.88231 ], [ -87.6300097, 41.8822869 ], [ -87.6299968, 41.8822791 ], [ -87.6299706, 41.8822791 ], [ -87.6299508, 41.8822618 ], [ -87.6299572, 41.8822439 ], [ -87.6299452, 41.8822337 ], [ -87.6299121, 41.8822341 ], [ -87.6298982, 41.8822264 ], [ -87.6298969, 41.8822003 ], [ -87.6298883, 41.8821937 ], [ -87.6298564, 41.8821938 ], [ -87.6298452, 41.8821868 ], [ -87.6298426, 41.8821638 ], [ -87.6298255, 41.8821551 ], [ -87.6298009, 41.8821549 ], [ -87.6297882, 41.8821417 ], [ -87.6297889, 41.882122 ], [ -87.6297737, 41.8821095 ], [ -87.6296582, 41.8821098 ], [ -87.6295686, 41.8821101 ], [ -87.6295698, 41.8822581 ], [ -87.6295702, 41.8823052 ], [ -87.6298643, 41.8822993 ], [ -87.6298721, 41.8825615 ], [ -87.6301227, 41.8825582 ], [ -87.6301149, 41.8823711 ], [ -87.6301411, 41.8823484 ], [ -87.6301391, 41.8823213 ], [ -87.6300234, 41.8823194 ] ] ] } },
+{ "type": "Feature", "properties": { "element_type": "way", "osmid": 64888440, "amenity": null, "addr:housenumber": "1", "addr:street": "North La Salle Street", "addr:city": "Chicago", "addr:postcode": "60602", "addr:state": "IL", "layer": null, "parking": null, "name": "One North LaSalle", "nodes": [ 795323452, 10925521067, 10925898099, 10925898102, 10925521068, 795323455, 10925898095, 10925898098, 795323452 ], "addr:street:name": "La Salle", "addr:street:prefix": "North", "addr:street:type": "Street", "building": "office", "building:use": null, "chicago:building_id": "814554", "wikidata": "Q2565075", "wikipedia": "en:One North LaSalle", "building:levels": "48", "comment": null, "height": "161", "name:en": null, "alt_name": "One LaSalle Street Building", "old_name": null, "building:colour": null, "government": null, "name:etymology:wikidata": null, "name:etymology:wikipedia": null, "office": null, "roof:material": null, "roof:shape": null, "start_date": null, "website": null, "wheelchair": null, "ref:nrhp": "99001378", "brand": null, "brand:wikidata": null, "building:material": null, "short_name": null, "tourism": null, "construction": null, "addr:housename": null, "operator": null, "townhall:type": null, "ele": null, "gnis:county_name": null, "gnis:feature_id": null, "gnis:import_uuid": null, "gnis:reviewed": null, "source": null, "phone": null, "access": null, "fee": null, "roof:colour": null, "building:flats": null, "building:name": null, "denomination": null, "religion": null, "university_of_chicago:building_id": null, "university_of_chicago:business_unit_name": null, "note": null, "opening_hours": null, "contact:phone": null, "branch": null, "official_name": null, "ref": null, "heritage": null, "religion:wikidata": null, "religion:wikipedia": null, "cuisine": null, "not:brand:wikidata": null, "air_conditioning": null, "email": null, "fax": null, "fixme": null, "internet_access": null, "internet_access:fee": null, "rooms": null, "smoking": null, "architect": null, "wikimedia_commons": null, "bench": null, "bin": null, "lit": null, "shelter_type": null, "alt_name_1": null, "ways": null, "operator:wikidata": null, "operator:wikipedia": null, "type": null }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -87.6322113, 41.8820773 ], [ -87.6318343, 41.8820816 ], [ -87.6318394, 41.8822383 ], [ -87.6318447, 41.8824002 ], [ -87.63185, 41.8825619 ], [ -87.632219, 41.8825578 ], [ -87.6322167, 41.8824153 ], [ -87.6322135, 41.882214 ], [ -87.6322113, 41.8820773 ] ] ] } },
+{ "type": "Feature", "properties": { "element_type": "way", "osmid": 64888442, "amenity": null, "addr:housenumber": "2", "addr:street": "North La Salle Street", "addr:city": "Chicago", "addr:postcode": "60602", "addr:state": "IL", "layer": null, "parking": null, "name": null, "nodes": [ 795323473, 795323474, 795323475, 10922694240, 10922694253, 795323476, 10925526289, 795323473 ], "addr:street:name": "La Salle", "addr:street:prefix": "North", "addr:street:type": "Street", "building": "office", "building:use": null, "chicago:building_id": "356153", "wikidata": null, "wikipedia": null, "building:levels": "26", "comment": null, "height": "96", "name:en": null, "alt_name": null, "old_name": null, "building:colour": null, "government": null, "name:etymology:wikidata": null, "name:etymology:wikipedia": null, "office": null, "roof:material": null, "roof:shape": null, "start_date": null, "website": null, "wheelchair": null, "ref:nrhp": null, "brand": null, "brand:wikidata": null, "building:material": null, "short_name": null, "tourism": null, "construction": null, "addr:housename": null, "operator": null, "townhall:type": null, "ele": null, "gnis:county_name": null, "gnis:feature_id": null, "gnis:import_uuid": null, "gnis:reviewed": null, "source": null, "phone": null, "access": null, "fee": null, "roof:colour": null, "building:flats": null, "building:name": null, "denomination": null, "religion": null, "university_of_chicago:building_id": null, "university_of_chicago:business_unit_name": null, "note": null, "opening_hours": null, "contact:phone": null, "branch": null, "official_name": null, "ref": null, "heritage": null, "religion:wikidata": null, "religion:wikipedia": null, "cuisine": null, "not:brand:wikidata": null, "air_conditioning": null, "email": null, "fax": null, "fixme": null, "internet_access": null, "internet_access:fee": null, "rooms": null, "smoking": null, "architect": null, "wikimedia_commons": null, "bench": null, "bin": null, "lit": null, "shelter_type": null, "alt_name_1": null, "ways": null, "operator:wikidata": null, "operator:wikipedia": null, "type": null }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -87.6330914, 41.8820676 ], [ -87.6325133, 41.8820793 ], [ -87.6325223, 41.8825607 ], [ -87.6326134, 41.8825596 ], [ -87.6329198, 41.8825546 ], [ -87.6331057, 41.8825517 ], [ -87.6330934, 41.882164 ], [ -87.6330914, 41.8820676 ] ] ] } },
+{ "type": "Feature", "properties": { "element_type": "way", "osmid": 64889199, "amenity": null, "addr:housenumber": "225", "addr:street": "West Washington Street", "addr:city": "Chicago", "addr:postcode": "60606", "addr:state": "IL", "layer": null, "parking": null, "name": "Marmon Building", "nodes": [ 795327569, 795327570, 1388390362, 1388390361, 795327571, 795327572, 1388390391, 10925526154, 1388390392, 795327569 ], "addr:street:name": "Washington", "addr:street:prefix": "West", "addr:street:type": "Street", "building": "office", "building:use": null, "chicago:building_id": "355610", "wikidata": null, "wikipedia": null, "building:levels": "28", "comment": null, "height": "120", "name:en": null, "alt_name": null, "old_name": null, "building:colour": null, "government": null, "name:etymology:wikidata": null, "name:etymology:wikipedia": null, "office": null, "roof:material": null, "roof:shape": null, "start_date": null, "website": null, "wheelchair": null, "ref:nrhp": null, "brand": null, "brand:wikidata": null, "building:material": null, "short_name": null, "tourism": null, "construction": null, "addr:housename": null, "operator": null, "townhall:type": null, "ele": null, "gnis:county_name": null, "gnis:feature_id": null, "gnis:import_uuid": null, "gnis:reviewed": null, "source": null, "phone": null, "access": null, "fee": null, "roof:colour": null, "building:flats": null, "building:name": null, "denomination": null, "religion": null, "university_of_chicago:building_id": null, "university_of_chicago:business_unit_name": null, "note": null, "opening_hours": null, "contact:phone": null, "branch": null, "official_name": null, "ref": null, "heritage": null, "religion:wikidata": null, "religion:wikipedia": null, "cuisine": null, "not:brand:wikidata": null, "air_conditioning": null, "email": null, "fax": null, "fixme": null, "internet_access": null, "internet_access:fee": null, "rooms": null, "smoking": null, "architect": null, "wikimedia_commons": null, "bench": null, "bin": null, "lit": null, "shelter_type": null, "alt_name_1": null, "ways": null, "operator:wikidata": null, "operator:wikipedia": null, "type": null }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -87.6348035, 41.8830751 ], [ -87.634795, 41.8826486 ], [ -87.6348415, 41.882609 ], [ -87.6351535, 41.8826042 ], [ -87.6351989, 41.882641 ], [ -87.6351986, 41.883054 ], [ -87.6351473, 41.8830993 ], [ -87.6350014, 41.883101 ], [ -87.6348501, 41.8831026 ], [ -87.6348035, 41.8830751 ] ] ] } },
+{ "type": "Feature", "properties": { "element_type": "way", "osmid": 64889208, "amenity": null, "addr:housenumber": "1", "addr:street": "North Franklin Street", "addr:city": null, "addr:postcode": null, "addr:state": null, "layer": null, "parking": null, "name": "PNC Centre", "nodes": [ 795327600, 10925526128, 795327601, 795327602, 10922694170, 795327603, 10925526156, 795327600 ], "addr:street:name": "Franklin", "addr:street:prefix": "North", "addr:street:type": "Street", "building": "commercial", "building:use": "office", "chicago:building_id": "356208", "wikidata": null, "wikipedia": null, "building:levels": "36", "comment": null, "height": "150", "name:en": null, "alt_name": null, "old_name": null, "building:colour": null, "government": null, "name:etymology:wikidata": null, "name:etymology:wikipedia": null, "office": null, "roof:material": null, "roof:shape": null, "start_date": null, "website": null, "wheelchair": null, "ref:nrhp": null, "brand": null, "brand:wikidata": null, "building:material": null, "short_name": null, "tourism": null, "construction": null, "addr:housename": null, "operator": null, "townhall:type": null, "ele": null, "gnis:county_name": null, "gnis:feature_id": null, "gnis:import_uuid": null, "gnis:reviewed": null, "source": null, "phone": null, "access": null, "fee": null, "roof:colour": null, "building:flats": null, "building:name": null, "denomination": null, "religion": null, "university_of_chicago:building_id": null, "university_of_chicago:business_unit_name": null, "note": null, "opening_hours": null, "contact:phone": null, "branch": null, "official_name": null, "ref": null, "heritage": null, "religion:wikidata": null, "religion:wikipedia": null, "cuisine": null, "not:brand:wikidata": null, "air_conditioning": null, "email": null, "fax": null, "fixme": null, "internet_access": null, "internet_access:fee": null, "rooms": null, "smoking": null, "architect": null, "wikimedia_commons": null, "bench": null, "bin": null, "lit": null, "shelter_type": null, "alt_name_1": null, "ways": null, "operator:wikidata": null, "operator:wikipedia": null, "type": null }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -87.6351793, 41.88206 ], [ -87.6351481, 41.8820603 ], [ -87.6347543, 41.8820642 ], [ -87.6347751, 41.8825531 ], [ -87.6348922, 41.8825527 ], [ -87.6351874, 41.8825481 ], [ -87.6351833, 41.8823041 ], [ -87.6351793, 41.88206 ] ] ] } },
+{ "type": "Feature", "properties": { "element_type": "way", "osmid": 74451017, "amenity": null, "addr:housenumber": "172", "addr:street": "West Adams Street", "addr:city": "Chicago", "addr:postcode": "60603", "addr:state": "IL", "layer": null, "parking": null, "name": "W Chicago City Center", "nodes": [ 879927560, 879927564, 10956182601, 10956182602, 10956188505, 10956188519, 10956188533, 879927576, 10956376227, 10956376226, 879927579, 879931077, 10956038240, 10956038237, 10956038243, 10956038246, 10956038247, 10956038250, 10956182600, 879927560 ], "addr:street:name": "Adams", "addr:street:prefix": "West", "addr:street:type": "Street", "building": "hotel", "building:use": null, "chicago:building_id": "814688", "wikidata": null, "wikipedia": null, "building:levels": null, "comment": null, "height": null, "name:en": null, "alt_name": null, "old_name": "Midland Hotel", "building:colour": null, "government": null, "name:etymology:wikidata": null, "name:etymology:wikipedia": null, "office": null, "roof:material": null, "roof:shape": null, "start_date": null, "website": null, "wheelchair": null, "ref:nrhp": null, "brand": "W Hotels", "brand:wikidata": "Q7958488", "building:material": "brick", "short_name": "W", "tourism": "hotel", "construction": null, "addr:housename": null, "operator": null, "townhall:type": null, "ele": null, "gnis:county_name": null, "gnis:feature_id": null, "gnis:import_uuid": null, "gnis:reviewed": null, "source": null, "phone": null, "access": null, "fee": null, "roof:colour": null, "building:flats": null, "building:name": null, "denomination": null, "religion": null, "university_of_chicago:building_id": null, "university_of_chicago:business_unit_name": null, "note": null, "opening_hours": null, "contact:phone": null, "branch": null, "official_name": null, "ref": null, "heritage": null, "religion:wikidata": null, "religion:wikipedia": null, "cuisine": null, "not:brand:wikidata": null, "air_conditioning": null, "email": null, "fax": null, "fixme": null, "internet_access": null, "internet_access:fee": null, "rooms": null, "smoking": null, "architect": null, "wikimedia_commons": null, "bench": null, "bin": null, "lit": null, "shelter_type": null, "alt_name_1": null, "ways": null, "operator:wikidata": null, "operator:wikipedia": null, "type": null }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -87.6333193, 41.8800146 ], [ -87.6329803, 41.8800174 ], [ -87.6329793, 41.8799745 ], [ -87.6329764, 41.8798459 ], [ -87.6329715, 41.8796303 ], [ -87.6329697, 41.8795511 ], [ -87.6329686, 41.8795058 ], [ -87.632969, 41.8794919 ], [ -87.6331358, 41.8794902 ], [ -87.6332685, 41.8794889 ], [ -87.6333, 41.8794886 ], [ -87.6333041, 41.8795997 ], [ -87.6333056, 41.8796418 ], [ -87.633308, 41.879707 ], [ -87.633309, 41.8797313 ], [ -87.6333095, 41.8797502 ], [ -87.633314, 41.8798706 ], [ -87.6333147, 41.8798895 ], [ -87.6333177, 41.8799702 ], [ -87.6333193, 41.8800146 ] ] ] } }
+]
+}
diff --git a/test/meshfiles/shp/5poly/5poly.cpg b/test/meshfiles/shp/5poly/5poly.cpg
new file mode 100644
index 000000000..57decb481
--- /dev/null
+++ b/test/meshfiles/shp/5poly/5poly.cpg
@@ -0,0 +1 @@
+ISO-8859-1
diff --git a/test/meshfiles/shp/5poly/5poly.dbf b/test/meshfiles/shp/5poly/5poly.dbf
new file mode 100644
index 000000000..6746e87c7
Binary files /dev/null and b/test/meshfiles/shp/5poly/5poly.dbf differ
diff --git a/test/meshfiles/shp/5poly/5poly.shp b/test/meshfiles/shp/5poly/5poly.shp
new file mode 100644
index 000000000..63f986b13
Binary files /dev/null and b/test/meshfiles/shp/5poly/5poly.shp differ
diff --git a/test/meshfiles/shp/5poly/5poly.shx b/test/meshfiles/shp/5poly/5poly.shx
new file mode 100644
index 000000000..e0b92ef2c
Binary files /dev/null and b/test/meshfiles/shp/5poly/5poly.shx differ
diff --git a/test/meshfiles/shp/README.md b/test/meshfiles/shp/README.md
new file mode 100644
index 000000000..1d66ed55f
--- /dev/null
+++ b/test/meshfiles/shp/README.md
@@ -0,0 +1,15 @@
+### There are 3 sub folders each containing different shapefile examples
+
+1. **5poly** : A very simple file containing only 5 polygons with different number of sides
+2. **cb_2018_us_national_20m**: Real word shapefile containing the 2018 Census Bureau US map at 20m resolution
+3. **multipoly**: Test file containing multipolygons.
+
+### Files Included in the Shapefile Dataset
+
+1. **.shp** - **Shape Format**: Contains the geometric data (polygons) for the features in the dataset. The first 100 bytes contain metadata about the file.
+
+2. **.shx** - **Shape Index Format**: Contains the index data for the .shp file, allowing for quick access to the geometric data.
+
+3. **.dbf** - **Attribute Format**: Contains attribute data for the features in the .shp file. This is a dBase file that stores information in a tabular format, where each row corresponds to a feature in the .shp file.
+
+4. **.cpg** - **Code Page Format**: Contains character encoding information for the .dbf file, ensuring that text data is correctly interpreted. Eg. ISO-8859-1
diff --git a/test/meshfiles/shp/cb_2018_us_nation_20m/cb_2018_us_nation_20m.cpg b/test/meshfiles/shp/cb_2018_us_nation_20m/cb_2018_us_nation_20m.cpg
new file mode 100644
index 000000000..7edc66b06
--- /dev/null
+++ b/test/meshfiles/shp/cb_2018_us_nation_20m/cb_2018_us_nation_20m.cpg
@@ -0,0 +1 @@
+UTF-8
diff --git a/test/meshfiles/shp/cb_2018_us_nation_20m/cb_2018_us_nation_20m.dbf b/test/meshfiles/shp/cb_2018_us_nation_20m/cb_2018_us_nation_20m.dbf
new file mode 100644
index 000000000..b4edf2752
Binary files /dev/null and b/test/meshfiles/shp/cb_2018_us_nation_20m/cb_2018_us_nation_20m.dbf differ
diff --git a/test/meshfiles/shp/cb_2018_us_nation_20m/cb_2018_us_nation_20m.prj b/test/meshfiles/shp/cb_2018_us_nation_20m/cb_2018_us_nation_20m.prj
new file mode 100644
index 000000000..b5af06c7f
--- /dev/null
+++ b/test/meshfiles/shp/cb_2018_us_nation_20m/cb_2018_us_nation_20m.prj
@@ -0,0 +1 @@
+GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]
diff --git a/test/meshfiles/shp/cb_2018_us_nation_20m/cb_2018_us_nation_20m.shp b/test/meshfiles/shp/cb_2018_us_nation_20m/cb_2018_us_nation_20m.shp
new file mode 100644
index 000000000..4604b1532
Binary files /dev/null and b/test/meshfiles/shp/cb_2018_us_nation_20m/cb_2018_us_nation_20m.shp differ
diff --git a/test/meshfiles/shp/cb_2018_us_nation_20m/cb_2018_us_nation_20m.shp.ea.iso.xml b/test/meshfiles/shp/cb_2018_us_nation_20m/cb_2018_us_nation_20m.shp.ea.iso.xml
new file mode 100755
index 000000000..468a4d922
--- /dev/null
+++ b/test/meshfiles/shp/cb_2018_us_nation_20m/cb_2018_us_nation_20m.shp.ea.iso.xml
@@ -0,0 +1,119 @@
+
+