[OSGeo-Brasil] Passando de 2D para 3D

Marcello Benigno benigno.marcello em gmail.com
Quarta Março 20 14:01:47 PDT 2013


Jorge,

No GRASS existe um comando chamado v.drape, ele pode ser usado para o seu
problema.

http://grass.osgeo.org/grass65/manuals/v.drape.html

Um abraço,



Em 20 de março de 2013 17:33, jorge.destri
<jorge.destri em labtrans.ufsc.br>escreveu:

> Miranda,
>
> Cada ponto poderá ter uma elevação diferente, pois dependerá da
> consulta na base de altimetria.
> Quanto aos '1" (uns) é um produto de um monte de testes e copy/past mal
> feitos. Você tem razão, no original está com a letra "l".
>
>
> On Wed, 20 Mar 2013 15:33:08 -0300, Daniel Araujo Miranda
> <miranda.dam em dpf.gov.br> wrote:
> > Olá Jorge,
> >   Essa elevação é igual para toda a estrada ou é diferente para cada
> > ponto da estrada?
> >
> >   A propósito, tem uma coisa estranha no seu código. Na parte
> > "ring.SetPoint( p, 1on, 1at, 5 )" você está usando o numeral um (1) ao
> > invés da letra "éle" (l) nas variáveis 'lon' e 'lat'.
> >
> > --Miranda
> >
> >
> >
> > On 20-03-2013 13:44, jorge.destri wrote:
> >> 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 <motta.luiz em gmail.com>
> >> 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 [2]
> >>>   http://lists.osgeo.org/mailman/listinfo/brasil [3]
> >>>
> >>>
> >>>
> >>> Links:
> >>> ------
> >>> [1] mailto:jorge.destri em labtrans.ufsc.br
> >>> [2] mailto:Brasil em lists.osgeo.org
> >>> [3] http://lists.osgeo.org/mailman/listinfo/brasil
> >>
> >> _______________________________________________
> >> Brasil mailing list
> >> Brasil em lists.osgeo.org
> >> http://lists.osgeo.org/mailman/listinfo/brasil
> >>
>
> _______________________________________________
> Brasil mailing list
> Brasil em lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/brasil
>



-- 
*Marcello Benigno B. de Barros Filho*
Prof. do Curso Superior de Tecnologia em Geoprocessamento - IFPB
Mestre em Ciências Geodésicas e Tecnologias da Geoinformação - UFPE
Doutorando em Tecnologia Ambiental e Recursos Hídricos - UFPE
http://profmarcello.blogspot.com
http://about.me/marcello.benigno
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://lists.osgeo.org/pipermail/brasil/attachments/20130320/881386e5/attachment.html>


More information about the Brasil mailing list