全国高分辨率土地利用数据服务 土地利用数据服务 土地覆盖数据服务 坡度数据服务 土壤侵蚀数据服务 全国各省市DEM数据服务 耕地资源空间分布数据服务 草地资源空间分布数据服务 林地资源空间分布数据服务 水域资源空间分布数据服务 建设用地空间分布数据服务 地形、地貌、土壤数据服务 分坡度耕地数据服务 全国大宗农作物种植范围空间分布数据服务
多种卫星遥感数据反演植被覆盖度数据服务 地表反照率数据服务 比辐射率数据服务 地表温度数据服务 地表蒸腾与蒸散数据服务 归一化植被指数数据服务 叶面积指数数据服务 净初级生产力数据服务 净生态系统生产力数据服务 生态系统总初级生产力数据服务 生态系统类型分布数据服务 土壤类型质地养分数据服务 生态系统空间分布数据服务 增强型植被指数数据服务
多年平均气温空间分布数据服务 多年平均降水量空间分布数据服务 湿润指数数据服务 大于0℃积温空间分布数据服务 光合有效辐射分量数据服务 显热/潜热信息数据服务 波文比信息数据服务 地表净辐射通量数据服务 光合有效辐射数据服务 温度带分区数据服务 山区小气候因子精细数据服务
全国夜间灯光指数数据服务 全国GDP公里格网数据服务 全国建筑物总面积公里格网数据服务 全国人口密度数据服务 全国县级医院分布数据服务 人口调查空间分布数据服务 收入统计空间分布数据服务 矿山面积统计及分布数据服务 载畜量及空间分布数据服务 农作物种植面积统计数据服务 农田分类面积统计数据服务 农作物长势遥感监测数据服务 医疗资源统计数据服务 教育资源统计数据服务 行政辖区信息数据服务
Landsat 8 高分二号 高分一号 SPOT-6卫星影像 法国Pleiades高分卫星 资源三号卫星 风云3号 中巴资源卫星 NOAA/AVHRR MODIS Landsat TM 环境小卫星 Landsat MSS 天绘一号卫星影像
KD树定义
KD树的每个内部结点都包含一个点,每个结点表示k维空间中的一个点,并且和一个矩形区域相对应,树的根结点和整个研究区域相对应。KD树要求用平行于坐标轴的纵横分界线将平面分为若干区域,使每个区域中的点数不超过给定值。树中奇数层次上的点的x坐标和偶数层次上的点的y坐标把矩形区域分成两部分。分界线仅起分界的作用,它的选取没有硬性的限制。一般选用通过某点的横向线或者纵向线。分界线上的点,对左右分界线来说属于右部,对上下分界线来说属于上部。 如图:
KD树查找
伪代码
Algorithm KD_Search(R,P)
/*在根结点为R的KD树(子树)中查找点P。找到则返回结点,否则返回NULL*/
Begin
If R=NULL Then Return NULL;//Not Found
If R. Point=P Then Return R;//Found;
Else
Begin
d:=Discriminator of R;
If P[d] <R Point[d] Then /*比较P点与R结点的第D维的值*/
KD_Search(R.Lchild,P)//在左子树继续查找
Else
KD_Search(R.Rchild,P)//在右子树继续查找
End
End.
KD树插入
伪代码
Algorithm KD_Insert(R,P,F)
/*在根结点为R的KD树(子树)中插入点P,F为R的父结点*/
Begin
If R=NULL Then
Begin
Create a Node P;
If F=NULL Then //KD树为空
Root:=P//P成为根结点
Else
If R Is the Left child of F Then
F.Lchild:=P//P作为F的左孩子
Else F.Rchild:=P//P作为F的右孩子
End
Else
Begin
d:=Discriminator of R;
If P[d]R.Point[d] Then/*比较P点与R点的第D维的值*/
KD_Insert(R.Lchild,P,R)//插入到左子树中
Else
KD_Insert(R.Rchild,P,R)// 插入到右子树中
End;
End;
KD树删除
Algorithm KD_Delete(R,P)
/*在根结点为R的KD树(子树)中点P,删除成功返回True,否则返回False */
Begin
Q:= KD_Search(R,P);//Q为要删除的对象
LABEL;
If Q=NULL Then Return False;//Not found
If (Q.Lchild=NULL) And (Q.Rchild=NULL) Then
Begin//第一种情况
F:=Q is Father Node;
If Q is the left Child of F then
F.Lchild:=NULL
Else F.Rchild:NULL;
Delete Node Q;
Return True;
End
Else
Begin
If (Q.Rchild=NULL) Then第三种情况转化为第二种情况处理
Q.Rchild:=Q.Lchild;
M:=FindMin(Q.Rchild);
(Q)←(M);//将M结点的值赋给Q结点
Q:=M;//让Q指向M结点
GOTO LABEL;//继续删M结点
End
end