Spatialite - calcolo angolo zenith

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Spatialite - calcolo angolo zenith

Falz
Buongiorno,

ho un problema con due punti 3d con quote differenti, qualcuno sa come si fa a calcolare l'angolo zenitale con spatialite, o postgis?

L' azimuth è select degrees(st_azimuth(geoA, geoB)) as 'azimuth';

Grazie!
_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
796 iscritti al 28/12/2017
Reply | Threaded
Open this post in threaded view
|

Re: Spatialite - calcolo angolo zenith

a.furieri
On Wed, 30 Jan 2019 11:40:38 +0100 (CET), [hidden email]
wrote:
> Buongiorno,
>
> ho un problema con due punti 3d con quote differenti, qualcuno sa
> come si fa a calcolare l'angolo zenitale con spatialite, o postgis?
>
> L' azimuth è select degrees(st_azimuth(geoA, geoB)) as 'azimuth';
>

Simone,

l'implementazione di SpatiaLite per ST_Azimuth dovrebbe essere
esattamente la medesima come per PostGIS, visto che il calcolo
vero e proprio lo fanno la lwgeom (per PostGis) e la librttopo
(per splite) che e' semplicemente un porting della lwgeom.

per quanto vedo dai sorgenti funziona solo per punti 2D, il
caso 3D non mi pare che venga mai preso in considerazione.
spero di sbagliarmi, ma non mi pare che quanto chiedi rientri
tra le opzioni supportate.

ciao Sandro
_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
796 iscritti al 28/12/2017
Reply | Threaded
Open this post in threaded view
|

Re: Spatialite - calcolo angolo zenith

Falz
Alla fine ho risolto così con spatialite NEXTGEN, facendo anche un confronto
tra le varie formule, con la bellezza del calcolo 3d =)

--I calcoli geodetici vogliono solo epsg=4326 altrimenti non funzionano!
--CALCOLA RELAZIONE TRA DUE PUNTI: (epsg=4326 WGS84, epsg=25832
ETRS89/UTM_zone_32N)

select
st_distance(st_transform(geoA, 25832), st_transform(geoB, 25832)) as
'distanza_2d',
st_3ddistance(st_transform(geoA, 25832), st_transform(geoB, 25832)) as
'distanza_3d',
degrees(st_azimuth(st_transform(geoA, 25832), st_transform(geoB, 25832))) as
'azimuth',
degrees(asin((st_z(geoA)-st_z(geoB))/st_3ddistance(st_transform(geoA,
25832), st_transform(geoB, 25832)))) as 'angolo_zenitale',
geodesicarclength(geoA, geoB) as 'arcodistanza',
geodesicchordlength(geoA, geoB) as 'corda',
degrees(geodesiccentralangle(geoA, geoB)) as 'angolo_centrale',
geodesicarcheight(geoA, geoB) as 'h_arco'
from
(select
st_geomfromtext('POINTZ(11.040796 46.139230 2071)', 4326) as geoA,
st_geomfromtext('POINTZ(11.160461 46.195844 727.5)', 4326) as geoB);

--
Sent from: http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/
_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
796 iscritti al 28/12/2017
Reply | Threaded
Open this post in threaded view
|

Re: Spatialite - calcolo angolo zenith

a.furieri
On Mon, 4 Feb 2019 04:13:26 -0700 (MST), Falz wrote:

> Alla fine ho risolto così con spatialite NEXTGEN, facendo anche un
> confronto
> tra le varie formule, con la bellezza del calcolo 3d =)
>
> --I calcoli geodetici vogliono solo epsg=4326 altrimenti non
> funzionano!
> --CALCOLA RELAZIONE TRA DUE PUNTI: (epsg=4326 WGS84, epsg=25832
> ETRS89/UTM_zone_32N)
>
> select
> st_distance(st_transform(geoA, 25832), st_transform(geoB, 25832)) as
> 'distanza_2d',
> st_3ddistance(st_transform(geoA, 25832), st_transform(geoB, 25832))
> as
> 'distanza_3d',
> degrees(st_azimuth(st_transform(geoA, 25832), st_transform(geoB,
> 25832))) as
> 'azimuth',
> degrees(asin((st_z(geoA)-st_z(geoB))/st_3ddistance(st_transform(geoA,
> 25832), st_transform(geoB, 25832)))) as 'angolo_zenitale',
> geodesicarclength(geoA, geoB) as 'arcodistanza',
> geodesicchordlength(geoA, geoB) as 'corda',
> degrees(geodesiccentralangle(geoA, geoB)) as 'angolo_centrale',
> geodesicarcheight(geoA, geoB) as 'h_arco'
> from
> (select
> st_geomfromtext('POINTZ(11.040796 46.139230 2071)', 4326) as geoA,
> st_geomfromtext('POINTZ(11.160461 46.195844 727.5)', 4326) as geoB);
>

Simone,

hai scritto l'elogio perfetto dello Spatial SQL :-D

quando hai uno strumento di calcolo e di analisi cosi' flessibile
e potente, non e' mai un problema insormontabile se non trovi la
soluzione pre-cotta che ti serve pronta all'uso.

basta un pizzico di fantasia e puoi sempre provare a scrivertela
da solo appoggiandoti alle tantissime funzioni SQL disponibili.
direi che il tuo e' un bel caso da manuale. ;-)

ciao Sandro
_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
796 iscritti al 28/12/2017