Βλέπετε μια παλαιότερη έκδοση της σελίδας!
Coming soon, stay tunned.
Όπως αναφέρθηκε, το module διαχειρίζεται raster αρχεία, δηλαδή με απλά λόγια είναι χρήσιμο για την Ψηφιακή Τηλεπισκόπηση! Τα είδη των αρχείων που υποστηρίζονται περιλαμβάνουν όλα τα γνωστά αρχεία εικόνα (TIFF, Erdas, ERmapper κ.λπ.) και πολλά άλλα! Μια πλήρη λίστα με αυτά υπάρχει εδώ!
Module στην Python δεν είναι τίποτα άλλο από ένα αρχείο .py (αρχείο Python δλδ), το οποίοι περιέχει μέσα έτοιμες συναρτήσεις και κλάσεις, οι οποίες καλώντας τες κάνουν χρησιμα πράγματα. Τα modules πρέπει να κλήθούν στην αρχή του κάθε προγράμματος ώστε να είναι διαθέσιμο το περιεχόμενό τους. Για παράδειγμα, το math είναι ένα μαθηματικό module της Python και έχει μέσα διάφορες συναρτήσεις, οι οποίες είναι έτοιμες για χρήση και μας γλιτώνουν από υπολογισμούς (πχ η μετατροπή από rad σε degrees γίνεται από την συνάρτηση degrees(x)).
Το GDAL module αρθρώνεται σε κάποιες χύμα συναρτήσεις και κάποιες κλάσεις, οι οποίες έχουν μέσα τους άλλες συνασρτήσεις.
Προχωράμε αμέσως στο άνοιγμα ενός αρχείου. Έστω ότι έχουμε μια εικόνα .ers (ERMapper format) στο '/home/user/Desktop' με ονομα 'image1.ers'. Αυτό γίνεται σε 3 στάδια:
⇒ Κλήση των modules της GDAL.
⇒ Ενεργοποίηση των οδηγών (drivers) που είναι κατάλληλοι για το άνοιγμα του αρχείου .ers
⇒ Άνοιγμα αρχείου
Έτσι έχουμε:
from osgeo import gdal from osgeo.gdalconst import * gdal.AllRegister() image=gdal.Open('/home/user/Desktop/image1.ers', GA_ReadOnly)
Μπορούμε να πάρουμε κάποιες γενικές πληροφορίες για το αρχείο ως εξής:
Η συνάρτηση GetGeoTransform() μας επιστρέφει ένα tuple με τις συν/νες του πάνω αριστερά pixel, την γωνία στροφής της εικόνας κατα Χ και Υ άξονα καθώς και το μέγεθος του pixel (πάλι) κατά Χ και Υ άξονα. To tuple είναι ΠΑΝΤΑ της μορφής (Χ, μέγεθος pixel κατα Χ, στροφή κατα Χ, Υ, στροφή κατά Υ, Μέγεθος pixel κατά Υ). Παρατίθεται ένα πραγματικό output για μια τυχαία εικόνα:
(219543.05899931892, 30.0, 0.0, 4407229.9912246773, 0.0, -30.0)
Η συνάρτηση GetTProjection() μας επιστρέφει ένα string με τα στοιχεία προβολής της εικόνας. Το output είναι αυτής της μορφής (για μια τυχαία εικόνα):
'PROJCS["EGSA87",PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",23.99999882666041],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["Meter",1]]
Τέλος οι μεθόδοι RasterXSize, RasterYSize και RasterCount μας επιστρέφουν τον αριθμό των pixels στον Χ και Υ άξονα και τον αιρθμό των καναλιών της εικόνας.
Από τα παραπάνω μπορούμε να συνθέσουμε ένα απλό πρόγραμμα, το οποίο ανοίγει μια εικόνα και μας επιστρέφει τα βασικά της στοιχεία:
from osgeo import gdal from osgeo.gdalconst import * gdal.AllRegister() image=gdal.Open('/home/user/Desktop/image1.ers', GA_ReadOnly)
print 'Pixel ston X aksona:', image.RasterXSize print 'Pixel ston Y aksona:', image.RasterYSize print 'Arithmos Kanaliwn:', image.RasterCount print 'Geodetiko Datum:', image.GetProjection().split('"')[1] print 'Provoli:', image.GetProjection().split('"')[3] print 'Syntetagmenes panw aristerou pixel:', image.GetGeoTransform()[0], ',', image.GetGeoTransform()[3] print 'Strofi kata X kai kata Y:', image.GetGeoTransform()[2],',',image.GetGeoTransform()[4] print 'Diastaseis pixel kata X kai Y:', image.GetGeoTransform()[1],',',math.fabs(image.GetGeoTransform()[5])