2012-06-02 8 views
2

У меня есть определенная географическая область, определяемая нижними левыми и верхними правыми координатами. Как я могу разделить этот регион на области 20х20 км. Я имею в виду, что в практической форме земля не плоская, она круглая. Ограничивающая рамка - это просто приближение. В действительности это даже не прямоугольное. Это просто предположение. Предположим, что нижняя координата задается x1, y1, а координата вершины задается через x2, y2, длина x1-x2 в y1 отличается от длины между x1-x2 при y2. Как я могу преодолеть этот вопрос?Разделение географического региона

На самом деле, я должен создать пространственный meshgrid для этой области, используя функцию meshgrid от matlab. Так что сетки имеют площадь 20x20 км.

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

Как вы можете видеть, у меня может быть только одна дельта X и одна дельта. Я хочу выбрать deltaX и deltaY, чтобы приращения создавали сетку размером 20x20 км. Однако эти дельтаX и дельта должны меняться в зависимости от местоположения. Какие-либо предложения?

Я имею в виду, скажем deltaX = del1. Тогда расстояние между точками (x1, y1) до (x1, y1 + del1) составляет 20 км. BUt, когда я измеряю расстояние между точками (x2, y1) до (x2, y1_del1), расстояние < 20 км. Функция meshgrid, указанная выше, создает сетку. Но расстояния не согласованы. Любые идеи, как преодолеть эту проблему?

ответ

0

Имейте в виду, что 20 км на поверхности земли - ДЕЙСТВИТЕЛЬНО короткое расстояние, около 0,01 радиан - поэтому область, на которую вы смотрите, будет аппроксимирована как плоская для чего-то не научного. Предполагая, что это научный ...

Чтобы получить что-то иное, чем монотонные шаги в meshgrid, вы должны создать функцию, которая в качестве своего ввода принимает (x, y) и сопоставляет ее относительно (x_0, y_0) и (x_max , y_max) в выбранных вами единицах. Вот встроенная функция демонстрирует идею использования функции для meshgrid шаги

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

Так как же определить, что функция должна быть? Нам трудно точно ответить без дополнительной информации о том, как выглядит ваш набор данных, как вы взаимодействуете с ним и каковы ваши требования к точности. Если у вас есть доступ к фактическому местоположению в каждой точке, вы должны менять один размер за раз (если, например, ваша сетка данных выровнена с вашей сетью широт) и используйте кривую, подходящую для методов выбора модели (критерий akaike/bayes) чтобы найти наилучшую функцию для ваших данных.