1

Golang を使用して GNSS RINEX ファイルを解析しようとしています。

たとえば、VERSION 行の RINEX 仕様は次のとおりです。

+--------------------+------------------------------------------+------------+
|RINEX VERSION / TYPE| - Format version (2.11)                  | F9.2,11X,  |
|                    | - File type ('O' for Observation Data)   |   A1,19X,  |
|                    | - Satellite System: blank or 'G': GPS    |   A1,19X   |
|                    |                     'R': GLONASS         |            |
|                    |                     'S': Geostationary   |            |
|                    |                          signal payload  |            |
|                    |                     'E': Galileo         |            |
|                    |                     'M': Mixed           |            |
+--------------------+------------------------------------------+------------+

RINEX ファイルの各行は、80 ASCII 文字 + "\n" の固定幅です。この例では、最初の 9 文字がバージョン番号 (float) を表しています。

Python では、次を使用できます。

struct.unpack("9s11s1s19s1s19s20s", line)

これは、7 つの文字列を持つタプルを返します。

私は初めてで、フォーマットされたテキストを読むために fmt.Sscanf を使用しようとしています:

func main() {
    str := "     2.11           OBSERVATION DATA    G (GPS)             RINEX VERSION / TYPE\n"
    var value float32
    a, err := fmt.Sscanf(str,"%9.2f", &value)
    fmt.Println(a)
    fmt.Println(err)
    fmt.Println(value)
}

戻り値:

0
bad verb %. for float32
0

固定幅データの解析を許可するパッケージはありますか?

そうでない場合、Python の構造体に似たものを書くための良いアプローチは何でしょうか?

4

1 に答える 1