topografoi.com



Author Topic: Ψηφιακή Τηλεπισκόπηση Σ.Α.Τ.Μ. Ε.Μ.Π. Χειμερινό 2019 'Ασκηση 8  (Read 14137 times)

chiossif

  • Posts: 334
Κυρίες, Δεσποσύνες και Κύριοι,

καλησπέρα σας :-)

Χθες 10/12 ολοκληρώθηκε η 8η Άσκηση ( με τα προγράμματά της ;-) ) του τρέχοντος εξαμήνου στην ΨΤ. Έτσι, για να βοηθήσουμε την διαδικασία επίλυσης αποριών, ανοίγουμε αυτό το θέμα στο οποίο μπορείτε να υποβάλετε τις ερωτήσεις σας και να διαβάζετε τις ερωτήσεις και τις απαντήσεις των άλλων.

Μην ξεχνάτε ΠΡΙΝ ρωτήσετε να διαβάζετε κατά σειρά: την γενική περιγραφή για το μάθημα και τις οδηγίες για τις ασκήσεις του, τις σημειώσεις σας και ότι έχει ήδη ερωτηθεί εδώ.

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

Λέφτερα,
Ch Iossif

chiossif

  • Posts: 334
Κυρίες, Δεσποσύνες και Κύριοι,

καλησπέρα σας και Καλή Χρονιά :-)

Ερώτηση:
«σχετικά με το δεύτερο ερώτημα της άσκηση 8 θα πρέπει να χρησιμοποιήσουμε τα φίλτρα που είχαμε χρησιμοποιήσει στην άσκηση 3; και αν ναι πως θα το αλλάξουμε αυτό στον κώδικα;»
Απάντηση:
Από την εκφώνηση διαβάζουμε «Σχολιάστε τα αποτελέσματα σε σχέση και με τα φίλτρα που εφαρμόσατε στην Άσκηση 3» άρα ΝΑΙ. Στο πρόγραμμα RasterFiltering βλέπουμε τις γραμμές 77, 80, 83 και 87 οι οποίες έχουν result =  το κάθε φίλτρο. Αν έχει μπροστά # τότε αυτή η γραμμή είναι σχολιασμένη και δεν λειτουργεί. Η τελευταία (πιο μεγάλος αριθμός γραμμής) γραμμή result η οποία ΔΕΝ έχει # μπροστά είναι αυτή η οποία αποθηκεύεται. Οπότε σε αυτή την περίπτωση βλέπουμε τι φίλτρο υλοποιεί και ρυθμίζουμε το όνομα του αποτελέσματος (γραμμή 35 ανάλογα πχ outfilename=imagefilename+'_filtered_Sobel.tif')
Τα φίλτρα που είναι ΉΔΗ υλοποιημένα είναι:
  • φίλτρο συνέλιξης γενικά με δύο τρόπους από γραμμή 44 έως και 71 (μόνο αν κατέχετε το άθλημα)
  • Sobel από γραμμή 73 έως και 77
  • Median από γραμμή 79 έως και 80
  • Laplace από γραμμή 82 έως και 83 και
  • φίλτρο συνέλιξης γενικά από γραμμή 85 έως και 87. Εδώ απλά αλλάζουμε τα νούμερα στην λίστα πχ αντί για [[0,-1,0], [-1,5,-1], [0,-1,0]] βάζουμε [[0.11,0.11,0.11], [0.11,0.12,0.11], [0.11,0.110.11]] για μέσου όρου (1/9)

Ερώτηση:
«Που πρέπει να βάλω τα στοιχεία του πίνακα στο notepad ++ για να δημιουργηθεί το φίλτρο ;»
Απάντηση:
Σε καλύπτει η προηγούμενη ερώτηση. Αλλά ομολογώ τρόμαξα να καταλάβω...

Ερώτηση:
«Στην OsGeo4W δεν τρέχει το πρόγραμμα Filtering και το Κmeans βγάζοντας πρόβλημα με την βιβλιοθήκη SciPy, όπως φαίνεται στις εικόνες. Αυτό συμβαίνει γιατί πρέπει να κατεβάσουμε κάτι? »
Απάντηση:
Όχι απλά το τερματικό των παραθύρων cmd δεν φορτώνει καθόλου πάιθον ενώ το αντίστοιχο του Κιου Τζι Άι Ές μόνο την πάιθον χωρίς τις βιβλιοθήκες. Άρα στα παράθυρα ΜΟΝΟ ΜΕΣΑ ΑΠΟ ΤΟ Κιου Τζι Άι Ές τρέχουν τα προγράμματα όπως δείξαμε και στο μάθημα με τις εντολές:

Code: [Select]
import os # make os functions avaliable here
os.chdir('C:\Tilepiskopisi\Ex8') # change to working folder
exec(open('RasterFiltering.py').read()) # run your code Python3 QGIS 3.x

Κάθε φορά που τρέχουμε το Κιου Τζι Άι Ές η import και η os.chdir χρειάζονται μόνο μια φορά στην αρχή. Μετά τρέχω όσες exec θέλω... Προσοχή στον φάκελο της os.chdir και φυσικά σε ποιο πρόγραμμα τρέχει κάθε φορά. Το τελευταίο θέλει και 20-30 λεπτά ενώ όσο τρέχουν το Κιου Τζι Άι Ές φάινεται να μην αποκρίνεται :-)

Ερώτηση:
«στην ασκ 8 ερώτημα 2ο πρέπει να αλλάξουμε μόνο τα κανάλια στην γραμμή 30 ή πρέπει να πειράξουμε και τη γραμμή 86»
Απάντηση:
Ανάλογα τι θέλεις να κάνεις. Πρόσεξε την πρώτη ερώτηση εδώ...

Ελπίζω να βοήθησα :-)

Καλή Χρονιά :-)

Λέφτερα,
Ch Iossif

chiossif

  • Posts: 334
Κυρίες, Δεσποσύνες και Κύριοι,

καλησπέρα σας και Καλή Χρονιά :-)

Ερώτηση:
«τι μπορώ να κάνω, διότι όταν αντιγράφω την εντολή exec(open('RasterAlgebra.py').read() στο Python console του QGIS για να εκτελέσει το πρόγραμμα, το QGIS σβήνει από μόνο του.»

Απάντηση:
( Θα απαντήσω για το RasterAlgebra.py αλλά οι οδηγίες είναι ανάλογες και για τα άλλα. )
Για να κάνουμε αυτή την άσκηση θα πρέπει να έχουμε στον υπολογιστή μας εγκατεστημένα το QGIS έκδοση 3 κάτι και έναν επεξεργαστή κειμένου της προκοπής. Αν είμαστε σε παράθυρα θα χρειαστούμε τον https://notepad-plus-plus.org/

Για να κάνουμε το 1ο ερώτημα (αλλά ανάλογα και τα άλλα ερωτήματα) ανοίγουμε το RasterAlgebra.py στον επεξεργαστή κειμένου και ενημερώνουμε τις απαιτούμενες γραμμές:
  • 15. το όνομα του αρχείου της εικόνας χωρίς το .τιφ Αυτό το βάζει αυτόματα
  • 29. και
  • 30. τα κανάλια τα οποία συμμετέχουν στον δείκτη / πράξη. Στο παράδειγμα λύνει τον NDVI άρα προσοχή στην αντιστοίχηση.
  • 36. την επέκταση στο όνομα της εικόνας εξόδου. Εδώ στο παράδειγμα έχει NDVI
  • 46. μέχρι και
  • 48. τις απαραίτητες πράξεις σε περίπτωση που ο δείκτης μας έχει διαφορετικό τύπο από τον NDVI. Ένας απλός λόγος είναι μόνο μια διαίρεση (απλούστερος κώδικας) ένας δείκτης είναι όπως εδώ ενώ ένας πολύπλοκος δείκτης EVI θέλει πρόσθετο κώδικα. Μπορείτε να διαλέξετε απλούς δείκτες σαν τον NDVI με αλλαγή ΜΟΝΟ στα κανάλια ;-)

Αφού κάνουμε αυτές τι αλλαγές και δεδομένου ότι έχουμε βάλει τις εικόνες μας και τα προγράμματα στον φάκελο C:\drsex8 (χωρίς ελληνικά ή κενά παρακαλώ) κάνουμε τα ακόλουθα βήματα:
  • Τρέχουμε το Κιου Τζι Άι Ές και ανοίγουμε την Python Console με τα >>> και γράφουμε τις εντολές:
  • import os
  • os.chdir('C:\drsex8') για να πάει στον χώρο που δουλεύουμε. Σας παρακαλώ βάλτε ο καθένας ότι έχει εδώ.
  • exec(open('RasterAlgebra.py').read()) για να τρέξει το πρόγραμμα. Όσο τρέχει το Κιου Τζι Άι Ες δεν θα αποκρίνεται πράγμα φυσιολογικό. Κάποια προγράμματα αργούν μέχρι και 30 λεπτά σε μέτριους υπολογιστές.
  • Η εικόνα εικόνες είναι έτοιμες και τις ανοίγουμε όπως κάθε εικόνα ράστερ (χωρίς το σέμι) ώστε να ολοκληρώσουμε την άσκηση

Τα πιο συνηθισμένα λάθη είναι:

  • λάθος φάκελος εργασίας με ελληνικά κενά ή άλλα...
  • φάκελος εργασίας χωρίς εικόνα ή αρχεία πάιθον
  • λάθος όνομα εικόνας στο αρχείο
  • λάθος εντολή για τον φάκελο εργασίας στην κονσόλα της πάιθον

Ελπίζω να βοήθησα :-)

Καλή Χρονιά :-)

Λέφτερα,
Ch Iossif

chiossif

  • Posts: 334
Κυρίες, Δεσποσύνες και Κύριοι,

καλησπέρα σας :-)

  • ...
  • import os
  • os.chdir('C:\drsex8') για να πάει στον χώρο που δουλεύουμε. Σας παρακαλώ βάλτε ο καθένας ότι έχει εδώ.
  • ...

Σήμερα εμφανίστηκε υπολογιστής, με παράθυρα φυσικά, ο οποίος ήθελε την εντολή :
Code: [Select]
os.chdir('C:\drsex8') γραμμένη με δύο \ έτσι:
Code: [Select]
os.chdir('C:\\drsex8')
Ότι άλλο βρω θα το γράφω εδώ :-)
Ελπίζω να βοήθησα :-)

Λέφτερα,
Ch Iossif

 

Copyright © topografoi.com