È possibile generare un modello boustrophedon che riempie una regione vettoriale con GRASS?


21

È possibile generare un modello boustrophedon che riempie una regione vettoriale con GRASS?

Ho una regione vettoriale in GRASS. E vorrei generare un vettore (una polilinea) che è il modello bostrophedon che riempie questa regione.

Nell'immagine seguente, ho l'area "grigia" e vorrei generare automaticamente la polilinea rossa.

È possibile con GRASS o un altro strumento GIS?

inserisci qui la descrizione dell'immagine

In un mondo perfetto, la funzione prenderà i seguenti argomenti:

  • Un punto di partenza (che deve trovarsi ovunque nell'area)
  • Una distanza tra due linee parallele
  • Una direzione (un vettore che aiuterà a disegnare il modello)

Domanda interessante. Come determineresti il ​​punto di partenza? "In alto a sinistra" potrebbe non essere sempre correlato a un bel punto d'angolo come nell'esempio.
Darren Cope,

Ho risposto al tuo commento alla domanda
Adrien BARRAL,

1
Probabilmente qualcosa potrebbe essere inventato usando PyGRASS: grass.osgeo.org/grass70/manuals/libpython/pygrass_index.html
markusN

L'output richiesto è solo un'immagine con le linee tracciate su di esso o stai davvero cercando un output di coordinate che potrebbero essere fornite a un trattore per arare in modo più efficiente un campo?
nmtoken,

Risposte:


2

Non ho idea di come creare tale funzione, ma i passaggi da eseguire potrebbero essere

  1. Traccia una linea con l'azimut desiderato e crea nuove linee con offset in modo che il poligono sia completamente coperto.

Campo linea creato

  1. Buffer il poligono per definire il divario tra il confine del poligono e il boustrophedon. Taglia le linee ai confini del poligono tamponato e mantieni le parti interne.

Campo di linea tagliato con il poligono bufferato

  1. Collegare la fine e i punti di inizio delle linee nell'ordine corretto.

Modello di boustrophedon pronto


1
Ho provato la stessa cosa, penso che tu stia cercando qualcosa qui. I passaggi 1 e 2 sono abbastanza facili o possono essere simulati. Il passaggio 3 è più complicato. In Postgis potrebbe essere possibile ordinare i punti che rappresentano le st_intersection()linee parallele / buffer interno in base al loro ST_LineLocatePoint()valore lungo il buffer interno e unire coppie alternative.
Steven Kay,

1
Se il confine del poligono ha angoli interni o punte, le linee che collegano i punti di fine e inizio possono intersecare il confine. Non è difficile verificare se si verifica un incrocio, ma quale sarebbe il modo giusto per disegnare il linestring in questo caso e come farlo automaticamente? Potrebbe non essere facile trovare una soluzione generale.
user30184

hai ragione, ottenere indicazioni corrette sarà complicato. inoltre, sospetto che questo approccio avrà casi limite, ad esempio campi a forma di U o campi con buchi :)
Steven Kay,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.