创建网格并分配值
Create a grid and assign values
我想用确定的间距创建一个世界上的2D平方网格(例如D)
-180 =< j =< 180
-90 =< k =< 90
Grid[j][k]
,然后分配给每个单元格的LON LAT点,我存储在两个数组中
0 =< i < N
Lon[i]
Lat[i]
按细胞分组。
我正在考虑使用嵌套环来创建网格,但我不确定如何处理。
非常感谢
您可能会被SO社区大喊大叫,以提出一个新手问题,而没有很多研究迹象。但这是我的强制性答案。
struct Position
{
double Lon, Lat;
}
const unsigned short lonCount = 180;
const unsigned short latCount = 360;
Position positions[lonCount][latCount];
for( unsigned short lon = -90; lon <= 90; lon++ )
{
for( unsigned short lat = -180; lat <= 180; lat++ )
{
Position* p = &positions[lon + lonCount / 2][lat + latCount / 2];
p->Lon = lon;
p->Lat = lat;
}
}
这应该让您入门。
struct Position {
double Lon, Lat;
int index;
};
int main(){
printf ("n");
static const double arrlon[] = {100,180,180};
static const double arrlat[] = {0,2,3};
static const int arrind[] = {0,0,0};
vector<double> londat (arrlon, arrlon + sizeof(arrlon) / sizeof(arrlon[0]));
vector<double> latdat (arrlat, arrlat + sizeof(arrlat) / sizeof(arrlat[0]));
vector<int> index (arrind, arrind + sizeof(arrind) / sizeof(arrind[0]));
int N = sizeof(arrlat)/ sizeof(arrlat[0]) ;
const int lonCount = 360;
const int latCount = 180;
const int step = 5;
Position positions[lonCount+1][latCount+1];
Position* p;
int count = 0;
for(int lon = 0; lon <= 360; lon=lon+step){
for(int lat = 0; lat <= 180; lat=lat+step){
p = &positions[lon][lat];
p->Lon = lon;
p->Lat = lat;
p->index = count;
count++;
for (int i = 0; i<N ; i++){
if(londat[i] >= p->Lon && londat[i] < p->Lon+step && latdat[i] >= p->Lat && latdat[i] < p->Lat+step) index[i] = p->index;
}
}
}
for (int i = 0; i<N ; i++) cerr << i << " " << index[i] << endl;
return 0;
}
相关文章:
- 将数组的地址分配给变量并删除
- vector.resize()中的分配错误
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- Win32编译器选项和内存分配
- 函数中堆分配的效果与缺少堆分配的情况
- 使用动态分配的数组会导致代码分析发出虚假的C6386缓冲区溢出警告
- 多个文件的内存分配错误"在抛出 'std :: bad_alloc' what (): std :: bad_alloc 的实例后终止调用" [C++]
- 获取字符串的长度并将其分配给数组
- 将地址分配给本地指针后,公共对象的变量将消失
- 递归模板化函数不能分配给具有常量限定类型"const tt &"的变量"state"
- 有没有一种方法可以使用placement new将堆叠对象分配给分配的内存
- 我在二维向量中是否正确分配了内存
- 正在尝试重载二进制搜索树分配运算符
- GlobalAlloc而不是其他分配方法
- 自定义先决条件对移动分配运算符有效吗
- 我可以重新分配/覆盖std::字符串吗
- 在c++中使用动态分配的问题
- 当一个新对象被分配到它的地址时,对象是否必须被销毁
- 创建网格并分配值
- CUDA:在2D网格中分配线程ID