12 votos

¿cómo puedo convertir un archivo de forma de lat y lon límites?

tengo un shapefile de país subdivisiones y me gustaría extraer una matriz de delimitación de lat y lon para cada división.. es posible hacer?

25voto

Josh Puntos 569

El uso de la ogr el módulo de Python OSGEO, en este ejemplo se le dará una tupla que contiene las coordenadas que definen un sobre para cada característica.

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

4voto

sgwill Puntos 2444

Aquí la versión "R", utilizando los datos del ejemplo de la rgdal paquete:

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,]))    
}

4voto

Michael Gorsuch Puntos 1760

En arcgis, aquí está el código de python. el resultado es una lista de 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

4voto

Mohit Jain Puntos 145

Una posible manera de proceder usando SAGA GIS http://www.saga-gis.org Después de abrir su archivo shapefile de ejecutar estos 3 módulos: 1. Módulos\Shapes\Tools\Conseguir Formas medida

  1. Módulos\Shapes\Herramientas\Puntos\Puntos de las líneas [contrariamente a lo que el nombre lo sugiere también puede utilizar esto para obtener los puntos de un polígono]

  2. Módulos\Shapes\Herramientas\Puntos\Agregar las Coordenadas de los puntos de Esto le dará una tabla que contiene las coordenadas x e y de las 4 esquinas de la caja de contorno del polígono de archivo.

1voto

Travis Christian Puntos 183

Yo uso fiona y bien formada para ese tipo de tareas:

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]))

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X