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...
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:
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 <marco.guiducci@regione.toscana.it>
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:
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
_______________________________________________
Gfoss@lists.gfoss.it 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
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 <amefad@gmail.com> 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 <
marco.guiducci@regione.toscana.it>
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
>
> _______________________________________________
> Gfoss@lists.gfoss.it
> 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
_______________________________________________
Gfoss@lists.gfoss.it 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
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.
Il ven 14 ago 2020, 13:31 Amedeo Fadini <amefad@gmail.com> 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 <
marco.guiducci@regione.toscana.it>
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
>
> _______________________________________________
> Gfoss@lists.gfoss.it
> 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
_______________________________________________
Gfoss@lists.gfoss.it 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
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.
non azzardi
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