Systematic comparison of trip distribution laws and models in Python
Project description
PyTDLM 
Systematic comparison of trip distribution laws and models in Python
Description
The main purpose of these packages is to provide a rigorous framework for fairly comparing trip distribution laws and models, as described in Lenormand et al. (2016). This general framework relies on a two-step approach to generate mobility flows, separating the trip distribution law, gravity or intervening opportunities, from the modeling approach used to derive flows from this law.
To make this framework more accessible, we developed both an R package and a Python package, which replace the original Java scripts and extend their functionality.
PyTDLM is a Python port of the TDLM R package, with numpy-based implementations and parallel processing support for multiple exponent values.
Installation
Using conda
conda install -c conda-forge pytdlm
Using pip
pip install PyTDLM
From source
git clone https://github.com/PyTDLM/TDLM.git
cd PyTDLM
pip install -e .
Quick start
import numpy as np
from TDLM import tdlm
# Prepare your data
mi = np.array([100, 200, 150]) # Origin masses
mj = np.array([80, 180, 120]) # Destination masses
dij = np.array([[0, 10, 15], # Distance matrix
[10, 0, 8],
[15, 8, 0]])
Oi = np.array([50, 80, 60]) # Out-trips
Dj = np.array([40, 90, 50]) # In-trips
Tij_observed = np.array([[0, 25, 25], # Observed trip matrix
[30, 0, 50],
[35, 35, 0]])
# Run simulation
exponent = np.arange(0.1, 1.01, 0.01)
results = tdlm.run_law_model(
law='NGravExp',
mass_origin=mi,
mass_destination=mj,
distance=dij,
exponent=exponent,
model='DCM',
out_trips=Oi,
in_trips=Dj,
repli=100
)
# Calculate goodness-of-fit
gof_results = tdlm.gof(sim=results, obs=Tij_observed, distance=dij)
# Print results for a given exponent
print(gof_results[0.1].to_markdown(index=False))
Documentation
For detailed documentation and examples, visit: https://rtdlm.github.io/PyTDLM/
Citation
If you use this library in your research, please cite: [Reference to come].
@software{PyTDLM,
author = {Perrier, R., Gargiulo, G., Jayet, C. and Lenormand, M.},
title = {PyTDLM: Systematic comparison of trip distribution laws and models in Python},
year = {2025},
note = {Reference forthcoming}
}
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pytdlm-0.2.0.tar.gz.
File metadata
- Download URL: pytdlm-0.2.0.tar.gz
- Upload date:
- Size: 79.9 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d17f919c01d69de5674482f944e6b6356d7f9f1fbeb02806b38ead793071fba7
|
|
| MD5 |
c6790fe7c7104fa253b4812d9e1cd25f
|
|
| BLAKE2b-256 |
653a940c401c6dd04c35588a858f85282b99108ce05eeecc193ff0e45a3749ed
|
File details
Details for the file pytdlm-0.2.0-py3-none-any.whl.
File metadata
- Download URL: pytdlm-0.2.0-py3-none-any.whl
- Upload date:
- Size: 27.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f9ef833d1b6eb1d7881c8f13089952a325c53f085366ce0478b511baf9cc7941
|
|
| MD5 |
8a4360e9fc673906164d0a8093031f9b
|
|
| BLAKE2b-256 |
930fb43616acd0d04a8536c8f057ef3d3c70781d08fa39d7e8df7bc1f46a4fe9
|