{"id":27890006,"url":"https://github.com/udaylab/geoanalytics","last_synced_at":"2025-10-08T13:57:26.749Z","repository":{"id":37675867,"uuid":"488847078","full_name":"UdayLab/geoanalytics","owner":"UdayLab","description":null,"archived":false,"fork":false,"pushed_at":"2025-07-24T05:14:23.000Z","size":25694,"stargazers_count":5,"open_issues_count":0,"forks_count":37,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-07-24T07:53:51.952Z","etag":null,"topics":["artificial-intelligence","imputation","numpy","python","raster-data","statistics"],"latest_commit_sha":null,"homepage":null,"language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/UdayLab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-05-05T05:47:35.000Z","updated_at":"2025-07-24T05:14:26.000Z","dependencies_parsed_at":"2024-01-14T16:13:16.310Z","dependency_job_id":"d24b9c7c-f9c0-4e76-adf8-fa0a8d30cd14","html_url":"https://github.com/UdayLab/geoanalytics","commit_stats":{"total_commits":46,"total_committers":5,"mean_commits":9.2,"dds":0.3913043478260869,"last_synced_commit":"7c5706d11af1576464d3c04ba646684a549782d7"},"previous_names":["udaylab/geoanalytics","udayrage/geoanalytics"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/UdayLab/geoanalytics","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UdayLab%2Fgeoanalytics","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UdayLab%2Fgeoanalytics/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UdayLab%2Fgeoanalytics/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UdayLab%2Fgeoanalytics/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/UdayLab","download_url":"https://codeload.github.com/UdayLab/geoanalytics/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UdayLab%2Fgeoanalytics/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278956328,"owners_count":26075221,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-08T02:00:06.501Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["artificial-intelligence","imputation","numpy","python","raster-data","statistics"],"created_at":"2025-05-05T10:42:58.359Z","updated_at":"2025-10-08T13:57:26.744Z","avatar_url":"https://github.com/UdayLab.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"![PyPI](https://img.shields.io/pypi/v/geoAnalytics)\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/geoAnalytics)\n[![GitHub license](https://img.shields.io/github/license/UdayLab/geoAnalytics)](https://github.com/UdayLab/geoAnalytics/blob/main/LICENSE)\n![PyPI - Implementation](https://img.shields.io/pypi/implementation/geoAnalytics)\n![PyPI - Wheel](https://img.shields.io/pypi/wheel/geoAnalytics)\n![PyPI - Status](https://img.shields.io/pypi/status/geoAnalytics)\n[![GitHub issues](https://img.shields.io/github/issues/UdayLab/geoAnalytics)](https://github.com/UdayLab/geoAnalytics/issues)\n[![GitHub forks](https://img.shields.io/github/forks/UdayLab/geoAnalytics)](https://github.com/UdayLab/geoAnalytics/network)\n[![GitHub stars](https://img.shields.io/github/stars/UdayLab/geoAnalytics)](https://github.com/UdayLab/geoAnalytics/stargazers)\n[![Documentation Status](https://readthedocs.org/projects/geoanalytics/badge/?version=latest)](https://geoanalytics.readthedocs.io/en/latest/?badge=latest)\n[![PyPI Downloads](https://static.pepy.tech/badge/geoanalytics)](https://pepy.tech/projects/geoanalytics)\n[![PyPI Downloads](https://static.pepy.tech/badge/geoanalytics/month)](https://pepy.tech/projects/geoanalytics)\n[![PyPI Downloads](https://static.pepy.tech/badge/geoanalytics/week)](https://pepy.tech/projects/geoanalytics)\n[![pages-build-deployment](https://github.com/UdayLab/geoAnalytics/actions/workflows/pages/pages-build-deployment/badge.svg)](https://github.com/UdayLab/geoAnalytics/actions/workflows/pages/pages-build-deployment)\n\n\n[Click here for more information](https://pepy.tech/project/geoAnalytics)\n\n\n***\n\n# Table of Contents\n\n- [Introduction](#introduction)\n- [Recent updates](#recent-updates)\n- [Features](#features)\n- [Maintenance](#Maintenance)\n- [Try your first geoAnalytics program](#try-your-first-geoAnalytics-program)\n- [License](#License)\n- [Documentation](#Documentation) \n- [Getting Help](#Getting-Help)\n- [Discussion and Development](#Discussion-and-Development)\n- [Contribution to geoAnalytics](#Contribution-to-geoAnalytics)\n- [Real-World Case Studies](#real-world-case-studies)\n\n\n***\n# Introduction\n\ngeoAnalytics is an open-source Python-based Machine Learning library developed to discover various forms of \nuseful information hidden in the raster data. The algorithms provided in this library cover a wide-spectrum \nof machine learning tasks, such as imputation, image fusion, clustering, classification, one class \nclassification, and pattern mining. This library being platform independent can run any operating system.\n\n***\n# Recent Updates\n\n- **Version 2025.7.2:** \nIn this latest version, the following updates have been made:\n  - Included new algorithms in patternMining, **CorrelatedPatternMining**, **CoveragePatternMining**, **FaultTolerantFrequentPatternMining**, **FrequentPatternMining**, **LocalPeriodicPatternMining**, **PartialPeriodicFrequentPatternMining**, **PartialPeriodicPatternMining**, **PartialPeriodicPatternInMultipleTimeSeries**, **PeriodicCorrelatedPatternMining**, **RecurringPatternMining**, **RelativeFrequentPatternMining**, and **PeriodicFrequentPatternMining** for identifying the patterns.\n  - Included new algorithms in normalization.\n  - Test cases are implemented using geoanalytics package.\n\nTotal number of algorithms: 50+\n***\n\n# Features\n\n- ✅ Tested to the best of our possibility\n- 🔋 Highly optimized to our best effort, light-weight, and energy-efficient\n- 👀 Proper code documentation\n- 🍼 Sample examples of using various algorithms at [./tests](https://github.com/UdayLab/geoanalytics/tree/main/tests) folder\n- 🤖 Works with AI libraries such as TensorFlow, PyTorch, and sklearn. \n- ⚡️ Supports Cuda \n- 🖥️ Operating System Independence\n- 🔬 Knowledge discovery in static data and streams\n- 🐎 Snappy\n- 🐻 Ease of use\n\n***\n# Maintenance\n\n| **Operation**  | **Command**                              |\n|----------------|------------------------------------------|\n| Installation   | ``pip install geoAnalytics``             |\n| Upgradation    | ``pip install --upgrade geoAnalytics``   |\n| Uninstallation | ``pip uninstall geoAnalytics``           |\n| Information    | ``pip show geoAnalytics``                |\n\n***\n# *Try your first geoAnalytics program*\n\n```shell\n$ python\n```\n### _Install the Necessary Ubuntu Packages_\n```shell\n$ !apt update\n```\n```shell\n$ !apt install -y nco cdo gdal-bin\n```\n```shell\n$ !which ncrename\n```\n```\nOutput: /usr/bin/ncrename\n```\n```shell\n$ !which cdo\n```\n```\nOutput: /usr/bin/cdo\n```\n```shell\n$ !which gdal_translate\n```\n```\nOutput: /usr/bin/gdal_translate\n```\n### _Install the geoAnalytics package_\n```python \n!pip install -U geoanalytics\n```\n### _Knowing the information of geoAnalytics package_\n```python \npip show geoanalytics\n```\n```\nOutput: \n        Name: geoanalytics\n        Version: 2025.6.10.3\n        Summary: This software is being developed at the University of Aizu, Aizu-Wakamatsu, Fukushima, Japan\n        Home-page: https://github.com/UdayLab/geoanalytics\n        Author: \n        Author-email: Rage Uday Kiran \u003cuday.rage@gmail.com\u003e\n        License: GPLv3\n        Location: /usr/local/lib/python3.11/dist-packages\n        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\n        Required-by: \n```\n\n### _Download any dataset with extension of both `.img` and `.lbl` from the below link_\n\n#### _Link_ --\u003e https://data.darts.isas.jaxa.jp/pub/pds3/sln-l-mi-5-map-v3.0/\n\n#### _Example Direction :_ --\u003e https://data.darts.isas.jaxa.jp/pub/pds3/sln-l-mi-5-map-v3.0/lon042/data/\n\n#### _Upload the `.lbl` file `.img` file_\n\n## **Operatioin 1: Raster to CSV**\n### **_Step1: Import RasterToTSV package from geoAnalytics.conversion_**\n```python \nfrom geoanalytics.conversion import Raster2CSV\n```\n### **_Step2: Pass the ``lbl`` file as input and give desired `outputFile` name also specify the `inputBand` value as well as `ouputBand` value_**\n```python \nconverter = Raster2CSV.Raster2CSV(inputFile='MI_MAP_03_S16E035S17E036SC.lbl', outputFile='Moon.csv', startBand=1, endBand=9)\n```\n### **_Step3: Convert the raster file into a CSV file_**\n```python \nconverter.run()\n```\n```\nOutput: \n        Processing: MI_MAP_03_S16E035S17E036SC.lbl\n        Done. Output saved to: Moon.csv\n```\n\n\n## **Operation 2 : Clustering the Data**\n\n\n### **_Step 1.1: Read the obtained CSV into a dataframe_**\n```python \nimport pandas as pd\ndf = pd.read_csv('Moon.csv', sep='\\t')\ndf\n```\n| x           | y           | 1    | 2    | 3    | 4    | 5    | 6    | 7    | 8    | 9    |\n|-------------|-------------|------|------|------|------|------|------|------|------|------|\n| 1061317.265 | -485173.607 | 1928 | 3446 | 3859 | 3913 | 4026 | 3999 | 4236 | 5245 | 6513 |\n| 1061332.071 | -485173.607 | 1924 | 3480 | 3876 | 3930 | 4059 | 3996 | 4243 | 5234 | 6518 |\n| 1061346.877 | -485173.607 | 1904 | 3476 | 3834 | 3923 | 4047 | 3992 | 4238 | 5222 | 6523 |\n| 1061361.684 | -485173.607 | 1874 | 3452 | 3801 | 3897 | 3959 | 3988 | 4228 | 5210 | 6518 |\n| 1061376.490 | -485173.607 | 1907 | 3464 | 3777 | 3868 | 3974 | 3983 | 4218 | 5198 | 6504 |\n| ...         | ...         | ...  | ...  | ...  | ...  | ...  | ...  | ...  | ...  | ...  |\n| 1091566.583 | -515482.151 | 2090 | 3719 | 4007 | 3996 | 4117 | 4056 | 4310 | 5374 | 6633 |\n| 1091581.390 | -515482.151 | 2098 | 3734 | 4038 | 4020 | 4177 | 4083 | 4327 | 5389 | 6659 |\n| 1091596.196 | -515482.151 | 2114 | 3767 | 4046 | 4040 | 4213 | 4110 | 4332 | 5393 | 6685 |\n| 1091611.002 | -515482.151 | 2123 | 3813 | 4019 | 4056 | 4214 | 4136 | 4331 | 5397 | 6711 |\n| 1091625.809 | -515482.151 | 2125 | 3784 | 4011 | 4051 | 4184 | 4136 | 4329 | 5402 | 6737 |\n`4194304 rows × 11 columns`\n\n### **_Step2: Import any clustering algorithm from geoanalytics.clustering_**\n```python \n!pip install fuzzy-c-means\nfrom geoanalytics.clustering import FuzzyCMeans\nobj = FuzzyCMeans.FuzzyCMeans(dataframe=df)\n```\n### **_Step3: Execute the run() method to cluster the data_**\n```python \nlabels, centers = obj.run(n_clusters=4)\n```\n### **_Step4: Print the labels_**\n```python \nlabels\n```\n| x           | y           | labels |\n|-------------|-------------|--------|\n| 1061317.265 | -485173.607 | 2      |\n| 1061332.071 | -485173.607 | 2      |\n| 1061346.877 | -485173.607 | 2      |\n| 1061361.684 | -485173.607 | 2      |\n| 1061376.490 | -485173.607 | 2      |\n| ...         | ...         | ...    |\n| 1091566.583 | -515482.151 | 2      |\n| 1091581.390 | -515482.151 | 0      |\n| 1091596.196 | -515482.151 | 0      |\n| 1091611.002 | -515482.151 | 0      |\n| 1091625.809 | -515482.151 | 0      |\n4194304 rows × 3 columns\n\n### **_Step5: Print the centers_**\n```python \ncenters\n```\n```\nOutput: \n      array([[2098.51620472, 3762.45416178, 4099.00372289, 4146.23025903,\n              4295.80971825, 4229.78337628, 4443.6879668 , 5471.85298977,\n              6790.96720993],\n             [2274.54605523, 4040.75198398, 4374.89922669, 4395.57058102,\n              4538.50885801, 4454.45212911, 4677.95182781, 5739.96854105,\n              7095.06428559],\n             [1984.82196498, 3578.0340764 , 3908.79548852, 3961.66894715,\n              4108.90409919, 4049.30456217, 4255.81099407, 5258.24055464,\n              6549.13133772],\n             [1896.71176664, 3421.42972113, 3741.56611478, 3802.88625245,\n              3946.94784255, 3896.3217178 , 4093.18671711, 5066.07543066,\n              6327.35005223]])\n```\n### **_Step6: To know the run time and memory consumption of Algorithm, print the statistical values_**\n```python \nobj.getRuntime()\nobj.getMemoryRSS()\nobj.getMemoryUSS()\n```\n```\nOutput: \n      Total Execution time of proposed Algorithm: 407.7022657394409 seconds\n      Memory (RSS) of proposed Algorithm in KB: 1655512.0\n      Memory (USS) of proposed Algorithm in KB: 1634900.0\n```\n### **_Step7: Save the labels and centers_**\n```python \nobj.save(outputFileLabels='FuzzyCMeansLabels.csv', outputFileCenters='FuzzyCMeansCenters.csv')\n```\n```\nOutput: \n      Labels saved to: FuzzyCMeansLabels.csv\n      Cluster centers saved to: FuzzyCMeansCenters.csv\n```\n## **Operation3: CSV to Raster**\n### **_Step1: Import CSV2Raster from geoanalytics.conversion_**\n```python \nfrom geoanalytics.conversion import CSV2Raster as CSV2Raster\n```\n### **_Step2: Pass the dataFrame and give desired outputFile name_**\n```python \nprocess = CSV2Raster.CSV2Raster(dataframe=labels,outputFile='FuzzyCMeans.tiff')\n```\n### **_Step3: Execute the run() method_**\n```python \nprocess.run()\n```\n```\nOutput: \n      (0, '')\n      (139, 'Segmentation fault (core dumped)')\n      (0, '')\n      (0, 'Input file size is 2048, 2048\\n0...10...20...30...40...50...60...70...80...90...100 - done.')\n      (0, '')\n```\n## **Operation 4: Visualization**\n### **_Step1: Import TiffViewer from geoanalytics.visualization_**\n```python \npip install rasterio\nfrom geoanalytics.visualization import TiffViewer\n```\n### **_Step2: Input the RasterFile or pass it into the parameter_**\n```python \nviewer = TiffViewer.TiffViewer(inputFile='FuzzyCMeans.tiff')\n```\n### **_Step3: Display the image with desired scaling map_**\n###### **_1. gray scale_**\n```python \nviewer.run(cmap='gray', title='TIFF Image')\n```\n![img_1.png](img_1.png)\n###### **_2. Jet Scale_**\n```python \nviewer.run(cmap='jet', title='TIFF Image')\n```\n![img_2.png](img_2.png)\n***\n# License\n\n[![GitHub license](https://img.shields.io/github/license/UdayLab/PAMI)](https://github.com/UdayLab/PAMI/blob/main/LICENSE)\n***\n\n# Documentation\n\nThe official documentation is hosted on [geoAnalytics](https://geoanalytics.readthedocs.io/en/latest/).\n***\n# Getting Help    \n\nFor any queries, the best place to go to is Github Issues [Github Issues](https://github.com/orgs/UdayLab/discussions/categories/q-a).\n\n***\n# Discussion and Development\n\nIn 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.\n\n***\n# Contribution to geoAnalytics\n\nWe invite and encourage all community members to contribute, report bugs, fix bugs, enhance documentation, propose improvements, and share their creative ideas.\n\n# Real World Case Studies\n\n1. Lunar data analytics \u003ca target=\"_blank\" href=\"https://github.com/UdayLab/geoanalytics/blob/main/tests/caseStudy/LunarDataAnalytics.ipynb\"\u003e \u003cimg src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/\u003e\u003c/a\u003e\n\n\n[Go to Top](#table-of-contents)\n\n\n          \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fudaylab%2Fgeoanalytics","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fudaylab%2Fgeoanalytics","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fudaylab%2Fgeoanalytics/lists"}