obschk.txt - 1.1 - 2006/10/20 ---------------------------------------------------------------------- Program obschk DOCUMENTATION ---------------------------------------------------------------------- Purpose - to check the Blue Book B-file and the G-file. To execute on the PC, two files are required - obschk.exe and contrib.dat Upon executing obschk, the user is queried for a B-file (4-digit or 3-digit ssn), a G-file (optional), a short (without 70I - 73I rec) output file and a long (with 70I - 73I rec) output file. B-file records checked are: 20,22,25,27,30,32,40,42,45,50,51,52,53,54,60, 70,71,72,80,82,84,85,86 and data set id rec Blue Book G-file records checked are: B,C,D,E,F and I Obschk is not a complete checking program. Program newchkob performs additional syntax and structure checks on the blue book B-file and should be run prior to obschk. The output file consists of two parts: (1) the blue book B-file data check and (2) the blue book G-file data check: 1. B-file data check - an error message followed by the B-file record may be written to the output file. error messages records -------------- ------- data set id rec submitting agency cc 19-24 data set id not in contrib.dat file 12 century field obs began cc 11-12 is not 18,19,20 12 12 century field obs end cc 17-18 is not 18,19,20 12 12 year field obs began cc 13-14 is non-integer 12 12 year field obs end cc 19-20 is non-integer 12 12 end year cc 17-20 is less than began year cc 11-14 12 12 end year cc 17-20 exceeds began year cc 11-14 by more 12 than 99 the derived 4-digit year __ is not between *12* year obs 20,30,40,45, began __ and year obs end __ 50,52,60 standpt ssn cc 11-14 not found in 80 or 82 records 20,22,30,32, 40,42,45,50, 51,52,54,60 forept ssn cc 51-54 not found in 80 or 82 records 20,22,40,42,45, 60 forept ssn cc 46-49 not found in 80 or 82 records 50,51,52,54 left forept ssn cc 51-54 not found in 80 or 82 records 30,32 right forept ssn cc 72-75 not found in 80 or 82 records 30,32 job specific instrument number cc 33-35 non-integer 20,30,40,45,60 job specific instrument number cc 33-35 not found in 20,30,40,45,60 70 records direction cc 64-72 non-integer 20,22 angle cc 64-71 non-integer 30,32 VA or ZD cc 64-71 non-integer 40,42 sigma cc 77-80 non-integer 20,22,30,32, 40,42,52,60 elevation difference cc 64-72 non-integer 45 sigma cc 73-76 non-integer 45 70 rec equip code not 400-899 50,51,52,53,54 distance code cc 73 is not THS 50 distance code cc 73 is not S 51 distance code cc 73 is not XG 52 distance code cc 74 is not XG 54 distance cc 64-72 non-integer 50,51,52 distance cc 64-73 non-integer 54 job specific instrument number cc 23-25 non-integer 50,51,52,54 job specific instrument number cc 23-25 not found in 70 50,51,52,54 records sigma cc 78-80 non-integer 54 eta cc 15-16 is blank 60 eta cc 15-18 non-integer 60 direction of eta cc 19 is not EW 60 azimuth cc 64-71 is blank 60 azimuth cc 64-71 non-integer 60 origin of azimuth cc 72 is not NS 60 comp code cc 20 is not AL or blank (old version) 60 comp code cc 20 is not AL (new version) 60 70 record equipment code cc 14-16 non-integer, exec term 70 70 record job specific instrument number cc 11-13 70 non-integer, exec term 70 record instrument serial number cc 71-80 is blank 70 70 record instrument serial number cc 71-80 is 70 not left justified number of 70 records exceeds 100, exec term 70 duplicate job specific instrument number cc 11-13 with 70 a different equipment code cc 14-16 exists in 70 records 71 record job specific antenna number cc 11-13 71 non-integer, exec term 71 record job specific antenna number cc 11-13 71 blank, exec term 71 record ngs antenna code 14-29 is not left justified 71 71 record ngs antenna code 14-29 is blank 71 71 record antenna serial number cc 30-41 is blank 71 71 record antenna serial number cc 30-41 is not left 71 justified 71 record antenna phase pattern file 42-53 is not left 71 justified 71 record antenna phase pattern file 42-53 is blank 71 71 record source organization cc 54-59 is not left 71 justified 71 record source organization cc 54-59 is blank 71 the number of 71 records exceeds 100 71 duplicate job specific antenna number exists in 71 records 71 71 and 72 records not allowed in the same bfile 71,72 72 record job specific antenna number cc 11-13 72 non-integer, exec term 72 record job specific antenna number cc 11-13 72 blank, exec term 72 record ngs antenna code 17-36 is not left justified 72 72 record ngs antenna code 17-36 is blank 72 72 record antenna serial number cc 45-64 is blank 72 72 record antenna serial number cc 45-64 is not left 72 justified the number of 72 records exceeds 100 72 duplicate job specific antenna number exists in 72 records 72 date field cc 35-40 non-integer 50,52,54 year field cc 35-36 blank 50,52,54 date field cc 40-45 non-integer 20,22,30,32, 40,42,45,60 year field cc 40-41 blank 20,22,30,32, 40,42,45,60 hours field cc 41-44 non-integer 50,52,54 time zone code cc 45 not NOPQRSTUVWXYZ 50,52,54 hours field cc 46-49 non-integer 20,22,30,32, 40,42,45,60 time zone code cc 50 not NOPQRSTUVWXYZ 20,22,30,32, 40,42,45,60 number of 25 records exceeds 2000, exec term 25 25 record job specific instrument number cc 28-30 25 non-integer, exec term 25 record job specific instrument number cc 28-30 is blank 25 25 record job specific antenna number cc 33-35 25 non-integer, exec term 27 record antenna height cc 25-29 non-integer, exec term 27 warning - 27 rec ant ht cc 25-29 is zero 27 27 rec ARP ht cc 56-60 non-integer, execution terminated 27 warning - 27 rec ARP ht cc 56-60 is zero 27 warning - 27 ant ht cc25-29 and ARP ht cc56-60 are equal 27 warning - 27 ant ht cc25-29 and ARP ht cc 56-60 are both 27 blank 27 record ssn cc 11-14 does not match preceding 25,27 25 record ssn cc 11-14, exec term number of 80 records exceeds 9999, exec term 80 80 record latitude cc 45-55 non-integer 80 80 record longitude cc 57-68 non-integer 80 80 record elevation cc 70-75 non-integer 80 80 record elevation code cc 76 not ABCDFGHJKLMPRTV 80 80 record order type code cc 79-80 not in annex E 80 number of 82 records exceeds 9999, exec term 82 84 record geoid ht cc 72-76 non-integer (old version) 84 84 record sigma cc 77-80 non-integer (old version) 84 84 record geoid ht cc 70-75 non-integer (new version) 84 84 record sigma cc 76-80 non-integer (new version) 84 85 record deflection model code cc 62 not ACHJLMNPQTb 85 85 record meridional component cc 63-67 non-integer 85 85 record direction of meridional component cc 68 not NS 85 85 record meridional component sigma cc 69-71 non-integer 85 85 record prime-vertical component cc 72-76 non-integer 85 85 record direction of prime-vertical component cc 77 85 not EW 85 record prime-vertical component sigma cc 78-80 85 non-integer 86 record orthometric height cc 17-23 non-integer 86 86 record orthometric height code cc 24 not ABCDFGHJKLMPRTV 86 86 record ortho height order and class cc 25-26 not 86 10/11/12/20/21/22/30/40/3 / / 86 record ortho height NGSIDB indicator cc 27 not YN 86 86 record ortho height datum cc 28-29 not 86 00/29/55/85/88/AS/LT/NM/PR 86 record ortho height organization cc 30-35 not in 86 contrib.dat file 86 record geoid height cc 36-42 non-integer 86 86 record geoid height code cc 43 not BCDEFGHJPQTUVWX 86 86 record ellipsoid height cc 46-52 non-integer 86 86 record ellipsoid height code cc 53 not ABCDE 86 86 record ellipsoid height order and class cc 54-55 not 86 11/12/21/22/31/32/41/42/51/52/ 86 record ellipsoid height datum cc 56 not ABCDEFGZ 86 2. G-file data check - 70I, 71I, 72I, 73I and 76I records are generated and written to the output file. These records are used in program bbload to load GPS data into the NGSIDB. As these records are being written an error message followed by the G-file record may be written to the output file. The 70I, 71I, 72I, 73I and 76I records are included in obschk to facilitate the location of GPS data errors. The record formats for these records are: 70I record - one for each B record (each grp_no). This data is loaded into the NGSIDB table by bbload. cc 1:3 - 70I cc 5:8 - GRP_NO one generated for each B record cc 10:17 - START_DATE B record cc 2 - 9 cc 19:22 - START_TIME B record cc 10 - 13 cc 24:31 - END_DATE B record cc 14 - 21 cc 33:36 - END_TIME B record cc 22 - 25 cc 38:52 - SOFTWARE B record cc 28 - 42 cc 54:58 - ORBIT_SOURCE B record cc 43 - 47 cc 60:64 - ORBIT_ACCU B record cc 48 - 51 cc 66:67 - REFER_SYS B record cc 52 - 53 cc 69:70 - MET_USE B record cc 54 - 55 cc 72:73 - ION_USE B record cc 56 - 57 cc 75:80 - PROCS_AGENCY B record cc 61 - 66 cc 82:83 - SPA_TYPE default = 7 (G-file GPS) cc 85:87 - IDB 'IDB' if data obtained from NGSIDB retrieval _______________________________________________________________ 71I record - one for each C record (each vect_id). This data is loaded into the table by bbload. cc 1:3 - 71I cc 5:8 - VECT_ID one generated for each C and F record cc 10:13 - VECT_IN_GRP one generated for each C and F rec in the group cc 15:18 - GRP_NO one generated for each B record cc 20:23 - STANDPT SSN C record cc 2 - 5 cc 25:28 - FOREPT SSN C record cc 6 - 9 cc 33:44 - DELTA_X C record cc 10 - 20 cc 46:52 - STDDEV_X C record cc 21 - 25 cc 54:68 - DELTA_Y C record cc 26 - 36 cc 70:76 - STDDEV_Y C record cc 37 - 41 cc 78:92 - DELTA_Z C record cc 42 - 52 cc 94:100 - STDDEV_Z C record cc 53 - 57 cc 102:102 - REJECT C record cc 58 cc 104:105 - SOL_FREQ B record cc 75- 76 cc 107:108 - SOL_DIFF B record cc 77 - 78 cc 110:111 - SOL_BIAS B record cc 79 - 80 cc 113:114 - FREQ_STD default = 1 cc 116:118 - IDB 'IDB' if data obtained from NGSIDB retrieval -------------------------------------------------------------------------------- 71I record - one for each F record (each vect_id). This data is loaded into the table by bbload. cc 1:3 - 71I cc 5:8 - VECT_ID one generated for each C and F record cc 10:13 - VECT_IN_GRP one generated for each C and F rec in the group cc 15:18 - GRP_NO one generated for each B record cc 20:23 - STANDPT SSN F record cc 2 - 5 cc 25:28 - FOREPT SSN F record cc 6 - 9 cc 33:44 - DELTA_X F record cc 10 - 22 cc 46:52 - STDDEV_X F record cc 23 - 27 cc 54:68 - DELTA_Y F record cc 28 - 40 cc 70:76 - STDDEV_Y F record cc 41 - 45 cc 78:92 - DELTA_Z F record cc 46 - 58 cc 94:100 - STDDEV_Z F record cc 59 - 63 cc 102:102 - REJECT F record cc 64 cc 104:105 - SOL_FREQ B record cc 75- 76 cc 107:108 - SOL_DIFF B record cc 77 - 78 cc 110:111 - SOL_BIAS B record cc 79 - 80 cc 113:114 - FREQ_STD default = 1 cc 116:118 - IDB 'IDB' if data obtained from NGSIDB retrieval _______________________________________________________________ 72I record - one for each correlation on a D record. This data is loaded into the table by bbload. cc 1:3 - 72I cc 5:8 - VECT1_ID first vector in D record correlation cc 10:13 - VECT2_ID second vector in D record correlation cc 15:15 - VECT1_COMP first vector component in D record correlation cc 17:17 - VECT2_COMP second vector component in D record correlation cc 19:28 - CORRELATION D record correlation cc 30:32 - IDB 'IDB' if data obtained from NGSIDB retrieval ---------------------------------------------------------------- 76I record - one for each covariance on a E record. This data is loaded into the table by bbload. cc 1:3 - 76I cc 5:8 - VECT1_ID first vector in E record covariance cc 10:13 - VECT2_ID second vector in E record covariance cc 15:15 - VECT1_COMP first vector component in E record covariance cc 17:17 - VECT2_COMP second vector component in E record covariance cc 19:31 - COVARIANCE E record covariance cc 33:35 - IDB 'IDB' if data obtained from NGSIDB retrieval _______________________________________________________________ 73I record - one for each ssn on each C record. This data is loaded into the table by bbload. cc 1:3 - 73I cc 5:8 - GRP_NO one generated for each B record cc 10:15 - ANT_HEIGHT 27 record cc 25 - 29 cc 17:26 - MEDIA_ID 25 record media_id cc 15 - 24 cc 28:31 - SSN 25 record ssn cc 11 - 14 cc 33:35 - EQUIP_CODE 70 record equipment code cc 14 - 16 cc 37:46 - EQUIP_SN 70 record instrument serial number cc 71 - 80 cc 48:50 - IDB 'IDB' if data obtained from NGSIDB retrieval cc 57:62 - ARP_HT 27 record cc 56 - 60 comments regarding generation of 73I records: a. there should be a 25 record for each occupation to generate 73I records for the table b. for each 25 record, the 25 record media_id is matched with a C record media_id to determine the group number c. the 25 job specific instrument number is matched with a 70 record job specific instrument number to determine EQUIP_CODE and EQUIP_SN d. if no media_id match is made, a 73I record is not written to the file e. if no job specific instrument number match is made a 73I record is written without a EQUIP_CODE and EQUIP_SN ________________________________________________________________ error messages records -------------- ------- (the following are associated with the 70I records) B record number of vectors in group cc 26-28 non-integer B B record orbit_accu cc 48-51 non-integer B B record starting date cc 2-9 non-integer B B record starting time cc 10-13 non-integer B B record ending date cc 14-21 non-integer B B record ending time cc 22-25 non-integer B B record starting date cc 2-9 or starting time cc 10-13 B or ending date cc 14-21 or ending time cc 22-25 is blank B record starting date cc 2-9 is greater than ending B date cc 14-21 B record starting date cc 2-9 equals ending date cc 14-21 B and starting time cc 10-13 is greater than or equal to ending time cc 22-25 number of unique B record orbit_sources cc 43-47 B exceeds 99 B record orbit source cc 43-47 not B AEROS/BROAD/COD/DMA/EMR/IGS/JPL/NGS/NSWC/PCISE/SIO/UNK/ valid orbit sources are: AEROS - Aero Service Corp BROAD - Broadcast COD - Center for Orbit Determination DMA - Defense Mapping Agency EMR - Energy Mines and Resources IGS - International GPS Service JPL - Jet Propulsion Laboratory NGS - National Geodetic Survey NSWC - Naval Surface Warfare Center PCISE - Precise SIO - Scripps Institute of Oceanography UNK - Unknown B record processing agency cc 61-66 not in contrib.dat file B B record ref system code cc 52-53 not 1/2/3/4/5/6/7/8/9/ B 10/11/12/13/14/15/16/17/18/19/20/21/22/23/24/98/99/ B record met use code cc 54-55 not 1/2/3/ B B record ion use code cc 56-57 not 1/2/3/ B B record solution frequency 75-76 not L1/L2/IF/WL/OT/K1/ B K2/KI/KW/P1/P2/PI/PW/ B record solution difference cc 77-78 not TD/DD/SD/ B B record solution bias cc 79-80 not FL/FX/PF/ B I rec antenna phase pattern file cc 2-13 not left-justified I I record antenna agency cc 22-27 not in contrib.dat file I I record date cc 28-35 blank I I record date cc 28-35 blank I I record date cc 28-35 non-integer I (the following are associated with the 71I records) the number of C/F rec in a group exceeds 50, exec term C,F the C/F rec count exceeds B record number of vectors C,F in group cc 26-28 origin ssn cc 2-5 not found in 80 records C differential ssn cc 6-9 not found in 80 records C C record delta X cc 10-20 non-integer C C record std dev X cc 21-25 non-integer C C record delta Y cc 26-36 non-integer C C record std dev Y cc 37-41 non-integer C C record delta Z cc 42-52 non-integer C C record std dev Z cc 53-57 non-integer C C record rejection code cc 58 is not R or blank C the number of C/F rec in G-file exceeds 5000 C,F F record delta X cc 10-22 non-integer F F record std dev X cc 23-27 non-integer F F record delta Y cc 28-40 non-integer F F record std dev Y cc 41-45 non-integer F F record delta Z cc 46-58 non-integer F F record std dev Z cc 59-63 non-integer F origin ssn cc 2-5 not matched with 25 record ssn F differential ssn cc 6-9 not matched with 25 F F record reject cc 64 is not R or blank F (the following are associated with the 72I records) 72I/76I rec for group __ not written to output. D,E correlations/covariances read - __, corr/cov required -__ D record row number cc 2-4 non-integer D D record col number cc 5-7 non-integer D D record correlation cc 8-16 non-integer D D record row number cc 17-19 non-integer D D record col number cc 20-22 non-integer D D record correlation cc 23-31 non-integer D D record row number cc 32-34 non-integer D D record col number cc 35-37 non-integer D D record correlation cc 38-46 non-integer D D record row number cc 47-49 non-integer D D record col number cc 50-52 non-integer D D record correlation cc 53-61 non-integer D D record row number cc 62-64 non-integer D D record col number cc 65-67 non-integer D D record correlation cc 68-76 non-integer D (the following are associated with the 76I records) 72I/76I rec for group __ not written to output. D,E correlations/covariances read - __, corr/cov required - __ E record row number cc 2-4 non-integer E E record col number cc 5-7 non-integer E E record covariance cc 8-19 non-integer E E record row number cc 20-22 non-integer E E record col number cc 23-25 non-integer E E record covariance cc 26-37 non-integer E E record row number cc 38-40 non-integer E E record col number cc 41-43 non-integer E E record covariance cc 44-55 non-integer E E record row number cc 56-58 non-integer E E record col number cc 59-61 non-integer E E record covariance cc 62-73 non-integer E (the following are associated with the 73I records) 70 record job specific number cc 11-13 not found for 70,C 25 record job specific instrument number cc 28-30 of ___ 71 record job specific number cc 11-13 not found for 71,C 25 record job specific antenna number cc 33-35 of ___ 72 record job specific number cc 11-13 not found for 72,C 25 record job specific antenna number cc 33-35 of ___ 27 record antenna height cc 25-29 is zero 27 25 record media_id cc 15-24 not found for C record 25,C origin station media_id cc 59-68 of ____ 25 record media_id cc 15-24 not found for C record 25,C differential station media_id cc 69-78 of ___ number of C record media_ids in a group exceeds 50 C all 25 records used 25,C 25 records not used 25,C ssn media id instr no end obschk.txt __________________________________________________________________