semvec/pypi-packages huggingface dataset:
osm-feature-extractor 0.3.0
Library to extract OSM features and map them to GeoJSON polygons.
License: MIT
Requires Python: <4.0,>=3.12
Keywords: osm, feature-augmentation, feature-extractor, osm-features

# OSM Feature Extractor 

[![PyPI version](https://badge.fury.io/py/osm-feature-extractor.svg)](https://badge.fury.io/py/osm-feature-extractor)

A lightweight application designed to automatically extract features from an OpenStreetMap (OSM) 
file and map them to a user-defined GeoJSON file containing a collection of polygons. 
The extracted features can include `count` for nodes, `length` for ways, and `area` for areas. 
These features can then be used for machine learning applications based on OSM data.

For more details on the features that are extracted, check [FEATURES.md](FEATURES.md) and 
the [OSM wiki](https://wiki.openstreetmap.org/wiki/Map_Features).

Example generated dataframe:

![df](osm_feature_extractor/utils/img/data_frame.png)

Data visualised on a map:

![df](osm_feature_extractor/utils/img/data_kepler.png)

## Installation

    $ pip install osm-feature-extractor

## Usage

After installation, you can use the tool directly with the `osm_feature_extractor` command, 
which supports two primary operations: `extract` and `analyze`.

### `extract`

The `extract` command requires a minimum of three flags:

    $ osm_feature_extractor extract \
        --osm-file <path_to_osm_file> \ 
        --input-polygons-file <path_to_polygons_file> \
        --output-file <path_to_output_file>

To see all available flags, use the help command:

    $ osm_feature_extractor extract --help

Alternatively, you can provide a `.conf` file with the required parameters:

    $ osm_feature_extractor extract --conf-file <path_to_conf_file>

The configuration file should have the following format:

```shell
[user-defined]
osm_file: <path_to_osm_file>
input_polygons_file: <path_to_polygons_file>
output_file: <path_to_output_file>

[default]
process_base_data: True
process_osm_data: True
polygons_file: polygons.geojson
osm_extractor_files_dir: osm_extractor_files_dir
```

**Note**: _Processing large OSM files may take some time. It is recommended to use the CLI tool [osmium extract](https://docs.osmcode.org/osmium/latest/osmium-extract.html)
to reduce the OSM file to your area of interest before running the feature extractor._

### `analyze` 

The `analyze` command provides a quick overview of the OSM file, including the total number of nodes, 
ways, bounds, and the centroid. To use this feature, run:

     $ osm_feature_extractor analyze --osm-file <path_to_osm_file>
Fubuki 0.2.1
Next generation hybrid web framework
License: MIT
Requires Python: >=3.10

![logo](https://raw.githubusercontent.com/fubuki-dev/Fubuki/main/assets/logo.png)
# Fubuki: Next generation hybrid web framework
Fubuki is a simple and flexible hybrid web framework. It is lightweight yet powerful, supporting rapid development. Fubuki is influenced by Laravel's features, while providing Flask-like ease of use in areas like routing. It also supports regular expressions in routes, allowing you to store arguments.

## Features

- Simple and intuitive API
- Middleware support
- Serving static files
- Template engine support
- Efficient routing
- Flexible development with hybrid architecture
- Features influenced by Laravel
- LiteStar-like easy routing
- Supports regular expressions and stores them in route arguments
- ASGI, RSGI support ()

## Installation

To install Fubuki, use the following command:

```sh
pip install fubuki
```

## Usage

### Creating a Project (WIP)

To create a new Fubuki project, run the following command:

```sh
fubuki create_project <project_name>
```

### Directory Structure

The directory structure of a new project is as follows:

```
<project_name>/
├── app/
│   ├── __init__.py
│   ├── controllers/
│   │   ├── __init__.py
│   │   └── home_controller.py
│   ├── middlewares/
│   │   ├── __init__.py
│   │   └── logging_middleware.py
│   ├── static/
│   │   └── styles.css
│   ├── templates/
│   │   └── welcome.html
│   ├── routes.py
├── cli.py
├── app.py
└── main.py
```

### Adding a Controller

To add a controller, create a new Python file in the `app/controllers` directory and define the routes as follows:

```python
from fubuki import Controller, route
from fubuki.response import JSONResponse

class MyController(Controller):
    @route("/my_path")
    async def my_route(request: Request):
        return JSONResponse({"message": "Hello, World!"})
```

### Configuring the Application

To add controllers to the application, edit the `routes.py` file.

```python
from app.controllers.home_controller import UserController

def setup_routes(app):
    for controller_class in [MyController, UserController]:
        app.add_route(controller_class)
```

### Running the Application

To run the application, execute the `main.py` file.

```sh
python main.py
```

## Contributing

Contributions are welcome! You can submit bug reports, feature requests, and pull requests on the GitHub repository.

## License

This project is licensed under the MIT License. For more details, see the [LICENSE](LICENSE) file.

## Author

- Name: AmaseCocoa
- Fediverse: [@AmaseCocoa@misskey.io](https://misskey.io/@AmaseCocoa)
preisach 0.0.1
The limiting hysteresis loop preisach model.
License: MIT

The limiting hysteresis loop preisach model.
Case:
"
import preisach
B = preisach.getB(origin_H, origin_B, h)
"
origin_H is the magnetic field strength in the limiting hysteresis loop data, of type numpy array;
origin_B is the flux density data in the limiting hysteresis loop data, of type numpy array;
h is the target magnetic field strength data, of type numpy array;