calcolo di coordinate geografiche

salve a tutti!
potete aiutarmi per favore a risolvere questo problemino:
ho bisogno di conoscere la formula matematica mediante la quale dati due punti dei quali sono note le coordinate geografiche (in decimale), poter calcolare "per interpolazione" le coordinate geografiche di uno o più punti a piacere che stanno sulla retta, anzi sulla curva, che unisce i due punti dati.
esempio: fra il punto geografico A (di cui sono note le coordinate) e il punto geografico B (di cui sono note le coordinate), esiste una curva teorica (per i miei scopi possiamo tranquillamente considerarla una retta) che li unisce. Supponiamo che la distanza in metri fra i due punti, ricavabile con semplice formula, sia di 30 metri.
l'esigenza è quella di calcolare le coordinate geografiche del punto, ovviamente appartenente alla curva che unisce i due punti dati) che dista ad esempio 10 metri dal punto A, oppure 15 metri dal punto A, oppure 20 metri dal punto A ecc.
 
Forse non importa scomodare la trigonometria se a Ludwig basta che la distanza sia una retta.

Secondo me possiamo tranquillamente utilizzare la formula (suggerita anche da Spinoza nel primo link) per calcolare la distanza tra due punti su un asse cartesiano X,Y ovvero:

D^2 = (X2 - X1)^2 + (Y2 - Y1)^2

da cui deriva che

D = √[(X2 - X1)^2 + (Y2 - Y1)^2]

Intanto se si hanno le coordinate in gradi, minuti e secondi vanno convertite nel formato decimale, dopodiché il gioco è fatto.

Facciamo un esempio pratico che forse è meglio! :lol:

Dati due punti rispettivamente con coordinate A(0,0) e B(1,1) la distanza tra di essi è data da:

D^2 = (1 - 0)^2 + (1 - 0)^2

che sviluppando diventa

D^2 = 1^2 + 1^2

D^2 = 1 + 1

D^2 = 2

quindi la distanza sarà pari a:

D = √2

Puoi tradurre tutto in metri reali utilizzando la scala della mappa. Se ad esempio hai una mappa in scala 1:200, sai che 1 cm equivale a 2 m e quindi devi raddoppiare tutti i conti che vengono fuori dalla formula...
 
Ultima modifica:
Scusate,è facile che io non abbia capito un tubo.

Sicuramente il formato delle coordinate non c'entra niente.

Credo che conoscere la distanza tra due punti(conoscendo le coordinate)essendo facile il calcolo non è quello che sta cercando Ludwig.

Credo(e mi ripeto)che egli per interpolazione intenda avere la formula per trovare dei punti del piano cartesiano.

Io penso di averla con relativo disegno,purtroppo non ho la stampante e postare la formula non serve a niente.

Al limite farò (con tutta calma)una foto per poi postarla.

Ripeto,sempre che abbia capito il problema.
 
Ma dotarsi di cartina e coordinatometro? Oppure usare una mappa digitale online già georeferenziata (tipo opencyclemaps)?

A meno che non servano coordinate esatte, sono due sistemi pratici ma validi.
 
Hai ragione Carlo! Mi era sfuggita questa parte...

Supponiamo che la distanza in metri fra i due punti, ricavabile con semplice formula, sia di 30 metri.
l'esigenza è quella di calcolare le coordinate geografiche del punto, ovviamente appartenente alla curva che unisce i due punti dati) che dista ad esempio 10 metri dal punto A, oppure 15 metri dal punto A, oppure 20 metri dal punto A ecc.

Qui Ludwig allora la faccenda si complica un po'... ;)

Bisogna prima trovare l'equazione della retta passante per A e B (di cui conosci per entrambi le coordinate, altrimenti non riuscirai mai a risolvere il problema perché con la semplice formula della distanza tra due punti arriveresti a qualcosa del genere:

D^2 = X^2 + Y^2

irrisolvibile a meno che non in sia inserita un sistema di equazioni!

Ma avendo l'equazione della retta passante per due punti, una volta calcolato X, puoi ricavare anche Y sostituendo il valore trovato.

La formula per trovare la retta passante per due punti è questa:

( Y - Y1 ) ( X - X1 )
--------- = ---------
(Y2 - Y1) (X2 - X1)

Esempio! ;)

Hai due punti di coordinate A(0,0) e B(30,1) e vuoi trovare C(X,Y) a 10 m di distanza da A?

Trovi la retta passante per A e B

( Y - 0 ) ( X - 0 )
------ = ---------
( 1 - 0 ) (30 - 0)

da cui ricavi l'equazione

Y = X/30

A questo punto sai che C(X,Y) è distante 10 m da A(0,0) e utilizzando la formula delle distanze:

10^2 = ( X - 0 )^2 + ( Y - 0 )^2

100 = X^2 + Y^2

vai a sostituire il valore di Y trovato prima ricavandolo dall'equazione della retta

100 = X^2 + (X/30)^2

100 = X^2 + X^2/900

90.000 = 900X^2 + X^2

90.000 = 901X^2

X^2 = 90.000/901

X^2 = 99,88901221

X = 9,99444907

se inserisci il valore trovato nell'equazione della retta

Y = 9,99444907/30

Y = 0,333148302

A questo punto hai trovato le coordinate del punto C! :si:

P.S.: Spero di non aver sbagliato i calcoli... :biggrin:
 
Ultima modifica:
Ma dotarsi di cartina e coordinatometro? Oppure usare una mappa digitale online già georeferenziata (tipo opencyclemaps)?

A meno che non servano coordinate esatte, sono due sistemi pratici ma validi.

Certo, così è molto più semplice! Ma se Ludwig si trovasse in una situazione di sopravvivenza senza coordinatometro ma, soprattutto, senza internet? :rofl:
 
Boh! Forse per farsi salvare il ... da un elicottero come nei film americani... :p

Sì, comunque (a parte gli scherzi) hai ragione!
 
Ultima modifica:
Pegasus,

ti ringrazio ma temo di avere anch'io le idee un po' confuse.

Faccio un esempio di due punti (A B) con le seguenti coordinate.

A- 33 T 354615-4750515
B- " " 357946-4740815

La distanza in linea d'aria fra questi due punti è di 10,256 km.

Ora non ho capito bene se Ludwig vorrebbe conoscere la distanza fra il punto A o B con un altro punto(chiamiamolo X )di suo interesse lungo questa direttrice(A B).

Con una pappa topografica con quadrettatura chilometrica non ci sarebbero problemi a trovare la distanza ma è troppo scontato anche perché lui parla "per interpolazione".

Ludwig,accidenti a te,logicamente in senso più che buono.
 
Grazie infinite ragazzi! sono sbalordito sia dalla prontezza delle vostre risposte che dalla loro competenza matematica e non...
dunque, la situazione è questa:
- le coordinate di cui dispongo sono in forma decimale (è un file .gpx)
- si tratta di tantissimi punti per cui devo trovare il modo di automatizzare i calcoli.
- il programma di cui dispongo (3D route Builder - software a pagamento del quale chiaramente non possiedo il sorgente) è si in grado di calcolare automaticamente dei punti traccia interpolati sia a livello di coordinate geografiche che di elevazione, ma lo fa in modo indiscriminato, nel senso che inserisce un punto interpolato esattamente a metà di ogni coppia di punti "reali " considerata, cioè calcola la distanza fra il primo e il secondo punto traccia della serie che gli sottopongo e inserisce esattamente a metà strada di questa coppia un punto interpolato; poi passa ad esaminare la coppia formata dal secondo e dal terzo punto "reale" e anche qui inserisce un punto traccia interpolato esattamente a metà strada, e così via...
Io invece, per motivi che sarebbe lungo dettagliare, avrei l'esigenza di inserire nel mio file .gpx dei punti traccia interpolati si, ma piazzati ad una distanza regolare l'uno dall'altro.
esempio: voglio inserire dei punti traccia interpolati ad una distanza non superiore a tre metri l'uno dall'altro (valore di soglia);
allora il procedimento logico dovrebbe essere il seguente:
1) calcolare la distanza in metri della prima coppia di punti reali a disposizione;
2) dividere questa distanza per il valore di soglia, nel nostro esempio 3 metri;
3) se al punto (2) ottengo un numero superiore a 1, la parte intera di questo numero rappresenta il numero di punti traccia interpolati da inserire all'interno della prima coppia di punti considerata;
4) se al punto (2) ottengo un valore inferiore ad uno, allora per quella coppia non è necessario inserire nessun punto interpolato;
5) calcolare la distanza in metri della seconda coppia di punti "reali", cioè la coppia formata dal secondo e dal terzo punto "reale" e in base al risultato eseguire le operazioni previste al punto 3 oppure 4 a seconda del valore ottenuto dalla divisione della loro distanza per il valore di soglia (3 metri);
6) precedere in modo analogo per tutte le coppie di numeri reali disponibili.
da perfetto ignorante quale sono in questo settore, dalle vostre risposte ho capito se non altro, per dirla in dialetto trentino, che ".. son 'na a meter 'l cul 'n le peade!...", vale adire che si tratta di calcoli, almeno per me. abbastanza, per non dire moltissimo, impegnativi....
in sostanza sto dialogando con un esperto di Excel per vedere se c'è modo di integrare questi calcoli appunto in un foglio Excel, in modo tale che prelevando i dati gps dal file .gpx aperto in Notepad ed incollandoli in un foglio di lavoro Excel, si possa automaticamente interpolare i punti reali con altri punti interpolati piazzati a distanza regolare l'uno dall'altro...
va da sé che così facendo, la distanza fra l'ultimo punto interpolato inserito in una coppia e il successivo punto "reale" sarà ovviamente inferiore al valore di soglia, ma va bene così....
nelle prossime ore o giorni vi saprò dire se l'esperto di Excel che ho contatto sarà capace di venire a capo di questo putiferio, oppure se dovrò a quel punto sperare che qualcuno di voi si senta in grado di mettere mano a questa faccenda ...
in ogni modo grazie infinite a tutti per il vostro preziosissimo ed informatissimo supporto!....
 
Ultima modifica:
...
credo il messaggio ti si sia interrotto a metà. Volevo chiederti, ma se tra i due punti che formano una coppia c'è una distanza non divisibile per 3?
Cosa fa, ti accontenti di un punto che sta a 3 metri da uno degli estremi del segmento (quale, poi, l'inizio o la fine?), oppure ce ne metti anche un altro che starà a distanza inferiore?

Altra domanda, se tra A e B c'è una retta, che senso ha infittire la traccia con altri punti? (non vorrei entrare nel merito, ma ti chiedo soltanto se hai una ragione oppure è piacimento).
 
PS: per fare queste operazioni ti consiglio uno script in linguaggio di programmazione, che potrebbe automaticamente generarti anche un nuovo file GPX bello e pronto.
 
PS: per fare queste operazioni ti consiglio uno script in linguaggio di programmazione, che potrebbe automaticamente generarti anche un nuovo file GPX bello e pronto.

scusa, non ho capito perché dici che il mio precedente msg si è interrotto a metà....io lo vedo per intero nel Forum...
comunque alla prima domanda in sostanza ho risposto nel precedente msg, cioè se la distanza fra i due punti di una coppia è inferiore al valore di soglia stabilito, chiaramente la coppia rimane così com'è, senza alcun inserimento ulteriore, vale a dire senza alcuna interpolazione....
per la seconda domanda, purtroppo per me ho dei motivi tecnici precisi per calcolare dei punti traccia intermedi sulla retta che congiunge i due punti....
 
Da quanto ho capito io, non è importante che la distanza sia divisibile per 3 (o qualunque altro numero scelto), perché se ad esempio il quoziente della divisione fosse 3,1 il segmento di retta delimitato dai due punti sarebbe formato da tre ulteriori mini-segmenti (non so in quale altra maniera spiagarmi) uguali e un pezzettino...

Certo, con Excel, impostando le opportune formule, penso che il problema di Ludwig sia risolvibile, ma la meglio sarebbe, come suggerito da mdsjack (spero abbia scritto bene, porco cane, non leggo neppure i nick, stasera mi ci vogliono gli occhiali!), creare un programmino che ingurgiti i dati del file .gpx iniziale e sputi fuori un nuovo file .gpx con i dati modificati.

Altrimenti fare tutto a mano... :rofl:
 
Ultima modifica:
si esatto, non è importante che la distanza sia divisibile per il valore di soglia: semplicemente se è divisibile allora il numero intero del risultato della divisione rappresenta il numero di punti da interpolare nella coppia, altrimenti se il risultato della divisione è inferiore a 1 allora in quella coppia le cose rimangono come sono...
 
Quel che volevo dire, prendendo un esempi: se hai un segmento pari a 5, lo lasci com'è oppure fai due segmenti da 2 e 3? Nel qual caso, il segmento più piccolo lo posizioni da una parte o dall'altra? Ti è indifferente?
 
Se ho capito bene con distanza tra A e B uguale a 5, se il divisore è il numero 3, il segmento da 3 sta dalla parte del punto di partenza A, mentre quello da 2 dalla parte del punto di arrivo B.
 
Ultima modifica:
Alto Basso