### EGM Coefficient Data (Example) Source: https://github.com/tomojitakasu/rtklib/blob/master/lib/iers/src/gpt.f.org Example data for AT_AMP coefficients, used in surface temperature calculations. These are typically part of a larger dataset. ```fortran .+0.0000D+000,-4.5415D-002,-1.8027D-002,+3.6561D-004,-1.1274D-004, .+1.3047D-005,+2.0001D-006,-1.5152D-007,-2.7807D-008,+7.7491D-009/ ``` -------------------------------- ### EGM Coefficient Data (Example) Source: https://github.com/tomojitakasu/rtklib/blob/master/lib/iers/src/gpt.f.org Example data for BT_AMP coefficients, used in surface temperature calculations. These are typically part of a larger dataset. ```fortran DATA (BT_AMP(I),I=1,55)/ .+0.0000D+000,+0.0000D+000,-8.9895D-001,+0.0000D+000,-1.0790D+000, .-1.2699D-001,+0.0000D+000,-5.9033D-001,+3.4865D-002,-3.2614D-002, .+0.0000D+000,-2.4310D-002,+1.5607D-002,-2.9833D-002,-5.9048D-003, .+0.0000D+000,+2.8383D-001,+4.0509D-002,-1.8834D-002,-1.2654D-003, .-1.3794D-004,+0.0000D+000,+1.3306D-001,+3.4960D-002,-3.6799D-003, .-3.5626D-004,+1.4814D-004,+3.7932D-006,+0.0000D+000,+2.0801D-001, .+6.5640D-003,-3.4893D-003,-2.7395D-004,+7.4296D-005,-7.9927D-006, .-1.0277D-006,+0.0000D+000,+3.6515D-002,-7.4319D-003,-6.2873D-004, .-8.2461D-005,+3.1095D-005,-5.3860D-007,-1.2055D-007,-1.1517D-007, .+0.0000D+000,+3.1404D-002,+1.5580D-002,-1.1428D-003,+3.3529D-005, .+1.0387D-005,-1.9378D-006,-2.7327D-007,+7.5833D-009,-9.2323D-009/ ``` -------------------------------- ### EGM Coefficient Data (Example) Source: https://github.com/tomojitakasu/rtklib/blob/master/lib/iers/src/gpt.f.org Example data for AT_MEAN coefficients, used in surface temperature calculations. These are typically part of a larger dataset. ```fortran DATA (AT_AMP(I),I=1,55)/ .-1.8654D+000,-9.0041D+000,-1.2974D-001,-3.6053D+000,+2.0284D-002, .+2.1872D-001,-1.3015D+000,+4.0355D-001,+2.2216D-001,-4.0605D-003, .+1.9623D+000,+4.2887D-001,+2.1437D-001,-1.0061D-002,-1.1368D-003, .-6.9235D-002,+5.6758D-001,+1.1917D-001,-7.0765D-003,+3.0017D-004, .+3.0601D-004,+1.6559D+000,+2.0722D-001,+6.0013D-002,+1.7023D-004, .-9.2424D-004,+1.1269D-005,-6.9911D-006,-2.0886D+000,-6.7879D-002, .-8.5922D-004,-1.6087D-003,-4.5549D-005,+3.3178D-005,-6.1715D-006, .-1.4446D-006,-3.7210D-001,+1.5775D-001,-1.7827D-003,-4.4396D-004, .+2.2844D-004,-1.1215D-005,-2.1120D-006,-9.6421D-007,-1.4170D-008, .+7.8720D-001,-4.4238D-002,-1.5120D-003,-9.4119D-004,+4.0645D-006, .-4.9253D-006,-1.8656D-006,-4.0736D-007,-4.9594D-008,+1.6134D-009/ ``` -------------------------------- ### Initialize Google Earth Instance Source: https://github.com/tomojitakasu/rtklib/blob/master/app/rtkplot/Debug_Build/rtkplot_ge.htm Initializes the Google Earth plugin instance and sets up initial options and event handlers. ```javascript var ge = null; var mark1,mark2,track1,track2,points,altmode; var mark_icon1="http://maps.google.com/mapfiles/kml/paddle/ylw-circle.png"; var mark_icon2="http://maps.google.com/mapfiles/kml/paddle/red-circle.png"; var mark_icon3="http://maps.google.com/mapfiles/kml/paddle/wht-circle.png"; function init() { google.earth.createInstance("map3d",initCallback,failureCallback); } function initCallback(instance) { ge = instance; var opt = ge.getOptions(); opt.setFlyToSpeed(ge.SPEED_TELEPORT); opt.setAtmosphereVisibility(false); opt.setMouseNavigationEnabled(true); opt.setBuildingSelectionEnabled(false); opt.setAutoGroundLevelViewEnabled(false); mark1 = GenMark('1',mark_icon1); mark2 = GenMark('2',mark_icon2); track1 = GenLine('track1','cc00ffff'); track2 = GenLine('track2','cc0044ff'); points = new Array(); altmode = ge.ALTITUDE_CLAMP_TO_GROUND; ge.getWindow().setVisibility(true); document.getElementById('state').value='1'; setInterval("UpdateState()",250); } function failureCallback(errcode) { document.write('

Google Earth Plugin load error

'); document.getElementById('state').value='-1'; } ``` -------------------------------- ### Initialize Google Earth API Source: https://github.com/tomojitakasu/rtklib/blob/master/app/rtkplot/Debug_Build/rtkplot_ge.htm Loads the Google Earth API version 1 and sets up the callback function 'init' to be executed once the API is ready. ```javascript google.load("earth","1"); google.setOnLoadCallback(init); ``` -------------------------------- ### Initialize Google Earth Plugin Source: https://github.com/tomojitakasu/rtklib/blob/master/app/rtkplot/Release_Build/rtkplot_ge.htm Initializes the Google Earth plugin instance and sets up basic options. This function should be called on page load. ```javascript var ge = null; var mark1,mark2,track1,track2,points,altmode; var mark_icon1="http://maps.google.com/mapfiles/kml/paddle/ylw-circle.png"; var mark_icon2="http://maps.google.com/mapfiles/kml/paddle/red-circle.png"; var mark_icon3="http://maps.google.com/mapfiles/kml/paddle/wht-circle.png"; function init() { google.earth.createInstance("map3d",initCallback,failureCallback); } function initCallback(instance) { ge = instance; var opt = ge.getOptions(); opt.setFlyToSpeed(ge.SPEED_TELEPORT); opt.setAtmosphereVisibility(false); opt.setMouseNavigationEnabled(true); opt.setBuildingSelectionEnabled(false); opt.setAutoGroundLevelViewEnabled(false); mark1 = GenMark('1',mark_icon1); mark2 = GenMark('2',mark_icon2); track1 = GenLine('track1','cc00ffff'); track2 = GenLine('track2','cc0044ff'); points = new Array(); altmode = ge.ALTITUDE_CLAMP_TO_GROUND; ge.getWindow().setVisibility(true); document.getElementById('state').value='1'; setInterval("UpdateState()",250); } function failureCallback(errcode) { document.write('

Google Earth Plugin load error

'); document.getElementById('state').value='-1'; } ``` -------------------------------- ### Initialize Google Map Source: https://github.com/tomojitakasu/rtklib/blob/master/app/rtkplot/Release_Build/rtkplot_gm.htm Initializes the Google Map with specified options including center, zoom level, and map type. Requires a div with id 'map' to exist. ```javascript var map = null; var marks = []; var markh = null; var markz = 0; var info = null; var icon0="http://maps.google.co.jp/mapfiles/ms/icons/red-dot.png"; var icon1="http://maps.google.co.jp/mapfiles/ms/icons/yellow-dot.png"; function init() { var opt = { center: new google.maps.LatLng(0,0), zoom: 2, minZoom: 2, streetViewControl: false, mapTypeId: google.maps.MapTypeId.ROADMAP }; map = new google.maps.Map(document.getElementById("map"),opt); document.getElementById('state').value='1'; } ``` -------------------------------- ### Show All Points in Google Earth Source: https://github.com/tomojitakasu/rtklib/blob/master/app/rtkplot/Release_Build/rtkplot_ge.htm Iterates through all points and sets their visibility to 1 (visible). Requires the 'ge' object to be initialized. ```javascript function ShowPoint() { if (ge == null) return; for (var i = 0; i < points.length; i++) { var mark = points[i]; mark.setVisibility(1); } } ``` -------------------------------- ### Show Points Source: https://github.com/tomojitakasu/rtklib/blob/master/app/rtkplot/Debug_Build/rtkplot_ge.htm Makes all added points visible in the Google Earth view. ```javascript function ShowPoint() { if (ge == null) return; for (var i = 0; i < po ``` -------------------------------- ### Show All Points in Google Earth Source: https://github.com/tomojitakasu/rtklib/blob/master/app/rtkplot/Debug_Build/rtkplot_ge.htm Iterates through a collection of points and sets their visibility to 1 (visible). Assumes 'points' array and 'ge' object are defined. ```javascript function ShowPoint() { if (ge == null) return; for (var i = 0; i < points.length; i++) { var mark = points[i]; mark.setVisibility(1); } } ``` -------------------------------- ### Set Google Earth Options Source: https://github.com/tomojitakasu/rtklib/blob/master/app/rtkplot/Debug_Build/rtkplot_ge.htm Configures various Google Earth viewer options like navigation controls, scale legend, overview map, grid, status bar, and layers. ```javascript function SetOpts(f1,f2,f3,f4,f5,f6,f7,f8,f9,f10) { if (ge == null) return; var opt = ge.getOptions(); ge.getNavigationControl().setVisibility(f1?ge.VISIBILITY_SHOW:ge.VISIBILITY_HIDE); ge.getNavigationControl().setControlType(ge.NAVIGATION_CONTROL_SMALL); opt.setScaleLegendVisibility(f2); opt.setOverviewMapVisibility(f3); opt.setGridVisibility(f4); opt.setStatusBarVisibility(f5); ge.getLayerRoot().enableLayerById(ge.LAYER_TERRAIN,f6); ge.getLayerRoot().enableLayerById(ge.LAYER_ROADS,f7); ge.getLayerRoot().enableLayerById(ge.LAYER_BUILDINGS,f8); ge.getLayerRoot().enableLayerById(ge.LAYER_BUILDINGS_LOW_RESOLUTION,f8); ge.getLayerRoot().enableLayerById(ge.LAYER_BORDERS,f9); altmode = f10?ge.ALTITUDE_ABSOLUTE:ge.ALTITUDE_CLAMP_TO_GROUND; } ``` -------------------------------- ### Generate LineString Track Source: https://github.com/tomojitakasu/rtklib/blob/master/app/rtkplot/Debug_Build/rtkplot_ge.htm Generates a placemark with a line string geometry for displaying tracks. ```javascript function GenLine(name,color) { var pm = ge.createPlaceMark(''); var ls = ge.createLineString(''); var style = ge.createStyle(''); style.getLineStyle().setWidth(3); style.getLineStyle().getColor().set(color); pm.setDescription(name); pm.setGeometry(ls); pm.setStyleSelector(style); ge.getFeatures().appendChild(pm); return pm; } ``` -------------------------------- ### GPT Subroutine Definition Source: https://github.com/tomojitakasu/rtklib/blob/master/lib/iers/src/gpt.f.org Defines the GPT subroutine, its parameters, and associated variables. Includes constants and data initialization for geoid models. ```fortran SUBROUTINE GPT (DMJD,DLAT,DLON,DHGT,PRES,TEMP,UNDU) *+ * - - - - - - - - - * G P T * - - - - - - - - - * * This routine is part of the International Earth Rotation and * Reference Systems Service (IERS) Conventions software collection. * * This subroutine determines Global Pressure and Temperature (Boehm et al. 2007) * based on Spherical Harmonics up to degree and order 9. * * In general, Class 1, 2, and 3 models represent physical effects that * act on geodetic parameters while canonical models provide lower-level * representations or basic computations that are used by Class 1, 2, or * 3 models. * * Status: Class 1 model * * Class 1 models are those recommended to be used a priori in the * reduction of raw space geodetic data in order to determine * geodetic parameter estimates. * Class 2 models are those that eliminate an observational * singularity and are purely conventional in nature. * Class 3 models are those that are not required as either Class * 1 or 2. * Canonical models are accepted as is and cannot be classified as a * Class 1, 2, or 3 model. * * Given: * DMJD d Modified Julian Date * DLAT d Latitude given in radians (North Latitude) * DLON d Longitude given in radians (East Longitude) * DHGT d Ellipsoidal height in meters * * Returned: * PRES d Pressure given in hPa * TEMP d Temperature in degrees Celsius * UNDU d Geoid undulation in meters (Note 1) * * Notes: * * 1) This is from a 9x9 Earth Gravitational Model (EGM). * * Test case: * given input: DMJD = 55055D0 * DLAT = 0.6708665767D0 radians (NRAO, Green Bank, WV) * DLON = -1.393397187D0 radians * DHGT = 812.546 meters * expected output: PRES = 919.1930225603726967D0 hPa * TEMP = 28.94460920276309679D0 degrees Celsius * UNDU = -42.78796423912972813D0 meters * * References: * * Boehm, J., Heinkelmann, R. and Schuh, H., 2007, "Short Note: A * Global model of pressure and temperature for geodetic applications", * Journal of Geodesy, 81(10), pp. 679-683. * * Petit, G. and Luzum, B. (eds.), IERS Conventions (2010), * IERS Technical Note No. 36, BKG (2010) * * Revisions: * 2006 June 12 J. Boehm Original code * 2006 June 16 J. Boehm Accounted for geoid undulation * 2006 August 14 O. Montenbruck Recursions for Legendre polynomials * 2009 February 13 B.E. Stetzler Added header and copyright * 2009 March 30 B.E. Stetzler More modifications and defined twopi * 2009 March 31 B.E. Stetzler Provided test case * 2009 July 29 B.E. Stetzler Capitalized all variables for FORTRAN 77 * compatibility and corrected test case * latitude and longitude coordinates *----------------------------------------------------------------------- IMPLICIT NONE DOUBLE PRECISION DMJD,DLAT,DLON,DHGT,PRES,TEMP,UNDU DOUBLE PRECISION V(10,10),W(10,10), . AP_MEAN(55),BP_MEAN(55),AP_AMP(55),BP_AMP(55), . AT_MEAN(55),BT_MEAN(55),AT_AMP(55),BT_AMP(55), . A_GEOID(55),B_GEOID(55) INTEGER*4 I,N,M,NMAX,MMAX DOUBLE PRECISION TWOPI,DOY,TEMP0,PRES0, . APM,APA,ATM,ATA,HORT,X,Y,Z PARAMETER (TWOPI = 6.283185307179586476925287D0) DATA (A_GEOID(I),I=1,55)/ .-5.6195D-001,-6.0794D-002,-2.0125D-001,-6.4180D-002,-3.6997D-002, .+1.0098D+001,+1.6436D+001,+1.4065D+001,+1.9881D+000,+6.4414D-001, .-4.7482D+000,-3.2290D+000,+5.0652D-001,+3.8279D-001,-2.6646D-002, .+1.7224D+000,-2.7970D-001,+6.8177D-001,-9.6658D-002,-1.5113D-002, .+2.9206D-003,-3.4621D+000,-3.8198D-001,+3.2306D-002,+6.9915D-003, .-2.3068D-003,-1.3548D-003,+4.7324D-006,+2.3527D+000,+1.2985D+000, .+2.1232D-001,+2.2571D-002,-3.7855D-003,+2.9449D-005,-1.6265D-004, .+1.1711D-007,+1.6732D+000,+1.9858D-001,+2.3975D-002,-9.0013D-004, .-2.2475D-003,-3.3095D-005,-1.2040D-005,+2.2010D-006,-1.0083D-006, .+8.6297D-001,+5.8231D-001,+2.0545D-002,-7.8110D-003,-1.4085D-004, .-8.8459D-006,+5.7256D-006,-1.5068D-006,+4.0095D-007,-2.4185D-008/ DATA (B_GEOID(I),I=1,55)/ .+0.0000D+000,+0.0000D+000,-6.5993D-002,+0.0000D+000,+6.5364D-002, .-5.8320D+000,+0.0000D+000,+1.6961D+000,-1.3557D+000,+1.2694D+000, .+0.0000D+000,-2.9310D+000,+9.4805D-001,-7.6243D-002,+4.1076D-002, .+0.0000D+000,-5.1808D-001,-3.4583D-001,-4.3632D-002,+2.2101D-003, .-1.0663D-002,+0.0000D+000,+1.0927D-001,-2.9463D-001,+1.4371D-003, .-1.1452D-002,-2.8156D-003,-3.5330D-004,+0.0000D+000,+4.4049D-001, .+5.5653D-002,-2.0396D-002,-1.7312D-003,+3.5805D-005,+7.2682D-005, .+2.2535D-006,+0.0000D+000,+1.9502D-002,+2.7919D-002,-8.1812D-003, .+4.4540D-004,+8.8663D-005,+5.5596D-005,+2.4826D-006,+1.0279D-006/ ``` -------------------------------- ### Added Library Source Files in RTKLIB 2.2.1 Source: https://github.com/tomojitakasu/rtklib/blob/master/doc/doc/relnotes_2.2.1.txt New source files added in version 2.2.1. These files implement new functionalities or modules. ```c convrnx.c, rcvraw.c, rtcm.c ``` -------------------------------- ### Generate Placemark Marker Source: https://github.com/tomojitakasu/rtklib/blob/master/app/rtkplot/Debug_Build/rtkplot_ge.htm Generates a placemark with a custom icon for use as a marker. ```javascript function GenMark(name,mark_icon) { var pm = ge.createPlacemark(''); var icon = ge.createIcon(''); icon.setHref(mark_icon); var style = ge.createStyle(''); style.getIconStyle().setIcon(icon); style.getIconstyle().getHotSpot().set(0.5,ge.UNITS_FRACTION,0,ge.UNITS_FRACTION); pm.setDescription(name); pm.setStyleSelector(style); ge.getFeatures().appendChild(pm); return pm; } ``` -------------------------------- ### Compute Zenith Delay Coefficient (VMF1W) Source: https://github.com/tomojitakasu/rtklib/blob/master/lib/iers/src/vmf1_ht.f.org Calculates the zenith delay coefficient for the VMF1 model, often referred to as VMF1W. This is used in conjunction with other atmospheric parameters to determine total delays. ```Fortran BW = 0.00146D0 CW = 0.04391D0 BETA = BW/( SINE + CW ) GAMMA = AW/( SINE + BETA) TOPCON = (1D0 + AW/(1D0 + BW/(1D0 + CW))) VMF1W = TOPCON/(SINE+GAMMA) ``` -------------------------------- ### Set Map View Source: https://github.com/tomojitakasu/rtklib/blob/master/app/rtkplot/Release_Build/rtkplot_gm.htm Sets the center and zoom level of the map. Returns early if the map is not initialized. ```javascript function SetView(lat,lon,zoom) { if (map == null) return; map.setCenter(new google.maps.LatLng(lat,lon)); map.setZoom(zoom); } ``` -------------------------------- ### Added APIs in RTKLIB 2.2.1 Source: https://github.com/tomojitakasu/rtklib/blob/master/doc/doc/relnotes_2.2.1.txt List of new API functions added in version 2.2.1. These functions provide new capabilities for data processing and receiver interaction. ```c satno(), satsys(), satid2no(), satno2id(), traceb(), geph2pos(), convrnx(), getbitu(), getbits(), crc32(), crc24q(), decode_word(), decode_frame(), init_raw(), free_raw(), input_raw(), input_rawf(), input_oem4(), input_oem3(), input_ubx(), input_ss2(), input_cres(), input_oem4f(), input_oem3f(), input_ubxf(), input_ss2f(), input_cresf(), init_rtcm(), free_rtcm(), input_rtcm2(), input_rtcm3(), input_rctm2f(), input_rtcm3f(), outnmea_rmc(), outnmea_gga(), outnmea_gsa(), outnmea_gsv() ``` -------------------------------- ### Show Marker Source: https://github.com/tomojitakasu/rtklib/blob/master/app/rtkplot/Release_Build/rtkplot_gm.htm Makes a marker visible on the map, identified by its title. Searches through the 'marks' array. ```javascript function ShowMark(title) { for (var i in marks) { if (marks[i].title==title) { marks[i].setVisible(true); break; } } } ``` -------------------------------- ### Set Camera Tilt Source: https://github.com/tomojitakasu/rtklib/blob/master/app/rtkplot/Debug_Build/rtkplot_ge.htm Sets the camera's tilt (angle from the horizon) in degrees. ```javascript function SetTilt(angle) { if (ge == null) return; var la = ge.getView().copyAsLookAt(ge.ALTITUDE_RELATIVE_TO_GROUND); la.setTilt(angle); ge.getView().setAbstractView(la); } ``` -------------------------------- ### Modified APIs in RTKLIB 2.2.1 Source: https://github.com/tomojitakasu/rtklib/blob/master/doc/doc/relnotes_2.2.1.txt List of API functions that have been modified in version 2.2.1. Check the documentation for specific changes in behavior or parameters. ```c outrnxobsh(), outrnxobsb(), outrnxnavh(), outrnxnavb(), outsols(), outsol(), sbsreadmsg(), sbsreadmsgt(), sbsdecodemsg(), sbspntpos(), strsvrstart(), rtksvrstart() ``` -------------------------------- ### Set Camera Heading Source: https://github.com/tomojitakasu/rtklib/blob/master/app/rtkplot/Debug_Build/rtkplot_ge.htm Sets the camera's heading (direction it's facing) in degrees. ```javascript function SetHeading(angle) { if (ge == null) return; var la = ge.getView().copyAsLookAt(ge.ALTITUDE_RELATIVE_TO_GROUND); la.setHeading(angle); ge.getView().setAbstractView(la); } ``` -------------------------------- ### Set Camera View Source: https://github.com/tomojitakasu/rtklib/blob/master/app/rtkplot/Debug_Build/rtkplot_ge.htm Sets the camera's position and orientation in Google Earth. ```javascript function SetView(lat,lon,range,heading) { if (ge == null) return; var la = ge.getView().copyAsLookAt(ge.ALTITUDE_RELATIVE_TO_GROUND); la.setLatitude (lat); la.setLongitude(lon); la.setRange(range*1000.0); la.setHeading(heading); ge.getView().setAbstractView(la); } ``` -------------------------------- ### Show/Hide Placemark Marker Source: https://github.com/tomojitakasu/rtklib/blob/master/app/rtkplot/Debug_Build/rtkplot_ge.htm Controls the visibility of a specific placemark marker. ```javascript function ShowMark(index) { if (ge == null) return; var mark = index==1?mark1:mark2; mark.setVisibility(1); } function HideMark(index) { if (ge == null) return; var mark = index==1?mark1:mark2; mark.setVisibility(0); } ``` -------------------------------- ### VMF1 Mapping Function Calculation (Fortran) Source: https://github.com/tomojitakasu/rtklib/blob/master/lib/iers/src/vmf1.f.org Calculates the hydrostatic (VMF1H) and wet (VMF1W) mapping functions using site-specific coefficients and atmospheric conditions. Ensure input latitude is in radians. ```Fortran SUBROUTINE VMF1 (AH,AW,DMJD,DLAT,ZD,VMF1H,VMF1W) *+ * - - - - - - - - - * V M F 1 * - - - - - - - - - * * This routine is part of the International Earth Rotation and * Reference Systems Service (IERS) Conventions software collection. * * This subroutine determines the Vienna Mapping Function 1 (VMF1) (Boehm et al, 2006). * This is the site dependent version. * * In general, Class 1, 2, and 3 models represent physical effects that * act on geodetic parameters while canonical models provide lower-level * representations or basic computations that are used by Class 1, 2, or * 3 models. * * Status: Class 1 model * * Class 1 models are those recommended to be used a priori in the * reduction of raw space geodetic data in order to determine * geodetic parameter estimates. * Class 2 models are those that eliminate an observational * singularity and are purely conventional in nature. * Class 3 models are those that are not required as either Class * 1 or 2. * Canonical models are accepted as is and cannot be classified as a * Class 1, 2, or 3 model. * * Given: * AH d Hydrostatic coefficient a (Note 1) * AW d Wet coefficient a (Note 1) * DMJD d Modified Julian Date * DLAT d Latitude given in radians (North Latitude) * ZD d Zenith distance in radians * * Returned: * VMF1H d Hydrostatic mapping function (Note 2) * VMF1W d Wet mapping function (Note 2) * * Notes: * * 1) The coefficients can be obtained from the primary website * http://ggosatm.hg.tuwien.ac.at/DELAY/ or the back-up website * http://www.hg.tuwien.ac.at/~ecmwf1/. * * 2) The mapping functions are dimensionless scale factors. * * Test case: * given input: AH = 0.00125711D0 * AW = 0.00058801D0 * DMJD = 55055D0 * DLAT = 0.6708665767D0 radians (NRAO, Green Bank, WV) * ZD = 1.278564131D0 radians * * expected output: VMF1H = 3.425054275537719128D0 * VMF1W = 3.449100942061193553D0 * * References: * * Boehm, J., Werl, B., and Schuh, H., (2006), * "Troposhere mapping functions for GPS and very long baseline * interferometry from European Centre for Medium-Range Weather * Forecasts operational analysis data," J. Geophy. Res., Vol. 111, * B02406, doi:10.1029/2005JB003629 * * Petit, G. and Luzum, B. (eds.), IERS Conventions (2010), * IERS Technical Note No. 36, BKG (2010) * * Revisions: * 2005 October 02 J. Boehm Original code * 2009 August 17 B.E. Stetzler Added header and copyright * 2009 August 17 B.E. Stetzler More modifications and defined twopi * 2009 August 17 B.E. Stetzler Provided test case * 2009 August 17 B.E. Stetzler Capitalized all variables for FORTRAN 77 * compatibility * 2010 September 08 B.E. Stetzler Provided new primary website to obtain * VMF coefficients *---------------------------------------------------------------------- IMPLICIT NONE DOUBLE PRECISION AH, AW, DMJD, DLAT, ZD, VMF1H, VMF1W DOUBLE PRECISION DOY, BH, C0H, C11H, C10H, PHH, CH, SINE, BETA, . GAMMA, TOPCON, BW, CW, PI, TWOPI PARAMETER ( PI = 3.1415926535897932384626433D0 ) PARAMETER (TWOPI = 6.283185307179586476925287D0) *+--------------------------------------------------------------------* * Reference day is 28 January 1980 * This is taken from Niell (1996) to be consistent *---------------------------------------------------------------------- DOY = DMJD - 44239D0 + 1 - 28 BH = 0.0029D0; C0H = 0.062D0 IF (DLAT.LT.0D0) THEN ! southern hemisphere PHH = PI C11H = 0.007D0 C10H = 0.002D0 ELSE ! northern hemisphere PHH = 0D0 C11H = 0.005D0 C10H = 0.001D0 END IF CH = C0H + ((DCOS(DOY/365.25D0*TWOPI + PHH)+1D0)*C11H/2D0 . + C10H)*(1D0-DCOS(DLAT)) SINE = DSIN(PI/2D0 - ZD) BETA = BH/( SINE + CH ) GAMMA = AH/( SINE + BETA) TOPCON = (1D0 + AH/(1D0 + BH/(1D0 + CH))) VMF1H = TOPCON/(SINE+GAMMA) BW = 0.00146D0 CW = 0.04391D0 BETA = BW/( SINE + CW ) GAMMA = AW/( SINE + BETA) TOPCON = (1D0 + AW/(1D0 + BW/(1D0 + CW))) VMF1W = TOPCON/(SINE+GAMMA) * Finished. *+---------------------------------------------------------------------- * * Copyright (C) 2008 * IERS Conventions Center * * ================================== * IERS Conventions Software License * ================================== * * NOTICE TO USER: * * BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING TERMS AND CONDITIONS * WHICH APPLY TO ITS USE. * ``` -------------------------------- ### Deleted APIs in RTKLIB 2.2.1 Source: https://github.com/tomojitakasu/rtklib/blob/master/doc/doc/relnotes_2.2.1.txt List of API functions removed in version 2.2.1. These functions are no longer available for use. ```c readrnxf(), decodefrm(), decodenav(), addobs(), addnav(), addsbs(), addionutc(), convlog(), readlog(), readlogs(), decodelog(), rtksvrgetsol(), SAT(), PRN(), decodenov(), convnov(), readnov(), decodeubx(), convubx(), readubx(), decodess2(), convss2(), readss2(), decodecres(), convcres(), readcres() ``` -------------------------------- ### Set Placemark Position Source: https://github.com/tomojitakasu/rtklib/blob/master/app/rtkplot/Debug_Build/rtkplot_ge.htm Sets the latitude, longitude, and altitude for a specific placemark marker. ```javascript function SetMark(index,lat,lon,alt) { if (ge == null) return; var mark = index==1?mark1:mark2; var point = ge.createPoint(''); point.set(lat,lon,alt,altmode,1,1); mark.setGeometry(point); } ```