permanent-satellite

Relative system of orientation using the permanent satellite technique.

https://github.com/r0mb0/permanent-satellite

Science Score: 44.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
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (7.7%) to scientific vocabulary

Keywords

csharp distance-calculation gps-coordinates gps-coordinates-conversion italian-developers italian-language location-estimation r0mb0 university-project

Keywords from Contributors

modular interactive example study-method study-management network-simulation hacking latex-document latex embedded
Last synced: 6 months ago · JSON representation ·

Repository

Relative system of orientation using the permanent satellite technique.

Basic Info
  • Host: GitHub
  • Owner: R0mb0
  • License: mit
  • Language: C#
  • Default Branch: master
  • Homepage:
  • Size: 4.43 MB
Statistics
  • Stars: 2
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 1
Topics
csharp distance-calculation gps-coordinates gps-coordinates-conversion italian-developers italian-language location-estimation r0mb0 university-project
Created over 5 years ago · Last pushed 10 months ago
Metadata Files
Readme Contributing Funding License Code of conduct Citation Security Support

README.md

Urbino`s University - Applied computer science - P.M.O

P.M.O-Project

Project Title: Relative system of orientation to permanent satellite.

Codacy Badge

Maintenance Open Source Love svg3 Donate

Project Specifications

The project objective is to realize a program that semplify the normal procedures of the tecnique of relative orientation to permanent satellite.
This programm will be able to register the surveys into a database, auomatically create the nodes from each survey, calculate the properties of each nodes, represent graphically into a gray map all properties calculated and save into a file the current status of the program.


Project Problems

The problems of this project are:

  • #### How to generalize a detection

A detection is a group of dates that enable to uniquely establish a posiction into the world, in this case the most important dates are the Latitude and the Longitude; but in this case there are other important dates, because the goal of this program is keep a track of a route; for this reason is important to insert into a detection: the time of the current detection, the angle of the compass and the altitude of the place.
In this way from two detection is possible calculate the travelled distance, the speed and the direction. Particulary the altitude and the compass angle are usefull to increase the precision of the dates.
For this reason has been implemented a Point class that permit to track these important dates; in this case for to salve the latitude and the longitude has been introduced the Latitude type and the Longitude type, either generating an exception when the information inserted into are wrong.

  • #### How to create the nodes that respecting the permanent satellite tecnique

To solve this problem has been created a specific algoritm that create the nodes in way to every "normal" detection have a node with the previous detection and with the "special" detection.
The "special" detection rappresent the meeting point, the meeting point rappresent the only known point (in sense that this point rappresent the place user knowed); in this way is alwais possible have the information to come back towards the meeting point.

  • #### How to calculate the node properties

The Node properties are implemented into the node type, this class contain the detection of the node and the respective properties that are calculate using a GPS standard formulas .
The Properties of each nodes are: the distance, the speed, the direction, the time/altitude difference.

  • #### How to salve the program status

The programm status is salved into a doc database, that will be seriallizated using the JSON strategy.

  • #### How to create a Graphical User Interface

The "Gui" is builted using Windows Form, the gui permitt to do a detection, to delete a detecion, to salve the current database status, to load the last database status and obtain the advanced properties.
Also is possible obtain the status of the program through the gray map (always builted using windows form).

  • #### How to rappresent the detections and the nodes into a dinamic grey map

The gray map goal is to rappresent the nodes and the detections into a scale space where is possible have a idea of the area.
For this reason the gray map must calculate the max/min Latitudes and Longitudes (in indipendent way), in way to determinate the area idea; later this it must rappresent all the detections and the nodes (in scale compareted to the extremes of the latitudes and longitudes) with the corrispettive properties.
The gray map has been created using Windows Form.


Architectural choices

Logic And Math classes

The mission durig the "LogicAndMath" class production is to create classes that are riutilizabilies in other ccontest, in way to do this the Latitude and Longitude class extending the origin class.
The Origin class has the task to register the fondamental part of a satellite coordinate, this fondamental part is specialized into the Latitude and Longitude class, in way to no register not compatibilies coordinates.
The Point use the Latitude and Longitude types in way to register a correct posiction, the point is like a detection, for this reason also register the time, the directon, and the altitude.
The Node use two Point to calculate the properties about the two detection; the properties are calcolated using a external class, the class task is to implement the GPS standard formulas.
In this way every class solve only one problem, this permitt the reusability.

LogicAndMath UML:

Database Classes

The Database implement the Singleton Pattern (because must exist only one database for contain the dates), the Decorator Pattern (because in the program existing more database version that depending to the functiones) and the Observer (in way to notify the status of the current database into the other part of the program).
The database has been generated in a modular mode, in way to use only the request function, for example: use only the origin database structures in way to serialize the most important dates.
The origin of the database extend the MaxCoordinate class (that contain the Latitude/Longitude extremes) and contain the Point list and the Node list, in way to get the most important dates to serialize.
The second part of the database is named "Normal Database" because this is the official database that make the operation for adding point (and create the corresponding nodes), it work tracking four states of insertion points: 1: when the first added point is a normal point, 2: when the first added point is a meeting point, 3: when the meeting point is added after a list of normal point, 4: when is added a normal point after a meeting point.
The "Normal Database" is used into the "Database With Rescue" to adding the loading and the saving of the current database; the current state of the database is copied into the "Rescue" class, this class has been used for serialize and deserialize the database status using the Json strategy.

Database UML:

The Observer Pattern has been implemented using other classes, The "DatabseObserver" class implementing the subject (in this case the subject observing the current database istance) of the pattern with the possibility to register, remove and updet the observer that are defined through the observer interface; the last class implement the observer interface.

Observer UML:

Gui Classes

The Gui is formated by a main screen (Named Monitor) that launch the other screen in way to permitt the program action.
The "Monitor" recieve the information by other class in way to complete the action, in fact only the "Monitor" can interact with the database; the other classes passing the information into the monitor unsing a "bridge class" that permit the over comication.

GUIL:


Usage documentation

When the programm is launched the first screen that appear is the main screen where is present the gray map and the buttons for the acctions.
- The Button "Add Point" permitt to do a detection, into the "Add Point" screeen the balck fields are obligatory, the yellow fileds are optional, in case of wrong entry going to appear a screen error (with the description of the error).
- The Button "Delete Point" show a table that contain all the inserted detection, choosing the name or the number of the detection and clicking on the delete button is possible to delete a detection.
If into the database there arent detection the user is unbale to open the delete point screen.<br> - The Save Button permitt to salve the current status of the programm. (In case of none detection programm will save a blank file)<br> - The Load Button loading the last database istance. (afther the loading of the istance is possible to add or delette the detections, then salving other istance of the database).<br> - The Table button show the tables with the advance dates that not appear into the gray map. (even in this case if there arent detections into the database the user cant acess into the "Table screen")


Use Cases

Since the program is implemented for a specific problem the use diagram could be too simple, for this reason will be used a discursive version to illustrate the use case.


This program was created to solve the problem of orientation into the not mapped placed, in fact the program not permitt other type of uses.
The user should does a detection every twenty minutes (max every half of a hour), in way to have more precision dates (in every time is possible to delete a error detection), the programm going to calculate all the properties that are usefull for the orientation, in case of user perplexity he can whatch the calculated dates.

USE CASE

Normal program use

ID

UC1

ACTOR

User

PRECONDITION

  • User launch the programm.

BASIC COURSE OF EVENTS

  1. User do a detection or load the last database.
  2. User add a detection or remove a wrong/useless detection.
  3. User save the Program status.

POSTCONDITION

  • User gets all trip properties for every detection.

ALTERNATIVE PATHS

  1. User use the calculate propterties to sing into a paper map the detections.
  2. User use the registered dates to make a map of the place.

Feedback

The program has been survey by some professionist of cartography, they have contributed to the programm checking the correct implementation of the formulas used and the correct rappresentation of the detection into a scales grey map.
In conclusion this programm respect the GPS standard and it could be used how a orientation strument together a professional strument support.

Not made by AI

Owner

  • Name: Francesco Rombaldoni
  • Login: R0mb0
  • Kind: user
  • Location: Italy
  • Company: INRCA/SIA

If I'm living in a crisis without realizing it?

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Rombaldoni"
  given-names: "Francesco"
title: "Permanent-satellite"
version: 1.0.0
date-released: 2024-09-05
url: "https://github.com/R0mb0/Permanent-satellite"

GitHub Events

Total
  • Delete event: 2
  • Push event: 8
  • Pull request event: 2
  • Create event: 1
Last Year
  • Delete event: 2
  • Push event: 8
  • Pull request event: 2
  • Create event: 1

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 101
  • Total Committers: 3
  • Avg Commits per committer: 33.667
  • Development Distribution Score (DDS): 0.178
Past Year
  • Commits: 13
  • Committers: 2
  • Avg Commits per committer: 6.5
  • Development Distribution Score (DDS): 0.077
Top Committers
Name Email Commits
RomboUrbex f****i@c****t 83
Rombo 7****x 17
dependabot[bot] 4****] 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 9 months ago

All Time
  • Total issues: 0
  • Total pull requests: 3
  • Average time to close issues: N/A
  • Average time to close pull requests: 3 minutes
  • Total issue authors: 0
  • Total pull request authors: 2
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 2
  • Bot issues: 0
  • Bot pull requests: 1
Past Year
  • Issues: 0
  • Pull requests: 2
  • Average time to close issues: N/A
  • Average time to close pull requests: 4 minutes
  • Issue authors: 0
  • Pull request authors: 2
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 1
Top Authors
Issue Authors
Pull Request Authors
  • R0mb0 (3)
  • dependabot[bot] (2)
Top Labels
Issue Labels
Pull Request Labels
dependencies (2)

Dependencies

PermanentSatellite/PermanentSatellite/PermanentSatellite.csproj nuget
  • EnvDTE80 16.8.30705.32
  • Newtonsoft.Json 12.0.3
PermanentSatellite/PermanentSatellite/obj/project.assets.json nuget
  • EnvDTE 16.8.30705.32
  • EnvDTE80 16.8.30705.32
  • Newtonsoft.Json 12.0.3
  • stdole 16.8.30705.32