ülke alt bölümleri bir shapefile var ve her bölüm için lat ve lon sınırlayıcı bir dizi ayıklamak istiyorum .. mümkün mü?
ülke alt bölümleri bir shapefile var ve her bölüm için lat ve lon sınırlayıcı bir dizi ayıklamak istiyorum .. mümkün mü?
Yanıtlar:
OSGEO'dan ogr Python modülünü kullanarak, bu örnek size her özellik için bir zarf tanımlayan koordinatları içeren bir demet verecektir.
from osgeo import ogr
ds = ogr.Open("mn_counties.shp")
lyr = ds.GetLayerByName("mn_counties")
lyr.ResetReading()
for feat in lyr:
# get bounding coords in minx, maxx, miny, maxy format
env = feat.GetGeometryRef().GetEnvelope()
# get bounding coords in minx, miny, maxx, maxy format
bbox = [env[0], env[2], env[1], env[3]]
print env
print bbox
print
SAGA GIS kullanarak devam etmenin olası bir yolu http://www.saga-gis.org Şekil dosyasını açtıktan sonra şu 3 modülü çalıştırın: 1. Modüller \ Şekiller \ Araçlar \ Şekilleri al kapsamı
Modüller \ Şekiller \ Araçlar \ Noktalar \ Satırlardan alınan noktalar [adın önerdiğinin aksine bunu bir çokgenden puan almak için de kullanabilirsiniz]
Modüller \ Şekiller \ Araçlar \ Noktalar \ Noktalara Koordinatlar Ekle Bu, çokgen dosyanızın sınırlama kutusunun 4 köşesinin x ve y koordinatlarını içeren bir tablo verecektir.
Arcgis'te işte python kodu. sonuç minx, miny, maxx, maxy, minM, maxM, minZ, maxZ (
import arcpy
for feat in arcpy.SearchCursor(r"c:\data\f.gdb\counties"):
print feat.Shape.extent
-2.66852727251546 49.4265363633626 -2.52848181818121 49.5079454546192 NaN NaN NaN NaN
-10.463336363782 51.4455454544593 -6.01305454583045 55.3799909091533 NaN NaN NaN NaN
-4.77778181827614 54.0555454544593 -4.35347272688468 54.4100000000002 NaN NaN NaN NaN
İşte rgdal paketindeki örnek verileri kullanan bir R sürümü:
library(rgdal)
dsn <- system.file("vectors/ps_cant_31.MIF", package = "rgdal")[1]
d <- readOGR(dsn = dsn, layer="ps_cant_31")
## transform if this is not longlat
if (is.projected(d)) d <- spTransform(d, CRS("+proj=longlat +ellps=WGS84"))
for (i in 1:nrow(d)) {
print(bbox(d[i,]))
}
Ben fiona ve düzgün bir şekilde bu tür görevler için kullanıyorum:
import fiona
from shapely.geometry import shape
with fiona.open(r'd:\Projects\_00_Data\_USstates\fe_2007_us_state00.shp', 'r') as features:
for i, feat in enumerate(features):
geom = shape(feat['geometry'])
name = feat['properties']['NAME00']
print ','.join((name,) + tuple([str(i) for i in geom.bounds]))