导入landuse数据的最终脚本

经过漫长的测试(3天的运行),修改后的最终版本可以实现:

保存当前进度
下次运行可以从上次进度运行
可以更新县区代码
可以更新时间

最终的代码如下:

#!/bin/sh
# cd /opt/to_reback/data/landuse
#set -x
d1=./tmpdata1
d2=./tmpdata2
YEAR=”80年代末 1995年 2000年”
for a in $YEAR; do
for b in $a/*; do #province, 目录判断
if [ -d $b ]; then
rm -fdr $d1
rm -fdr $d2
for c in $b/ld*; do # areacode, 县级区域
bb=`echo $b | sed “s/\///g”` # 去除/特殊字符,否则sed罢工
areacode=`echo $c | sed “s/\///g” | sed “s/$bb//g” | sed “s/ld//g”`
#echo $c
if [ `cat work.log | grep “$c”` ]; then
echo $c
echo “already done!”
else
ogr2ogr $d1 $c && ogr2ogr $d2 $d1/PAL.shp -f “ESRI Shapefile” -select area,perimeter,r_area,ln71,ln72,ln73,ln74,aftln,tm20,tm30,tm40,tm50,tm60,afttm,ph41,ph52,ph53,net || exit
shp2pgsql -a -g the_geom -i $d2/PAL.shp landuse | psql -d westdc || exit
psql -d westdc -c “update landuse set areacode=’$areacode’ where areacode=”” || exit
echo $c >> work.log
# echo “here not done”
echo $c
#exit
fi
done
#vacuumdb westdc
fi
done
psql -d westdc -c “update landuse set year=’$a’ where year=”” || exit
done
#set +x


已发布

分类

,

来自

标签:

评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注