pysochrone


Namepysochrone JSON
Version 0.1.0 PyPI version JSON
download
home_pageNone
SummaryNone
upload_time2024-02-02 16:49:06
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseMIT
keywords openstreetmaps isochrone mobility geo petgraph
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # OSM_graph
*Quickly generate isochrones for Python and Rust!*

This library provides a set of tools for generating isochrones and reverse isochrones from geographic coordinates. It leverages OpenStreetMap data to construct road networks and calculate areas accessible within specified time limits. The library is designed for both Rust and Python, offering high performance and easy integration into data science workflows.

![Isochrones](image.png)

## Features
- Graph Construction: Parses OpenStreetMap data to construct a graph representing the road network.
- Isochrone Calculation: Generates isochrones, areas reachable within a given time frame from a start point, using Dijkstra's algorithm.
- Reverse Isochrone Calculation: Determines areas from which a point can be reached within a given time frame.
- Concave and Convex Hulls: Supports generating both concave and convex hulls around isochrones for more accurate or simplified geographical shapes.
- Caching: Implements caching mechanisms to store and retrieve pre-calculated graphs for faster access.
Python Integration: Offers Python bindings to use the library's functionalities directly in Python scripts, notebooks, and applications.
- Concurrency Support: Utilizes Rust's concurrency features for efficient isochrone calculation over large datasets.
- GeoJSON Output: Converts isochrones into GeoJSON format for easy visualization and integration with mapping tools.

## Installation
To use the library in Rust, add it to your Cargo.toml:

```toml
[dependencies]
osm-graph = { git = "https://github.com/kyleloving/osm_graph/.git" }
```

For Python, ensure you have Rust and maturin installed, then build and install the Python package:

```bash
maturin develop
```

## Usage
Rust
```rust
use osm_graph::{calculate_isochrones_from_point, HullType};

async fn main() {
    let isochrones = calculate_isochrones_from_point(
        48.123456, 11.123456, 5000.0, vec![600.0, 1200.0, 1800.0], HullType::Convex
    ).await.unwrap();
    
    // Process isochrones...
}
```

Python

```python
import pysochrone

isochrones = pysochrone.calc_isochrones(48.123456, 11.123456, 5000, [600, 1200, 1800], "Convex")
print(isochrones)
```

## Roadmap
- Customizable Speed Limits: Allow users to specify custom speed limits for different road types.
- Support for Pedestrian and Bicycle Networks: Expand the graph construction to support pedestrian and bicycle network types.
- Additional Roadnetwork analytics.
- Advanced Caching Strategies: Implement more sophisticated caching mechanisms for dynamic query parameters.
- Interactive Visualization Tools: Develop a set of tools for interactive visualization of isochrones in web applications.
- API Integration: Provide integration options with third-party APIs for enhanced data accuracy and features.
- Optimization and Parallel Computing: Further optimize the graph algorithms and explore parallel computing options for large-scale data.

## Contributing
Contributions are welcome! Please submit pull requests, open issues for discussion, and suggest new features or improvements.

## License
This library is licensed under MIT License.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "pysochrone",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "OpenStreetMaps,Isochrone,Mobility,Geo,Petgraph",
    "author": null,
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/cf/04/e0703ab0a0c50ddd4c038db5c0016628fb31af46ab231151d309dc32bb4f/pysochrone-0.1.0.tar.gz",
    "platform": null,
    "description": "# OSM_graph\r\n*Quickly generate isochrones for Python and Rust!*\r\n\r\nThis library provides a set of tools for generating isochrones and reverse isochrones from geographic coordinates. It leverages OpenStreetMap data to construct road networks and calculate areas accessible within specified time limits. The library is designed for both Rust and Python, offering high performance and easy integration into data science workflows.\r\n\r\n![Isochrones](image.png)\r\n\r\n## Features\r\n- Graph Construction: Parses OpenStreetMap data to construct a graph representing the road network.\r\n- Isochrone Calculation: Generates isochrones, areas reachable within a given time frame from a start point, using Dijkstra's algorithm.\r\n- Reverse Isochrone Calculation: Determines areas from which a point can be reached within a given time frame.\r\n- Concave and Convex Hulls: Supports generating both concave and convex hulls around isochrones for more accurate or simplified geographical shapes.\r\n- Caching: Implements caching mechanisms to store and retrieve pre-calculated graphs for faster access.\r\nPython Integration: Offers Python bindings to use the library's functionalities directly in Python scripts, notebooks, and applications.\r\n- Concurrency Support: Utilizes Rust's concurrency features for efficient isochrone calculation over large datasets.\r\n- GeoJSON Output: Converts isochrones into GeoJSON format for easy visualization and integration with mapping tools.\r\n\r\n## Installation\r\nTo use the library in Rust, add it to your Cargo.toml:\r\n\r\n```toml\r\n[dependencies]\r\nosm-graph = { git = \"https://github.com/kyleloving/osm_graph/.git\" }\r\n```\r\n\r\nFor Python, ensure you have Rust and maturin installed, then build and install the Python package:\r\n\r\n```bash\r\nmaturin develop\r\n```\r\n\r\n## Usage\r\nRust\r\n```rust\r\nuse osm_graph::{calculate_isochrones_from_point, HullType};\r\n\r\nasync fn main() {\r\n    let isochrones = calculate_isochrones_from_point(\r\n        48.123456, 11.123456, 5000.0, vec![600.0, 1200.0, 1800.0], HullType::Convex\r\n    ).await.unwrap();\r\n    \r\n    // Process isochrones...\r\n}\r\n```\r\n\r\nPython\r\n\r\n```python\r\nimport pysochrone\r\n\r\nisochrones = pysochrone.calc_isochrones(48.123456, 11.123456, 5000, [600, 1200, 1800], \"Convex\")\r\nprint(isochrones)\r\n```\r\n\r\n## Roadmap\r\n- Customizable Speed Limits: Allow users to specify custom speed limits for different road types.\r\n- Support for Pedestrian and Bicycle Networks: Expand the graph construction to support pedestrian and bicycle network types.\r\n- Additional Roadnetwork analytics.\r\n- Advanced Caching Strategies: Implement more sophisticated caching mechanisms for dynamic query parameters.\r\n- Interactive Visualization Tools: Develop a set of tools for interactive visualization of isochrones in web applications.\r\n- API Integration: Provide integration options with third-party APIs for enhanced data accuracy and features.\r\n- Optimization and Parallel Computing: Further optimize the graph algorithms and explore parallel computing options for large-scale data.\r\n\r\n## Contributing\r\nContributions are welcome! Please submit pull requests, open issues for discussion, and suggest new features or improvements.\r\n\r\n## License\r\nThis library is licensed under MIT License.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": null,
    "version": "0.1.0",
    "project_urls": {
        "Source Code": "https://github.com/kyleloving/osm_graph/tree/main"
    },
    "split_keywords": [
        "openstreetmaps",
        "isochrone",
        "mobility",
        "geo",
        "petgraph"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9b82fad6896b76fc6ebcc0d2bed0639c7fe6faeb635148bc23858ca22f25d9e1",
                "md5": "bf7f6a1a364a06a9acf7ada463c52a93",
                "sha256": "68c0d95fe8b05375bcdb4818ba07b07b42f9624c6c1308cedfba3dce1fb78cf7"
            },
            "downloads": -1,
            "filename": "pysochrone-0.1.0-cp39-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "bf7f6a1a364a06a9acf7ada463c52a93",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 1559509,
            "upload_time": "2024-02-02T16:49:04",
            "upload_time_iso_8601": "2024-02-02T16:49:04.346468Z",
            "url": "https://files.pythonhosted.org/packages/9b/82/fad6896b76fc6ebcc0d2bed0639c7fe6faeb635148bc23858ca22f25d9e1/pysochrone-0.1.0-cp39-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "cf04e0703ab0a0c50ddd4c038db5c0016628fb31af46ab231151d309dc32bb4f",
                "md5": "ce421d87dd860a054b58ea9ecc61a318",
                "sha256": "defe935d41797d032ccfbf199c090ce3804deefd4a7bf6a6fc0e6fce8668d8e3"
            },
            "downloads": -1,
            "filename": "pysochrone-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "ce421d87dd860a054b58ea9ecc61a318",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 22843,
            "upload_time": "2024-02-02T16:49:06",
            "upload_time_iso_8601": "2024-02-02T16:49:06.412347Z",
            "url": "https://files.pythonhosted.org/packages/cf/04/e0703ab0a0c50ddd4c038db5c0016628fb31af46ab231151d309dc32bb4f/pysochrone-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-02-02 16:49:06",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "kyleloving",
    "github_project": "osm_graph",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "pysochrone"
}
        
Elapsed time: 2.41370s