通常のX / Yグリッドに描画する必要がある3Dサーフェスがテキストファイルにあります。しかし、XとYの値は一定の間隔を置いておらず、必ずしも昇順である必要はありません。定期的にX座標とY座標の間隔を置き、Z列に値を挿入する必要があります。 Z列にはサブサンプリングは必要ありません。
Hearはこのファイルの例です。列はX、Y、および値(またはZ)です。
50459.83 170405.62 0.01
50439.13 170384.92 0.03
50459.83 170384.92 0.04
50480.53 170384.92 0.01
50459.83 170364.22 0.13
50480.53 170364.22 0.14
50397.72 170343.51 0.27
50418.42 170343.51 0.33
50480.53 170343.51 0.32
50501.23 170343.51 0.36
50563.34 170343.51 0.29
私は次の出力が欲しい:
50460 170400 0.01
50440 170380 0.03
50460 170380 0.04
50480 170380 0.01
50460 170360 0.13
つまり、20x20グリッドでXとYをサンプリングし、Z列を対応するグリッド点に補間します(例出力ではこれを実行しませんでした)。
ファイルは数千万行で構成されています。
ありがとうございます。
ベストアンサー1
AFAICTの例入力と出力に基づいて、最初のフィールドを最も近い10に丸め、2番目のフィールドを最も近い10に丸め、3番目のフィールドを維持しようとしています。
awk '{printf "%5.0f\t%6.0f\t%.2f\n", int($1/10+0.5)*10, int($2/10)*10, $3}' file
出力:
50460 170400 0.01
50440 170380 0.03
50460 170380 0.04
50480 170380 0.01
50460 170360 0.13
50480 170360 0.14
50400 170340 0.27
50420 170340 0.33
50480 170340 0.32
50500 170340 0.36
50560 170340 0.29