This software is being developed at the University of Aizu, Aizu-Wakamatsu, Fukushima, Japan
Project description
Click here for more information
Table of Contents
- Introduction
- Recent updates
- Features
- Maintenance
- Try your first geoAnalytics program
- License
- Documentation
- Getting Help
- Discussion and Development
- Contribution to geoAnalytics
- Real-World Case Studies
Introduction
geoAnalytics is an open-source Python-based Machine Learning library developed to discover various forms of useful information hidden in the raster data. The algorithms provided in this library cover a wide-spectrum of machine learning tasks, such as imputation, image fusion, clustering, classification, one class classification, and pattern mining. This library being platform independent can run any operating system.
Recent Updates
- Version 2025.7.2:
In this latest version, the following updates have been made:
- Included new algorithms in patternMining, CorrelatedPatternMining, CoveragePatternMining, FaultTolerantFrequentPatternMining, FrequentPatternMining, LocalPeriodicPatternMining, PartialPeriodicFrequentPatternMining, PartialPeriodicPatternMining, PartialPeriodicPatternInMultipleTimeSeries, PeriodicCorrelatedPatternMining, RecurringPatternMining, RelativeFrequentPatternMining, and PeriodicFrequentPatternMining for identifying the patterns.
- Included new algorithms in normalization.
- Test cases are implemented using geoanalytics package.
Total number of algorithms: 50+
Features
- ✅ Tested to the best of our possibility
- 🔋 Highly optimized to our best effort, light-weight, and energy-efficient
- 👀 Proper code documentation
- 🍼 Sample examples of using various algorithms at ./tests folder
- 🤖 Works with AI libraries such as TensorFlow, PyTorch, and sklearn.
- ⚡️ Supports Cuda
- 🖥️ Operating System Independence
- 🔬 Knowledge discovery in static data and streams
- 🐎 Snappy
- 🐻 Ease of use
Maintenance
| Operation | Command |
|---|---|
| Installation | pip install geoAnalytics |
| Upgradation | pip install --upgrade geoAnalytics |
| Uninstallation | pip uninstall geoAnalytics |
| Information | pip show geoAnalytics |
Try your first geoAnalytics program
$ python
Install the Necessary Ubuntu Packages
$ !apt update
$ !apt install -y nco cdo gdal-bin
$ !which ncrename
Output: /usr/bin/ncrename
$ !which cdo
Output: /usr/bin/cdo
$ !which gdal_translate
Output: /usr/bin/gdal_translate
Install the geoAnalytics package
!pip install -U geoanalytics
Knowing the information of geoAnalytics package
pip show geoanalytics
Output:
Name: geoanalytics
Version: 2025.6.10.3
Summary: This software is being developed at the University of Aizu, Aizu-Wakamatsu, Fukushima, Japan
Home-page: https://github.com/UdayLab/geoanalytics
Author:
Author-email: Rage Uday Kiran <uday.rage@gmail.com>
License: GPLv3
Location: /usr/local/lib/python3.11/dist-packages
Requires: deprecated, discord.py, fastparquet, matplotlib, mplcursors, networkx, numba, numpy, pandas, Pillow, plotly, psutil, psycopg2-binary, resource, scikit-learn, shapely, sphinx, sphinx-rtd-theme, tqdm, urllib3, validators
Required-by:
Download any dataset with extension of both .img and .lbl from the below link
Link --> https://data.darts.isas.jaxa.jp/pub/pds3/sln-l-mi-5-map-v3.0/
Example Direction : --> https://data.darts.isas.jaxa.jp/pub/pds3/sln-l-mi-5-map-v3.0/lon042/data/
Upload the .lbl file .img file
Operatioin 1: Raster to CSV
Step1: Import RasterToTSV package from geoAnalytics.conversion
from geoanalytics.conversion import Raster2CSV
Step2: Pass the lbl file as input and give desired outputFile name also specify the inputBand value as well as ouputBand value
converter = Raster2CSV.Raster2CSV(inputFile='MI_MAP_03_S16E035S17E036SC.lbl', outputFile='Moon.csv', startBand=1, endBand=9)
Step3: Convert the raster file into a CSV file
converter.run()
Output:
Processing: MI_MAP_03_S16E035S17E036SC.lbl
Done. Output saved to: Moon.csv
Operation 2 : Clustering the Data
Step 1.1: Read the obtained CSV into a dataframe
import pandas as pd
df = pd.read_csv('Moon.csv', sep='\t')
df
| x | y | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|---|---|---|---|---|---|---|---|---|---|---|
| 1061317.265 | -485173.607 | 1928 | 3446 | 3859 | 3913 | 4026 | 3999 | 4236 | 5245 | 6513 |
| 1061332.071 | -485173.607 | 1924 | 3480 | 3876 | 3930 | 4059 | 3996 | 4243 | 5234 | 6518 |
| 1061346.877 | -485173.607 | 1904 | 3476 | 3834 | 3923 | 4047 | 3992 | 4238 | 5222 | 6523 |
| 1061361.684 | -485173.607 | 1874 | 3452 | 3801 | 3897 | 3959 | 3988 | 4228 | 5210 | 6518 |
| 1061376.490 | -485173.607 | 1907 | 3464 | 3777 | 3868 | 3974 | 3983 | 4218 | 5198 | 6504 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 1091566.583 | -515482.151 | 2090 | 3719 | 4007 | 3996 | 4117 | 4056 | 4310 | 5374 | 6633 |
| 1091581.390 | -515482.151 | 2098 | 3734 | 4038 | 4020 | 4177 | 4083 | 4327 | 5389 | 6659 |
| 1091596.196 | -515482.151 | 2114 | 3767 | 4046 | 4040 | 4213 | 4110 | 4332 | 5393 | 6685 |
| 1091611.002 | -515482.151 | 2123 | 3813 | 4019 | 4056 | 4214 | 4136 | 4331 | 5397 | 6711 |
| 1091625.809 | -515482.151 | 2125 | 3784 | 4011 | 4051 | 4184 | 4136 | 4329 | 5402 | 6737 |
4194304 rows × 11 columns |
Step2: Import any clustering algorithm from geoanalytics.clustering
!pip install fuzzy-c-means
from geoanalytics.clustering import FuzzyCMeans
obj = FuzzyCMeans.FuzzyCMeans(dataframe=df)
Step3: Execute the run() method to cluster the data
labels, centers = obj.run(n_clusters=4)
Step4: Print the labels
labels
| x | y | labels |
|---|---|---|
| 1061317.265 | -485173.607 | 2 |
| 1061332.071 | -485173.607 | 2 |
| 1061346.877 | -485173.607 | 2 |
| 1061361.684 | -485173.607 | 2 |
| 1061376.490 | -485173.607 | 2 |
| ... | ... | ... |
| 1091566.583 | -515482.151 | 2 |
| 1091581.390 | -515482.151 | 0 |
| 1091596.196 | -515482.151 | 0 |
| 1091611.002 | -515482.151 | 0 |
| 1091625.809 | -515482.151 | 0 |
| 4194304 rows × 3 columns |
Step5: Print the centers
centers
Output:
array([[2098.51620472, 3762.45416178, 4099.00372289, 4146.23025903,
4295.80971825, 4229.78337628, 4443.6879668 , 5471.85298977,
6790.96720993],
[2274.54605523, 4040.75198398, 4374.89922669, 4395.57058102,
4538.50885801, 4454.45212911, 4677.95182781, 5739.96854105,
7095.06428559],
[1984.82196498, 3578.0340764 , 3908.79548852, 3961.66894715,
4108.90409919, 4049.30456217, 4255.81099407, 5258.24055464,
6549.13133772],
[1896.71176664, 3421.42972113, 3741.56611478, 3802.88625245,
3946.94784255, 3896.3217178 , 4093.18671711, 5066.07543066,
6327.35005223]])
Step6: To know the run time and memory consumption of Algorithm, print the statistical values
obj.getRuntime()
obj.getMemoryRSS()
obj.getMemoryUSS()
Output:
Total Execution time of proposed Algorithm: 407.7022657394409 seconds
Memory (RSS) of proposed Algorithm in KB: 1655512.0
Memory (USS) of proposed Algorithm in KB: 1634900.0
Step7: Save the labels and centers
obj.save(outputFileLabels='FuzzyCMeansLabels.csv', outputFileCenters='FuzzyCMeansCenters.csv')
Output:
Labels saved to: FuzzyCMeansLabels.csv
Cluster centers saved to: FuzzyCMeansCenters.csv
Operation3: CSV to Raster
Step1: Import CSV2Raster from geoanalytics.conversion
from geoanalytics.conversion import CSV2Raster as CSV2Raster
Step2: Pass the dataFrame and give desired outputFile name
process = CSV2Raster.CSV2Raster(dataframe=labels,outputFile='FuzzyCMeans.tiff')
Step3: Execute the run() method
process.run()
Output:
(0, '')
(139, 'Segmentation fault (core dumped)')
(0, '')
(0, 'Input file size is 2048, 2048\n0...10...20...30...40...50...60...70...80...90...100 - done.')
(0, '')
Operation 4: Visualization
Step1: Import TiffViewer from geoanalytics.visualization
pip install rasterio
from geoanalytics.visualization import TiffViewer
Step2: Input the RasterFile or pass it into the parameter
viewer = TiffViewer.TiffViewer(inputFile='FuzzyCMeans.tiff')
Step3: Display the image with desired scaling map
1. gray scale
viewer.run(cmap='gray', title='TIFF Image')
2. Jet Scale
viewer.run(cmap='jet', title='TIFF Image')
License
Documentation
The official documentation is hosted on geoAnalytics.
Getting Help
For any queries, the best place to go to is Github Issues Github Issues.
Discussion and Development
In our GitHub repository, the primary platform for discussing development-related matters is the university lab. We encourage our team members and contributors to utilize this platform for a wide range of discussions, including bug reports, feature requests, design decisions, and implementation details.
Contribution to geoAnalytics
We invite and encourage all community members to contribute, report bugs, fix bugs, enhance documentation, propose improvements, and share their creative ideas.
Real World Case Studies
Project details
Release history Release notifications | RSS feed
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 geoanalytics-2026.1.19.1.tar.gz.
File metadata
- Download URL: geoanalytics-2026.1.19.1.tar.gz
- Upload date:
- Size: 100.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0374c34d583e5b3ae1997d7dd474babb9abcddceedb6038b576b31695cd7b8dc
|
|
| MD5 |
0583f505fc1f81f1fd7c4315f118ebc7
|
|
| BLAKE2b-256 |
44c84f783adfc8e3b7ea39257e214741dddf73ec8d086250db9a42e134911df6
|
File details
Details for the file geoanalytics-2026.1.19.1-py3-none-any.whl.
File metadata
- Download URL: geoanalytics-2026.1.19.1-py3-none-any.whl
- Upload date:
- Size: 220.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8610936477dfef68aab348d6a2a3b11a42d3a0337400305abd60c212fb9e22f3
|
|
| MD5 |
5c14a1985e3a7bf9a293b334bf49016e
|
|
| BLAKE2b-256 |
a65520a1464012de8d849daf52c60c793b1f5badb797f50b2a92528fee792d12
|