Django / Geodjango / Raster /geotiff: Probleme bei Übungsaufgabe
Verfasst: Sonntag 10. Dezember 2017, 07:48
Ich Grüße Euch
Ich hoffe, Ihr könnt mir weiterhelfen. Ich habe eine Übungsaufgabe bekommen, bei der ich nun nicht mehr weiterkomme. Die Aufgabe ist folgende:
1. Ubuntu als vm
2. venv
3. Postgres und Postgis installiert (Django schreibt fehlerfrei in Datenbank)
4. Django Projekt und App erstellt
5. Doku bis zu diesem Punkt
Docker lasse ich vermutlich weg, da ich mich damit null auskenne und die Zeit nicht reichen wird.
Nun mein Problem:
Ich habe die geotiff nun über konsole eingebunden und das scheint auch zu funktionieren:
from django.contrib.gis.gdal import GDALRaster
[codebox=python file=console]raster = GDALRaster('base/static/base/geotiff/xto-site3-rgb.tif')
raster.name
Out[4]: 'base/static/base/geotiff/xto-site3-rgb.tif'
raster.width, raster.height
Out[5]: (23001, 9668)[/code]
In der models.py ist bisher:
Wie schaffe ist es nun, dass ich das Raster so einbaue, dass ich das in einer Html darstellen kann? Wenn ich das richtig verstanden habe, muss ich jetzt das geotiff in die Datenbank schreiben, und von da aus weiter auslesen, oder? Ich finde leider in Netz weitgehend nur veraltete Sachen, oder oft Beispiele, bei denen von shapefiles ausgegangen wird. Sollte ich das Raster in ein Shapefile konvertieren und dann so weitermachen?
Bisher bastel ich in Django nur an kleineren Sachen rum, wie eigener Blog und ein paar Statistiken, aber das mit Geodjango ist ein bisschen heftig, da ich es quasi Morgen abgeben muss, spätestens Dienstag Vormittag.
Ich wäre sehr dankbar, wenn mir jemand ein paar Tipps geben könnte. Insgesamt ist das ziemlich wichtig für mich, und es wäre wirklich schade, wenn ich nun auf der hälfte (oder dem letzten Drittel) der Aufgabe es vergeige.
Wünsche Euch allen einen schönen Sonntag.
P. S.: Das geotiff ist ca. 900 MB groß, falls das irgendwie von Bedeutung wäre.
Ich hoffe, Ihr könnt mir weiterhelfen. Ich habe eine Übungsaufgabe bekommen, bei der ich nun nicht mehr weiterkomme. Die Aufgabe ist folgende:
Zudem wurde noch in einer E-Mail spezifiziert:Project Description
The goal of the projects is to create a map view similar to the Google Maps, where user can see some imagery data captured by drones.
User should be able to move around the map freely, as well as zoom in and zoom out to take a closer look at the captured imagery data.
It is strongly desired that the served imagery data will support transparency while minimizing the file size and bandwidth usage. This does not have to be implemented, but solution ideas are welcomed.
The raw imagery data will be provided as GeoTIFF files. Imagery visible on the map can be added by placing a file inside a directory that is read by the server.
Project Delivery Method
Project should be delivered as a Git repository with documentation required to setup and run the project.
Requirements
1. Server implementation in Python 3.5+
2. Project must be able to run on Ubuntu Server 16.04
3. Optimal disk space usage for imagery data displayed to the user (as the app may be processing terabytes of satellite imagery data)
4. Relatively conservative bandwidth usage
Notes:
1. The project will be deployed on a machine that is already running other Python software. Dependency conflicts must be avoided. (virtualenv, Docker)
2. The UI can be a simple HTML page with embedded libraries and inline scripts.
Bisher erledigt habe ich:"es geht bei dem Test Task nicht um Code sondern nur um den approach und um roughe App-Architektur
```I'm attaching a task spec. Like I've mentioned. I'm more interested in problem solving and your ideas. I expect a working prototype tough.
Use any libraries you wish to use. Create an elegant, easy to understand solution. You can use as much time as you want. Would be great if you could deliver the code by git.... ```"
1. Ubuntu als vm
2. venv
3. Postgres und Postgis installiert (Django schreibt fehlerfrei in Datenbank)
4. Django Projekt und App erstellt
5. Doku bis zu diesem Punkt
Docker lasse ich vermutlich weg, da ich mich damit null auskenne und die Zeit nicht reichen wird.
Nun mein Problem:
Ich habe die geotiff nun über konsole eingebunden und das scheint auch zu funktionieren:
from django.contrib.gis.gdal import GDALRaster
[codebox=python file=console]raster = GDALRaster('base/static/base/geotiff/xto-site3-rgb.tif')
raster.name
Out[4]: 'base/static/base/geotiff/xto-site3-rgb.tif'
raster.width, raster.height
Out[5]: (23001, 9668)[/code]
In der models.py ist bisher:
Code: Alles auswählen
from django.contrib.gis.db import models
class RasterBase(models.Model):
raster = models.RasterField()
name = models.TextField()
Bisher bastel ich in Django nur an kleineren Sachen rum, wie eigener Blog und ein paar Statistiken, aber das mit Geodjango ist ein bisschen heftig, da ich es quasi Morgen abgeben muss, spätestens Dienstag Vormittag.
Ich wäre sehr dankbar, wenn mir jemand ein paar Tipps geben könnte. Insgesamt ist das ziemlich wichtig für mich, und es wäre wirklich schade, wenn ich nun auf der hälfte (oder dem letzten Drittel) der Aufgabe es vergeige.
Wünsche Euch allen einen schönen Sonntag.
P. S.: Das geotiff ist ca. 900 MB groß, falls das irgendwie von Bedeutung wäre.