Mam następujące współrzędne
minx, maxx, miny ,maxy = 448262.080078, 450360.750122, 6262492.020081, 6262938.950073
Chcę utworzyć kwadratową siatkę o rozmiarze 1 m za pomocą Pythona.
import math
minx,maxx,miny,maxy = 448262.080078, 450360.750122, 6262492.020081, 6262938.950073
size = 1
def set_bbox(minx, maxx, miny, maxy, distx, disty):
nx = int(math.ceil(abs(maxx - minx)/distx))
ny = int(math.ceil(abs(maxy - miny)/disty))
new_maxx = minx + (nx*distx)
new_miny = maxy - (ny*disty)
return ((minx, new_maxx, new_miny, maxy),ny,nx)
# shift the bottom (right - down)
coord, ny, nx = set_bbox(minx,maxx,miny,maxy,size,size)
# left-up origin
origin = coord[0],coord[3]
# number of tiles
ncell = ny*nx
python
polygon
vector-grid
Gianni
źródło
źródło
Odpowiedzi:
Poniższy skrypt wykona zadanie w GDAL i Python:
źródło
Ten skrypt w języku Python korzysta z biblioteki pyshp , zgodnie z sugestią użytkownika 16044:
Uwaga: kwadratowa siatka o rozmiarze 1 m o takim zasięgu równa się warstwie zawierającej około 1 miliona wielokątów, więc wydajność skryptu znacznie spada.
źródło
Na to pytanie udzielono odpowiedzi od dawna, ale dodaję inne rozwiązanie, używając bibliotek foremnych i fiona:
źródło
Odpowiedź na temat tworzenia siatki kształtów siatki kabaretowej w QGIS? pokazuje opcję tworzenia siatki w przyborniku przetwarzania QGIS.
źródło