Jorge,<div><br></div><div>No GRASS existe um comando chamado v.drape, ele pode ser usado para o seu problema.</div><div><br></div><div><a href="http://grass.osgeo.org/grass65/manuals/v.drape.html">http://grass.osgeo.org/grass65/manuals/v.drape.html</a></div>
<div><br></div><div>Um abraço,</div><div><br></div><div><br><div><br><div class="gmail_quote">Em 20 de março de 2013 17:33, jorge.destri <span dir="ltr"><<a href="mailto:jorge.destri@labtrans.ufsc.br" target="_blank">jorge.destri@labtrans.ufsc.br</a>></span> escreveu:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Miranda,<br>
<br>
Cada ponto poderá ter uma elevação diferente, pois dependerá da<br>
consulta na base de altimetria.<br>
Quanto aos '1" (uns) é um produto de um monte de testes e copy/past mal<br>
feitos. Você tem razão, no original está com a letra "l".<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
On Wed, 20 Mar 2013 15:33:08 -0300, Daniel Araujo Miranda<br>
<<a href="mailto:miranda.dam@dpf.gov.br">miranda.dam@dpf.gov.br</a>> wrote:<br>
> Olá Jorge,<br>
>   Essa elevação é igual para toda a estrada ou é diferente para cada<br>
> ponto da estrada?<br>
><br>
>   A propósito, tem uma coisa estranha no seu código. Na parte<br>
> "ring.SetPoint( p, 1on, 1at, 5 )" você está usando o numeral um (1) ao<br>
> invés da letra "éle" (l) nas variáveis 'lon' e 'lat'.<br>
><br>
> --Miranda<br>
><br>
><br>
><br>
> On 20-03-2013 13:44, jorge.destri wrote:<br>
>> Prezado Luiz,<br>
>><br>
>> Deixa eu descrever meu problema/necessidade.<br>
>> O laboratório que eu trabalho frequentemente recebe arquivos de<br>
>> rodovias, em formato shapefile, para uso/análise em algum projeto.<br>
>> Porém, na sua quase totalidade, a elevação não está incluída, o que<br>
>> inviabiliza determinadas análises.<br>
>> Meu objetivo então é, com base em dados de altimetria de outras fontes,<br>
>> transformar as coordenadas do shapefile de 2D para 3D, para futuro uso.<br>
>> Vou dar uma olhada nas referências que você citou.<br>
>><br>
>><br>
>> On Tue, 19 Mar 2013 18:09:30 -0300, Luiz Motta <<a href="mailto:motta.luiz@gmail.com">motta.luiz@gmail.com</a>><br>
>> wrote:<br>
>>> Jorge,<br>
>>><br>
>>> Vc. está querendo colocar o Z numa camada 2d ?<br>
>>><br>
>>> Acho que vc. está confundindo Multipart, anel interno,... com<br>
>>> geometria 3D.<br>
>>><br>
>>> Faça uma revisão nesses conceitos, veja na OGC Single Feature e<br>
>>> depois a API da Gdal/Ogr.<br>
>>><br>
>>> Em 19 de março de 2013 17:23, jorge.destri  escreveu:<br>
>>>   Preciso converter o conteúdo de um shapefile de 2D para 3D.<br>
>>>   Na internet, peguei umas dicas e cheguei a esse código python:<br>
>>><br>
>>>   from osgeo import ogr<br>
>>>   shapefile = ogr.Open('/home/jorge/temp/42MUE250GC_SIR.shp', 1)<br>
>>>   layer = shapefile.GetLayer(0)<br>
>>><br>
>>>   i = 0<br>
>>>   for feat in layer:<br>
>>>      i += 1<br>
>>>      geom = feat.GetGeometryRef()<br>
>>><br>
>>>      #geom.SetCoordinateDimension (3)<br>
>>><br>
>>>      ring = geom.GetGeometryRef(0)<br>
>>>      points = ring.GetPointCount()<br>
>>>      #para teste<br>
>>>      if i > 292:<br>
>>>          j = 0<br>
>>>          for p in xrange(points):<br>
>>>              j += 1<br>
>>>              lon, lat, z = ring.GetPoint(p)<br>
>>>              ring.SetPoint( p, 1on, 1at, 5 )<br>
>>><br>
>>>              #para confirmar a altereção<br>
>>>              lon, lat, z = ring.GetPoint(p)<br>
>>>              print( i, j, lon, lat, z )<br>
>>><br>
>>>              layer.SetFeature(feat)<br>
>>>   shapefile.Destroy()<br>
>>><br>
>>>   Na execução ele mostra os pontos alterados com elevação 5, mas<br>
>>> quando executo novamente, a coordenada Z está zerada. Se altero a<br>
>>> longitude ou a latitude a mudança persiste.<br>
>>>   Tentei usar o comando comentado : geom.SetCoordinateDimension (3),<br>
>>> mas também ele não persiste.<br>
>>>   Acredito que talvez tenha que mudar a geometria para<br>
>>> wkbLineString25D ou wkbMultiPoint25D ou wkbMultiLineString25D ou<br>
>>> wkbMultiPolygon25D ou wkbPoint25D conforme o tipo 2D, porém não<br>
>>> encontro um método que faça isso.<br>
>>><br>
>>>   Agradeço por qualquer dica.<br>
>>><br>
>>>   _______________________________________________<br>
>>>   Brasil mailing list<br>
>>>   <a href="mailto:Brasil@lists.osgeo.org">Brasil@lists.osgeo.org</a> [2]<br>
>>>   <a href="http://lists.osgeo.org/mailman/listinfo/brasil" target="_blank">http://lists.osgeo.org/mailman/listinfo/brasil</a> [3]<br>
>>><br>
>>><br>
>>><br>
>>> Links:<br>
>>> ------<br>
>>> [1] mailto:<a href="mailto:jorge.destri@labtrans.ufsc.br">jorge.destri@labtrans.ufsc.br</a><br>
>>> [2] mailto:<a href="mailto:Brasil@lists.osgeo.org">Brasil@lists.osgeo.org</a><br>
>>> [3] <a href="http://lists.osgeo.org/mailman/listinfo/brasil" target="_blank">http://lists.osgeo.org/mailman/listinfo/brasil</a><br>
>><br>
>> _______________________________________________<br>
>> Brasil mailing list<br>
>> <a href="mailto:Brasil@lists.osgeo.org">Brasil@lists.osgeo.org</a><br>
>> <a href="http://lists.osgeo.org/mailman/listinfo/brasil" target="_blank">http://lists.osgeo.org/mailman/listinfo/brasil</a><br>
>><br>
<br>
_______________________________________________<br>
Brasil mailing list<br>
<a href="mailto:Brasil@lists.osgeo.org">Brasil@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/brasil" target="_blank">http://lists.osgeo.org/mailman/listinfo/brasil</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><b>Marcello Benigno B. de Barros Filho</b><br><font size="1">Prof. do Curso Superior de Tecnologia em Geoprocessamento - IFPB<br>Mestre em Ciências Geodésicas e Tecnologias da Geoinformação - UFPE</font><div>
<font size="1">Doutorando em Tecnologia Ambiental e Recursos Hídricos - UFPE</font><font size="1"><br></font><font size="1"><a href="http://profmarcello.blogspot.com" target="_blank">http://profmarcello.blogspot.com</a></font><div>
<a href="http://about.me/marcello.benigno" target="_blank"><font size="1">http://about.me/marcello.benigno</font></a></div></div>
</div></div>