2

左下と右上の座標で定義された特定の地理的地域があります。この地域を 20x20km のエリアに分割するにはどうすればよいですか。つまり、地球の形は平らではなく丸いということです。境界ボックスは単なる近似値です。実際の意味での長方形でさえありません。それはただの仮定です。左下の座標が x1,y1 で指定され、右上の座標が x2,y2 で指定されているとします。y1 での x1 から x2 までの長さは、y2 での x1 から x2 までの長さとは異なります。どうすればこの問題を克服できますか

実際には、matlab の meshgrid 関数を使用して、この領域の空間メッシュ グリッドを作成する必要があります。グリッドの面積が 20x20km になるようにします。

meshgrid(x1:deltaY:x2,y1:deltaX:y2)

ご覧のとおり、deltaX と deltaY は 1 つしか持てません。増分によってサイズ 20x20km のグリッドが作成されるように、deltaX と deltaY を選択したいと考えています。ただし、この deltaX と deltaY は場所によって異なるはずです。助言がありますか?

つまり、deltaX=del1 としましょう。この場合、点 (x1,y1) から (x1,y1+del1) までの距離は 20km です。しかし、ポイント (x2,y1) から (x2, y1_del1) までの距離を測定すると、距離は < 20km です。上記の meshgrid 関数はメッシュを作成します。しかし、距離は一定ではありません。この問題を克服する方法はありますか?

4

1 に答える 1

0

地表の 20 km は非常に短い距離であり、約 0.01 ラジアンであることを心に留めておいてください。したがって、あなたが見ている領域は、非科学的なものについては平坦であると概算されます。科学的だと仮定して...

meshgrid で単調なステップ以外のものを取得するには、目的の (x,y) を入力として受け取り、選択した単位で (x_0,y_0) および (x_max,y_max) に相対的にマップする関数を作成する必要があります。これは、メッシュグリッド ステップに関数を使用するアイデアを示すインライン関数です。

step=inline('log10(x)');
[x,y]=meshgrid(step(1:10),step(1:10));
image(255*x.*y)
colormap(gray(255))

では、関数がどうあるべきかをどのように判断しますか? データセットがどのように見えるか、どのように操作しているか、精度要件は何かについて、もう少し情報がないと正確に答えることができません。すべてのポイントで実際の位置にアクセスできる場合は、一度に 1 つのディメンションを変更し (たとえば、データ グリッドが緯度グリッドと一致している場合)、モデル選択手法 (akaike/bayes 基準) で曲線近似を使用する必要があります。データに最適な関数を見つけます。

于 2012-07-01T14:11:37.187 に答える