@@ -5,11 +5,6 @@ var receivers_url = "https://api.v2.sondehub.org/listeners";
55var predictions_url = "https://api.v2.sondehub.org/predictions?vehicles=" ;
66var recovered_sondes_url = "https://api.v2.sondehub.org/recovered" ;
77
8- var habitat_max = 400 ;
9- //var habitat_url = "//habitat.habhub.org/habitat/";
10- var habitat_url = "/habitat/" ;
11- var habitat_url_payload_telemetry = habitat_url + "_design/payload_telemetry/_view/payload_time?startkey=[%22{ID}%22,{START}]&endkey=[%22{ID}%22,{END}]&include_docs=true&limit=" + habitat_max + "&skip=" ;
12-
138var host_url = "" ;
149var markers_url = "img/markers/" ;
1510var vehicles = { } ;
@@ -354,11 +349,6 @@ function clean_refresh(text, force, history_step) {
354349 vehicles [ callsign ] . kill ( ) ;
355350 }
356351
357- // clear hysplit
358- for ( callsign in hysplit ) {
359- map . removeLayer ( hysplit [ callsign ] ) ;
360- }
361-
362352 car_index = 0 ;
363353 balloon_index = 0 ;
364354 nyan_color_index = 0 ;
@@ -1616,25 +1606,9 @@ function mapInfoBox_handle_path(event) {
16161606} ;
16171607
16181608function mapInfoBox_handle_path_fetch ( id , vehicle ) {
1619- var ishabitat = id . length == 64
1620-
1621- if ( ishabitat ) {
1622- var url = habitat_url + id ;
1623- } else {
1624- var url = data_url + "?mode=single&format=json&position_id=" + id ;
1625- }
1609+ var url = data_url + "?mode=single&format=json&position_id=" + id ;
16261610
16271611 $ . getJSON ( url , function ( data ) {
1628- if ( ishabitat ) {
1629- var encap = { positions : { position : [ ] } } ;
1630-
1631- if ( ! data . hasOwnProperty ( 'error' ) ) {
1632- data . _id = data . _id . substring ( 58 ) ;
1633- encap . positions . position . push ( habitat_doc_to_snus ( data ) ) ;
1634- data = encap ;
1635- }
1636- }
1637-
16381612 if ( 'positions' in data && data . positions . position . length === 0 ) {
16391613 mapInfoBox . setContent ( "not found" ) ;
16401614 mapInfoBox . openOn ( map ) ;
@@ -2225,12 +2199,12 @@ function addPosition(position) {
22252199 var curr_ts = convert_time ( vehicle . curr_position . gps_time ) ;
22262200 var dt = ( new_ts - curr_ts ) / 1000 ; // convert to seconds
22272201
2228- if ( dt > 0 ) {
2202+ if ( dt >= 0 ) {
22292203 if ( vehicle . num_positions > 0 ) {
22302204 // calculate vertical rate
22312205 // TODO - Make this average over more points rather than use a FIR.
22322206 var rate = ( position . gps_alt - vehicle . curr_position . gps_alt ) / dt ;
2233- if ( ! isNaN ( rate ) ) {
2207+ if ( ! isNaN ( rate ) && dt != 0 ) {
22342208 vehicle . ascent_rate = 0.7 * rate + 0.3 * vehicle . ascent_rate ;
22352209 }
22362210
@@ -2717,6 +2691,7 @@ var ajax_positions_old = null;
27172691var ajax_inprogress = false ;
27182692var ajax_inprogress_single = false ;
27192693var ajax_inprogress_old = "none" ;
2694+ var ajax_single_serial = null ;
27202695
27212696function refresh ( ) {
27222697 if ( ajax_inprogress ) {
@@ -2763,7 +2738,7 @@ function refresh() {
27632738 }
27642739 } else {
27652740 ajax_inprogress_old = "none" ;
2766- update ( response ) ;
2741+ update ( response ) ;
27672742 }
27682743 $ ( "#stText" ) . text ( "" ) ;
27692744 $ ( "#stTimer" ) . attr ( "data-timestamp" , response . fetch_timestamp ) ;
@@ -2809,6 +2784,7 @@ function refreshSingle(serial, first) {
28092784 }
28102785
28112786 ajax_inprogress_single = true ;
2787+ ajax_single_serial = serial ;
28122788
28132789 var mode = wvar . mode . toLowerCase ( ) ;
28142790 mode = ( mode == "position" ) ? "latest" : mode . replace ( / / g, "" ) ;
@@ -2957,107 +2933,6 @@ function refreshPredictions() {
29572933 } ) ;
29582934}
29592935
2960- function habitat_translation_layer ( json_result , prefix ) {
2961- if ( json_result . rows . length === 0 ) {
2962- habitat_payload_step ( true ) ;
2963- return ;
2964- }
2965-
2966- json_result = json_result . rows ;
2967-
2968- var result = { positions : { position : [ ] } } ;
2969- result . fetch_timestamp = Date . now ( ) ;
2970- $ ( "#stTimer" ) . attr ( "data-timestamp" , result . fetch_timestamp ) ;
2971-
2972- for ( var i in json_result ) {
2973- var doc = json_result [ i ] . doc ;
2974-
2975- if ( doc . data . latitude === 0 && doc . data . longitude === 0 ) continue ;
2976-
2977- var row = habitat_doc_to_snus ( doc , prefix ) ;
2978-
2979- result . positions . position . push ( row ) ;
2980- }
2981-
2982- if ( result . positions . position . length ) update ( result ) ;
2983-
2984- // next step
2985- periodical = setTimeout ( function ( ) {
2986- habitat_payload_step ( ) ;
2987- } , 500 ) ;
2988- }
2989-
2990- var habitat_field_blacklist = {
2991- altitude : 1 ,
2992- date : 1 ,
2993- latitude : 1 ,
2994- longitude : 1 ,
2995- payload : 1 ,
2996- sentence_id : 1 ,
2997- time : 1 ,
2998- } ;
2999-
3000- function habitat_doc_to_snus ( doc , prefix ) {
3001- prefix = prefix || '' ;
3002-
3003- var row = {
3004- 'position_id' : doc . _id ,
3005- 'vehicle' : prefix + doc . data . payload ,
3006- 'server_time' : doc . data . _parsed . time_parsed ,
3007- 'sequence' : doc . data . sentence_id ,
3008- 'gps_lat' : doc . data . latitude ,
3009- 'gps_lon' : doc . data . longitude ,
3010- 'gps_alt' : doc . data . altitude ,
3011- 'callsign' : "HABITAT ARCHIVE" ,
3012- 'data' : { }
3013- } ;
3014-
3015- try {
3016- row . gps_time = "20" + doc . data . date . replace ( / ( [ 0 - 9 ] { 2 } ) / g, "$1-" ) + doc . data . time ;
3017- } catch ( e ) {
3018- row . gps_time = row . server_time ;
3019- }
3020-
3021- // move all other properties as data
3022- for ( var x in doc . data ) {
3023- // skip internal and reserved vars
3024- if ( x [ 0 ] == '_' || habitat_field_blacklist . hasOwnProperty ( x ) ) continue ;
3025-
3026- row . data [ x ] = doc . data [ x ] ;
3027- }
3028- row . data = JSON . stringify ( row . data ) ;
3029-
3030- return row ;
3031- }
3032-
3033- var habitat_payload_step_data ;
3034-
3035- function habitat_payload_step ( remove_current ) {
3036- remove_current = ! ! remove_current ;
3037-
3038- if ( remove_current ) {
3039- habitat_payload_step_data . payloads . splice ( habitat_payload_step_data . idx , 1 ) ;
3040- }
3041-
3042- if ( habitat_payload_step_data . payloads . length === 0 ) {
3043- $ ( "#stText" ) . text ( "" ) ;
3044- $ ( "#main .header.empty" ) . html ( "<span>No vehicles :(</span>" ) ;
3045- return ;
3046- }
3047-
3048- habitat_payload_step_data . idx += 1 ;
3049- habitat_payload_step_data . idx = habitat_payload_step_data . idx % habitat_payload_step_data . payloads . length ;
3050-
3051- var prefix = habitat_payload_step_data . payloads [ habitat_payload_step_data . idx ] . prefix ;
3052- var url = habitat_payload_step_data . payloads [ habitat_payload_step_data . idx ] . url ;
3053- url += habitat_payload_step_data . payloads [ habitat_payload_step_data . idx ] . skip ;
3054- habitat_payload_step_data . payloads [ habitat_payload_step_data . idx ] . skip += habitat_max ;
3055-
3056- ajax_positions = $ . getJSON ( url , function ( response ) {
3057- habitat_translation_layer ( response , prefix ) ;
3058- } ) ;
3059- }
3060-
30612936var periodical , periodical_focus , periodical_receivers , periodical_recoveries ;
30622937var periodical_predictions = null ;
30632938var timer_seconds = 5 ;
@@ -3380,7 +3255,7 @@ function updatePredictions(r) {
33803255 if ( vehicles . hasOwnProperty ( vcallsign ) ) {
33813256 var vehicle = vehicles [ vcallsign ] ;
33823257
3383- if ( vcallsign in hysplit || vehicle . marker . mode == "landed" ) {
3258+ if ( vehicle . marker . mode == "landed" ) {
33843259 removePrediction ( vcallsign ) ;
33853260 continue ;
33863261 }
0 commit comments