Giter Club home page Giter Club logo

intersector-crawl's Introduction

Intersector-Crawler

Efficiently Assigning Numerical Values from Multiple Intersecting Polygons to Overlapping Areas: A Case Study of Austin Council Districts

This project aims to assign numerical values from multiple intersecting polygons to overlapping areas efficiently, focusing on a case study of Austin Council Districts. It solves one-to-many cardinality issues commonly encountered in Geographic Information Systems (GIS) analysis.

Overview

The project addresses the challenge of assigning numerical codes to polygons based on the council districts in which they intersect. Traditional spatial join methods suffer from one-to-one cardinality limitations, leading to incomplete data representation. This project offers a solution to overcome these limitations by accurately identifying and assigning multiple council districts to intersecting polygons.

Features

  • Efficient Algorithm: Utilizes ArcPy in ArcGIS Pro to implement an efficient algorithm for identifying intersecting polygons and assigning corresponding council districts.

  • One-to-Many Handling: Handles one-to-many cardinality issues by populating a new TEXT field with comma-separated lists of council district numbers for each polygon.

  • Documentation: Provides detailed documentation on the workflow, solution components, and potential optimizations.

    Problem to be solved!

    image

--The highlighted polygon with a yellow outline is actually intersected by two council districts in purple and orange. However, in the attribute table, only one number is assigned, coming from whichever district was reached by the code in the background of Add Spatial Join. This is the famous case of one-to-one cardinality in GIS. What I need is a one-to-many handling mentioning both Council Districts as a value (e.g., 9, 3)

Getting Started

To use the script in your ArcGIS Pro environment, follow these steps:

  1. Create a new TEXT field in the polygon layer to store the Council District numbers.

  2. Open the Field Calculator in ArcGIS Pro and set the expression to:

get_council_districts(!Shape!)

Adjust the name of the fields based on your needs and run the calculation to populate the new field with the Council District numbers for each polygon.

Result

image

--In front of the field called “District” there are two numbers separated by comma (4,7) standing for the two Council Districts intersecting the highlighted polygon.

image

Slowness Optimization and improvements!

The project discusses potential factors contributing to slow performance, such as data size, complexity of geometries, intersect analysis, and spatial indexing. It offers insights into optimizing the code and improving processing efficiency. I hope to improve the speed.

Contributing

Contributions to the project are welcome! Feel free to open an issue or submit a pull request if you have suggestions for improvements, optimizations, or new features.

License

This project is licensed under the MIT License.

Acknowledgments

  • Special thanks to the City of Austin for providing the dataset used in this case study.
  • Inspired by the need for efficient spatial analysis in GIS applications.

Contact

For questions, feedback, or inquiries about the project, please contact Milad Korde.

intersector-crawl's People

Contributors

milad84 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.