Ciao a tutti,
in postgis la funzione ST_intersection [0] prende in argomento due geometrie. Ho l'esigenza di stimare le coordinate di un punto conoscendo le distanze da altri punti di posizione nota, per cui vorrei individuare il centroide dell'intersezione tra i buffer (d + 10m) di n punti, più la cosa migliore sarebbe avere una funzione di aggregazione ma forse è possibile iterare lungo la lista di punti usando come left il risultato della intersezione precedente... Qualche consiglio? Amefad [0] https://postgis.net/docs/manual-1.5/ST_Intersection.html _______________________________________________ [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. 764 iscritti al 23/08/2019 |
Il 13/08/2020 10:30, Amedeo Fadini ha scritto:
> Ciao a tutti, > in postgis la funzione ST_intersection [0] prende in argomento due > geometrie. > > Ho l'esigenza di stimare le coordinate di un punto conoscendo le distanze > da altri punti di posizione nota, per cui vorrei individuare il centroide > dell'intersezione tra i buffer (d + 10m) di n punti, più la cosa migliore > sarebbe avere una funzione di aggregazione ma forse è possibile iterare > lungo la lista di punti usando come left il risultato della intersezione > precedente... > > Qualche consiglio? > > Amefad il gis è bello ma non dimentichiamoci le basi: se le distanze provengono da misure linearmente indipendenti, allora: (Xp-X1)^2+(Yp-Y1)^2=d1^2 (Xp-X2)^2+(Yp-Y2)^2=d2^2 ... (Xp-Xn)^2+(Yp-Yn)^2=dn^2 ora questa va la linearizzata (saltando passaggi....) ed espressa in forma matriciale del tipo: Ax = z dove x è il vettore incognito (Xp,Yp) A una matrice di n righe e due colonne. nella prima colonna c'è il rapporto -Xi/di, nella seconda -Yi/di con i che va da 1 a n (notare il meno!) se si dispone di una stima di Xp e Yp, allora z è un vettore del tipo (Xo,Yo) altrimenti poni (0,0) il sistema si risolve facendo la matricde inversa di A e moltiplicando per z. sperando di non aver tralasciato niente..... prova :-) mg -- Marco Guiducci - 055 4383194 SITA - Sistema informativo territoriale e ambientale Regione Toscana - Via di Novoli 26 - 50127 Firenze _______________________________________________ [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. 764 iscritti al 23/08/2019 |
Grazie mille Marco! Era esattamente il tipo di risposta che mi serviva (per
ora non ho capito quasi niente ma un libro di matematica lo trovo...) Amefad Il Ven 14 Ago 2020, 10:46 Marco Guiducci <[hidden email]> ha scritto: > Il 13/08/2020 10:30, Amedeo Fadini ha scritto: > > Ciao a tutti, > > in postgis la funzione ST_intersection [0] prende in argomento due > > geometrie. > > > > Ho l'esigenza di stimare le coordinate di un punto conoscendo le > distanze > > da altri punti di posizione nota, per cui vorrei individuare il centroide > > dell'intersezione tra i buffer (d + 10m) di n punti, più la cosa migliore > > sarebbe avere una funzione di aggregazione ma forse è possibile iterare > > lungo la lista di punti usando come left il risultato della intersezione > > precedente... > > > > Qualche consiglio? > > > > Amefad > > il gis è bello ma non dimentichiamoci le basi: > > se le distanze provengono da misure linearmente indipendenti, allora: > > (Xp-X1)^2+(Yp-Y1)^2=d1^2 > (Xp-X2)^2+(Yp-Y2)^2=d2^2 > ... > (Xp-Xn)^2+(Yp-Yn)^2=dn^2 > > ora questa va la linearizzata (saltando passaggi....) ed espressa in > forma matriciale del tipo: > > Ax = z > > dove x è il vettore incognito (Xp,Yp) > > A una matrice di n righe e due colonne. nella prima colonna c'è il > rapporto -Xi/di, nella seconda -Yi/di > con i che va da 1 a n (notare il meno!) > > se si dispone di una stima di Xp e Yp, allora z è un vettore del tipo > (Xo,Yo) altrimenti poni (0,0) > > il sistema si risolve facendo la matricde inversa di A e moltiplicando > per z. > > sperando di non aver tralasciato niente..... prova :-) > mg > > -- > Marco Guiducci - 055 4383194 > SITA - Sistema informativo territoriale e ambientale > Regione Toscana - Via di Novoli 26 - 50127 Firenze > > _______________________________________________ > [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. > 764 iscritti al 23/08/2019 [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. 764 iscritti al 23/08/2019 |
Ciao Marco, Amedeo e tutti,
aggiungo due briciole: 1) la linearizzazione di cui parla Marco è quella tipicamente usata negli algoritmi GPS, quindi il testo di "matematica" che cerchi lo puoi trovare in qualche manuale GPS di buona qualità; argomento incrociato, ma non ancora approfondito quindi non riesco a darti maggiori indicazioni né link precisi; spero cmq ti aiuti nella ricerca; 2) il numero di punti è N, lo spazio del punto ignoto è 2D/3D, quindi la matrice A di cui parla Marco è rettangolare Nx2 o Nx3, quindi non invertibile; azzardo che dovrai premoltiplicarla per la sua trasposta, come si fa per i minimi quadrati; questa però e materia antica che non rispolvero da un po' e quindi anche qui ...... un buon testo di algebra lineare sarà un valido tutor. Ciao, Giuliano Il ven 14 ago 2020, 13:31 Amedeo Fadini <[hidden email]> ha scritto: > Grazie mille Marco! Era esattamente il tipo di risposta che mi serviva (per > ora non ho capito quasi niente ma un libro di matematica lo trovo...) > > Amefad > > Il Ven 14 Ago 2020, 10:46 Marco Guiducci < > [hidden email]> > ha scritto: > > > Il 13/08/2020 10:30, Amedeo Fadini ha scritto: > > > Ciao a tutti, > > > in postgis la funzione ST_intersection [0] prende in argomento due > > > geometrie. > > > > > > Ho l'esigenza di stimare le coordinate di un punto conoscendo le > > distanze > > > da altri punti di posizione nota, per cui vorrei individuare il > centroide > > > dell'intersezione tra i buffer (d + 10m) di n punti, più la cosa > migliore > > > sarebbe avere una funzione di aggregazione ma forse è possibile iterare > > > lungo la lista di punti usando come left il risultato della > intersezione > > > precedente... > > > > > > Qualche consiglio? > > > > > > Amefad > > > > il gis è bello ma non dimentichiamoci le basi: > > > > se le distanze provengono da misure linearmente indipendenti, allora: > > > > (Xp-X1)^2+(Yp-Y1)^2=d1^2 > > (Xp-X2)^2+(Yp-Y2)^2=d2^2 > > ... > > (Xp-Xn)^2+(Yp-Yn)^2=dn^2 > > > > ora questa va la linearizzata (saltando passaggi....) ed espressa in > > forma matriciale del tipo: > > > > Ax = z > > > > dove x è il vettore incognito (Xp,Yp) > > > > A una matrice di n righe e due colonne. nella prima colonna c'è il > > rapporto -Xi/di, nella seconda -Yi/di > > con i che va da 1 a n (notare il meno!) > > > > se si dispone di una stima di Xp e Yp, allora z è un vettore del tipo > > (Xo,Yo) altrimenti poni (0,0) > > > > il sistema si risolve facendo la matricde inversa di A e moltiplicando > > per z. > > > > sperando di non aver tralasciato niente..... prova :-) > > mg > > > > -- > > Marco Guiducci - 055 4383194 > > SITA - Sistema informativo territoriale e ambientale > > Regione Toscana - Via di Novoli 26 - 50127 Firenze > > > > _______________________________________________ > > [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. > > 764 iscritti al 23/08/2019 > _______________________________________________ > [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. > 764 iscritti al 23/08/2019 [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. 764 iscritti al 23/08/2019 |
In reply to this post by Amedeo Fadini
Se vuoi esplorare mondi nuovi,
L ultimissima versione di spatialite che Furieri ha rilasciato poche settimane fa Contiene tra le innumerevoli novità anche delle funzioni.per il calcolo matriciale. Compreso calcolo del determinante, dell inversa etc. http://www.gaia-gis.it/gaia-sins/spatialite-sql-5.0.0.html#p15plus A. Il ven 14 ago 2020, 13:31 Amedeo Fadini <[hidden email]> ha scritto: > Grazie mille Marco! Era esattamente il tipo di risposta che mi serviva (per > ora non ho capito quasi niente ma un libro di matematica lo trovo...) > > Amefad > > Il Ven 14 Ago 2020, 10:46 Marco Guiducci < > [hidden email]> > ha scritto: > > > Il 13/08/2020 10:30, Amedeo Fadini ha scritto: > > > Ciao a tutti, > > > in postgis la funzione ST_intersection [0] prende in argomento due > > > geometrie. > > > > > > Ho l'esigenza di stimare le coordinate di un punto conoscendo le > > distanze > > > da altri punti di posizione nota, per cui vorrei individuare il > centroide > > > dell'intersezione tra i buffer (d + 10m) di n punti, più la cosa > migliore > > > sarebbe avere una funzione di aggregazione ma forse è possibile iterare > > > lungo la lista di punti usando come left il risultato della > intersezione > > > precedente... > > > > > > Qualche consiglio? > > > > > > Amefad > > > > il gis è bello ma non dimentichiamoci le basi: > > > > se le distanze provengono da misure linearmente indipendenti, allora: > > > > (Xp-X1)^2+(Yp-Y1)^2=d1^2 > > (Xp-X2)^2+(Yp-Y2)^2=d2^2 > > ... > > (Xp-Xn)^2+(Yp-Yn)^2=dn^2 > > > > ora questa va la linearizzata (saltando passaggi....) ed espressa in > > forma matriciale del tipo: > > > > Ax = z > > > > dove x è il vettore incognito (Xp,Yp) > > > > A una matrice di n righe e due colonne. nella prima colonna c'è il > > rapporto -Xi/di, nella seconda -Yi/di > > con i che va da 1 a n (notare il meno!) > > > > se si dispone di una stima di Xp e Yp, allora z è un vettore del tipo > > (Xo,Yo) altrimenti poni (0,0) > > > > il sistema si risolve facendo la matricde inversa di A e moltiplicando > > per z. > > > > sperando di non aver tralasciato niente..... prova :-) > > mg > > > > -- > > Marco Guiducci - 055 4383194 > > SITA - Sistema informativo territoriale e ambientale > > Regione Toscana - Via di Novoli 26 - 50127 Firenze > > > > _______________________________________________ > > [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. > > 764 iscritti al 23/08/2019 > _______________________________________________ > [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. > 764 iscritti al 23/08/2019 [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. 764 iscritti al 23/08/2019 |
In reply to this post by Giuliano Curti
Il 14/08/2020 19:34, Giuliano Curti ha scritto: > Ciao Marco, Amedeo e tutti, > > aggiungo due briciole: > > > 2) il numero di punti è N, lo spazio del punto ignoto è 2D/3D, quindi la > matrice A di cui parla Marco è rettangolare Nx2 o Nx3, quindi non > invertibile; azzardo che dovrai premoltiplicarla per la sua trasposta, come > si fa per i minimi quadrati; questa però e materia antica che non > rispolvero da un po' e quindi anche qui ...... un buon testo di algebra > lineare sarà un valido tutor. > lo savevo di aver tralasciato una parte fondamentale :-) ovvero che il si risolve con i minimi quadrati. però il nocciolo del problema era fare la matrice "madre". poi son passaggi..... che anche una calcolatrice tascabile fa. in realtà, per fare accademia, sulla matrice n x m ci sono quintalate di documentazione per renderla stabile dal punto di vista computazionale: è una matrice dispersa? ci sono numeri grandi e mumeri piccoli? insomma tutte le tecniche di ordinamento e, in seguito, di pivoting sulla matrice normale (quella quadrata). in teoria gli algoritmi dei linguaggi di programmazione (c, python), dovrebbero già essere ottimizzati. l'argomento in discussione è sicuramente matematico, ma se volete cercare anche esempi pratici e numerici, cercate nei testi di topografia. Il problema è un classico esempio topografico di compensazione di reti trigonometriche con solo distanze misurate (trilaterazione). la situazione più complessa, cioè la realtà, è che oltre alle distanze (poche) in ballo ci sono le misure di azimut. saluti -- Marco Guiducci - 055 4383194 SITA - Sistema informativo territoriale e ambientale Regione Toscana - Via di Novoli 26 - 50127 Firenze _______________________________________________ [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. 764 iscritti al 23/08/2019 |
Free forum by Nabble | Edit this page |