[OSGeo-Brasil] Passando de 2D para 3D
jorge.destri
jorge.destri em labtrans.ufsc.br
Quarta Março 20 14:28:56 PDT 2013
Luiz,
Eu tenho arquivos DEM do SRTM e do ASTER e tenho rotinas que, dados lat
e log, ele me devolve, por interpolação, a elevação.
Meu problema todo está em não conseguir um código python que leia um
shapefile 2D, mude ele para 3D, salvando os dados da elevação.
O que apresentei abaixo, altera a coordenada Z, na memória, mas não
quando persiste o objeto. Ele só persiste se altero lat ou long.
On Wed, 20 Mar 2013 17:53:17 -0300, Luiz Motta <motta.luiz em gmail.com>
wrote:
> Jorge,
>
> Numa rápida abordagem, acharia conveniente:
>
> 1) Gerar um DEM
> 2) Para cada vértice, das rodovias, inserir o valor do pixel que
> está no DEM (Z altimetria).
>
> O trabalho passaria a ter uma função que identifica o pixel que
> está na mesma posição do vértice, e inserir o valor do Z do pixel
> na coordenada 3D.
>
> Espero que esse abordagem possa ser útil na sua empreitada.
>
> Abraços,
> Luiz
>
> Acho mais viável vc. geral um DEM e fazer o perfil das estradas,
>
> Em 20 de março de 2013 13:44, jorge.destri escreveu:
> Prezado Luiz,
>
> Deixa eu descrever meu problema/necessidade.
> O laboratório que eu trabalho frequentemente recebe arquivos de
> rodovias, em formato shapefile, para uso/análise em algum projeto.
> Porém, na sua quase totalidade, a elevação não está incluída,
> o que
> inviabiliza determinadas análises.
> Meu objetivo então é, com base em dados de altimetria de outras
> fontes,
> transformar as coordenadas do shapefile de 2D para 3D, para futuro
> uso.
> Vou dar uma olhada nas referências que você citou.
>
> On Tue, 19 Mar 2013 18:09:30 -0300, Luiz Motta
> wrote:
>
>> Jorge,
> >
> > Vc. está querendo colocar o Z numa camada 2d ?
> >
> > Acho que vc. está confundindo Multipart, anel interno,... com
> > geometria 3D.
> >
> > Faça uma revisão nesses conceitos, veja na OGC Single Feature e
> > depois a API da Gdal/Ogr.
> >
> > Em 19 de março de 2013 17:23, jorge.destri escreveu:
>
>> Preciso converter o conteúdo de um shapefile de 2D para 3D.
> > Na internet, peguei umas dicas e cheguei a esse código python:
> >
> > from osgeo import ogr
> > shapefile = ogr.Open('/home/jorge/temp/42MUE250GC_SIR.shp', 1)
> > layer = shapefile.GetLayer(0)
> >
> > i = 0
> > for feat in layer:
> > i += 1
> > geom = feat.GetGeometryRef()
> >
> > #geom.SetCoordinateDimension (3)
> >
> > ring = geom.GetGeometryRef(0)
> > points = ring.GetPointCount()
> > #para teste
> > if i > 292:
> > j = 0
> > for p in xrange(points):
> > j += 1
> > lon, lat, z = ring.GetPoint(p)
> > ring.SetPoint( p, 1on, 1at, 5 )
> >
> > #para confirmar a altereção
> > lon, lat, z = ring.GetPoint(p)
> > print( i, j, lon, lat, z )
> >
> > layer.SetFeature(feat)
> > shapefile.Destroy()
> >
> > Na execução ele mostra os pontos alterados com elevação 5,
> mas
> > quando executo novamente, a coordenada Z está zerada. Se altero a
> > longitude ou a latitude a mudança persiste.
> > Tentei usar o comando comentado : geom.SetCoordinateDimension
> (3),
> > mas também ele não persiste.
> > Acredito que talvez tenha que mudar a geometria para
> > wkbLineString25D ou wkbMultiPoint25D ou wkbMultiLineString25D ou
> > wkbMultiPolygon25D ou wkbPoint25D conforme o tipo 2D, porém não
> > encontro um método que faça isso.
> >
> > Agradeço por qualquer dica.
> >
> > _______________________________________________
> > Brasil mailing list
> > Brasil em lists.osgeo.org [3] [2]
> > http://lists.osgeo.org/mailman/listinfo/brasil [4] [3]
> >
> >
> >
> > Links:
> > ------
> > [1] mailto:jorge.destri em labtrans.ufsc.br [5]
> > [2] mailto:Brasil em lists.osgeo.org [6]
> > [3] http://lists.osgeo.org/mailman/listinfo/brasil [7]
>
> _______________________________________________
> Brasil mailing list
> Brasil em lists.osgeo.org [8]
> http://lists.osgeo.org/mailman/listinfo/brasil [9]
>
>
>
> Links:
> ------
> [1] mailto:jorge.destri em labtrans.ufsc.br
> [2] mailto:motta.luiz em gmail.com
> [3] mailto:Brasil em lists.osgeo.org
> [4] http://lists.osgeo.org/mailman/listinfo/brasil
> [5] mailto:jorge.destri em labtrans.ufsc.br
> [6] mailto:Brasil em lists.osgeo.org
> [7] http://lists.osgeo.org/mailman/listinfo/brasil
> [8] mailto:Brasil em lists.osgeo.org
> [9] http://lists.osgeo.org/mailman/listinfo/brasil
More information about the Brasil
mailing list