diff --git a/definitions/grib2/localConcepts/kwbc/name.def b/definitions/grib2/localConcepts/kwbc/name.def index 9b1810666..372f82ba0 100644 --- a/definitions/grib2/localConcepts/kwbc/name.def +++ b/definitions/grib2/localConcepts/kwbc/name.def @@ -1625,6 +1625,282 @@ parameterCategory = 19 ; parameterNumber = 234 ; } +#Simulated Brightness Temperature for AMSRE on Aqua, Channel 10 +'Simulated Brightness Temperature for AMSRE on Aqua, Channel 10' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 11 ; + } +#Simulated Brightness Temperature for AMSRE on Aqua, Channel 11 +'Simulated Brightness Temperature for AMSRE on Aqua, Channel 11' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 12 ; + } +#Simulated Brightness Temperature for AMSRE on Aqua, Channel 12 +'Simulated Brightness Temperature for AMSRE on Aqua, Channel 12' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 13 ; + } +#Simulated Brightness Temperature for AMSRE on Aqua, Channel 9 +'Simulated Brightness Temperature for AMSRE on Aqua, Channel 9' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 10 ; + } +#Simulated Brightness Counts for GOES 12, Channel 3 +'Simulated Brightness Counts for GOES 12, Channel 3' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 4 ; + } +#Simulated Brightness Counts for GOES 12, Channel 4 +'Simulated Brightness Counts for GOES 12, Channel 4' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 5 ; + } +#Simulated Brightness Temperature for GOES 11, Channel 2 +'Simulated Brightness Temperature for GOES 11, Channel 2' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 6 ; + } +#Simulated Brightness Temperature for GOES 11, Channel 3 +'Simulated Brightness Temperature for GOES 11, Channel 3' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 7 ; + } +#Simulated Brightness Temperature for GOES 11, Channel 4 +'Simulated Brightness Temperature for GOES 11, Channel 4' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 8 ; + } +#Simulated Brightness Temperature for GOES 11, Channel 5 +'Simulated Brightness Temperature for GOES 11, Channel 5' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 9 ; + } +#Simulated Brightness Temperature for GOES 12, Channel 2 +'Simulated Brightness Temperature for GOES 12, Channel 2' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 0 ; + } +#Simulated Brightness Temperature for GOES 12, Channel 3 +'Simulated Brightness Temperature for GOES 12, Channel 3' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 1 ; + } +#Simulated Brightness Temperature for GOES 12, Channel 4 +'Simulated Brightness Temperature for GOES 12, Channel 4' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 2 ; + } +#Simulated Brightness Temperature for GOES 12, Channel 6 +'Simulated Brightness Temperature for GOES 12, Channel 6' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 3 ; + } +#Simulated Brightness Temperature for ABI GOES-16, Band-10 +'Simulated Brightness Temperature for ABI GOES-16, Band-10' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 23 ; + } +#Simulated Brightness Temperature for ABI GOES-16, Band-11 +'Simulated Brightness Temperature for ABI GOES-16, Band-11' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 24 ; + } +#Simulated Brightness Temperature for ABI GOES-16, Band-12 +'Simulated Brightness Temperature for ABI GOES-16, Band-12' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 25 ; + } +#Simulated Brightness Temperature for ABI GOES-16, Band-13 +'Simulated Brightness Temperature for ABI GOES-16, Band-13' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 26 ; + } +#Simulated Brightness Temperature for ABI GOES-16, Band-14 +'Simulated Brightness Temperature for ABI GOES-16, Band-14' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 27 ; + } +#Simulated Brightness Temperature for ABI GOES-16, Band-15 +'Simulated Brightness Temperature for ABI GOES-16, Band-15' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 28 ; + } +#Simulated Brightness Temperature for ABI GOES-16, Band-16 +'Simulated Brightness Temperature for ABI GOES-16, Band-16' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 29 ; + } +#Simulated Brightness Temperature for ABI GOES-16, Band-7 +'Simulated Brightness Temperature for ABI GOES-16, Band-7' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 20 ; + } +#Simulated Brightness Temperature for ABI GOES-16, Band-8 +'Simulated Brightness Temperature for ABI GOES-16, Band-8' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 21 ; + } +#Simulated Brightness Temperature for ABI GOES-16, Band-9 +'Simulated Brightness Temperature for ABI GOES-16, Band-9' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 22 ; + } +#Simulated Brightness Temperature for ABI GOES-17, Band-10 +'Simulated Brightness Temperature for ABI GOES-17, Band-10' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 39 ; + } +#Simulated Brightness Temperature for ABI GOES-17, Band-11 +'Simulated Brightness Temperature for ABI GOES-17, Band-11' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 40 ; + } +#Simulated Brightness Temperature for ABI GOES-17, Band-12 +'Simulated Brightness Temperature for ABI GOES-17, Band-12' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 41 ; + } +#Simulated Brightness Temperature for ABI GOES-17, Band-13 +'Simulated Brightness Temperature for ABI GOES-17, Band-13' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 42 ; + } +#Simulated Brightness Temperature for ABI GOES-17, Band-14 +'Simulated Brightness Temperature for ABI GOES-17, Band-14' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 43 ; + } +#Simulated Brightness Temperature for ABI GOES-17, Band-15 +'Simulated Brightness Temperature for ABI GOES-17, Band-15' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 44 ; + } +#Simulated Brightness Temperature for ABI GOES-17, Band-16 +'Simulated Brightness Temperature for ABI GOES-17, Band-16' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 45 ; + } +#Simulated Brightness Temperature for ABI GOES-17, Band-7 +'Simulated Brightness Temperature for ABI GOES-17, Band-7' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 36 ; + } +#Simulated Brightness Temperature for ABI GOES-17, Band-8 +'Simulated Brightness Temperature for ABI GOES-17, Band-8' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 37 ; + } +#Simulated Brightness Temperature for ABI GOES-17, Band-9 +'Simulated Brightness Temperature for ABI GOES-17, Band-9' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 38 ; + } +#Simulated Reflectance Factor for ABI GOES-16, Band-1 +'Simulated Reflectance Factor for ABI GOES-16, Band-1' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 14 ; + } +#Simulated Reflectance Factor for ABI GOES-16, Band-2 +'Simulated Reflectance Factor for ABI GOES-16, Band-2' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 15 ; + } +#Simulated Reflectance Factor for ABI GOES-16, Band-3 +'Simulated Reflectance Factor for ABI GOES-16, Band-3' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 16 ; + } +#Simulated Reflectance Factor for ABI GOES-16, Band-4 +'Simulated Reflectance Factor for ABI GOES-16, Band-4' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 17 ; + } +#Simulated Reflectance Factor for ABI GOES-16, Band-5 +'Simulated Reflectance Factor for ABI GOES-16, Band-5' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 18 ; + } +#Simulated Reflectance Factor for ABI GOES-16, Band-6 +'Simulated Reflectance Factor for ABI GOES-16, Band-6' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 19 ; + } +#Simulated Reflectance Factor for ABI GOES-17, Band-1 +'Simulated Reflectance Factor for ABI GOES-17, Band-1' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 30 ; + } +#Simulated Reflectance Factor for ABI GOES-17, Band-2 +'Simulated Reflectance Factor for ABI GOES-17, Band-2' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 31 ; + } +#Simulated Reflectance Factor for ABI GOES-17, Band-3 +'Simulated Reflectance Factor for ABI GOES-17, Band-3' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 32 ; + } +#Simulated Reflectance Factor for ABI GOES-17, Band-4 +'Simulated Reflectance Factor for ABI GOES-17, Band-4' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 33 ; + } +#Simulated Reflectance Factor for ABI GOES-17, Band-5 +'Simulated Reflectance Factor for ABI GOES-17, Band-5' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 34 ; + } +#Simulated Reflectance Factor for ABI GOES-17, Band-6 +'Simulated Reflectance Factor for ABI GOES-17, Band-6' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 35 ; + } #Ventilation Rate 'Ventilation Rate' = { discipline = 0 ; @@ -1649,279 +1925,3 @@ parameterCategory = 1 ; parameterNumber = 8 ; } -#Simulated Brightness Temperature for AMSRE on Aqua, Channel 10 -'Simulated Brightness Temperature for AMSRE on Aqua, Channel 10' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 11 ; -} -#Simulated Brightness Temperature for AMSRE on Aqua, Channel 11 -'Simulated Brightness Temperature for AMSRE on Aqua, Channel 11' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 12 ; -} -#Simulated Brightness Temperature for AMSRE on Aqua, Channel 12 -'Simulated Brightness Temperature for AMSRE on Aqua, Channel 12' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 13 ; -} -#Simulated Brightness Temperature for AMSRE on Aqua, Channel 9 -'Simulated Brightness Temperature for AMSRE on Aqua, Channel 9' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 10 ; -} -#Simulated Brightness Counts for GOES 12, Channel 3 -'Simulated Brightness Counts for GOES 12, Channel 3' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 4 ; -} -#Simulated Brightness Counts for GOES 12, Channel 4 -'Simulated Brightness Counts for GOES 12, Channel 4' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 5 ; -} -#Simulated Brightness Temperature for GOES 11, Channel 2 -'Simulated Brightness Temperature for GOES 11, Channel 2' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 6 ; -} -#Simulated Brightness Temperature for GOES 11, Channel 3 -'Simulated Brightness Temperature for GOES 11, Channel 3' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 7 ; -} -#Simulated Brightness Temperature for GOES 11, Channel 4 -'Simulated Brightness Temperature for GOES 11, Channel 4' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 8 ; -} -#Simulated Brightness Temperature for GOES 11, Channel 5 -'Simulated Brightness Temperature for GOES 11, Channel 5' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 9 ; -} -#Simulated Brightness Temperature for GOES 12, Channel 2 -'Simulated Brightness Temperature for GOES 12, Channel 2' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 0 ; -} -#Simulated Brightness Temperature for GOES 12, Channel 3 -'Simulated Brightness Temperature for GOES 12, Channel 3' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 1 ; -} -#Simulated Brightness Temperature for GOES 12, Channel 4 -'Simulated Brightness Temperature for GOES 12, Channel 4' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 2 ; -} -#Simulated Brightness Temperature for GOES 12, Channel 6 -'Simulated Brightness Temperature for GOES 12, Channel 6' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 3 ; -} -#Simulated Brightness Temperature for ABI GOES-16, Band-10 -'Simulated Brightness Temperature for ABI GOES-16, Band-10' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 23 ; -} -#Simulated Brightness Temperature for ABI GOES-16, Band-11 -'Simulated Brightness Temperature for ABI GOES-16, Band-11' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 24 ; -} -#Simulated Brightness Temperature for ABI GOES-16, Band-12 -'Simulated Brightness Temperature for ABI GOES-16, Band-12' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 25 ; -} -#Simulated Brightness Temperature for ABI GOES-16, Band-13 -'Simulated Brightness Temperature for ABI GOES-16, Band-13' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 26 ; -} -#Simulated Brightness Temperature for ABI GOES-16, Band-14 -'Simulated Brightness Temperature for ABI GOES-16, Band-14' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 27 ; -} -#Simulated Brightness Temperature for ABI GOES-16, Band-15 -'Simulated Brightness Temperature for ABI GOES-16, Band-15' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 28 ; -} -#Simulated Brightness Temperature for ABI GOES-16, Band-16 -'Simulated Brightness Temperature for ABI GOES-16, Band-16' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 29 ; -} -#Simulated Brightness Temperature for ABI GOES-16, Band-7 -'Simulated Brightness Temperature for ABI GOES-16, Band-7' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 20 ; -} -#Simulated Brightness Temperature for ABI GOES-16, Band-8 -'Simulated Brightness Temperature for ABI GOES-16, Band-8' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 21 ; -} -#Simulated Brightness Temperature for ABI GOES-16, Band-9 -'Simulated Brightness Temperature for ABI GOES-16, Band-9' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 22 ; -} -#Simulated Brightness Temperature for ABI GOES-17, Band-10 -'Simulated Brightness Temperature for ABI GOES-17, Band-10' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 39 ; -} -#Simulated Brightness Temperature for ABI GOES-17, Band-11 -'Simulated Brightness Temperature for ABI GOES-17, Band-11' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 40 ; -} -#Simulated Brightness Temperature for ABI GOES-17, Band-12 -'Simulated Brightness Temperature for ABI GOES-17, Band-12' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 41 ; -} -#Simulated Brightness Temperature for ABI GOES-17, Band-13 -'Simulated Brightness Temperature for ABI GOES-17, Band-13' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 42 ; -} -#Simulated Brightness Temperature for ABI GOES-17, Band-14 -'Simulated Brightness Temperature for ABI GOES-17, Band-14' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 43 ; -} -#Simulated Brightness Temperature for ABI GOES-17, Band-15 -'Simulated Brightness Temperature for ABI GOES-17, Band-15' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 44 ; -} -#Simulated Brightness Temperature for ABI GOES-17, Band-16 -'Simulated Brightness Temperature for ABI GOES-17, Band-16' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 45 ; -} -#Simulated Brightness Temperature for ABI GOES-17, Band-7 -'Simulated Brightness Temperature for ABI GOES-17, Band-7' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 36 ; -} -#Simulated Brightness Temperature for ABI GOES-17, Band-8 -'Simulated Brightness Temperature for ABI GOES-17, Band-8' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 37 ; -} -#Simulated Brightness Temperature for ABI GOES-17, Band-9 -'Simulated Brightness Temperature for ABI GOES-17, Band-9' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 38 ; -} -#Simulated Reflectance Factor for ABI GOES-16, Band-1 -'Simulated Reflectance Factor for ABI GOES-16, Band-1' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 14 ; -} -#Simulated Reflectance Factor for ABI GOES-16, Band-2 -'Simulated Reflectance Factor for ABI GOES-16, Band-2' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 15 ; -} -#Simulated Reflectance Factor for ABI GOES-16, Band-3 -'Simulated Reflectance Factor for ABI GOES-16, Band-3' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 16 ; -} -#Simulated Reflectance Factor for ABI GOES-16, Band-4 -'Simulated Reflectance Factor for ABI GOES-16, Band-4' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 17 ; -} -#Simulated Reflectance Factor for ABI GOES-16, Band-5 -'Simulated Reflectance Factor for ABI GOES-16, Band-5' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 18 ; -} -#Simulated Reflectance Factor for ABI GOES-16, Band-6 -'Simulated Reflectance Factor for ABI GOES-16, Band-6' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 19 ; -} -#Simulated Reflectance Factor for ABI GOES-17, Band-1 -'Simulated Reflectance Factor for ABI GOES-17, Band-1' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 30 ; -} -#Simulated Reflectance Factor for ABI GOES-17, Band-2 -'Simulated Reflectance Factor for ABI GOES-17, Band-2' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 31 ; -} -#Simulated Reflectance Factor for ABI GOES-17, Band-3 -'Simulated Reflectance Factor for ABI GOES-17, Band-3' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 32 ; -} -#Simulated Reflectance Factor for ABI GOES-17, Band-4 -'Simulated Reflectance Factor for ABI GOES-17, Band-4' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 33 ; -} -#Simulated Reflectance Factor for ABI GOES-17, Band-5 -'Simulated Reflectance Factor for ABI GOES-17, Band-5' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 34 ; -} -#Simulated Reflectance Factor for ABI GOES-17, Band-6 -'Simulated Reflectance Factor for ABI GOES-17, Band-6' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 35 ; -} diff --git a/definitions/grib2/localConcepts/kwbc/paramId.def b/definitions/grib2/localConcepts/kwbc/paramId.def index 9533c0969..9965dccab 100644 --- a/definitions/grib2/localConcepts/kwbc/paramId.def +++ b/definitions/grib2/localConcepts/kwbc/paramId.def @@ -1625,6 +1625,282 @@ parameterCategory = 19 ; parameterNumber = 234 ; } +#Simulated Brightness Temperature for AMSRE on Aqua, Channel 10 +'7001294' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 11 ; + } +#Simulated Brightness Temperature for AMSRE on Aqua, Channel 11 +'7001295' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 12 ; + } +#Simulated Brightness Temperature for AMSRE on Aqua, Channel 12 +'7001296' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 13 ; + } +#Simulated Brightness Temperature for AMSRE on Aqua, Channel 9 +'7001297' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 10 ; + } +#Simulated Brightness Counts for GOES 12, Channel 3 +'7001298' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 4 ; + } +#Simulated Brightness Counts for GOES 12, Channel 4 +'7001299' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 5 ; + } +#Simulated Brightness Temperature for GOES 11, Channel 2 +'7001300' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 6 ; + } +#Simulated Brightness Temperature for GOES 11, Channel 3 +'7001301' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 7 ; + } +#Simulated Brightness Temperature for GOES 11, Channel 4 +'7001302' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 8 ; + } +#Simulated Brightness Temperature for GOES 11, Channel 5 +'7001303' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 9 ; + } +#Simulated Brightness Temperature for GOES 12, Channel 2 +'7001304' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 0 ; + } +#Simulated Brightness Temperature for GOES 12, Channel 3 +'7001305' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 1 ; + } +#Simulated Brightness Temperature for GOES 12, Channel 4 +'7001306' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 2 ; + } +#Simulated Brightness Temperature for GOES 12, Channel 6 +'7001307' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 3 ; + } +#Simulated Brightness Temperature for ABI GOES-16, Band-10 +'7001308' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 23 ; + } +#Simulated Brightness Temperature for ABI GOES-16, Band-11 +'7001309' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 24 ; + } +#Simulated Brightness Temperature for ABI GOES-16, Band-12 +'7001310' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 25 ; + } +#Simulated Brightness Temperature for ABI GOES-16, Band-13 +'7001311' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 26 ; + } +#Simulated Brightness Temperature for ABI GOES-16, Band-14 +'7001312' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 27 ; + } +#Simulated Brightness Temperature for ABI GOES-16, Band-15 +'7001313' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 28 ; + } +#Simulated Brightness Temperature for ABI GOES-16, Band-16 +'7001314' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 29 ; + } +#Simulated Brightness Temperature for ABI GOES-16, Band-7 +'7001315' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 20 ; + } +#Simulated Brightness Temperature for ABI GOES-16, Band-8 +'7001316' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 21 ; + } +#Simulated Brightness Temperature for ABI GOES-16, Band-9 +'7001317' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 22 ; + } +#Simulated Brightness Temperature for ABI GOES-17, Band-10 +'7001318' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 39 ; + } +#Simulated Brightness Temperature for ABI GOES-17, Band-11 +'7001319' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 40 ; + } +#Simulated Brightness Temperature for ABI GOES-17, Band-12 +'7001320' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 41 ; + } +#Simulated Brightness Temperature for ABI GOES-17, Band-13 +'7001321' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 42 ; + } +#Simulated Brightness Temperature for ABI GOES-17, Band-14 +'7001322' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 43 ; + } +#Simulated Brightness Temperature for ABI GOES-17, Band-15 +'7001323' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 44 ; + } +#Simulated Brightness Temperature for ABI GOES-17, Band-16 +'7001324' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 45 ; + } +#Simulated Brightness Temperature for ABI GOES-17, Band-7 +'7001325' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 36 ; + } +#Simulated Brightness Temperature for ABI GOES-17, Band-8 +'7001326' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 37 ; + } +#Simulated Brightness Temperature for ABI GOES-17, Band-9 +'7001327' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 38 ; + } +#Simulated Reflectance Factor for ABI GOES-16, Band-1 +'7001328' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 14 ; + } +#Simulated Reflectance Factor for ABI GOES-16, Band-2 +'7001329' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 15 ; + } +#Simulated Reflectance Factor for ABI GOES-16, Band-3 +'7001330' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 16 ; + } +#Simulated Reflectance Factor for ABI GOES-16, Band-4 +'7001331' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 17 ; + } +#Simulated Reflectance Factor for ABI GOES-16, Band-5 +'7001332' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 18 ; + } +#Simulated Reflectance Factor for ABI GOES-16, Band-6 +'7001333' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 19 ; + } +#Simulated Reflectance Factor for ABI GOES-17, Band-1 +'7001334' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 30 ; + } +#Simulated Reflectance Factor for ABI GOES-17, Band-2 +'7001335' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 31 ; + } +#Simulated Reflectance Factor for ABI GOES-17, Band-3 +'7001336' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 32 ; + } +#Simulated Reflectance Factor for ABI GOES-17, Band-4 +'7001337' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 33 ; + } +#Simulated Reflectance Factor for ABI GOES-17, Band-5 +'7001338' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 34 ; + } +#Simulated Reflectance Factor for ABI GOES-17, Band-6 +'7001339' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 35 ; + } #Ventilation Rate '7001353' = { discipline = 0 ; @@ -1649,279 +1925,3 @@ parameterCategory = 1 ; parameterNumber = 8 ; } -#Simulated Brightness Temperature for AMSRE on Aqua, Channel 10 -'7001294' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 11 ; -} -#Simulated Brightness Temperature for AMSRE on Aqua, Channel 11 -'7001295' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 12 ; -} -#Simulated Brightness Temperature for AMSRE on Aqua, Channel 12 -'7001296' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 13 ; -} -#Simulated Brightness Temperature for AMSRE on Aqua, Channel 9 -'7001297' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 10 ; -} -#Simulated Brightness Counts for GOES 12, Channel 3 -'7001298' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 4 ; -} -#Simulated Brightness Counts for GOES 12, Channel 4 -'7001299' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 5 ; -} -#Simulated Brightness Temperature for GOES 11, Channel 2 -'7001300' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 6 ; -} -#Simulated Brightness Temperature for GOES 11, Channel 3 -'7001301' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 7 ; -} -#Simulated Brightness Temperature for GOES 11, Channel 4 -'7001302' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 8 ; -} -#Simulated Brightness Temperature for GOES 11, Channel 5 -'7001303' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 9 ; -} -#Simulated Brightness Temperature for GOES 12, Channel 2 -'7001304' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 0 ; -} -#Simulated Brightness Temperature for GOES 12, Channel 3 -'7001305' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 1 ; -} -#Simulated Brightness Temperature for GOES 12, Channel 4 -'7001306' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 2 ; -} -#Simulated Brightness Temperature for GOES 12, Channel 6 -'7001307' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 3 ; -} -#Simulated Brightness Temperature for ABI GOES-16, Band-10 -'7001308' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 23 ; -} -#Simulated Brightness Temperature for ABI GOES-16, Band-11 -'7001309' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 24 ; -} -#Simulated Brightness Temperature for ABI GOES-16, Band-12 -'7001310' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 25 ; -} -#Simulated Brightness Temperature for ABI GOES-16, Band-13 -'7001311' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 26 ; -} -#Simulated Brightness Temperature for ABI GOES-16, Band-14 -'7001312' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 27 ; -} -#Simulated Brightness Temperature for ABI GOES-16, Band-15 -'7001313' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 28 ; -} -#Simulated Brightness Temperature for ABI GOES-16, Band-16 -'7001314' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 29 ; -} -#Simulated Brightness Temperature for ABI GOES-16, Band-7 -'7001315' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 20 ; -} -#Simulated Brightness Temperature for ABI GOES-16, Band-8 -'7001316' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 21 ; -} -#Simulated Brightness Temperature for ABI GOES-16, Band-9 -'7001317' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 22 ; -} -#Simulated Brightness Temperature for ABI GOES-17, Band-10 -'7001318' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 39 ; -} -#Simulated Brightness Temperature for ABI GOES-17, Band-11 -'7001319' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 40 ; -} -#Simulated Brightness Temperature for ABI GOES-17, Band-12 -'7001320' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 41 ; -} -#Simulated Brightness Temperature for ABI GOES-17, Band-13 -'7001321' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 42 ; -} -#Simulated Brightness Temperature for ABI GOES-17, Band-14 -'7001322' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 43 ; -} -#Simulated Brightness Temperature for ABI GOES-17, Band-15 -'7001323' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 44 ; -} -#Simulated Brightness Temperature for ABI GOES-17, Band-16 -'7001324' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 45 ; -} -#Simulated Brightness Temperature for ABI GOES-17, Band-7 -'7001325' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 36 ; -} -#Simulated Brightness Temperature for ABI GOES-17, Band-8 -'7001326' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 37 ; -} -#Simulated Brightness Temperature for ABI GOES-17, Band-9 -'7001327' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 38 ; -} -#Simulated Reflectance Factor for ABI GOES-16, Band-1 -'7001328' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 14 ; -} -#Simulated Reflectance Factor for ABI GOES-16, Band-2 -'7001329' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 15 ; -} -#Simulated Reflectance Factor for ABI GOES-16, Band-3 -'7001330' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 16 ; -} -#Simulated Reflectance Factor for ABI GOES-16, Band-4 -'7001331' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 17 ; -} -#Simulated Reflectance Factor for ABI GOES-16, Band-5 -'7001332' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 18 ; -} -#Simulated Reflectance Factor for ABI GOES-16, Band-6 -'7001333' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 19 ; -} -#Simulated Reflectance Factor for ABI GOES-17, Band-1 -'7001334' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 30 ; -} -#Simulated Reflectance Factor for ABI GOES-17, Band-2 -'7001335' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 31 ; -} -#Simulated Reflectance Factor for ABI GOES-17, Band-3 -'7001336' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 32 ; -} -#Simulated Reflectance Factor for ABI GOES-17, Band-4 -'7001337' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 33 ; -} -#Simulated Reflectance Factor for ABI GOES-17, Band-5 -'7001338' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 34 ; -} -#Simulated Reflectance Factor for ABI GOES-17, Band-6 -'7001339' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 35 ; -} diff --git a/definitions/grib2/localConcepts/kwbc/shortName.def b/definitions/grib2/localConcepts/kwbc/shortName.def index de05e2086..da76ff02a 100644 --- a/definitions/grib2/localConcepts/kwbc/shortName.def +++ b/definitions/grib2/localConcepts/kwbc/shortName.def @@ -1625,6 +1625,282 @@ parameterCategory = 19 ; parameterNumber = 234 ; } +#Simulated Brightness Temperature for AMSRE on Aqua, Channel 10 +'AMSRE10' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 11 ; + } +#Simulated Brightness Temperature for AMSRE on Aqua, Channel 11 +'AMSRE11' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 12 ; + } +#Simulated Brightness Temperature for AMSRE on Aqua, Channel 12 +'AMSRE12' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 13 ; + } +#Simulated Brightness Temperature for AMSRE on Aqua, Channel 9 +'AMSRE9' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 10 ; + } +#Simulated Brightness Counts for GOES 12, Channel 3 +'SBC123' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 4 ; + } +#Simulated Brightness Counts for GOES 12, Channel 4 +'SBC124' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 5 ; + } +#Simulated Brightness Temperature for GOES 11, Channel 2 +'SBT112' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 6 ; + } +#Simulated Brightness Temperature for GOES 11, Channel 3 +'SBT113' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 7 ; + } +#Simulated Brightness Temperature for GOES 11, Channel 4 +'SBT114' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 8 ; + } +#Simulated Brightness Temperature for GOES 11, Channel 5 +'SBT115' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 9 ; + } +#Simulated Brightness Temperature for GOES 12, Channel 2 +'SBT122' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 0 ; + } +#Simulated Brightness Temperature for GOES 12, Channel 3 +'SBT123' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 1 ; + } +#Simulated Brightness Temperature for GOES 12, Channel 4 +'SBT124' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 2 ; + } +#Simulated Brightness Temperature for GOES 12, Channel 6 +'SBT126' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 3 ; + } +#Simulated Brightness Temperature for ABI GOES-16, Band-10 +'SBTA1610' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 23 ; + } +#Simulated Brightness Temperature for ABI GOES-16, Band-11 +'SBTA1611' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 24 ; + } +#Simulated Brightness Temperature for ABI GOES-16, Band-12 +'SBTA1612' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 25 ; + } +#Simulated Brightness Temperature for ABI GOES-16, Band-13 +'SBTA1613' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 26 ; + } +#Simulated Brightness Temperature for ABI GOES-16, Band-14 +'SBTA1614' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 27 ; + } +#Simulated Brightness Temperature for ABI GOES-16, Band-15 +'SBTA1615' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 28 ; + } +#Simulated Brightness Temperature for ABI GOES-16, Band-16 +'SBTA1616' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 29 ; + } +#Simulated Brightness Temperature for ABI GOES-16, Band-7 +'SBTA167' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 20 ; + } +#Simulated Brightness Temperature for ABI GOES-16, Band-8 +'SBTA168' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 21 ; + } +#Simulated Brightness Temperature for ABI GOES-16, Band-9 +'SBTA169' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 22 ; + } +#Simulated Brightness Temperature for ABI GOES-17, Band-10 +'SBTA1710' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 39 ; + } +#Simulated Brightness Temperature for ABI GOES-17, Band-11 +'SBTA1711' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 40 ; + } +#Simulated Brightness Temperature for ABI GOES-17, Band-12 +'SBTA1712' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 41 ; + } +#Simulated Brightness Temperature for ABI GOES-17, Band-13 +'SBTA1713' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 42 ; + } +#Simulated Brightness Temperature for ABI GOES-17, Band-14 +'SBTA1714' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 43 ; + } +#Simulated Brightness Temperature for ABI GOES-17, Band-15 +'SBTA1715' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 44 ; + } +#Simulated Brightness Temperature for ABI GOES-17, Band-16 +'SBTA1716' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 45 ; + } +#Simulated Brightness Temperature for ABI GOES-17, Band-7 +'SBTA177' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 36 ; + } +#Simulated Brightness Temperature for ABI GOES-17, Band-8 +'SBTA178' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 37 ; + } +#Simulated Brightness Temperature for ABI GOES-17, Band-9 +'SBTA179' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 38 ; + } +#Simulated Reflectance Factor for ABI GOES-16, Band-1 +'SRFA161' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 14 ; + } +#Simulated Reflectance Factor for ABI GOES-16, Band-2 +'SRFA162' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 15 ; + } +#Simulated Reflectance Factor for ABI GOES-16, Band-3 +'SRFA163' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 16 ; + } +#Simulated Reflectance Factor for ABI GOES-16, Band-4 +'SRFA164' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 17 ; + } +#Simulated Reflectance Factor for ABI GOES-16, Band-5 +'SRFA165' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 18 ; + } +#Simulated Reflectance Factor for ABI GOES-16, Band-6 +'SRFA166' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 19 ; + } +#Simulated Reflectance Factor for ABI GOES-17, Band-1 +'SRFA171' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 30 ; + } +#Simulated Reflectance Factor for ABI GOES-17, Band-2 +'SRFA172' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 31 ; + } +#Simulated Reflectance Factor for ABI GOES-17, Band-3 +'SRFA173' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 32 ; + } +#Simulated Reflectance Factor for ABI GOES-17, Band-4 +'SRFA174' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 33 ; + } +#Simulated Reflectance Factor for ABI GOES-17, Band-5 +'SRFA175' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 34 ; + } +#Simulated Reflectance Factor for ABI GOES-17, Band-6 +'SRFA176' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 35 ; + } #Ventilation Rate 'VRATE' = { discipline = 0 ; @@ -1649,279 +1925,3 @@ parameterCategory = 1 ; parameterNumber = 8 ; } -#Simulated Brightness Temperature for AMSRE on Aqua, Channel 10 -'AMSRE10' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 11 ; -} -#Simulated Brightness Temperature for AMSRE on Aqua, Channel 11 -'AMSRE11' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 12 ; -} -#Simulated Brightness Temperature for AMSRE on Aqua, Channel 12 -'AMSRE12' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 13 ; -} -#Simulated Brightness Temperature for AMSRE on Aqua, Channel 9 -'AMSRE9' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 10 ; -} -#Simulated Brightness Counts for GOES 12, Channel 3 -'SBC123' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 4 ; -} -#Simulated Brightness Counts for GOES 12, Channel 4 -'SBC124' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 5 ; -} -#Simulated Brightness Temperature for GOES 11, Channel 2 -'SBT112' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 6 ; -} -#Simulated Brightness Temperature for GOES 11, Channel 3 -'SBT113' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 7 ; -} -#Simulated Brightness Temperature for GOES 11, Channel 4 -'SBT114' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 8 ; -} -#Simulated Brightness Temperature for GOES 11, Channel 5 -'SBT115' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 9 ; -} -#Simulated Brightness Temperature for GOES 12, Channel 2 -'SBT122' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 0 ; -} -#Simulated Brightness Temperature for GOES 12, Channel 3 -'SBT123' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 1 ; -} -#Simulated Brightness Temperature for GOES 12, Channel 4 -'SBT124' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 2 ; -} -#Simulated Brightness Temperature for GOES 12, Channel 6 -'SBT126' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 3 ; -} -#Simulated Brightness Temperature for ABI GOES-16, Band-10 -'SBTA1610' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 23 ; -} -#Simulated Brightness Temperature for ABI GOES-16, Band-11 -'SBTA1611' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 24 ; -} -#Simulated Brightness Temperature for ABI GOES-16, Band-12 -'SBTA1612' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 25 ; -} -#Simulated Brightness Temperature for ABI GOES-16, Band-13 -'SBTA1613' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 26 ; -} -#Simulated Brightness Temperature for ABI GOES-16, Band-14 -'SBTA1614' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 27 ; -} -#Simulated Brightness Temperature for ABI GOES-16, Band-15 -'SBTA1615' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 28 ; -} -#Simulated Brightness Temperature for ABI GOES-16, Band-16 -'SBTA1616' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 29 ; -} -#Simulated Brightness Temperature for ABI GOES-16, Band-7 -'SBTA167' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 20 ; -} -#Simulated Brightness Temperature for ABI GOES-16, Band-8 -'SBTA168' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 21 ; -} -#Simulated Brightness Temperature for ABI GOES-16, Band-9 -'SBTA169' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 22 ; -} -#Simulated Brightness Temperature for ABI GOES-17, Band-10 -'SBTA1710' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 39 ; -} -#Simulated Brightness Temperature for ABI GOES-17, Band-11 -'SBTA1711' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 40 ; -} -#Simulated Brightness Temperature for ABI GOES-17, Band-12 -'SBTA1712' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 41 ; -} -#Simulated Brightness Temperature for ABI GOES-17, Band-13 -'SBTA1713' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 42 ; -} -#Simulated Brightness Temperature for ABI GOES-17, Band-14 -'SBTA1714' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 43 ; -} -#Simulated Brightness Temperature for ABI GOES-17, Band-15 -'SBTA1715' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 44 ; -} -#Simulated Brightness Temperature for ABI GOES-17, Band-16 -'SBTA1716' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 45 ; -} -#Simulated Brightness Temperature for ABI GOES-17, Band-7 -'SBTA177' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 36 ; -} -#Simulated Brightness Temperature for ABI GOES-17, Band-8 -'SBTA178' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 37 ; -} -#Simulated Brightness Temperature for ABI GOES-17, Band-9 -'SBTA179' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 38 ; -} -#Simulated Reflectance Factor for ABI GOES-16, Band-1 -'SRFA161' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 14 ; -} -#Simulated Reflectance Factor for ABI GOES-16, Band-2 -'SRFA162' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 15 ; -} -#Simulated Reflectance Factor for ABI GOES-16, Band-3 -'SRFA163' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 16 ; -} -#Simulated Reflectance Factor for ABI GOES-16, Band-4 -'SRFA164' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 17 ; -} -#Simulated Reflectance Factor for ABI GOES-16, Band-5 -'SRFA165' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 18 ; -} -#Simulated Reflectance Factor for ABI GOES-16, Band-6 -'SRFA166' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 19 ; -} -#Simulated Reflectance Factor for ABI GOES-17, Band-1 -'SRFA171' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 30 ; -} -#Simulated Reflectance Factor for ABI GOES-17, Band-2 -'SRFA172' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 31 ; -} -#Simulated Reflectance Factor for ABI GOES-17, Band-3 -'SRFA173' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 32 ; -} -#Simulated Reflectance Factor for ABI GOES-17, Band-4 -'SRFA174' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 33 ; -} -#Simulated Reflectance Factor for ABI GOES-17, Band-5 -'SRFA175' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 34 ; -} -#Simulated Reflectance Factor for ABI GOES-17, Band-6 -'SRFA176' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 35 ; -} diff --git a/definitions/grib2/localConcepts/kwbc/units.def b/definitions/grib2/localConcepts/kwbc/units.def index a3eafbc0f..302079ac5 100644 --- a/definitions/grib2/localConcepts/kwbc/units.def +++ b/definitions/grib2/localConcepts/kwbc/units.def @@ -1625,6 +1625,282 @@ parameterCategory = 19 ; parameterNumber = 234 ; } +#Simulated Brightness Temperature for AMSRE on Aqua, Channel 10 +'K' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 11 ; + } +#Simulated Brightness Temperature for AMSRE on Aqua, Channel 11 +'K' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 12 ; + } +#Simulated Brightness Temperature for AMSRE on Aqua, Channel 12 +'K' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 13 ; + } +#Simulated Brightness Temperature for AMSRE on Aqua, Channel 9 +'K' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 10 ; + } +#Simulated Brightness Counts for GOES 12, Channel 3 +'Byte' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 4 ; + } +#Simulated Brightness Counts for GOES 12, Channel 4 +'Byte' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 5 ; + } +#Simulated Brightness Temperature for GOES 11, Channel 2 +'K' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 6 ; + } +#Simulated Brightness Temperature for GOES 11, Channel 3 +'K' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 7 ; + } +#Simulated Brightness Temperature for GOES 11, Channel 4 +'K' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 8 ; + } +#Simulated Brightness Temperature for GOES 11, Channel 5 +'K' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 9 ; + } +#Simulated Brightness Temperature for GOES 12, Channel 2 +'K' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 0 ; + } +#Simulated Brightness Temperature for GOES 12, Channel 3 +'K' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 1 ; + } +#Simulated Brightness Temperature for GOES 12, Channel 4 +'K' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 2 ; + } +#Simulated Brightness Temperature for GOES 12, Channel 6 +'K' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 3 ; + } +#Simulated Brightness Temperature for ABI GOES-16, Band-10 +'K' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 23 ; + } +#Simulated Brightness Temperature for ABI GOES-16, Band-11 +'K' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 24 ; + } +#Simulated Brightness Temperature for ABI GOES-16, Band-12 +'K' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 25 ; + } +#Simulated Brightness Temperature for ABI GOES-16, Band-13 +'K' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 26 ; + } +#Simulated Brightness Temperature for ABI GOES-16, Band-14 +'K' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 27 ; + } +#Simulated Brightness Temperature for ABI GOES-16, Band-15 +'K' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 28 ; + } +#Simulated Brightness Temperature for ABI GOES-16, Band-16 +'K' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 29 ; + } +#Simulated Brightness Temperature for ABI GOES-16, Band-7 +'K' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 20 ; + } +#Simulated Brightness Temperature for ABI GOES-16, Band-8 +'K' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 21 ; + } +#Simulated Brightness Temperature for ABI GOES-16, Band-9 +'K' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 22 ; + } +#Simulated Brightness Temperature for ABI GOES-17, Band-10 +'K' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 39 ; + } +#Simulated Brightness Temperature for ABI GOES-17, Band-11 +'K' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 40 ; + } +#Simulated Brightness Temperature for ABI GOES-17, Band-12 +'K' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 41 ; + } +#Simulated Brightness Temperature for ABI GOES-17, Band-13 +'K' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 42 ; + } +#Simulated Brightness Temperature for ABI GOES-17, Band-14 +'K' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 43 ; + } +#Simulated Brightness Temperature for ABI GOES-17, Band-15 +'K' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 44 ; + } +#Simulated Brightness Temperature for ABI GOES-17, Band-16 +'K' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 45 ; + } +#Simulated Brightness Temperature for ABI GOES-17, Band-7 +'K' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 36 ; + } +#Simulated Brightness Temperature for ABI GOES-17, Band-8 +'K' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 37 ; + } +#Simulated Brightness Temperature for ABI GOES-17, Band-9 +'K' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 38 ; + } +#Simulated Reflectance Factor for ABI GOES-16, Band-1 +'~' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 14 ; + } +#Simulated Reflectance Factor for ABI GOES-16, Band-2 +'~' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 15 ; + } +#Simulated Reflectance Factor for ABI GOES-16, Band-3 +'~' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 16 ; + } +#Simulated Reflectance Factor for ABI GOES-16, Band-4 +'~' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 17 ; + } +#Simulated Reflectance Factor for ABI GOES-16, Band-5 +'~' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 18 ; + } +#Simulated Reflectance Factor for ABI GOES-16, Band-6 +'~' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 19 ; + } +#Simulated Reflectance Factor for ABI GOES-17, Band-1 +'~' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 30 ; + } +#Simulated Reflectance Factor for ABI GOES-17, Band-2 +'~' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 31 ; + } +#Simulated Reflectance Factor for ABI GOES-17, Band-3 +'~' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 32 ; + } +#Simulated Reflectance Factor for ABI GOES-17, Band-4 +'~' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 33 ; + } +#Simulated Reflectance Factor for ABI GOES-17, Band-5 +'~' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 34 ; + } +#Simulated Reflectance Factor for ABI GOES-17, Band-6 +'~' = { + discipline = 3 ; + parameterCategory = 192 ; + parameterNumber = 35 ; + } #Ventilation Rate 'm**2 s**-1' = { discipline = 0 ; @@ -1649,279 +1925,3 @@ parameterCategory = 1 ; parameterNumber = 8 ; } -#Simulated Brightness Temperature for AMSRE on Aqua, Channel 10 -'K' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 11 ; -} -#Simulated Brightness Temperature for AMSRE on Aqua, Channel 11 -'K' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 12 ; -} -#Simulated Brightness Temperature for AMSRE on Aqua, Channel 12 -'K' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 13 ; -} -#Simulated Brightness Temperature for AMSRE on Aqua, Channel 9 -'K' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 10 ; -} -#Simulated Brightness Counts for GOES 12, Channel 3 -'Byte' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 4 ; -} -#Simulated Brightness Counts for GOES 12, Channel 4 -'Byte' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 5 ; -} -#Simulated Brightness Temperature for GOES 11, Channel 2 -'K' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 6 ; -} -#Simulated Brightness Temperature for GOES 11, Channel 3 -'K' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 7 ; -} -#Simulated Brightness Temperature for GOES 11, Channel 4 -'K' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 8 ; -} -#Simulated Brightness Temperature for GOES 11, Channel 5 -'K' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 9 ; -} -#Simulated Brightness Temperature for GOES 12, Channel 2 -'K' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 0 ; -} -#Simulated Brightness Temperature for GOES 12, Channel 3 -'K' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 1 ; -} -#Simulated Brightness Temperature for GOES 12, Channel 4 -'K' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 2 ; -} -#Simulated Brightness Temperature for GOES 12, Channel 6 -'K' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 3 ; -} -#Simulated Brightness Temperature for ABI GOES-16, Band-10 -'K' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 23 ; -} -#Simulated Brightness Temperature for ABI GOES-16, Band-11 -'K' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 24 ; -} -#Simulated Brightness Temperature for ABI GOES-16, Band-12 -'K' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 25 ; -} -#Simulated Brightness Temperature for ABI GOES-16, Band-13 -'K' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 26 ; -} -#Simulated Brightness Temperature for ABI GOES-16, Band-14 -'K' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 27 ; -} -#Simulated Brightness Temperature for ABI GOES-16, Band-15 -'K' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 28 ; -} -#Simulated Brightness Temperature for ABI GOES-16, Band-16 -'K' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 29 ; -} -#Simulated Brightness Temperature for ABI GOES-16, Band-7 -'K' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 20 ; -} -#Simulated Brightness Temperature for ABI GOES-16, Band-8 -'K' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 21 ; -} -#Simulated Brightness Temperature for ABI GOES-16, Band-9 -'K' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 22 ; -} -#Simulated Brightness Temperature for ABI GOES-17, Band-10 -'K' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 39 ; -} -#Simulated Brightness Temperature for ABI GOES-17, Band-11 -'K' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 40 ; -} -#Simulated Brightness Temperature for ABI GOES-17, Band-12 -'K' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 41 ; -} -#Simulated Brightness Temperature for ABI GOES-17, Band-13 -'K' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 42 ; -} -#Simulated Brightness Temperature for ABI GOES-17, Band-14 -'K' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 43 ; -} -#Simulated Brightness Temperature for ABI GOES-17, Band-15 -'K' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 44 ; -} -#Simulated Brightness Temperature for ABI GOES-17, Band-16 -'K' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 45 ; -} -#Simulated Brightness Temperature for ABI GOES-17, Band-7 -'K' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 36 ; -} -#Simulated Brightness Temperature for ABI GOES-17, Band-8 -'K' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 37 ; -} -#Simulated Brightness Temperature for ABI GOES-17, Band-9 -'K' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 38 ; -} -#Simulated Reflectance Factor for ABI GOES-16, Band-1 -'-' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 14 ; -} -#Simulated Reflectance Factor for ABI GOES-16, Band-2 -'-' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 15 ; -} -#Simulated Reflectance Factor for ABI GOES-16, Band-3 -'-' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 16 ; -} -#Simulated Reflectance Factor for ABI GOES-16, Band-4 -'-' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 17 ; -} -#Simulated Reflectance Factor for ABI GOES-16, Band-5 -'-' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 18 ; -} -#Simulated Reflectance Factor for ABI GOES-16, Band-6 -'-' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 19 ; -} -#Simulated Reflectance Factor for ABI GOES-17, Band-1 -'-' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 30 ; -} -#Simulated Reflectance Factor for ABI GOES-17, Band-2 -'-' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 31 ; -} -#Simulated Reflectance Factor for ABI GOES-17, Band-3 -'-' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 32 ; -} -#Simulated Reflectance Factor for ABI GOES-17, Band-4 -'-' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 33 ; -} -#Simulated Reflectance Factor for ABI GOES-17, Band-5 -'-' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 34 ; -} -#Simulated Reflectance Factor for ABI GOES-17, Band-6 -'-' = { - discipline = 3 ; - parameterCategory = 192 ; - parameterNumber = 35 ; -} diff --git a/definitions/grib2/template.3.140.def b/definitions/grib2/template.3.140.def index 094e624bd..df94e3120 100644 --- a/definitions/grib2/template.3.140.def +++ b/definitions/grib2/template.3.140.def @@ -55,7 +55,7 @@ include "grib2/template.3.scanning_mode.def"; iterator lambert_azimuthal_equal_area(numberOfPoints,missingValue,values, radius,Nx,Ny, latitudeOfFirstGridPointInDegrees,longitudeOfFirstGridPointInDegrees, - standardParallel,centralLongitude, + standardParallelInDegrees,centralLongitudeInDegrees, Dx,Dy, iScansNegatively, jScansPositively, jPointsAreConsecutive, alternativeRowScanning); diff --git a/src/grib_accessor_class_bufr_data_array.c b/src/grib_accessor_class_bufr_data_array.c index 58a68ed55..955bf7c14 100644 --- a/src/grib_accessor_class_bufr_data_array.c +++ b/src/grib_accessor_class_bufr_data_array.c @@ -766,7 +766,7 @@ static int descriptor_get_min_max(bufr_descriptor* bd, long width, long referenc double* minAllowed, double* maxAllowed) { /* Maximum value is allowed to be the largest number (all bits 1) which means it's MISSING */ - unsigned long max1 = (1UL << width) - 1; /* Highest value for number with 'width' bits */ + size_t max1 = (1ULL << width) - 1; /* Highest value for number with 'width' bits */ DebugAssert(width > 0 && width < 64); *maxAllowed = (max1 + reference) * factor; @@ -1100,7 +1100,7 @@ static double decode_double_value(grib_context* c, unsigned char* data, long* po dval = GRIB_MISSING_DOUBLE; } else { - dval = ((long)lval + modifiedReference) * modifiedFactor; + dval = ((int64_t)lval + modifiedReference) * modifiedFactor; } return dval; } diff --git a/src/grib_api_prototypes.h b/src/grib_api_prototypes.h index fe6d9ec71..f9293b814 100644 --- a/src/grib_api_prototypes.h +++ b/src/grib_api_prototypes.h @@ -1,3 +1,6 @@ +#ifdef ECCODES_ON_WINDOWS +#include +#endif /* action.c */ void grib_dump(grib_action* a, FILE* f, int l); @@ -1377,11 +1380,11 @@ grib_box* grib_box_factory(grib_handle* h, grib_arguments* args); int grib_nearest_find(grib_nearest* nearest, const grib_handle* h, double inlat, double inlon, unsigned long flags, double* outlats, double* outlons, double* values, double* distances, int* indexes, size_t* len); int grib_nearest_init(grib_nearest* i, grib_handle* h, grib_arguments* args); int grib_nearest_delete(grib_nearest* i); +int grib_nearest_get_radius(grib_handle* h, double* radiusInKm); void grib_binary_search(double xx[], const unsigned long n, double x, int* ju, int* jl); int grib_nearest_find_multiple(const grib_handle* h, int is_lsm, const double* inlats, const double* inlons, long npoints, double* outlats, double* outlons, double* values, double* distances, int* indexes); int grib_nearest_find_generic(grib_nearest* nearest, grib_handle* h, double inlat, double inlon, unsigned long flags, - const char* values_keyname, const char* radius_keyname, - const char* Ni_keyname, const char* Nj_keyname, + const char* values_keyname, const char* Ni_keyname, const char* Nj_keyname, double** out_lats, int* out_lats_count, double** out_lons, @@ -1550,7 +1553,7 @@ int grib_optimize_decimal_factor(grib_accessor* a, const char* reference_value, const char* grib_get_git_sha1(void); /* grib_bits_any_endian.c */ -int grib_is_all_bits_one(long val, long nbits); +int grib_is_all_bits_one(int64_t val, long nbits); int grib_encode_string(unsigned char* bitStream, long* bitOffset, size_t numberOfCharacters, const char* string); char* grib_decode_string(const unsigned char* bitStream, long* bitOffset, size_t numberOfCharacters, char* string); unsigned long grib_decode_unsigned_long(const unsigned char* p, long* bitp, long nbits); diff --git a/src/grib_bits_any_endian.c b/src/grib_bits_any_endian.c index 364a2842e..362f11fe2 100644 --- a/src/grib_bits_any_endian.c +++ b/src/grib_bits_any_endian.c @@ -13,6 +13,10 @@ * * ***************************************************************************/ +#ifdef ECCODES_ON_WINDOWS +#include +#endif + #if GRIB_PTHREADS static pthread_once_t once = PTHREAD_ONCE_INIT; static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; @@ -45,16 +49,16 @@ typedef struct bits_all_one_t { int inited; int size; - long v[128]; + int64_t v[128]; } bits_all_one_t; static bits_all_one_t bits_all_one = { 0, 0, {0,} }; static void init_bits_all_one() { - int size = sizeof(long) * 8; - long* v = 0; - unsigned long cmask = -1; + int size = sizeof(int64_t) * 8; + int64_t* v = 0; + uint64_t cmask = -1; DebugAssert(!bits_all_one.inited); bits_all_one.size = size; @@ -78,7 +82,7 @@ static void init_bits_all_one_if_needed() init_bits_all_one(); GRIB_MUTEX_UNLOCK(&mutex); } -int grib_is_all_bits_one(long val, long nbits) +int grib_is_all_bits_one(int64_t val, long nbits) { /*if (!bits_all_one.inited) init_bits_all_one();*/ init_bits_all_one_if_needed(); @@ -301,7 +305,7 @@ int grib_encode_unsigned_long(unsigned char* p, unsigned long val, long* bitp, l * Note: On x64 Micrsoft Windows a "long" is 32 bits but "size_t" is 64 bits */ #define BIT_MASK_SIZE_T(x) \ - (((x) == max_nbits_size_t) ? (size_t)-1UL : (1UL << (x)) - 1) + (((x) == max_nbits_size_t) ? (size_t)-1ULL : (1ULL << (x)) - 1) size_t grib_decode_size_t(const unsigned char* p, long* bitp, long nbits) { diff --git a/src/grib_bits_fast_big_endian.c b/src/grib_bits_fast_big_endian.c index af852d105..4a50349dc 100644 --- a/src/grib_bits_fast_big_endian.c +++ b/src/grib_bits_fast_big_endian.c @@ -41,7 +41,7 @@ static void init_bits_all_one() *(--v) = ~(cmask << --size); } -int grib_is_all_bits_one(long val, long nbits) +int grib_is_all_bits_one(int64_t val, long nbits) { if (!bits_all_one.inited) init_bits_all_one(); diff --git a/src/grib_iterator_class_lambert_azimuthal_equal_area.c b/src/grib_iterator_class_lambert_azimuthal_equal_area.c index 73290b326..0ba3be713 100644 --- a/src/grib_iterator_class_lambert_azimuthal_equal_area.c +++ b/src/grib_iterator_class_lambert_azimuthal_equal_area.c @@ -8,11 +8,6 @@ * virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction. */ -/************************************** - * Enrico Fucile - **************************************/ - - #include "grib_api_internal.h" #include @@ -102,111 +97,235 @@ static int next(grib_iterator* i, double* lat, double* lon, double* val) return 1; } -static int init(grib_iterator* iter, grib_handle* h, grib_arguments* args) +#ifndef M_PI +#define M_PI 3.14159265358979323846 /* Whole pie */ +#endif + +#ifndef M_PI_2 +#define M_PI_2 1.57079632679489661923 /* Half a pie */ +#endif + +#ifndef M_PI_4 +#define M_PI_4 0.78539816339744830962 /* Quarter of a pie */ +#endif + +#define RAD2DEG 57.29577951308232087684 /* 180 over pi */ +#define DEG2RAD 0.01745329251994329576 /* pi over 180 */ + +#define P00 .33333333333333333333 /* 1 / 3 */ +#define P01 .17222222222222222222 /* 31 / 180 */ +#define P02 .10257936507936507937 /* 517 / 5040 */ +#define P10 .06388888888888888888 /* 23 / 360 */ +#define P11 .06640211640211640212 /* 251 / 3780 */ +#define P20 .01677689594356261023 /* 761 / 45360 */ + +static void pj_authset(double es, double* APA) +{ + double t; + APA[0] = es * P00; + t = es * es; + APA[0] += t * P01; + APA[1] = t * P10; + t *= es; + APA[0] += t * P02; + APA[1] += t * P11; + APA[2] = t * P20; +} +static double pj_authlat(double beta, double* APA) +{ + double t = beta + beta; + return (beta + APA[0] * sin(t) + APA[1] * sin(t + t) + APA[2] * sin(t + t + t)); +} + +static double pj_qsfn(double sinphi, double e, double one_es) +{ + double con, div1, div2; + const double EPSILON = 1.0e-7; + + if (e >= EPSILON) { + con = e * sinphi; + div1 = 1.0 - con * con; + div2 = 1.0 + con; + + /* avoid zero division, fail gracefully */ + if (div1 == 0.0 || div2 == 0.0) + return HUGE_VAL; + + return (one_es * (sinphi / div1 - (.5 / e) * log((1. - con) / div2))); + } + else + return (sinphi + sinphi); +} + +#define EPS10 1.e-10 +static int init_oblate(grib_handle* h, + grib_iterator_lambert_azimuthal_equal_area* self, + size_t nv, long nx, long ny, + double Dx, double Dy, double earthMinorAxisInMetres, double earthMajorAxisInMetres, + double latFirstInRadians, double lonFirstInRadians, + double centralLongitudeInRadians, double standardParallelInRadians, + long iScansNegatively, long jScansPositively, long jPointsAreConsecutive) { - int ret = 0; double *lats, *lons; - double lonFirstInDegrees, latFirstInDegrees, lonFirst, latFirst, radius = 0; - long nx, ny, standardParallel, centralLongitude; - double phi1, lambda0, xFirst, yFirst, x, y, Dx, Dy; + long i, j; + double x0, y0, x, y; + double coslam, sinlam, sinphi, sinphi_, q, sinb = 0.0, cosb = 0.0, b = 0.0, cosb2; + double Q__qp = 0, Q__rq = 0, Q__cosb1, Q__sinb1, Q__dd, Q__xmf, Q__ymf, t; + /* double Q__mmf = 0; */ + double e, es, temp, one_es; + double APA[3] = {0,}; + double xFirst, yFirst; + + Dx = iScansNegatively == 0 ? Dx / 1000 : -Dx / 1000; + Dy = jScansPositively == 1 ? Dy / 1000 : -Dy / 1000; + + temp = (earthMajorAxisInMetres - earthMinorAxisInMetres) / earthMajorAxisInMetres; + es = 2 * temp - temp * temp; + one_es = 1.0 - es; + e = sqrt(es); + + coslam = cos(lonFirstInRadians - centralLongitudeInRadians); /* cos(lp.lam) */ + sinlam = sin(lonFirstInRadians - centralLongitudeInRadians); + sinphi = sin(latFirstInRadians); /* sin(lp.phi) */ + q = pj_qsfn(sinphi, e, one_es); + + t = fabs(standardParallelInRadians); + if (t > M_PI_2 + EPS10) { + return GRIB_GEOCALCULUS_PROBLEM; + } + /* if (fabs(t - M_HALFPI) < EPS10) + Q->mode = P->phi0 < 0. ? S_POLE : N_POLE; + else if (fabs(t) < EPS10) + Q->mode = EQUIT; + else + Q->mode = OBLIQ; + */ + Q__qp = pj_qsfn(1.0, e, one_es); + /* Q__mmf = 0.5 / one_es; ---- TODO(masn): do I need this? */ + pj_authset(es, APA); /* sets up APA array */ + Q__rq = sqrt(0.5 * Q__qp); + sinphi_ = sin(standardParallelInRadians); /* (P->phi0); */ + Q__sinb1 = pj_qsfn(sinphi_, e, one_es) / Q__qp; + Q__cosb1 = sqrt(1.0 - Q__sinb1 * Q__sinb1); + Q__dd = cos(standardParallelInRadians) / (sqrt(1. - es * sinphi_ * sinphi_) * Q__rq * Q__cosb1); + Q__ymf = (Q__xmf = Q__rq) / Q__dd; + Q__xmf *= Q__dd; + + sinb = q / Q__qp; + cosb2 = 1.0 - sinb * sinb; + cosb = cosb2 > 0 ? sqrt(cosb2) : 0; + b = 1. + Q__sinb1 * sinb + Q__cosb1 * cosb * coslam; + if (fabs(b) < EPS10) { + return GRIB_GEOCALCULUS_PROBLEM; + } + b = sqrt(2.0 / b); + + /* OBLIQUE */ + y0 = Q__ymf * b * (Q__cosb1 * sinb - Q__sinb1 * cosb * coslam); + x0 = Q__xmf * b * cosb * sinlam; + + /* Allocate latitude and longitude arrays */ + self->lats = (double*)grib_context_malloc(h->context, nv * sizeof(double)); + if (!self->lats) { + grib_context_log(h->context, GRIB_LOG_ERROR, "Error allocating %ld bytes", nv * sizeof(double)); + return GRIB_OUT_OF_MEMORY; + } + self->lons = (double*)grib_context_malloc(h->context, nv * sizeof(double)); + if (!self->lats) { + grib_context_log(h->context, GRIB_LOG_ERROR, "Error allocating %ld bytes", nv * sizeof(double)); + return GRIB_OUT_OF_MEMORY; + } + lats = self->lats; + lons = self->lons; + + /* Populate the lat and lon arrays */ + { + xFirst = x0; + yFirst = y0; + y = yFirst; + for (j = 0; j < ny; j++) { + x = xFirst; + for (i = 0; i < nx; i++) { + double cCe, sCe, rho, ab = 0.0, lp__lam, lp__phi, xy_x = x, xy_y = y; + xy_x /= Q__dd; + xy_y *= Q__dd; + rho = hypot(xy_x, xy_y); + Assert(rho >= EPS10); /* TODO(masn): check */ + sCe = 2. * asin(.5 * rho / Q__rq); + cCe = cos(sCe); + sCe = sin(sCe); + xy_x *= sCe; + /* if oblique */ + ab = cCe * Q__sinb1 + xy_y * sCe * Q__cosb1 / rho; + xy_y = rho * Q__cosb1 * cCe - xy_y * Q__sinb1 * sCe; + /* else + ab = xy.y * sCe / rho; + xy.y = rho * cCe; + */ + lp__lam = atan2(xy_x, xy_y); /* longitude */ + lp__phi = pj_authlat(asin(ab), APA); /* latitude */ + + *lats = lp__phi * RAD2DEG; + *lons = (lp__lam + centralLongitudeInRadians) * RAD2DEG; + + lons++; + lats++; + + x += Dx / earthMajorAxisInMetres; + } + y += Dy / earthMajorAxisInMetres; + } + } + + return GRIB_SUCCESS; +} + +static int init_sphere(grib_handle* h, + grib_iterator_lambert_azimuthal_equal_area* self, + size_t nv, long nx, long ny, + double Dx, double Dy, double radius, + double latFirstInRadians, double lonFirstInRadians, + double centralLongitudeInRadians, double standardParallelInRadians, + long iScansNegatively, long jScansPositively, long jPointsAreConsecutive) +{ + double *lats, *lons; + double phi1, lambda0, xFirst, yFirst, x, y; double kp, sinphi1, cosphi1; - long alternativeRowScanning, iScansNegatively; - long jScansPositively, jPointsAreConsecutive; double sinphi, cosphi, cosdlambda, sindlambda; double cosc, sinc; long i, j; - - grib_iterator_lambert_azimuthal_equal_area* self = - (grib_iterator_lambert_azimuthal_equal_area*)iter; - - const char* sradius = grib_arguments_get_name(h, args, self->carg++); - const char* snx = grib_arguments_get_name(h, args, self->carg++); - const char* sny = grib_arguments_get_name(h, args, self->carg++); - const char* slatFirstInDegrees = grib_arguments_get_name(h, args, self->carg++); - const char* slonFirstInDegrees = grib_arguments_get_name(h, args, self->carg++); - const char* sstandardParallel = grib_arguments_get_name(h, args, self->carg++); - const char* scentralLongitude = grib_arguments_get_name(h, args, self->carg++); - const char* sDx = grib_arguments_get_name(h, args, self->carg++); - const char* sDy = grib_arguments_get_name(h, args, self->carg++); - const char* siScansNegatively = grib_arguments_get_name(h, args, self->carg++); - const char* sjScansPositively = grib_arguments_get_name(h, args, self->carg++); - const char* sjPointsAreConsecutive = grib_arguments_get_name(h, args, self->carg++); - const char* salternativeRowScanning = grib_arguments_get_name(h, args, self->carg++); double c, rho; - double epsilon = 1.0e-20; - double d2r = acos(0.0) / 90.0; + const double epsilon = 1.0e-20; + const double d2r = acos(0.0) / 90.0; - if ((ret = grib_get_double_internal(h, sradius, &radius)) != GRIB_SUCCESS) { - /* Check if it's an oblate spheroid */ - if (grib_is_earth_oblate(h)) - grib_context_log(h->context, GRIB_LOG_ERROR, "Lambert Azimuthal Equal Area only supported for spherical earth."); - return ret; - } - - if ((ret = grib_get_long_internal(h, snx, &nx)) != GRIB_SUCCESS) - return ret; - if ((ret = grib_get_long_internal(h, sny, &ny)) != GRIB_SUCCESS) - return ret; - - if (iter->nv != nx * ny) { - grib_context_log(h->context, GRIB_LOG_ERROR, - "Wrong number of points (%ld!=%ldx%ld)", - iter->nv, nx, ny); - return GRIB_WRONG_GRID; - } - if ((ret = grib_get_double_internal(h, slatFirstInDegrees, &latFirstInDegrees)) != GRIB_SUCCESS) - return ret; - if ((ret = grib_get_double_internal(h, slonFirstInDegrees, &lonFirstInDegrees)) != GRIB_SUCCESS) - return ret; - if ((ret = grib_get_long_internal(h, sstandardParallel, &standardParallel)) != GRIB_SUCCESS) - return ret; - if ((ret = grib_get_long_internal(h, scentralLongitude, ¢ralLongitude)) != GRIB_SUCCESS) - return ret; - if ((ret = grib_get_double_internal(h, sDx, &Dx)) != GRIB_SUCCESS) - return ret; - if ((ret = grib_get_double_internal(h, sDy, &Dy)) != GRIB_SUCCESS) - return ret; - if ((ret = grib_get_long_internal(h, - sjPointsAreConsecutive, &jPointsAreConsecutive)) != GRIB_SUCCESS) - return ret; - if ((ret = grib_get_long_internal(h, sjScansPositively, &jScansPositively)) != GRIB_SUCCESS) - return ret; - if ((ret = grib_get_long_internal(h, siScansNegatively, &iScansNegatively)) != GRIB_SUCCESS) - return ret; - if ((ret = grib_get_long_internal(h, - salternativeRowScanning, &alternativeRowScanning)) != GRIB_SUCCESS) - return ret; - - lambda0 = d2r * centralLongitude / 1000000; - phi1 = d2r * standardParallel / 1000000; - latFirst = latFirstInDegrees * d2r; - lonFirst = lonFirstInDegrees * d2r; + lambda0 = centralLongitudeInRadians; + phi1 = standardParallelInRadians; cosphi1 = cos(phi1); sinphi1 = sin(phi1); Dx = iScansNegatively == 0 ? Dx / 1000 : -Dx / 1000; Dy = jScansPositively == 1 ? Dy / 1000 : -Dy / 1000; - self->lats = (double*)grib_context_malloc(h->context, iter->nv * sizeof(double)); + self->lats = (double*)grib_context_malloc(h->context, nv * sizeof(double)); if (!self->lats) { grib_context_log(h->context, GRIB_LOG_ERROR, - "Error allocating %ld bytes", iter->nv * sizeof(double)); + "Error allocating %ld bytes", nv * sizeof(double)); return GRIB_OUT_OF_MEMORY; } - self->lons = (double*)grib_context_malloc(h->context, iter->nv * sizeof(double)); + self->lons = (double*)grib_context_malloc(h->context, nv * sizeof(double)); if (!self->lats) { grib_context_log(h->context, GRIB_LOG_ERROR, - "Error allocating %ld bytes", iter->nv * sizeof(double)); + "Error allocating %ld bytes", nv * sizeof(double)); return GRIB_OUT_OF_MEMORY; } lats = self->lats; lons = self->lons; /* compute xFirst,yFirst in metres */ - sinphi = sin(latFirst); - cosphi = cos(latFirst); - cosdlambda = cos(lonFirst - lambda0); - sindlambda = sin(lonFirst - lambda0); + sinphi = sin(latFirstInRadians); + cosphi = cos(latFirstInRadians); + cosdlambda = cos(lonFirstInRadians - lambda0); + sindlambda = sin(lonFirstInRadians - lambda0); kp = radius * sqrt(2.0 / (1 + sinphi1 * sinphi + cosphi1 * cosphi * cosdlambda)); xFirst = kp * cosphi * sindlambda; yFirst = kp * (cosphi1 * sinphi - sinphi1 * cosphi * cosdlambda); @@ -267,10 +386,105 @@ static int init(grib_iterator* iter, grib_handle* h, grib_arguments* args) y += Dy; } } + return GRIB_SUCCESS; +} + +static int init(grib_iterator* iter, grib_handle* h, grib_arguments* args) +{ + int err = 0; + int is_oblate = 0; + double lonFirstInDegrees, latFirstInDegrees, lonFirstInRadians, latFirstInRadians, radius = 0; + long nx, ny; + double standardParallelInDegrees, centralLongitudeInDegrees; + double standardParallelInRadians, centralLongitudeInRadians; + double Dx, Dy; + long alternativeRowScanning, iScansNegatively; + long jScansPositively, jPointsAreConsecutive; + double earthMajorAxisInMetres = 0, earthMinorAxisInMetres = 0; + + grib_iterator_lambert_azimuthal_equal_area* self = + (grib_iterator_lambert_azimuthal_equal_area*)iter; + + const char* sradius = grib_arguments_get_name(h, args, self->carg++); + const char* snx = grib_arguments_get_name(h, args, self->carg++); + const char* sny = grib_arguments_get_name(h, args, self->carg++); + const char* slatFirstInDegrees = grib_arguments_get_name(h, args, self->carg++); + const char* slonFirstInDegrees = grib_arguments_get_name(h, args, self->carg++); + const char* sstandardParallel = grib_arguments_get_name(h, args, self->carg++); + const char* scentralLongitude = grib_arguments_get_name(h, args, self->carg++); + const char* sDx = grib_arguments_get_name(h, args, self->carg++); + const char* sDy = grib_arguments_get_name(h, args, self->carg++); + const char* siScansNegatively = grib_arguments_get_name(h, args, self->carg++); + const char* sjScansPositively = grib_arguments_get_name(h, args, self->carg++); + const char* sjPointsAreConsecutive = grib_arguments_get_name(h, args, self->carg++); + const char* salternativeRowScanning = grib_arguments_get_name(h, args, self->carg++); + const double d2r = acos(0.0) / 90.0; + + is_oblate = grib_is_earth_oblate(h); + if (is_oblate) { + if ((err = grib_get_double_internal(h, "earthMinorAxisInMetres", &earthMinorAxisInMetres)) != GRIB_SUCCESS) return err; + if ((err = grib_get_double_internal(h, "earthMajorAxisInMetres", &earthMajorAxisInMetres)) != GRIB_SUCCESS) return err; + } + else { + if ((err = grib_get_double_internal(h, sradius, &radius)) != GRIB_SUCCESS) return err; + } + + if ((err = grib_get_long_internal(h, snx, &nx)) != GRIB_SUCCESS) + return err; + if ((err = grib_get_long_internal(h, sny, &ny)) != GRIB_SUCCESS) + return err; + + if (iter->nv != nx * ny) { + grib_context_log(h->context, GRIB_LOG_ERROR, + "Wrong number of points (%ld!=%ldx%ld)", + iter->nv, nx, ny); + return GRIB_WRONG_GRID; + } + if ((err = grib_get_double_internal(h, slatFirstInDegrees, &latFirstInDegrees)) != GRIB_SUCCESS) + return err; + if ((err = grib_get_double_internal(h, slonFirstInDegrees, &lonFirstInDegrees)) != GRIB_SUCCESS) + return err; + if ((err = grib_get_double_internal(h, sstandardParallel, &standardParallelInDegrees)) != GRIB_SUCCESS) + return err; + if ((err = grib_get_double_internal(h, scentralLongitude, ¢ralLongitudeInDegrees)) != GRIB_SUCCESS) + return err; + if ((err = grib_get_double_internal(h, sDx, &Dx)) != GRIB_SUCCESS) + return err; + if ((err = grib_get_double_internal(h, sDy, &Dy)) != GRIB_SUCCESS) + return err; + if ((err = grib_get_long_internal(h, sjPointsAreConsecutive, &jPointsAreConsecutive)) != GRIB_SUCCESS) + return err; + if ((err = grib_get_long_internal(h, sjScansPositively, &jScansPositively)) != GRIB_SUCCESS) + return err; + if ((err = grib_get_long_internal(h, siScansNegatively, &iScansNegatively)) != GRIB_SUCCESS) + return err; + if ((err = grib_get_long_internal(h, salternativeRowScanning, &alternativeRowScanning)) != GRIB_SUCCESS) + return err; + + latFirstInRadians = latFirstInDegrees * d2r; + lonFirstInRadians = lonFirstInDegrees * d2r; + centralLongitudeInRadians = centralLongitudeInDegrees * d2r; + standardParallelInRadians = standardParallelInDegrees * d2r; + + if (is_oblate) { + err = init_oblate(h, self, iter->nv, nx, ny, + Dx, Dy, earthMinorAxisInMetres, earthMajorAxisInMetres, + latFirstInRadians, lonFirstInRadians, + centralLongitudeInRadians, standardParallelInRadians, + iScansNegatively, jScansPositively, jPointsAreConsecutive); + } + else { + err = init_sphere(h, self, iter->nv, nx, ny, + Dx, Dy, radius, + latFirstInRadians, lonFirstInRadians, + centralLongitudeInRadians, standardParallelInRadians, + iScansNegatively, jScansPositively, jPointsAreConsecutive); + } + if (err) return err; iter->e = -1; - return ret; + return err; } static int destroy(grib_iterator* i) diff --git a/src/grib_nearest.c b/src/grib_nearest.c index a07ab5904..5d62c8340 100644 --- a/src/grib_nearest.c +++ b/src/grib_nearest.c @@ -97,6 +97,37 @@ int grib_nearest_delete(grib_nearest* i) return 0; } +/* Get the radius in kilometres for nearest neighbour distance calculations */ +/* For an ellipsoid, approximate the radius using the average of the semimajor and semiminor axes */ +int grib_nearest_get_radius(grib_handle* h, double* radiusInKm) +{ + int err = 0; + long lRadiusInMetres; + double result = 0; + const char* s_radius = "radius"; + const char* s_minor = "earthMinorAxisInMetres"; + const char* s_major = "earthMajorAxisInMetres"; + + if ((err = grib_get_long(h, s_radius, &lRadiusInMetres)) == GRIB_SUCCESS) { + if (grib_is_missing(h, s_radius, &err) || lRadiusInMetres == GRIB_MISSING_LONG) { + grib_context_log(h->context, GRIB_LOG_DEBUG, "Key 'radius' is missing"); + return GRIB_GEOCALCULUS_PROBLEM; + } + result = ((double)lRadiusInMetres) / 1000.0; + } + else { + double minor = 0, major = 0; + if ((err = grib_get_double_internal(h, s_minor, &minor)) != GRIB_SUCCESS) return err; + if ((err = grib_get_double_internal(h, s_major, &major)) != GRIB_SUCCESS) return err; + if (grib_is_missing(h, s_minor, &err)) return GRIB_GEOCALCULUS_PROBLEM; + if (grib_is_missing(h, s_major, &err)) return GRIB_GEOCALCULUS_PROBLEM; + result = (major + minor) / 2.0; + result = result / 1000.0; + } + *radiusInKm = result; + return GRIB_SUCCESS; +} + void grib_binary_search(double xx[], const unsigned long n, double x, int* ju, int* jl) { @@ -264,7 +295,6 @@ int grib_nearest_find_generic( double inlat, double inlon, unsigned long flags, const char* values_keyname, - const char* radius_keyname, const char* Ni_keyname, const char* Nj_keyname, double** out_lats, @@ -278,7 +308,7 @@ int grib_nearest_find_generic( { int ret = 0, i = 0; size_t nvalues = 0, nneighbours = 0; - double radiusInMetres, radiusInKm; + double radiusInKm; grib_iterator* iter = NULL; double lat = 0, lon = 0; @@ -291,21 +321,8 @@ int grib_nearest_find_generic( return ret; nearest->values_count = nvalues; - /* We need the radius to calculate the nearest distance. For an oblate earth - approximate this using the average of the semimajor and semiminor axes */ - if ((ret = grib_get_double(h, radius_keyname, &radiusInMetres)) == GRIB_SUCCESS && - !grib_is_missing(h, radius_keyname, &ret)) { - radiusInKm = radiusInMetres / 1000.0; - } - else { - double minor = 0, major = 0; - if ((ret = grib_get_double_internal(h, "earthMinorAxisInMetres", &minor)) != GRIB_SUCCESS) return ret; - if ((ret = grib_get_double_internal(h, "earthMajorAxisInMetres", &major)) != GRIB_SUCCESS) return ret; - if (grib_is_missing(h, "earthMinorAxisInMetres", &ret)) return GRIB_GEOCALCULUS_PROBLEM; - if (grib_is_missing(h, "earthMajorAxisInMetres", &ret)) return GRIB_GEOCALCULUS_PROBLEM; - radiusInMetres = (major + minor) / 2; - radiusInKm = radiusInMetres / 1000.0; - } + if ((ret = grib_nearest_get_radius(h, &radiusInKm)) != GRIB_SUCCESS) + return ret; neighbours = (PointStore*)grib_context_malloc(nearest->context, nvalues * sizeof(PointStore)); for (i = 0; i < nvalues; ++i) { diff --git a/src/grib_nearest_class_lambert_azimuthal_equal_area.c b/src/grib_nearest_class_lambert_azimuthal_equal_area.c index 70715f472..a2d433b44 100644 --- a/src/grib_nearest_class_lambert_azimuthal_equal_area.c +++ b/src/grib_nearest_class_lambert_azimuthal_equal_area.c @@ -110,7 +110,6 @@ static int find(grib_nearest* nearest, grib_handle* h, nearest, h, inlat, inlon, flags, /* inputs */ self->values_key, /* outputs to set the 'self' object */ - self->radius, self->Ni, self->Nj, &(self->lats), diff --git a/src/grib_nearest_class_lambert_conformal.c b/src/grib_nearest_class_lambert_conformal.c index 0fc5ed54a..241a6b2c3 100644 --- a/src/grib_nearest_class_lambert_conformal.c +++ b/src/grib_nearest_class_lambert_conformal.c @@ -110,7 +110,6 @@ static int find(grib_nearest* nearest, grib_handle* h, nearest, h, inlat, inlon, flags, /* inputs */ self->values_key, /* outputs to set the 'self' object */ - self->radius, self->Ni, self->Nj, &(self->lats), diff --git a/src/grib_nearest_class_latlon_reduced.c b/src/grib_nearest_class_latlon_reduced.c index 5c4243718..02e31f6e8 100644 --- a/src/grib_nearest_class_latlon_reduced.c +++ b/src/grib_nearest_class_latlon_reduced.c @@ -119,22 +119,15 @@ static int find(grib_nearest* nearest, grib_handle* h, size_t nvalues = 0; grib_iterator* iter = NULL; double lat = 0, lon = 0; - long iradius; - double radius; + double radiusInKm; int ilat = 0, ilon = 0; if ((ret = grib_get_size(h, self->values_key, &nvalues)) != GRIB_SUCCESS) return ret; nearest->values_count = nvalues; - if (grib_is_missing(h, self->radius, &ret)) { - grib_context_log(h->context, GRIB_LOG_DEBUG, "Key '%s' is missing", self->radius); - return ret ? ret : GRIB_GEOCALCULUS_PROBLEM; - } - - if ((ret = grib_get_long(h, self->radius, &iradius)) != GRIB_SUCCESS) + if ((ret = grib_nearest_get_radius(h, &radiusInKm)) != GRIB_SUCCESS) return ret; - radius = ((double)iradius) / 1000.0; /* Compute lat/lon info, create iterator etc if it's the 1st time or different grid. * This is for performance: if the grid has not changed, we only do this once @@ -352,7 +345,7 @@ static int find(grib_nearest* nearest, grib_handle* h, kk = 0; for (jj = 0; jj < 2; jj++) { for (ii = 0; ii < 2; ii++) { - self->distances[kk] = geographic_distance_spherical(radius, inlon, inlat, + self->distances[kk] = geographic_distance_spherical(radiusInKm, inlon, inlat, self->lons[self->k[kk]], self->lats[self->j[jj]]); kk++; } diff --git a/src/grib_nearest_class_mercator.c b/src/grib_nearest_class_mercator.c index f447e9d2f..03737e45c 100644 --- a/src/grib_nearest_class_mercator.c +++ b/src/grib_nearest_class_mercator.c @@ -112,7 +112,6 @@ static int find(grib_nearest* nearest, grib_handle* h, nearest, h, inlat, inlon, flags, /* inputs */ self->values_key, /* outputs to set the 'self' object */ - self->radius, self->Ni, self->Nj, &(self->lats), diff --git a/src/grib_nearest_class_polar_stereographic.c b/src/grib_nearest_class_polar_stereographic.c index 4796c3ea6..e4568e3f0 100644 --- a/src/grib_nearest_class_polar_stereographic.c +++ b/src/grib_nearest_class_polar_stereographic.c @@ -110,7 +110,6 @@ static int find(grib_nearest* nearest, grib_handle* h, nearest, h, inlat, inlon, flags, /* inputs */ self->values_key, /* outputs to set the 'self' object */ - self->radius, self->Ni, self->Nj, &(self->lats), diff --git a/src/grib_nearest_class_reduced.c b/src/grib_nearest_class_reduced.c index 2a2235d1e..7fb2232f8 100644 --- a/src/grib_nearest_class_reduced.c +++ b/src/grib_nearest_class_reduced.c @@ -148,8 +148,7 @@ static int find(grib_nearest* nearest, grib_handle* h, size_t nvalues = 0; grib_iterator* iter = NULL; double lat = 0, lon = 0; - long iradius; - double radius; + double radiusInKm; int ilat = 0, ilon = 0; get_reduced_row_proc get_reduced_row_func = &grib_get_reduced_row; @@ -164,14 +163,8 @@ static int find(grib_nearest* nearest, grib_handle* h, return ret; nearest->values_count = nvalues; - if (grib_is_missing(h, self->radius, &ret)) { - grib_context_log(h->context, GRIB_LOG_DEBUG, "Key '%s' is missing", self->radius); - return ret ? ret : GRIB_GEOCALCULUS_PROBLEM; - } - - if ((ret = grib_get_long(h, self->radius, &iradius)) != GRIB_SUCCESS) + if ((ret = grib_nearest_get_radius(h, &radiusInKm)) != GRIB_SUCCESS) return ret; - radius = ((double)iradius) / 1000.0; /* Compute lat/lon info, create iterator etc if it's the 1st time or different grid. * This is for performance: if the grid has not changed, we only do this once @@ -421,7 +414,7 @@ static int find(grib_nearest* nearest, grib_handle* h, kk = 0; for (jj = 0; jj < 2; jj++) { for (ii = 0; ii < 2; ii++) { - self->distances[kk] = geographic_distance_spherical(radius, inlon, inlat, + self->distances[kk] = geographic_distance_spherical(radiusInKm, inlon, inlat, self->lons[self->k[kk]], self->lats[self->j[jj]]); kk++; } diff --git a/src/grib_nearest_class_regular.c b/src/grib_nearest_class_regular.c index 18f1c6f50..deea985d4 100644 --- a/src/grib_nearest_class_regular.c +++ b/src/grib_nearest_class_regular.c @@ -108,13 +108,10 @@ static int find(grib_nearest* nearest, grib_handle* h, grib_nearest_regular* self = (grib_nearest_regular*) nearest; int ret=0,kk=0,ii=0,jj=0; size_t nvalues=0; + double radiusInKm; - long iradius; - double radius; - - if( (ret = grib_get_long(h,self->radius,&iradius))!= GRIB_SUCCESS) + if ((ret = grib_nearest_get_radius(h, &radiusInKm)) != GRIB_SUCCESS) return ret; - radius=((double)iradius)/1000.0; if (!nearest->h || (flags & GRIB_NEAREST_SAME_DATA)==0 || nearest->h!=h) { grib_iterator* iter=NULL; @@ -231,8 +228,7 @@ static int find(grib_nearest* nearest, grib_handle* h, grib_nearest_regular* self = (grib_nearest_regular*)nearest; int ret = 0, kk = 0, ii = 0, jj = 0; size_t nvalues = 0; - long iradius; - double radius; + double radiusInKm; grib_iterator* iter = NULL; double lat = 0, lon = 0; @@ -248,14 +244,8 @@ static int find(grib_nearest* nearest, grib_handle* h, return ret; nearest->values_count = nvalues; - if (grib_is_missing(h, self->radius, &ret)) { - grib_context_log(h->context, GRIB_LOG_DEBUG, "Key '%s' is missing", self->radius); - return ret ? ret : GRIB_GEOCALCULUS_PROBLEM; - } - - if ((ret = grib_get_long(h, self->radius, &iradius)) != GRIB_SUCCESS) + if ((ret = grib_nearest_get_radius(h, &radiusInKm)) != GRIB_SUCCESS) return ret; - radius = ((double)iradius) / 1000.0; /* Compute lat/lon info, create iterator etc if it's the 1st time or different grid. * This is for performance: if the grid has not changed, we only do this once @@ -414,7 +404,7 @@ static int find(grib_nearest* nearest, grib_handle* h, for (jj = 0; jj < 2; jj++) { for (ii = 0; ii < 2; ii++) { self->k[kk] = self->i[ii] + self->lons_count * self->j[jj]; - self->distances[kk] = geographic_distance_spherical(radius, inlon, inlat, + self->distances[kk] = geographic_distance_spherical(radiusInKm, inlon, inlat, self->lons[self->i[ii]], self->lats[self->j[jj]]); kk++; } diff --git a/src/grib_nearest_class_space_view.c b/src/grib_nearest_class_space_view.c index 874670f67..2d063066f 100644 --- a/src/grib_nearest_class_space_view.c +++ b/src/grib_nearest_class_space_view.c @@ -110,7 +110,6 @@ static int find(grib_nearest* nearest, grib_handle* h, nearest, h, inlat, inlon, flags, /* inputs */ self->values_key, /* outputs to set the 'self' object */ - self->radius, self->Ni, self->Nj, &(self->lats), diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 92c80d08a..d8b78af26 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -233,6 +233,7 @@ if( HAVE_BUILD_TOOLS ) grib_dump_debug grib_dump_json grib_local_MeteoFrance + grib_local_NCEP grib_neg_fctime codes_split_file grib_mars_keys) diff --git a/tests/grib_grid_lamb_az_eq_area.sh b/tests/grib_grid_lamb_az_eq_area.sh index 71f048746..206b1623f 100755 --- a/tests/grib_grid_lamb_az_eq_area.sh +++ b/tests/grib_grid_lamb_az_eq_area.sh @@ -8,7 +8,7 @@ # virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction. . ./include.sh -#set -x + GRIB_INFILE=${data_dir}/regular_gaussian_pressure_level_constant.grib2 REF_FILE=grib_lamb_az_eq_area.ref @@ -19,34 +19,37 @@ GRIB_OUTFILE=lamb_az_eq_area.grib2 DATA_OUTFILE=lamb_data.txt rm -f $FILTER_FILE $GRIB_OUTFILE $DATA_OUTFILE +# Spherical Earth +# ---------------- + # Create a filter cat > $FILTER_FILE<&2 - exit 1 -fi -# Now get the data from the newly created GRIB file +rm -f "$GRIB_OUTFILE" +${tools_dir}/grib_filter -o $GRIB_OUTFILE $FILTER_FILE $GRIB_INFILE + +# Now run the Geoiterator on the newly created GRIB file ${tools_dir}/grib_get_data $GRIB_OUTFILE > $DATA_OUTFILE # Compare output with reference. If the diff fails, script will immediately exit with status 1 @@ -59,5 +62,36 @@ grib_check_key_equals $GRIB_OUTFILE xDirectionGridLengthInMetres,yDirectionGridL ${tools_dir}/grib_ls -l 67,-33,1 $GRIB_OUTFILE +# Oblate spheroid +# -------------------- + +cat > $FILTER_FILE<