https://github.com/baltic-coastal-monitoring-team/geopoint
GeoPOINT – Synthetic Point Generator for Geospatial Applications
Science Score: 67.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 2 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (12.8%) to scientific vocabulary
Repository
GeoPOINT – Synthetic Point Generator for Geospatial Applications
Basic Info
Statistics
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
- Releases: 2
Metadata Files
README.md

GeoPOINT – Synthetic Point Generator for Geospatial Applications
GeoPOINT is a Python-based tool for generating synthetic 3D points to support geospatial, geodetic, and computational experiments.
It allows users to simulate ideal point distributions, add measurement noise, and apply geodetic distortion models, followed by transformations into local reference frames.
The tool is implemented as a Jupyter Notebook (GeoPOINT_generator.ipynb).
Key Features
Synthetic point generation on a spherical surface in a fixed (global) coordinate frame.
Three modes are supported:- Ideal points (noise-free) – purely mathematical coordinates uniformly distributed on a sphere.
- Points with Gaussian noise – adds random errors to simulate stochastic measurement noise.
- Points with geodetic distortion – combines Gaussian noise with systematic EDM (Electronic Distance Meter) and angular errors, simulating real Total Station observations.
- Ideal points (noise-free) – purely mathematical coordinates uniformly distributed on a sphere.
Transformation of coordinates into a local (body) frame:
- Translation along X, Y, Z axes.
- Rotation (roll, pitch, yaw) specified in gradians and internally converted to radians.
- Optional scaling for dimensional adjustments.
- Translation along X, Y, Z axes.
Configurable error and transformation parameters via a central configuration dictionary.
Export to Excel (
.xlsx) usingpandasandopenpyxl– both fixed and transformed coordinate sets are saved.Visualization and statistics of generated and transformed datasets:
- 3D scatter plots and wireframe reference sphere.
- Comparison between datasets (ideal vs. noisy vs. distorted).
- Error vectors illustrating displacements between point sets.
- Export of figures as
.jpgimages.
- 3D scatter plots and wireframe reference sphere.
Installation
The repository provides an environment.yml file for Conda.
To set up the environment:
```bash
Clone the repository
git clone https://github.com/Baltic-Coastal-Monitoring-Team/GeoPOINT.git cd GeoPOINT
Create environment
conda env create -f environment.yml
Activate environment
conda activate geopoint ```
This environment includes: - Python 3.11 - numpy, pandas, matplotlib, scipy, sympy - openpyxl (Excel export) - jupyterlab (for running the notebook) - torch (optional numerical extensions)
Quick Start
- Launch JupyterLab:
bash
jupyter lab
- Open the
GeoPOINT_generator.ipynbnotebook. - Configure parameters in the
configdictionary, e.g.:
```python config = { "npoints": 50, # Number of synthetic points "radius": 50.0, # Sphere radius [m]
# Geodetic error model
"A": 0.005, # Constant EDM error [m]
"B": 7.0, # Distance-dependent EDM error [ppm]
"angle_noise_arcsec": 1.0, # Angular precision [arcseconds]
# Rotation parameters [grads]
"roll": 5,
"pitch": 5,
"yaw": 40,
# Translation parameters [m]
"dx": 10.0,
"dy": 10.0,
"dz": 2.0,
# Noise added to transformed points [m]
"gaussian_std": 0.01,
"bias": 0.002
} ```
- Run the generation cells to create ideal, noisy, or distorted points.
- Transform coordinates into the local body frame.
- Export results to Excel and plots to .jpg images.
Repository Structure
GeoPOINT/
├─ GeoPOINT_generator.ipynb # main notebook with generator code
├─ environment.yml # conda environment file
├─ exports_excel/ # results in XLSX format
├─ exports_img/ # results in jpg format
└─ README.md # project documentation
Documentation and Instructions
All instructions, detailed explanations, and usage notes are provided directly in the Jupyter Notebook (GeoPOINT_generator.ipynb).
Code comments further clarify each computational step, configuration parameter, and transformation method.
Users are encouraged to explore the notebook to fully understand the workflow and adapt it to their specific applications.
Example Applications
- Testing geodetic instrument error models (EDM, angular precision).
- Benchmarking coordinate transformation workflows.
- Teaching and demonstration of geodetic concepts (roll/pitch/yaw, local frames).
- Producing synthetic datasets for algorithm validation.
Contributing
Contributions are welcome:
- Bug fixes and improvements.
- Additional error models or transformation options.
- Examples of usage in geodetic or geospatial projects.
Citation
If you use GeoPOINT in your research or publications, please cite:
License
MIT License – see LICENSE file.
Owner
- Name: JakubS
- Login: Baltic-Coastal-Monitoring-Team
- Kind: user
- Location: Szczecin
- Repositories: 1
- Profile: https://github.com/Baltic-Coastal-Monitoring-Team
Citation (CITATION.cff)
cff-version: 1.2.0 message: "If you use this software, please cite it as below." authors: - family-names: "Stępień" given-names: "Grzegorz" orcid: "https://orcid.org/0000-0002-1080-6388" - family-names: "Kabała" given-names: "Karol" orcid: "https://orcid.org/0000-0003-0380-9270" - family-names: "Śledziowski" given-names: "Jakub" orcid: "https://orcid.org/0000-0001-9359-7907" title: "GeoPOINT – Synthetic Point Generator for Geospatial Applications" version: 1.0.0 doi: https://doi.org/10.5281/zenodo.17065538 date-released: 2025-09-05 url: "https://github.com/Baltic-Coastal-Monitoring-Team/GeoPOINT"
GitHub Events
Total
- Release event: 1
- Push event: 3
- Create event: 2
Last Year
- Release event: 1
- Push event: 3
- Create event: 2
Dependencies
- torch *