Django / Geodjango / Raster /geotiff: Probleme bei Übungsaufgabe

Django, Flask, Bottle, WSGI, CGI…
Antworten
Benutzeravatar
Schwarzer Wolf
User
Beiträge: 48
Registriert: Donnerstag 5. Januar 2017, 05:24

Sonntag 10. Dezember 2017, 07:48

Ich Grüße Euch :D

Ich hoffe, Ihr könnt mir weiterhelfen. Ich habe eine Übungsaufgabe bekommen, bei der ich nun nicht mehr weiterkomme. Die Aufgabe ist folgende:
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.
Zudem wurde noch in einer E-Mail spezifiziert:
"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.... ```"
Bisher erledigt habe ich:
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()
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? :roll:

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.
Wer in der Wildnis lebt, muss zum Wolf werden, oder als Schaf sterben.
(Syrisches Sprichwort)
Benutzeravatar
noisefloor
User
Beiträge: 2359
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: Görgeshausen
Kontaktdaten:

Sonntag 10. Dezember 2017, 09:36

Hallo,

uh... Die Frage ist aber echt sehr speziell... Gibt es keine Foren oder Mailinglist, die auf so was spezialisiert sind?

Klar kannst du hier posten, aber die Chancen auf eine brauchbare Antwort sind in Spezialforen sicher größer.

Hast du die Frage auch bei Stack Overflow gestellt? Da sind die Chancen auf einen brauchbaren Tipp sicherlich auch größer.

Gruß, noisefloor
Benutzeravatar
Schwarzer Wolf
User
Beiträge: 48
Registriert: Donnerstag 5. Januar 2017, 05:24

Sonntag 10. Dezember 2017, 09:50

noisefloor hat geschrieben:Hallo,

uh... Die Frage ist aber echt sehr speziell... Gibt es keine Foren oder Mailinglist, die auf so was spezialisiert sind?

Klar kannst du hier posten, aber die Chancen auf eine brauchbare Antwort sind in Spezialforen sicher größer.

Hast du die Frage auch bei Stack Overflow gestellt? Da sind die Chancen auf einen brauchbaren Tipp sicherlich auch größer.

Gruß, noisefloor
Wie suche ich nach speziellen Mailinglisten oder Ähnlichem? Das Geogebiet ist für mich auch total neu, von daher steh ich allgemein etwas auf dem Schlauch.

Stack hab ich mir auch schon überlegt, aber mein Englisch ist nur im Lesen brauchbar, nicht im Sätzeverfassen. Aber Du hast recht, ich werde es mit google übersetzen und hoffen es ist halbwegs lesbar.
Wer in der Wildnis lebt, muss zum Wolf werden, oder als Schaf sterben.
(Syrisches Sprichwort)
Antworten