topografoi.com
24 Ιούν 2019, 23:24 *
Καλώς ορίσατε, Επισκέπτης. Παρακαλούμε συνδεθείτε ή εγγραφείτε.
Χάσατε το email ενεργοποίησης;

Σύνδεση με όνομα, κωδικό και διάρκεια σύνδεσης
Νέα: Αν κάτι δεν είναι στη θέση του, βοηθήστε μας να το διορθώσουμε :-)
Σελίδες: 1 ... 8 9 [10]
 91 
 στις: 09 Δεκ 2018, 06:55 
Ξεκίνησε από chiossif - Τελευταίο μήνυμα από chiossif
Γεια και χαρά σε όλες και όλους :-)

Όσοι έχετε χρησιμοποιήσει το snap για την 7η άσκηση ίσως ΔΕΝ μπορείτε να χρησιμοποιήσετε πίνακα σύγχυσης στο QGIS ή αλλού. Έτσι έφτιαξα ένα πολύ εύκολο προγραμματάκι για να το κάνετε. Απλά ονομάστε class1.tif την μία και class2.tif την άλλη και τρέξτε το κατά τα γνωστά. Το αποτέλεσμα το γράφει στην οθόνη και με αντιγραφή επικόλληση το πάτε όπου θέλετε :-)

Καλή δουλειά :-)

Λέφτερα,
Ch Iossif

 92 
 στις: 03 Δεκ 2018, 21:49 
Ξεκίνησε από chiossif - Τελευταίο μήνυμα από chiossif
Γεια και χαρά σε όλες και όλους :-)

Κι όμως εμφανίστηκε περίπτωση όπου η εικόνα εισόδου στον κώδικα των KMeans περιείχε τιμές inf και NaN (πρόκειται για ΕΙΔΙΚΕΣ ΜΗ ΑΡΙΘΜΗΤΙΚΕΣ τιμές ειδικές στην Πάιθον για το άπειρο και τον μη-αριθμό).

Το σφάλμα εμφανίζεται κάπως έτσι:
...
ValueError: array must not contain infs or NaNs

Γιαυτό χρειάζεται η προσθήκη της εντολής:

flatraster = numpy.nan_to_num(flatraster)

αμέσως μετά την αλλαγή σχήματος του πίνακα raster σε flatraster έτσι:

...
# flatten image to get line of values
flatraster=raster.reshape(rows*cols)
flatraster = numpy.nan_to_num(flatraster) # "Mask" NaN and inf numbers
flatraster[flatraster<0] = 0 # Mask NON vegetation
...

Όλα αυτά στο αρχείο RasterKMeans.py (και μην ξεχάσετε να το σώσετε αλλαγμένο έτσι; :-) )

Θυμίζω για κάθε πρόβλημα ΒΕΒΑΙΩΘΕΊΤΕ ότι ακολουθείτε ΠΙΣΤΆ τις οδηγίες. ΑΝ αλλάζει έστω και κάτι το οποίο σας φαίνεται ασήμαντο πιθανό να δημιουργήσει πρόβλημα...

Καλή δουλειά :-)

Λέφτερα,
Ch Iossif


 93 
 στις: 24 Νοέ 2018, 11:58 
Ξεκίνησε από chiossif - Τελευταίο μήνυμα από chiossif
Κυρίες, Δεσποσύνες και Κύριοι,

καλή σας ώρα :-)

Με την δημοσίευση αυτή εγκαινιάζουμε μια νέα προσέγγιση για εμάς στη ΣΑΤΜ στον τρόπο επίλυσης αποριών: το φόρουμ. Ήδη υπάρχουν φοιτητικά φόρα αλλά εδώ θα είναι στοχευμένo στην νέα άσκηση 8 του μαθήματος και θα συμμετέχουμε κι εμείς οι διδάσκοντες. Όποια απορία έχετε, με έναν σχετικά ανώνυμο τρόπο, μπορείτε να την εκφράσετε εδώ πατώντας Απάντηση. Σας παρακαλώ ΠΡΙΝ ρωτήσετε διαβάστε τις οδηγίες και τις δημοσιεύσεις που έχουν προηγηθεί. Έτσι ίσως βρείτε απάντηση και ΔΕΝ χρειαστεί να ξαναρωτήσετε κάτι.

Οι οδηγίες εκτέλεσης της άσκησης είναι στα ακόλουθα βήματα:

με τον διαχειριστή αρχείων του υπολογιστή σας:

-> φτιάξτε έναν φάκελο στον υπολογιστή σας με το όνομα ask8 στον χώρο C;\. Το αποτέλεσμα πρέπει να είναι ακριβώς έτσι: C:\ask8
-> μέσα σε αυτό τον φάκελο βάλτε το αρχείο zip με τα προγράμματα και αποσυμπιέστε τα ώστε να τα βλέπετε άμεσα σε μορφή RasterAlgebra.py και όχι σε κάποιο υποφάκελλο
-> μέσα  σε αυτό τον φάκελο βάλτε την κομμένη (clipped) εικόνα σας σε μορφή tif (και όχι vrt ή άλλη) και μετονομάστε την σε kommeni.tif

τρέξτε τώρα το QGIS και κάντε τα ακόλουθα:

-> Επιλέξτε Plugins->Python console

-> στην διεπαφή >>> πληκτρολογείστε τις ακόλουθες εντολές:

--> import os
--> os.chdir('C:\ask8')

ώστε να μπορούμε να εκτελέσουμε τα προγράμματα και να διαβάσουμε την εικόνα μας. Αυτές οι εντολές είναι απαραίτητες κάθε φορά που ανοίγουμε το QGIS.

Για να εκτελέσουμε ένα πρόγραμμα πχ το RasterAlgebra.py θα πρέπει να γράψουμε στην διεπαφή >>> την εντολή:

---> execfile('RasterAlgebra.py')     # ( ΠΡΟΣΟΧΗ ! αν έχετε QGIS 3 η εντολή είναι exec(open('RasterAlgebra.py').read()) )

Ενδεικτικά οι εντολές είναι :

---> execfile('RasterAlgebra.py')
---> execfile('RasterFiltering.py')
---> execfile('RasterKMeans.py')
---> execfile('RasterKMeans_multiband.py')

Η τελευταία αργεί λίγο μερικά λεπτά οπότε υπομονή. Αν ο υπολογιστής γράψει ότι Δεν Αποκρίνεται αυτό είναι φυσιολογικό όσο τρέχει το πρόγραμμα.
Μετά την ολοκλήρωσή τους τα νέα αρχεία είναι έτοιμα και ...

... η συνέχεια εντός του Β1 ;-)

Καλή και γόνιμη μελέτη :-)

Λέφτερα,
Ch Iossif

υγ. Θέλω να ευχαριστήσω το topografoi.com και τον διαχειριστή του, εξέχων μέλος της κοινότητάς μας, για την φιλοξενία :-)

 94 
 στις: 09 Νοέ 2017, 13:34 
Ξεκίνησε από chiossif - Τελευταίο μήνυμα από chiossif
Γεια και χαρά σε όλες και όλους :-)

FOSSCOMM 2017: οι Λέφτεροι στο Χαροκόπειο έδωσαν για άλλη μια φορά την ψυχή τους και άλλη μία συνάντηση ολοκληρώθηκε με τον καλύτερο τρόπο. ΜΠΡΑΒΟ ! ΜΠΡΑΒΟ ! ΜΠΡΑΒΟ !

Τα συμπεράσματα (μου) φέτος συνοψίζονται στα ακόλουθα:

-> Σχετικά με το Ελεύθερο Λογισμικό:

* Επικρατεί σχεδόν αποκλειστικά σε όλες τις τεχνολογίες αιχμής: βαθιά μάθηση, τεχνητή νοημοσύνη, παράλληλη επεξεργασία κάθε είδους . Εξαίρεση ίσως μοναδική εδώ είναι οι πατέντες λογισμικού ( https://www.gnu.org/philosophy/software-patents.en.html ) και οι οδηγοί στο κλειστό υλικό ( http://www.makeuseof.com/tag/install-proprietary-graphics-drivers-ubuntu-fedora-linux/ )

* Η πλειοψηφία των σύγχρονων λογισμικών έχει γυρίσει ή γυρίζει προς το Ελεύθερο Λογισμικό (και τα Ανοιχτά Πρότυπα θα ακολουθήσουν). Ακόμη και η μικρομαλακή έχει παραδεχτεί ότι το gnu/linux επικρατεί στους εικονικούς διαδικτυακούς υπολογιστές της ( https://news.microsoft.com/bythenumbers/azure-virtual ).

* Συντριπτική πλειοψηφία των προτζεκτ τα οποία παρουσιάστηκαν ήταν σε άδεια GPL και όλα σε αποθετήρια τεχνολογίας git mercurial κτλ

-> Σχετικά με τα Ανοιχτά Πρότυπα:

* Η επικράτηση των Ανοιχτών Προτύπων τόσο ουσιαστικά στην καθημερινή χρήση όσο και νομικά σε οδηγίες της ΕΕ ή άλλων χωρών είναι απόλυτη.

* Κλειστά πρότυπα του παρελθόντος (βλ. σέιπ φάιλ, ντοκ, εξελ και σία και πολλά άλλα) έχουν ανοίξει ενώ τα ανοιχτά αντίστοιχά τους επικρατούν πια στις μεταξύ μας συναλλαγές. Ομολογώ όμως ότι κάποια κάστρα (βλ. ώτοκαντ) δεν έχουν «πέσει» ακόμη :-(

*  Στην αιχμή της τεχνολογίας που προανέφερα τα Ανοιχτά Πρότυπα είναι μονόδρομος. Εδώ όμως ΔΥΣΤΥΧΩΣ υπάρχει τεράστιο έλλειμμα νομικής κατοχύρωσης των ανθρωπίνων δικαιωμάτων και των τεχνολογικών υποχρεώσεων όλων των παρόχων «κοινωνικών υπηρεσιών» (βλ φουμπου, γκουγκλ, αλλά και πιο μικρές περιπτώσεις τύπου ΕρΜπιΕνΜπι Τάξιμπιτ κτλ) Προφανώς το σχόλιο αυτό δεν αφορά ΜΟΝΟ τα Ανοιχτά Πρότυπα αλλά από εδώ πρέπει να ξεκινήσει και να περιφρουρηθεί νομικά ο ορθός διαμοιρασμός δεδομένων (με Ανοιχτά Πρότυπα, ανωνυμοποιημένος και φυσικά χωρίς χαμένες υπεραξίες σε δίσκους=τσέπες τρίτων)

Γενικότερα σχόλια:

* Περισσότερος κόσμος από κάθε άλλη φορά. Δυστυχώς λιγότεροι οι κοινοτικοί μέντορες ( λόγω ηλικίας; ) αλλά πληθώρα νέων που διψούν για Λεφτερη γνώση αλλά και αμοιβή για τον κόπο τους.

* Πολύ περισσότερος κόσμος ο οποίος να ασχολείται με τις μην προγραμματιστικές εργασίες όπως γραφιστικά, μεταφράσεις, τεκμηρίωση αλλά και δοκιμές, υποστήριξη. Πραγματικά, ειδικά στο μπουθ του έτερου Ιωσηφίδη, έμεινα άφωνος με την οργάνωση αλλά και το κέφι και το ενδιαφέρον τρίτων. Μπράβο στον Στάθη και την παρέα του που κρατάει ψηλά την σημαία της Λεφτεριάς.

* Τέλος, θα αναφέρω το περίπτερο του Οργανισμού Ανοιχτών Τεχνολογιών (ΕΕΛΛΑΚ) ο οποίος με την ειλικρινή και άοκνη προσπάθεια των λειτουργών του στεγάζει τον χώρο μας. Μεγάλο Ευχαριστώ :-)  ( https://opensource.ellak.gr/2017/11/09/oloklirothike-me-terastia-epitichia-i-fosscomm-2017/ )

Και κάποια σχόλια για τα δικά μας. Στην αρχή φοβόμουν ότι φέτος θα ήμουν μόνος. Κι όμως διαψεύστηκα: δύο εκολαπτόμενα μέλη ήρθαν και ξέρω ότι κι άλλα θα ήθελαν να ήταν εκεί. Αυτό με στηρίζει να επιμείνω / παραμείνω στον Λέφτερο δρόμο και να συνεχίσω πιο ενεργά τις προσπάθειες. Και σύντομα να οργανωθούμε λίιιιγο καλύτερα και να έχουμε νέες και καλύτερες επιτυχίες.

Περιμένω εδώ τα σχόλια και τις παρατηρήσεις / εντυπώσεις σας, πάντα...

Λέφτερα :-)

 95 
 στις: 02 Νοέ 2017, 14:26 
Ξεκίνησε από chiossif - Τελευταίο μήνυμα από chiossif
Γεια και χαρά σε όλες και όλους :-)

"""
Η FOSSCOMM 2017 στις 4-5 Νοεμβρίου 2017 στο Χαροκόπειο Πανεπιστήμιο

Στις 4-5 Νοεμβρίου 2017 στις εγκαταστάσεις του Χαροκόπειου Πανεπιστημίου θα διοργανωθεί η FOSSCOMM 2017, το μεγαλύτερο ετήσιο συνέδριο ανοιχτού λογισμικού και τεχνολογιών στη Ελλάδα.



H Fosscomm οργανώνεται από τις Ελληνικές κοινότητες του Ελεύθερου και Ανοιχτού Λογισμικού σε διαφορετική πόλη κάθε χρόνο, και συμμετέχουν σε αυτή κοινότητες, προγραμματιστές και εταιρείες που ασχολούνται με τις Ανοιχτές Τεχνολογίες. Στη Fosscomm συμμετέχουν κάθε χρόνο περισσότεροι από 500 σύνεδροι. Μέχρι τώρα έχουν διοργανωθεί συνολικά 9 συνέδρια Fosscomm ξεκινώντας από το 2008 σε Αθήνα, Λάρισα, Θεσσαλονίκη, Πάτρα, Σέρρες, Αθήνα, Λαμία, Αθήνα, και Πειραιά αντίστοιχα.

Δείτε την ιστοσελίδα της FOSSCOMM 2017: https://www.fosscomm.hua.gr/
και το πρόγραμμα: https://is.gd/n0YxvY

Ακολουθήστε την  FOSSCOMM 2017 στο Facebook, στο twitter @fosscomm2017
"""

Ραντεβού το Σάββατο ;-)

Λέφτερα,
Ch Iossif

 96 
 στις: 11 Μάι 2017, 13:30 
Ξεκίνησε από George R - Τελευταίο μήνυμα από George R
Stardust
Ευχαριστώ για την απάντηση και τις πληροφορίες

αν βρώ αυτή τη θεωρία που προτείνεις και την μελετήσω,
 θα μου απαντήσει στα ερωτήματά μου;

Δηλαδή έχει αναλυτικές πληροφορίες για το πως θα μπορώ να παώ απο το ένα σύστημα στο άλλο

ή πρέπει να ανατρέξω μετά και σε άλλες πηγές.

(Επίσης κάτι που θα είχε μέσα και αριθμητικά παραδείγματα θα βοηθούσε πολύ)

Ευχαριστώ.

 97 
 στις: 11 Μάι 2017, 09:03 
Ξεκίνησε από George R - Τελευταίο μήνυμα από stardust
Γεια χαρά! Οι τύποι που αναφέρεις είναι προσεγγιστικοί και δίνουν μια πολύ μικρή ακρίβεια μετασχηματισμού της τάξης των μερικών μέτρων. Πάντα βέβαια εξαρτάται από την εφαρμογή που θες!

Γενικά, όλοι οι υπολογισμοί (φ, λ) γίνονται σε μια επιφάνεια αναφοράς η οποία ονομάζεται Ελλειψοειδές εκ περιστροφής (Ε.Ε.Π.), δηλαδή μια έλλειψη η οποία έχει περιστραφεί περί το μικρό της άξονα, και όχι την σφαίρα. Το Ε.Ε.Π. προσεγγίζει καλύτερα την γη. Γιαυτό και οι σχέσεις στους ανωτέρω κώδικες σου φαίνονται δαιδαλώδεις.

Τώρα, από τα (φ, λ) να φτάσεις στα (χ, y) εξαρτάται από την χαρτογραφική προβολή που θα χρησιμοποιήσεις. Υπάρχουν σχέσεις που κάνουν αυτή την μεταφορά, αλλά για να καταλάβεις την ουσία θα πρέπει να διαβάσεις κάποια βασικά πράγματα.

Αρκετές πληροφορίες και κυρίως για τα Ελληνικά δεδομένα, μπορείς να βρεις εδώ: http://mycourses.ntua.gr/course_description/index.php?cidReq=SURVEY1085.




 98 
 στις: 08 Μάι 2017, 07:50 
Ξεκίνησε από George R - Τελευταίο μήνυμα από George R
κάτι γίνεται και δεν μου ανεβάζει το αρχείο

 99 
 στις: 08 Μάι 2017, 07:45 
Ξεκίνησε από George R - Τελευταίο μήνυμα από George R



Ευχαριστώ πολύ chiossif για την άμεση απάντησή σου.
Καταρχήν να πω ότι όντως δεν έχω κάνει ανώτερη γεωδαισία, απλά μου αρέσει το αντικείμενο και ασχολούμαι “ερασιτεχνικά”.
Πολύ κατατοπιστικές οι τεχνικές πληροφορίες που μου έδωσες. Με βοήθησαν να καταλάβω κάποια βασικά. Σχετικά με τον κώδικα βέβαια γίνεται λίγο ψιλοχαμός εκεί μέσα, αλλά προσπαθώ να βγάλω άκρη. Για το λόγο αυτό ψάχνω αρχικά (στη συνέχεια θα το ψάξω περισσότερο και πιο σωστά) απλά και ψυχρά τους τύπους για τις μετατροπές ή τη λογική πίσω από αυτούς.
Ψάχνω δηλαδή (για αρχή) κάτι στο στυλ:
Για  μετατροπή από ΕΓΣΑ87 σε WGS  (για παράδειγμα) έχουμε:
Φwgs = ακτίνα*Χεγσα87 + 5,7 + Χεγσα87 * συν(2πΧεγσα87) + Υεγσα87*3,2 +…….
λwgs = ακτίνα*Υεγσα87 + 5,7 + Υεγσα87 * συν(2πΧεγσα87) + ημ(Υεγσα87*3,2Φwgs) +…….
(φυσικά οι παραπάνω σχέσεις είναι τυχαίες, απλά για να δώσω το νόημα)
Αν δεν είναι κάτι τόσο απλό, αν δηλαδή έχει πιο πολυσύνθετη δομή, τότε απλά τη ψυχρή λογική :
Για παράδειγμα : το Φ και το λ προκύπτουν από αναδρομικές σχέσεις, μιας και εμφανίζονται και στα 2 μέρη, της παρακάτω εξίσωσης:

Φwgs = sqrt(Xεγσα87*cos(2*π*Φwgs)) + ακτίνα R + μετατόπιση ΔΧ + σφάλμα Δλ+…
η ότι προκύπτει από πολυώνυμο με αυτή την μορφή,
ή ….οτιδήποτε άλλο.

Ψάχνοντας κάποια θεωρία στο διαδίκτυο βρήκα ότι αν ξέρουμε τα φ, λ στο WGS, τότε μπορούμε να υπολογίσουμε μέχρι τα φ,λ στο ΕΓΣΑ87 με τις ακόλουθες σχέσεις:

φεγσα87 = φwgs -9’’.34 + 0’’.02 (φwgs – 38o ) – 0’’.05 (λwgs – 24o)
λεγσα87 = λwgs -6’’.10 + 0’’.08 (φwgs – 38o ) – 0’’.11 (λwgs – 24o)
οπότε έκανα ένα φύλλο στο LibreOfficeCalc, το οποίο το ανεβάζω στο forum.

Απλά δεν βρήκα πως συνεχίζουμε για παρακάτω.

Πάντως αντιλαμβάνομαι γενικά τη δυσκολία του να εξηγήσει κάποιος όλους τους τύπους και τη βασική θεωρία.
Ευχαριστώ πολύ.

 100 
 στις: 05 Μάι 2017, 11:36 
Ξεκίνησε από George R - Τελευταίο μήνυμα από chiossif
Γιώργο,

γεια και χαρά :-)

Κατ' αρχήν αν κάποιος θα σου απαντήσει θα το κάνει εδώ. Η έκθεση της ηλεκτρονικής σου διεύθυνσης ίσως να προτρέπει τους αναγνώστες σε προσωπική επαφή, (όποιος θέλει λέφτερος είναι να το κάνει) αλλά σίγουρα θα γεμίσει με σπαμ το μέιλ σου (λόγω των έξυπνων μηχανών αναζήτησης διευθύνσεων). Οπότε ΔΕΝ είναι μια καλή πρακτική στα φόρα και γιαυτό το γράφω εδώ :-)

Στο θέμα μας τώρα:
προφανώς δεν έχεις περάσει ή  δεν έχεις την υποχρέωση να περάσεις Ανώτερη Γεωδαισία. Σε αυτό το μάθημα εμείς οι τοπογράφοι διδασκόμαστε ένα ολόκληρο εξάμηνο ακριβώς αυτό: τα γεωδαιτικά συστήματα αναφοράς. Θα προσπαθήσω να απαντήσω με όσο το δυνατόν πιο απλό τρόπο, σωστά αλλά όχι πλήρως :-)

Τα WGS και ΕΓΣΑ87 είναι συστήματα συντεταγμένων στηριγμένα σε δορυφορικές μετρήσεις. Για το καθένα και σε κάποια χρονική στιγμή το κέντρο της γης είναι το 0,0,0 και ξεκινούν από εκεί τρεις άξονες προς τον Βόρειο Πόλο προς την τομή του Ισημερινού με τον Μεσημβρινό του Γκρήνουιτς και κάθετα σε αυτούς. ΑΥΤΟ είναι το γεωκεντρικό σύστημα  ΧΥΖ. Σε αυτό το σύστημα τα WGS και ΕΓΣΑ 87 είναι παράλληλα και αρκεί μια απλή μετάθεση για να πας από το ένα στο άλλο. Αυτό το κάνει η ακόλουθη συνάρτηση στην C:
 
Κώδικας:
  void HGRS872WGS84(double xh, double yh, double zh, double *xw, double *yw, double *zw) {
      *xw = xh - 199.652;
      *yw = yh + 74.759;
      *zw = zh + 246.057;
      return;
  }
http://hermes.survey.ntua.gr/Free_As_Freedom_Software/InDiRes.c

Άρα αν έχεις ΧΥΖ σε ένα από τα δύο συστήματα μπορείς να πας από το ένα στο άλλο με τρεις προσθαφαιρέσεις. Θα χρειαστείς λογιστικό φύλο για αυτό; :-)

Το θέμα σου όμως συνήθως είναι ότι έχεις τις συντεταγμένες σε κάποια άλλη μορφή δηλαδή σε γεωγραφικό μήκος και πλάτος με υψόμετρο (αλήθεια γεωμετρικό ή ορθομετρικό;) ή συντεταγμένες χ,ψ σε κάποια προβολή του ελλειψοειδούς (ευτυχώς και τα δύο έχουν την ίδια, συνήθως!) και υψόμετρο. Η μετατροπή από ΧΥΖ σε φ,λ,h (γεωμετρικό) είναι μια σχετικά απλή διαδικασία χωρίς επαναλήψεις και προσεγγίσεις η οποία φαίνεται στον ακόλουθο κώδικα:

Κώδικας:
void FLH2XYZHGRS87(double f, double l, double h, double *x, double *y, double *z) {
    double Pi, Deg2Rad, a, F, e, sf, cf, sl, cl, n;

    Pi = 3.14159265358979323846;
    Deg2Rad = Pi/180.0;
    a = (double) 6378137;                   /* GRS80 */
    F = (double) 1.0 / 298.257222101;   /* GRS80 */
    e = (double) 2.0 * F - F * F;

    f *= Deg2Rad;
    l *= Deg2Rad;

    sf=sin(f);
    cf=cos(f);
    sl=sin(l);
    cl=cos(l);

    n = a / sqrt(1.0 - e * sf * sf);
    *x = (n+h) * cf * cl;
    *y = (n+h) * cf * sl;
    *z = (n * (1.0 - e) + h) * sf;
    return;
}
http://hermes.survey.ntua.gr/Free_As_Freedom_Software/InDiRes.c

Τώρα αν έχεις συντεταγμένες σε προβολή χ,ψ (Ανατολικά Βόρεια για εμάς στο Βόρειο ημισφαίριο) πρέπει ανάλογα με την προβολή να κάνεις πιο δύσκολη δουλειά. Εδώ στο παράδειγμα μια εφαρμογή για το θέμα μας σε C:

Κώδικας:
void en2flHGRS87(double e, double n, double *latit, double *longt) {
    double Pi, Deg2Rad, SemiAxis, Flat, Eccen1, Eccen2, K0;
    double lon0, VerRad, MerRad, h, t, lat, Mo, P, Dlat;
    double M0, M2, M4, M6, M8, M, MerArc;
    double Lat11, Lat12, Lat13, Lat14, Lat, Lon11, Lon12, Lon13, Lon;

    Pi = 3.14159265358979323846;
    Deg2Rad = Pi/180.0;
    SemiAxis = 6378137;                             /* GRS80 */
    Flat =  (double) 1.0 / 298.257222101;       /* GRS80 */
    Eccen1 = (double) 2.0 * Flat - Flat * Flat;
    Eccen2 =  Eccen1 / (1.0 - Eccen1);
    K0 = (double) 0.9996;

    e -= (double)500000;
    lon0 = (double) 24.0*Deg2Rad;
    Mo = (double) 1 + 0.75 * Eccen1 + ((double)45 / 64) * Eccen1 * Eccen1 + ((double)175 / 256) * Eccen1 * Eccen1 * Eccen1 + ((double)11025 / 16384) * Eccen1 * Eccen1 * Eccen1 * Eccen1;
    Mo *= ((double)1 - Eccen1) * SemiAxis;
    lat = n / (Mo * K0);

    do {
        M0 = (double) 1 + 0.75 * Eccen1 + ((double)45 / 64) * Eccen1 * Eccen1 + ((double)175 / 256) * Eccen1 * Eccen1 * Eccen1 + ((double)11025 / 16384) * Eccen1 * Eccen1 * Eccen1 * Eccen1;
        M2 = ((double)3 / 8) * Eccen1 + ((double)15 / 32) * Eccen1 * Eccen1 + ((double)525 / 1024) * Eccen1 * Eccen1 * Eccen1 + ((double)2205 / 4096) * Eccen1 * Eccen1 * Eccen1 * Eccen1;
        M4 = ((double)15 / 256) * Eccen1 * Eccen1 + ((double)105 / 1024) * Eccen1 * Eccen1 * Eccen1 + ((double)2205 / 8820) * Eccen1 * Eccen1 * Eccen1 * Eccen1;
        M6 = ((double)35 / 3072) * Eccen1 * Eccen1 * Eccen1 + ((double)315 / 12288) * Eccen1 * Eccen1 * Eccen1 * Eccen1;
        M8 = ((double)315 / 130784) * Eccen1 * Eccen1 * Eccen1 * Eccen1;
        M = M0 * lat - M2 * sin(2*lat) + M4 * sin(4*lat) - M6 * sin(6*lat) + M8 * sin(8*lat);
        MerArc = M * ((double)1 - Eccen1) * SemiAxis;
        Dlat = (n / K0 - MerArc) / Mo;
        lat+=Dlat;
    } while (fabs(Dlat)>1.0e-15);

    VerRad = (double) SemiAxis / sqrt(1.0 - Eccen1 * sin(lat) *sin(lat));
    MerRad = (double) SemiAxis * (1.0 - Eccen1) / sqrt( ( 1 - Eccen1 * sin(lat) * sin(lat) )*( 1 - Eccen1 * sin(lat) * sin(lat) )*( 1 - Eccen1 * sin(lat) * sin(lat) ) );
    h = (double)Eccen2 * cos(lat) * cos(lat);
    P = e / (K0 * VerRad);
    t = (double)tan(lat) * tan(lat);

    Lat11 = ((double)1385 + 3633 * t + 4095 * t * t) / 40320;
    Lat12 = ((double)61 + 90 * t + 46 * h + 45 * t * t - 252 * t * h - 3 * h * h - 66 * t * h * h - 90 * t * t * h) / 720;
    Lat13 = ((double)5 + 3 * t + h - 4 * h * h - 9 * h * t) / 24;
    Lat14 = VerRad / MerRad;
    Lat = (((((Lat11)) * P * P - (Lat12)) * P * P + (Lat13)) * P * P - 0.5) * P * P * (Lat14) * tan(lat) + lat;

    Lon11 = (double)-61 - 662 * t - 1320 * t * t;
    Lon12 = (double)5 + 6 * h + 28 * t - 3 * h * h + 8 * t * h + 24 * t * t + 4 * t * h * h;
    Lon13 = (double)1 + 2 * t + h;
    Lon = (((((Lon11) / 5040) * P * P + (Lon12) / 120) * P * P - (Lon13) / 6) * P * P + 1) * P * (1 / cos(lat)) + lon0;

    *latit = Lat / Deg2Rad;
    *longt = Lon / Deg2Rad;
    return;
}
http://hermes.survey.ntua.gr/Free_As_Freedom_Software/InDiRes.c

Όπως καταλαβαίνεις ΑΥΤΟ είναι σχετικά δύσκολο να υλοποιηθεί σε ένα λογιστικό φύλο. Οπότε σου προτείνω αν θες να φτιάξεις κάτι να το κάνεις σε επίπεδο  γεωγραφικού μήκους και πλάτους. Με βάση τον παραπάνω Ελεύθερο Κώδικα (GPLv3) ξεκινήσέ το, βάλτο εδώ και με χαρά θα το διορθώσουμε / βελτιώσουμε αν χρειαστεί. Αλλά σε παρακαλώ ιδιαίτερα: επειδή οι περισσότεροι από εμάς δεν έχουμε αγοράσει το λογισμικό που αναφέρεις, λύσ' το σε LibreOffice Calc. (θα διαπιστώσεις ότι δεν θα βρεις ουσιαστικές διαφορές στην εργασία σου και παράλληλα δες το σαν ευκαιρία να μάθεις ένα Ελεύθερο Λογισμικό)

Ελπίζω η απάντησή μου να σε βοήθησε :-) Στην διάθεσή σου και για ότι άλλο :-)

Λέφτερα,
Ch Iossif


Σελίδες: 1 ... 8 9 [10]