Skip to main content

A pytorch implementation of the Geographically Neural Network Weighted Regression (GNNWR)

Project description

gnnwr

PyPI - License PyPI - Python Version PyPI - Version GitHub all releases

A pytorch implementation of the Geographically Neural Network Weighted Regression (GNNWR) and its derived models

This repository contains:

  1. Source code of GNNWR, GTNNWR model and other derived models
  2. Tutorial notebooks of how to use these model
  3. Released Python wheels

Table of Contents

Models

  • GNNWR: Geographically neural network weighted regression, a model address spatial non-stationarity in various domains with complex geographical processes. A spatially weighted neural network (SWNN) is proposed to represent the nonstationary weight matrix.

GNNWR

  • GTNNWR: Geographically and temporally neural network weighted regression, a model for estimating spatiotemporal non-stationary relationships. A spatiotemporal proximity neural network (STPNN) is proposed in this paper to accurately generate space-time distance.

GTNNWR

Install

⚠ If you want to run gnnwr with your GPU, make sure you have installed pytorch with CUDA support beforehead:

For example, a torch 1.13.1 with cuda 11.7:

> pip list | grep torch
torch                   1.13.1+cu117

You can find install support on Pytorch's official website for installing the right version that suits your environment.

⚠ If you only want to run gnnwr with your CPU, or you have already installed the correct version of pytorch:

Using pip to install gnnwr:

pip install gnnwr

Usage

We provide a series of encapsulated methods and predefined default parameters, users only need to use to load dataset with pandas , and call the functions in gnnwr package to complete the regression:

from gnnwr import models,datasets
import pandas as pd

data = pd.read_csv('your_data.csv')

train_dataset, val_dataset, test_dataset = datasets.init_dataset(data=data,
                                                                 test_ratio=0.2, valid_ratio=0.1,
                                                                 x_column=['x1', 'x2'], y_column=['y'],
                                                                 spatial_column=['u', 'v'])

gnnwr = models.GNNWR(train_dataset, val_dataset, test_dataset)

gnnwr.run(100)

For other uses of customization, the demos can be referred to.

Reference

algorithm

  1. Du, Z., Wang, Z., Wu, S., Zhang, F., and Liu, R., 2020. Geographically neural network weighted regression for the accurate estimation of spatial non-stationarity. International Journal of Geographical Information Science, 34 (7), 1353–1377.
  2. Wu, S., Wang, Z., Du, Z., Huang, B., Zhang, F., and Liu, R., 2021. Geographically and temporally neural network weighted regression for modeling spatiotemporal non-stationary relationships. International Journal of Geographical Information Science, 35 (3), 582–608.

case study demo

  1. Jin Qi, Zhenhong Du, Sensen Wu, Yijun Chen, Yuanyuan Wang, 2023. A spatiotemporally weighted intelligent method for exploring fine-scale distributions of surface dissolved silicate in coastal seas. Science of The Total Environment, 886 , 163981.

Contributing

Contributors

License

GPLv3 license

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gnnwr-0.0.7.tar.gz (31.6 kB view hashes)

Uploaded Source

Built Distribution

gnnwr-0.0.7-py3-none-any.whl (30.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page