Calcolo della distanza utilizzando latitudine e longitudine<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Qualcuno ha idea di come calcolare la distanza tra gli stati negli Stati Uniti utilizzando il codice postale o la latitudine e la longitudine?
Ri: Calcolo della distanza utilizzando latitudine e longitudineCIAO @ron_horne
Grazie per la tua rapida risposta!
Ho lavorato un po' di più con la sceneggiatura e ho scoperto che la colpa era dalla mia parte. Sono riuscito a calcolare le distanze senza problemi.
Grazie mille!
Ri: Calcolo della distanza utilizzando latitudine e longitudineCIAO @Mergrung ,
se puoi pubblicare un campione dei dati e dello script che stai utilizzando, possiamo risolverlo per te.
in caso contrario, è difficile stabilire quale sia l'origine dell'errore.
una cosa che molto probabilmente è cambiata dal 2016 è il riferimento ai dati del campione. nel mio script originale aveva un riferimento a JMP11 x86. se stai usando una versione successiva ti darà sicuramente un messaggio di errore.
Ri: Calcolo della distanza utilizzando latitudine e longitudineCIAO @ron_horne ,
Ho provato a utilizzare questo script per calcolare le distanze, ma ho ricevuto un messaggio di errore quando ho provato. Visto che la sceneggiatura è del 2016, forse sono cambiate alcune cose?
Un aggiornamento dello script sarà apprezzato.
Ri: Calcolo della distanza utilizzando latitudine e longitudineCIAO @mjvincent87 E @jenkins_macedo
un altro modo per farlo è con la formula di colonna in una tabella di dati. provare il seguente script
Clear Globals();
Names Default To Here( 1 );
// Open data file
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
// add column for distance
dt << New Column( "latrad", formula( :Latitude * (Pi() / 180) ) );
dt << New Column( "longrad", formula( :Longitude * (Pi() / 180) ) );
dt << New Column( "Distance", Numeric,
formula(
6371.00 * 2 * ATan(
(Sin( (:latrad - Lag( :latrad, -1 )) / 2 ) ^ 2 + Cos( :latrad ) * Cos( Lag( :latrad, -1 ) ) * Sin( (:longrad - Lag( :longrad, -1 )) / 2 )
^ 2) ^ 0.5,
(1 - (Sin( (:latrad - Lag( :latrad, -1 )) / 2 ) ^ 2 + Cos( :latrad ) * Cos( Lag( :latrad, -1 ) ) * Sin(
(:longrad - Lag( :longrad, -1 )) / 2
) ^ 2)) ^ 0.5
)
)
);
dt << New Column( "Bearing", Numeric, "Continuous", Format( "Latitude DMS", "PUNSGN", 15, 0 ),
formula(
brng = Mod(
((ATan(
Sin( Lag( :longrad, -1 ) - :longrad ) * Cos( Lag( :latrad, -1 ) ),
Cos( :latrad ) * Sin( Lag( :latrad, -1 ) ) - Sin( :latrad ) * Cos( Lag( :latrad, -1 ) ) * Cos( Lag( :longrad, -1 ) - :longrad )
)) * 180 / Pi()) + 360,
360
)
)
);
Ri: Calcolo della distanza utilizzando latitudine e longitudineCIAO @mjvincent87
dai un'occhiata a questo script e fammi sapere se è la direzione a cui stai pensando:
Clear Globals();
Names Default To Here( 1 );
// open data file (dots) - this includes the observation we want to update
dt = Open( "$SAMPLE_DATA/Hurricanes.jmp" );
// introduce the column with the distance to be updated in the dots table
dots << New column ( "Distance", Numeric );
// introduce the column with the distance to be updated in the dots table
Dots << New Column("Bearing", Numeric, "Continuous", Format("Latitude DMS", "PUNSGN", 15, 0));
// extract the longitude and the latitude values from the table - as radians
x = (Column( dots, "Longitude" ) << getValues) * Pi() / 180 ;
y = (Column( dots, "Latitude" ) << getValues) * Pi() / 180 ;
// declare the distance calculation function in KM based on world radius of 6371 KM.
// For statute miles multiply final distance d by 0.621371.
// For nautical miles multiply final distance d by 0.539957
haversine = Function( {long1, lat1, long2, lat2, R = 6371.009},
{Default Local},
a = Sin( (lat1 - lat2) / 2 ) ^ 2 + Cos( lat1 ) * Cos( lat2 ) * Sin( (long1 - long2) / 2 ) ^ 2;
c = 2 * ATan( a ^ 0.5, (1 - a) ^ 0.5 );
d = R * c // *0.621371 For statute miles;
);
wait (0.01);
// run the function along the rows of the table
For( i = 1, i <= N Row( dots ) - 1, i++,
dots:distance[i] = haversine( x[i], y[i], x[i + 1], y[i + 1] )
);
// Declare the Bearing calculation function
Bearing = function ({long1, lat1, long2, lat2 },
{Default Local},
abc = sin (long2 - long1) * cos (lat2);
def = cos (lat1) * sin (lat2) - sin (lat1) *cos (lat2) * cos (long2 - long1) ;
brng = mod (( (atan ( abc, def )) * 180 / pi() ) + 360 , 360) ;
);
wait (0.01);
// run the Bearing function along the rows of the table
For( i = 1, i <= N Row( dots ) - 1, i++,
dots:Bearing[i] = Bearing( x[i], y[i], x[i + 1], y[i + 1] )
);
Migliore,
Ron
Ri: Calcolo della distanza utilizzando latitudine e longitudineIncredibile raccolta di formule:
http://www.movable-type.co.uk/scripts/latlong.html
Ri: Calcolo della distanza utilizzando latitudine e longitudineUn altro grazie a ron_horne!Solo un paio di domande:
Voglio solo confermare che l'uscita è in miglia terrestri, giusto?
Inoltre, hai uno script per il rilevamento tra due coordinate?
Ri: Calcolo della distanza utilizzando latitudine e longitudineCIAO ron_horne e spero che tu stia bene. So che ci è voluto del tempo dall'ultima volta che abbiamo chattato su questo thread. Il progetto è stato sospeso ed è ora attivo e funzionante e in poche settimane la tabella risultante verrà distribuita in produzione dal nostro team della campagna.
Ho applicato lo script e ha funzionato perfettamente come previsto!! Ottimo lavoro!!
Come sai, lo script calcola la distanza tra le coppie di (HH Lat. e HH Long.) a (PS Lat e PS Long.), che è ciò che originariamente era ciò che il progetto era stato progettato per catturare. Ho utilizzato la distanza risultante per calcolare il tempo necessario a ciascuna famiglia per partecipare a uno dei nostri programmi a 1, 3 o 5 ore di distanza da casa.
Ora, il problema è che vorrei creare uno script per calcolare la distanza tra ogni coppia di Lat. e Lungo.
Per esempio:
Nella tabella sottostante, ho calcolato la distanza e il tempo tra le coppie della riga 1 di Lat. & Lungo. Che è perfetto!! ciò andrà bene per tutte le 20 righe fornendo 20 distanze univoche tra la posizione della famiglia e la destinazione del programma.
Quindi, nella riga 1 il programma # 15896 con PS Lat. 56.47 N & PS Lungo. 132.38 S è una certa distanza dalla Famiglia il cui HH Lat. & HH lungo.
Poiché vogliamo conoscere la distanza di ciascuna famiglia da ciascun programma #, come posso calcolare, in modo tale che JMP catturi la distanza tra ciascuna famiglia Lat e Long attraverso ciascun programma Lat e Long e non solo il primo programma? In questa tabella, ho 20 righe, usando quello che ho descritto dovremmo avere 400 calcoli di differenza di distanza invece di solo 20. Conosci un modo per aggirare questo?
La mia tabella dati HH originale ha 156.737 record di famiglie uniche con i rispettivi HH Lat. & HH lungo. Il file Household ha 15.655 HH lat. & HH lungo.
La tabella dei dati del programma con 2.747 numeri di programma univoci con 329 PS univoci Lat. & PS Lungo. Voglio calcolare la distanza da ogni famiglia unica Lat. & Long ad ogni programma unico Lat. & Long., in modo tale che la distanza sia calcolata in ogni programma. Sarà 15.655 * 329 e la tabella risultante o la distanza totale dovrebbe essere di circa 5.150.495 record.

Ri: calcolo della distanza utilizzando latitudine e longitudineGrazie ron_horne . Vi farò sapere il risultato una volta provato. Ma penso che sia fantastico! Grande trasmissione
Ri: calcolo della distanza utilizzando latitudine e longitudineCIAO jenkins.macedo ,
il mio script originale calcolava la distanza tra due righe consecutive in chilometri.
ora l'ho modificato per produrre la distanza in miglia per ogni riga.
prova questo sul tuo tavolo
Cancella Globali () ;
I nomi predefiniti sono qui ( 1 ) ;
// fa riferimento alla tabella dei dati
dt = tabella dati corrente () ;
// introduce la colonna con la distanza da aggiornare nella tabella dei punti
dt << aggiungere più colonne ( "Distanza" , 1 , Dopo ( 6 ) , numerico ) ;
// estrae i valori di longitudine e latitudine dalla tabella - come radianti
HHx = ( Colonna ( dt , "HH longitudine" ) << getValues ) * Pi () / 180 ;
HH = ( Colonna ( dt , "HH Latitudine" ) << getValues ) * Pi () / 180 ;
PSx = ( Colonna ( dt , "PS longitudine" ) << getValues ) * Pi () / 180 ;
PSy = ( Colonna ( dt , "Latitudine PS" ) << getValues ) * Pi () / 180 ;
// dichiara la funzione di calcolo in miglia
haversine = Funzione ( { lungo1 , lat1 , lungo2 , lat2 , R = 6371 } ,
{ Locale predefinito } ,
UN = Peccato ( ( lat1 - lat2 ) / 2 ) ^ 2 + Cos ( lat1 ) * Cos ( lat2 ) * Peccato ( ( lungo1 - lungo2 ) / 2 ) ^ 2 ;
C = 2 * Un'abbronzatura ( UN ^ 0,5 , ( 1 - UN ) ^ 0,5 ) ;
D = ( R * C ) * 0.6213712 ;// miglia
) ;
Aspettare ( 0.01 ) ;
// esegue la funzione lungo le righe della tabella
Per ( io = 1 , io <= Riga N ( dt ) - 1 , io ++,
dt : distanza [ io ] = haversine ( HHx [ io ] , HH [ io ] , PSx [ io ] , PSy [ io ] )
) ;
Ri: Calcolo della distanza utilizzando latitudine e longitudineCIAO ron_horne Ho provato a utilizzare lo script "Distanza dal prossimo" per calcolare la distanza tra due coppie di coordinate Lat e Long, ma lo script non funziona o forse non sto facendo qualcosa di giusto. In allegato le prime 20 righe della tabella tabella. Vorrei conoscere la distanza (in miglia) tra HH Lat e HH Long e PS Lat e PS long. Penso che una volta che riesco a adattare la formula ai miei dati, può essere più veloce. Non sono così sicuro di come funzionerebbe lo strumento Distanza qui perché mi chiedo se devo tracciare una linea per ogni coordinata in quanto ciò richiederebbe troppo tempo poiché la mia tabella ha oltre 2 milioni di righe o può essere automatizzata. Ho utilizzato Mapping: JMP Geocoder per generare le coordinate di seguito. Come vorresti che ron_horne o qualcun altro li personalizza in Distanza dal prossimo script pubblicato in precedenza? Qualsiasi aiuto sarebbe apprezzato. Grazie
Alcune informazioni sulle seguenti variabili:
CAP: è il nucleo familiare (HH) abbinato al CAP Progra Start (PS).
Numero di programma: questi numeri riflettono i programmi che offriamo per i quali vorremmo promuovere a quelle famiglie all'interno dello stesso codice postale da programma a famiglia.
Latitudine HH: latitudine associata al codice postale della famiglia
Longitudine HH: Longitudine associata al CAP del nucleo familiare
Latitudine PS: latitudine associata al codice postale di avvio del programma. Questa è la posizione in cui è iniziato il programma.
Longitudine PS: longitudine associata al codice postale di avvio del programma. Questa è la posizione in cui è iniziato il programma.

Ri: Calcolo della distanza utilizzando latitudine e longitudineGrande! Grazie ron_horne . Inizialmente ho iniziato a utilizzare tjhe Geocoder-Map. Ma vedo anche che avevo SDA. Ho anche scaricato lo strumento Distanza. Tutto abbastanza bello. Quello che sto cercando di fare è piuttosto semplice e diretto. Utilizzando la posizione per città e stato- ( CAP/coordinate geografiche) dei nostri programmi e il codice postale delle famiglie nei nostri database. Sto sviluppando un semplice file che mostra i programmi che si trovano a meno di 50 miglia dalla loro residenza rispetto a quelli che sono a 100 miglia e ho proposto al team della campagna da 2 a 3 programmi che si trovano entro un'ora o due di guida per una campagna di email marketing di routine basata sui loro interessi precedenti.
Ri: Calcolo della distanza utilizzando latitudine e longitudineperché non iniziare da qui?
Componente aggiuntivo: analisi dei dati spaziali
e qui
Componente aggiuntivo Strumento distanza
o semplicemente controlla il mio script allegato per un'altra opzione usando una formula.
Ron