Giter VIP home page Giter VIP logo

kraina-ai / srai Goto Github PK

View Code? Open in Web Editor NEW
183.0 8.0 10.0 5.56 MB

Spatial Representations for Artificial Intelligence - a Python library toolkit for geospatial machine learning focused on creating embeddings for downstream tasks

Home Page: https://kraina-ai.github.io/srai/

License: Apache License 2.0

Python 99.97% Makefile 0.03%
artificial-intelligence data-science geo geospatial machine-learning python spatial spatial-analysis srai

srai's People

Contributors

calychas avatar kraina-cicd avatar mprzymus avatar mschrader15 avatar piotrgramacki avatar pre-commit-ci[bot] avatar raczeq avatar simonusher avatar zackaemmer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

srai's Issues

Add base and dev dependencies to pyproject.toml

Core libraries:

  • Geospatial
    • GeoPandas
    • Pandas (explicit versioning)
    • Numpy (explicit versioning)
    • Shapely (explicit versioning)
    • H3 (4.0 is in alpha, 3.7.4 is current version)
  • Utility
    • tqdm (alive-bar as alternative)

Test useful libraries for parallelization:

  • numba?
  • dask?
  • celery XD
  • ray
  • swifter
  • pandarallel

Optional dependencies:

  • Visualization
    • seaborn (optional)
    • leaflet
  • ML / AI - training
    • Scikit (?)
    • PyTorch
    • PyTorchGeo
  • OpenStreetMap (test what will be useful)
    • OSMPythonTools
    • osmnx

Development:

  • black
  • isort
  • flake8

Docs (select one):

  • sphinx
  • quattro
  • MkDocs (fastapi uses this one)
  • diagrams library (generating diagrams as a code)

Add useful libraries:

Add BaseRegionizer

Basic regionizer that uses the whole shape as a single region. Noop equivalent.

Add VoronoiRegionizer

Divides a region into Thiessen polygons (Voronoi cells) based on a list of seeds.

Add CountEmbedder

Converts assigned objects into vector with counts of different types of features for each region.

Add precalculated models API

Create a module (maybe named simply models?) for quick and easy vectorization of data for machine learning.

Allow users to just pass a list of (lon, lat) or shapely.geometry.Point values in wgs84 CRS and return a NumPy array.
No GIS knowledge is required, just enrich your data with predefined models. May download the existing model from the server or run a predefined pipeline in the background with a progress bar and logging.

Examples to follow the API:

word2vec

from gensim.models import Word2Vec
word2vec = Word2Vec(all_words, min_count=2)

embeddings

from embeddings import GloveEmbedding, FastTextEmbedding, KazumaCharEmbedding, ConcatEmbedding

g = GloveEmbedding('common_crawl_840', d_emb=300, show_progress=True)
f = FastTextEmbedding()
k = KazumaCharEmbedding()
c = ConcatEmbedding([g, f, k])
for w in ['canada', 'vancouver', 'toronto']:
    print('embedding {}'.format(w))
    print(g.emb(w))
    print(f.emb(w))
    print(k.emb(w))
    print(c.emb(w))

Select docstrings format

Depends on #5 and vice versa. We have to pick documentation framework compatible with the docstring format.

Add IntersectionJoiner

Joins loaded geo data with regions (assigns objects to regions based on intersection)

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.