<div dir="ltr"><div><div><div>Boa noite professor José Alberto,<br><br>Antes de mais, muito obrigado pelas dicas!<br><br>Fiz esse exercício aqui para o concelho de Pinhel e confirmo os bons resultados!<br><br>Calculei o centróide do concelho. De seguida calculei as coordenadas cartesianas geocêntricas no Datum 73 e Datum de Lisboa, extraí os valores para o +towgs84 e fui comparar os resultados das transformações com os diferentes métodos, para 7 vértices geodésicos que foram observados nos 3 sistemas de referência, cobrindo o concelho de forma mais ou menos uniforme.<br><br>Os resultados foram os seguintes:<br><br>



        
        
        
        
        
        



<table height="146" border="0" cellspacing="0" width="761">
        <colgroup width="119"></colgroup>
        <colgroup span="6" width="85"></colgroup>
        <tbody><tr>
                <td height="17" align="left"><br></td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" colspan="6" align="center" valign="middle"><b>Datum 73 (EPSG:27493)</b></td>
                </tr>
        <tr>
                <td height="17" align="left"><br></td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" colspan="2" align="center" valign="middle"><b>Grelhas Prof. JAG</b></td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" colspan="2" align="center" valign="middle"><b>DGT (7 parâmetros)</b></td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" colspan="2" align="center" valign="middle"><b>Local (3 parâmetros)</b></td>
                </tr>
        <tr>
                <td height="17" align="left"><br></td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="center"><b>e M</b></td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="center"><b>e P</b></td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="center"><b>e M</b></td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="center"><b>e P</b></td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="center"><b>e M</b></td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="center"><b>e P</b></td>
        </tr>
        <tr>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" height="17" align="right" valign="middle"><b>Erro Abs. Médio (m)</b></td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="right" bgcolor="#99FF66" valign="middle">0,013</td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="right" bgcolor="#99FF66" valign="middle">0,014</td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="right" bgcolor="#FFFF66" valign="middle">0,056</td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="right" bgcolor="#FF6666" valign="middle">0,257</td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="right" bgcolor="#FF6666" valign="middle">0,110</td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="right" bgcolor="#FFFF66" valign="middle">0,097</td>
        </tr>
        <tr>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" height="17" align="right" valign="middle"><b>Erro Abs. Máximo (m)</b></td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="right" bgcolor="#99FF66" valign="middle">0,040</td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="right" bgcolor="#99FF66" valign="middle">0,040</td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="right" bgcolor="#FF6666" valign="middle">0,120</td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="right" bgcolor="#FF6666" valign="middle">0,310</td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="right" bgcolor="#FFFF66" valign="middle">0,180</td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="right" bgcolor="#FFFF66" valign="middle">0,190</td>
        </tr>
        <tr>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" height="17" align="right" valign="middle"><b>Erro Abs. Mínimo (m)</b></td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="right" bgcolor="#99FF66" valign="middle">0,000</td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="right" bgcolor="#99FF66" valign="middle">0,000</td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="right" bgcolor="#FF6666" valign="middle">0,000</td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="right" bgcolor="#FF6666" valign="middle">0,200</td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="right" bgcolor="#FFFF66" valign="middle">0,050</td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="right" bgcolor="#FFFF66" valign="middle">0,020</td>
        </tr>
</tbody></table>



<br><br>



        
        
        
        
        
        



<table height="159" border="0" cellspacing="0" width="762">
        <colgroup width="119"></colgroup>
        <colgroup span="6" width="85"></colgroup>
        <tbody><tr>
                <td height="17" align="left"><br></td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" colspan="6" align="center" valign="middle"><b>Datum Lx (EPSG:20791)</b></td>
                </tr>
        <tr>
                <td height="17" align="left"><br></td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" colspan="2" align="center" valign="middle"><b>Grelhas Prof. JAG</b></td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" colspan="2" align="center" valign="middle"><b>DGT (7 parâmetros)</b></td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" colspan="2" align="center" valign="middle"><b>Local (3 parâmetros)</b></td>
                </tr>
        <tr>
                <td height="17" align="left"><br></td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="center"><b>e M</b></td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="center"><b>e P</b></td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="center"><b>e M</b></td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="center"><b>e P</b></td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="center"><b>e M</b></td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="center"><b>e P</b></td>
        </tr>
        <tr>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" height="17" align="right" valign="middle"><b>Erro Abs. Médio (m)</b></td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="right" bgcolor="#99FF66" valign="middle">0,026</td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="right" bgcolor="#99FF66" valign="middle">0,037</td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="right" bgcolor="#FF6666" valign="middle">0,511</td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="right" bgcolor="#FF6666" valign="middle">1,577</td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="right" bgcolor="#FFFF66" valign="middle">0,180</td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="right" bgcolor="#FFFF66" valign="middle">0,243</td>
        </tr>
        <tr>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" height="17" align="right" valign="middle"><b>Erro Abs. Máximo (m)</b></td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="right" bgcolor="#99FF66" valign="middle">0,040</td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="right" bgcolor="#99FF66" valign="middle">0,160</td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="right" bgcolor="#FF6666" valign="middle">0,860</td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="right" bgcolor="#FF6666" valign="middle">1,810</td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="right" bgcolor="#FFFF66" valign="middle">0,340</td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="right" bgcolor="#FFFF66" valign="middle">0,550</td>
        </tr>
        <tr>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" height="17" align="right" valign="middle"><b>Erro Abs. Mínimo (m)</b></td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="right" bgcolor="#99FF66" valign="middle">0,010</td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="right" bgcolor="#99FF66" valign="middle">0,000</td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="right" bgcolor="#FF6666" valign="middle">0,160</td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="right" bgcolor="#FF6666" valign="middle">1,320</td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="right" bgcolor="#FFFF66" valign="middle">0,070</td>
                <td style="border-width:1px;border-style:solid;border-color:rgb(0,0,0)" align="right" bgcolor="#FFFF66" valign="middle">0,010</td>
        </tr>
</tbody></table>



<br><br>Ou seja, só não deu melhores resultados do que com os 7 parâmetros da DGT, para o M do D73. De resto, os resultados são substancialmente melhores! E este erro é perfeitamente aceitável para os meus objetivos! <br><br></div>Muito obrigado professor!!<br><br></div>Um abraço e bom final de ano!<br></div>Pedro<br><div><div><br><div><br><br><br><br><br></div></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">No dia 25 de dezembro de 2015 às 23:26, Jose Gonçalves <span dir="ltr"><<a href="mailto:jagoncal@gmail.com" target="_blank">jagoncal@gmail.com</a>></span> escreveu:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div>Caro Pedro<br><br>Há uma maneira de atenuar o problema, se os dados a tratar forem de uma região pequena. Pode-se calcular parâmetros de Molodensky para essa região, que serão tanto melhores quanto menor for a área. Isso pode ser feito calculando a diferença de coordenadas cartesianas geocêntricas para um ponto médio da área.<br>Por exemplo, para o concelho de Viseu, considerando um ponto médio com coordenadas geográficas LON=-7.91, LAT=40.66:<br><br>1. Calcular coordenadas cartesianas geocêntricas WGS84<br>echo -7.91 40.66 | cs2cs +datum=WGS84 +proj=latlong +to +datum=WGS84 +proj=geocent<br><br>O resultado é: 4799176.70 -666794.56 4133854.14<br><br>2. Calcular coordenadas cartesianas geocêntricas no datum 73 (elipsoide de Hayford)<br><br>echo -7.91 40.66 | cs2cs +datum=WGS84 +proj=latlong +to +ellps=intl +nadgrids=pt73_e89.gsb +proj=geocent<br><br>O resultado é: 4799442.87 -666910.<a href="tel:21%204133854" value="+351214133854" target="_blank">21 4133854</a>.48<br><br>3. Cálculo da translação:<br>dX = 4799176.70 - 4799442.87 = -266.17 m<br>dY = -666794.56 +  666910.21 =  115.65 m<br>dZ = 4133854.14 - 4133854.48 =   -0.34 m<br><br>Na definição do datum 73 poderá agora ser usado:  +towgs84=-266.17,115.65,-0.34<br>O mesmo cálculo poderia ser feito para o datum Lisboa, usando as grelhas do datum Lisboa.<br><br></div>Verifiquei num ponto muito afastado do centro do concelho e o erro foi inferior a 20 cm. Em média os erros devem ser de uns 10 cm.<br>Com 7 parâmetros o resultado poderia ser bastante melhor, mesmo para uma região um pouco maior, só que daria mais algum trabalho fazer o cálculo.<br>Espero que isto possa ser útil.<br></div><div><br></div>Abraços<br><div><br></div><div>José Alberto Gonçalves<br></div><div><br></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">Em 22 de dezembro de 2015 09:47, Pedro Venâncio <span dir="ltr"><<a href="mailto:pedrongvenancio@gmail.com" target="_blank">pedrongvenancio@gmail.com</a>></span> escreveu:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div>Olá Marco,<br><br></div>Obrigado pela confirmação! Era muito bom poder correr a transformação com as grelhas, totalmente do lado do cliente. Com molodensky e bursa-wolf funciona bem, vou ter de me contentar com os resultados conseguidos com estes métodos, para já!<br><br></div>Abraço!<span><font color="#888888"><br></font></span></div><span><font color="#888888">Pedro<br><br><br></font></span></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">No dia 21 de dezembro de 2015 às 00:42, Marco Afonso <span dir="ltr"><<a href="mailto:mafonso333@gmail.com" target="_blank">mafonso333@gmail.com</a>></span> escreveu:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr">Viva,</p>
<p dir="ltr">Infelizmente na nossa aplicaçao web de intranet, todas as operaçoes que requerem o uso das grelhas, temos usar chamadas ajax para os resultados virem do Postgis visto que n conhecemos uma soluçao puramente em js.</p>
<div class="gmail_quote"><div><div>Em 21/12/2015 00:34, "Pedro Venâncio" <<a href="mailto:pedrongvenancio@gmail.com" target="_blank">pedrongvenancio@gmail.com</a>> escreveu:<br type="attribution"></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div dir="ltr">Boa noite,<br><br>Alguém sabe se é possível usar as grelhas NTv2 com o proj4js?<br><br>Como o proj4js corre no browser, não consegue interpretar o ficheiro .gsb das grelhas, que é um binário.<br><br>No entanto, encontrei este ticket que, aparentemente, acrescenta essa possibilidade ao proj4js - <a href="https://trac.osgeo.org/proj4js/ticket/81" target="_blank">https://trac.osgeo.org/proj4js/ticket/81</a> usando uma versão javascript do ficheiro da grelha: <a href="https://svn.osgeo.org/metacrs/proj4js/trunk/lib/defs/ntf_r93.gsb.js" target="_blank">https://svn.osgeo.org/metacrs/proj4js/trunk/lib/defs/ntf_r93.gsb.js</a><br><br>Estava a criar uma coisa muito simples, para fazer a conversão de coordenadas XY em javascript, para usar offline no telemóvel. <br><br>Usando os parâmetros de bursa worlf no +towgs84, tudo funciona bem.<br><br>Colocando o parâmetro +nadgrids o erro é muito maior, simplesmente porque ele ignora a grelha e o resultado vem como se não tivesse inserido nenhum parâmetro de transformação.<br><br>Aqui fica o exemplo de um ponto em EPSG:3763, convertido para o EPSG:20790:<br><br>-> Coordenadas de origem:<br>89526.76, 123853.15<br><br>-> Conversão com cs2cs, usando as grelhas:<br>pedro@tsunami:~$ cs2cs +init=pt:pttm06 +to +init=pt:dlxhgmil<br>89526.76 123853.15<br>289529.21    423852.66 -0.00<br><br>-> Conversão com o proj4js, usando o parâmetro +towgs84 (bursa wolf):<br>289528.59, 423854.29<br><br>-> Conversão com o proj4js, usando o parâmetro +nadgrids (grelhas):<br>289428.24, 424122.54<br><br>-> Conversão com o proj4js, sem parâmetros de transformação (+towgs84 ou +nadgrids):<br>289428.24, 424122.54<br><br>Alguém já implementou a transformação das grelhas com o proj4js? Há alguma outra forma de conseguir fazer o que pretendo?<br><br>Obrigado!<br><br><br>Abraço,<br>Pedro Venâncio<br></div>
<br></div></div>_______________________________________________<br>
Portugal mailing list<br>
<a href="mailto:Portugal@lists.osgeo.org" target="_blank">Portugal@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/portugal" rel="noreferrer" target="_blank">http://lists.osgeo.org/mailman/listinfo/portugal</a><br></blockquote></div>
<br>_______________________________________________<br>
Portugal mailing list<br>
<a href="mailto:Portugal@lists.osgeo.org" target="_blank">Portugal@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/portugal" rel="noreferrer" target="_blank">http://lists.osgeo.org/mailman/listinfo/portugal</a><br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
Portugal mailing list<br>
<a href="mailto:Portugal@lists.osgeo.org" target="_blank">Portugal@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/portugal" rel="noreferrer" target="_blank">http://lists.osgeo.org/mailman/listinfo/portugal</a><br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
Portugal mailing list<br>
<a href="mailto:Portugal@lists.osgeo.org">Portugal@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/portugal" rel="noreferrer" target="_blank">http://lists.osgeo.org/mailman/listinfo/portugal</a><br></blockquote></div><br></div>