Εδώ βλέπετε τις διαφορές μεταξύ της επιλεγμένης έκδοσης και της τρέχουσας έκδοσης της σελίδας.
Επόμενη αναθεώρηση | Προηγούμενη αναθεώρηση | ||
geo-processing [2010/03/09 11:41] Sairin_Lote δημιουργήθηκε |
geo-processing [2021/01/30 14:00] (τρέχουσα) 62.210.151.70 παλαιότερη έκδοση επαναφέρθηκε (2010/05/27 14:38) |
||
---|---|---|---|
Γραμμή 1: | Γραμμή 1: | ||
- | ======Απαιτούμενο υλικό====== | + | ======Εισαγωγή====== |
+ | H GDAL (Geospatial Data Abstraction Library) είναι μια ελεύθερη βιβλιοθήκη (free software), | ||
+ | |||
+ | Η βιβλιοθήκη είναι γραμμένη σε C, αλλά έχει μεταφερθεί και σε Python. | ||
+ | |||
+ | |||
+ | =====Εγκατάσταση σε Ubuntu 10.04===== | ||
+ | |||
+ | |||
+ | Καλό θα είναι να εγκατασταθεί όλο το αποθετήριο του UbuntuGis που παρέχει άμεση πρόσβαση σε διάφορα προγράμματα γεωγραφικού ενδιαφέροντος. Για να γίνει αυτό ανοίξτε ένα terminal (Applications -> Accessories -> Terminal) και δώστε τις παρακάτω εντολές: | ||
+ | |||
+ | sudo add-apt-repository ppa: | ||
+ | sudo apt-get update | ||
+ | |||
+ | Από δω και στο εξείς μπορείτε να προσθέτετε πακέτα από το UbuntuGis κατευθείαν από τον Synaptic Package Manager. Για να προσθέσετε την GDAL ανίξτε το Synaptic Package Manager και ψάξτε το αρχείο gdal-bin. Επίσης για χρήση στην Python προσθέστε και το αρχείο python-gdal. | ||
+ | |||
+ | |||
+ | ======GDAL module====== | ||
+ | |||
+ | Όπως αναφέρθηκε, | ||
+ | |||
+ | Module στην Python δεν είναι τίποτα άλλο από ένα αρχείο .py (αρχείο Python δλδ), το οποίοι περιέχει μέσα έτοιμες συναρτήσεις και κλάσεις, | ||
+ | |||
+ | Το GDAL module αρθρώνεται σε κάποιες αυτόνομες συναρτήσεις και κάποιες κλάσεις, | ||
+ | |||
+ | |||
+ | |||
+ | =====Άνοιγμα αρχείου===== | ||
+ | |||
+ | Προχωράμε αμέσως στο άνοιγμα ενός αρχείου. Έστω ότι έχουμε μια εικόνα .ers (ERMapper format) στο '/ | ||
+ | |||
+ | => Κλήση των modules της GDAL. | ||
+ | |||
+ | => Ενεργοποίηση των οδηγών (drivers) που είναι κατάλληλοι για το άνοιγμα του αρχείου .ers | ||
+ | |||
+ | => Άνοιγμα αρχείου | ||
+ | |||
+ | Έτσι έχουμε: | ||
+ | |||
+ | from osgeo import gdal | ||
+ | from osgeo.gdalconst import * | ||
+ | gdal.AllRegister() | ||
+ | image=gdal.Open('/ | ||
+ | |||
+ | Στο συγκεκριμένο παράδειγμα επειδή δεν θέλουμε να επεξαργαστούμε την εικόνα αλλά μόνο να διαβάσουμε τα δεδομένα της χρησιμοποιήσαμε έναν driver-' | ||
+ | |||
+ | Ορίζουμε στην μεταβλητή image την διαδικασία ανοίγματος της εικόνας. Η εικόνα ανοίγει χρησιμοποιώντας την μέθοδο Open() της κλάσσης gdal, η οποία δέχεται 2 arguments: το path της εικόνας και την κατάσταση ανοίγματος. | ||
+ | |||
+ | |||
+ | =====Προσπέλαση Βασικών Δεδομένων===== | ||
+ | |||
+ | Μπορούμε να πάρουμε κάποιες γενικές πληροφορίες για το αρχείο ως εξής: | ||
+ | |||
+ | Η συνάρτηση **GetGeoTransform()** μας επιστρέφει ένα tuple με τις συν/ | ||
+ | |||
+ | (219543.05899931892, | ||
+ | |||
+ | Η συνάρτηση **GetTProjection()** μας επιστρέφει ένα string με τα στοιχεία προβολής της εικόνας. Το output είναι αυτής της μορφής (για μια τυχαία εικόνα): | ||
+ | ' | ||
+ | |||
+ | Τέλος οι μεθόδοι **RasterXSize**, | ||
+ | |||
+ | Από τα παραπάνω μπορούμε να συνθέσουμε ένα απλό πρόγραμμα, | ||
+ | |||
+ | |||
+ | from osgeo import gdal | ||
+ | from osgeo.gdalconst import * | ||
+ | gdal.AllRegister() | ||
+ | image=gdal.Open('/ | ||
+ | |||
+ | print 'Pixel ston X aksona:', | ||
+ | print 'Pixel ston Y aksona:', | ||
+ | print ' | ||
+ | print ' | ||
+ | print ' | ||
+ | print ' | ||
+ | print ' | ||
+ | print ' | ||
+ | |||
+ | ======OGR module====== | ||
+ | |||
+ | To OGR είναι το αντίστοιχο module διαχείρισης vector δεδομένων. | ||
+ | |||
+ | |||
+ | |||
+ | =====Άνοιγμα αρχείου===== | ||
+ | |||
+ | Το άνοιγμα αρχείων γίνεται σχεδόν όπως στην GDAL. Για παραδείγμα εδώ θα χρησιμοποιήσουμε ένα αρχείο Shapefile (.shp). Ο λόγος είναι ότι το shapefile είναι ένα από τα πιο διαδεδομένα αρχεία vector δεδομένων. Έστω λοιπόν ότι έχουμε ένα αρχείο test.shp. Αφήνω προς το παρόν την γεωμετρία του (point, line, polygon) φλου, επειδή θα αναφερθούμε σε εντολές που ισχύουν για όλα τα παραπάνω είδη. Έτσι έχουμε: | ||
+ | |||
+ | from osgeo import ogr | ||
+ | driver=ogr.GetDriverByName(' | ||
+ | datasource=driver.Open('/ | ||
+ | |||
+ | => Line 1 : καλώ το ogr module | ||
+ | |||
+ | => Line 2 : στην περίπτωση του ogr πρέπει να καλέσω συγκεκριμένο driver. O driver που καλώ είναι ο 'ESRI Shapefile' | ||
+ | |||
+ | => Line 3 : ανοίγω το αρχείο όπως και στην περίπτωση της GDAL. Η μέθοδος Open() δέχεται εκτός από το path του αρχείου και μια τιμή, η οποία έιναι 0 ή 1. Το 0 χρησιμοποιείται για read-only άνοιγμα, | ||
- | * Python [[http:// | ||
- | * GDAL library (περιέχει το GDAL module για raster και το OGR module για vector) [[http:// | ||
- | Coming soon, stay tunned. |