<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Geoinformatics &#187; Python</title>
	<atom:link href="http://www.geoinformatics.cn/tag/python/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.geoinformatics.cn</link>
	<description>Arts and Sciences move me on ...</description>
	<lastBuildDate>Sat, 28 Aug 2010 18:31:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>GDAL中文学习资料</title>
		<link>http://www.geoinformatics.cn/2010/01/gdal%e4%b8%ad%e6%96%87%e5%ad%a6%e4%b9%a0%e8%b5%84%e6%96%99/</link>
		<comments>http://www.geoinformatics.cn/2010/01/gdal%e4%b8%ad%e6%96%87%e5%ad%a6%e4%b9%a0%e8%b5%84%e6%96%99/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 01:10:43 +0000</pubDate>
		<dc:creator>musicman</dc:creator>
				<category><![CDATA[技术心得]]></category>
		<category><![CDATA[GDAL]]></category>
		<category><![CDATA[OSGeo]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.geoinformatics.cn/?p=2997</guid>
		<description><![CDATA[早上查收OSGeo China的邮件，看到中科院的柴树杉老师(chaishushan@gmail.com)翻译了GDAL的开发资料，详见（http://www.osgeo.org.cn/l18n/gdal/）。 如果喜欢用python，不妨看看啄木鸟社区的一份GDAL的开发材料（http://wiki.woodpecker.org.cn/moin/lilin/gdal-index）。]]></description>
			<content:encoded><![CDATA[<div id="attachment_3004" class="wp-caption alignright" style="width: 60px"><a href="http://www.geoinformatics.cn/wp-content/uploads/2010/01/20090107_200px-GDALLogoColor.svg_.png" rel="shadowbox[post-2997];player=img;" title="GDAL Logo"><img class="size-full wp-image-3004   " title="GDAL Logo" src="http://www.geoinformatics.cn/wp-content/uploads/2010/01/20090107_200px-GDALLogoColor.svg_.png" alt="GDAL Logo" width="50" /></a><p class="wp-caption-text">GDAL Logo</p></div>
<p>早上查收OSGeo China的邮件，看到中科院的柴树杉老师(<a href="mailto:chaishushan@gmail.com">chaishushan@gmail.com</a>)翻译了GDAL的开发资料，详见（<a href="http://www.osgeo.org.cn/l18n/gdal/">http://www.osgeo.org.cn/l18n/gdal/</a>）。</p>
<p>如果喜欢用python，不妨看看啄木鸟社区的一份GDAL的开发材料（<a href="http://wiki.woodpecker.org.cn/moin/lilin/gdal-index">http://wiki.woodpecker.org.cn/moin/lilin/gdal-index</a>）。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geoinformatics.cn/2010/01/gdal%e4%b8%ad%e6%96%87%e5%ad%a6%e4%b9%a0%e8%b5%84%e6%96%99/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>写了一份pyQuery教程</title>
		<link>http://www.geoinformatics.cn/2009/11/%e5%86%99%e4%ba%86%e4%b8%80%e4%bb%bdpyquery%e6%95%99%e7%a8%8b/</link>
		<comments>http://www.geoinformatics.cn/2009/11/%e5%86%99%e4%ba%86%e4%b8%80%e4%bb%bdpyquery%e6%95%99%e7%a8%8b/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 23:48:32 +0000</pubDate>
		<dc:creator>musicman</dc:creator>
				<category><![CDATA[技术心得]]></category>
		<category><![CDATA[Jquery]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.geoinformatics.cn/?p=1451</guid>
		<description><![CDATA[前几天在用pyquery，绝对这个库做的非常好，索性就将原来的英文教程进行翻译。如果喜欢jquery然后用想在python中使用jquery的语法，不妨用用pyquery，不会让大家失望的。 请访问如下地址 http://geoinformatics.cn/lab/pyquery/]]></description>
			<content:encoded><![CDATA[<p>前几天在用pyquery，绝对这个库做的非常好，索性就将原来的英文教程进行翻译。如果喜欢jquery然后用想在python中使用jquery的语法，不妨用用pyquery，不会让大家失望的。</p>
<p>请访问如下地址 <a href="http://geoinformatics.cn/lab/pyquery/">http://geoinformatics.cn/lab/pyquery/</a></p>
<p><img class="alignnone size-full wp-image-1452" title="pyquery" src="/wp-content/uploads//20091101_pyquery.jpg" alt="pyquery" width="500" height="479" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.geoinformatics.cn/2009/11/%e5%86%99%e4%ba%86%e4%b8%80%e4%bb%bdpyquery%e6%95%99%e7%a8%8b/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>利用python解析基于GraphML的的社会网络并用GIS展示</title>
		<link>http://www.geoinformatics.cn/2009/10/%e5%88%a9%e7%94%a8python%e8%a7%a3%e6%9e%90%e5%9f%ba%e4%ba%8egraphml%e7%9a%84%e7%9a%84%e7%a4%be%e4%bc%9a%e7%bd%91%e7%bb%9c%e5%b9%b6%e7%94%a8gis%e5%b1%95%e7%a4%ba/</link>
		<comments>http://www.geoinformatics.cn/2009/10/%e5%88%a9%e7%94%a8python%e8%a7%a3%e6%9e%90%e5%9f%ba%e4%ba%8egraphml%e7%9a%84%e7%9a%84%e7%a4%be%e4%bc%9a%e7%bd%91%e7%bb%9c%e5%b9%b6%e7%94%a8gis%e5%b1%95%e7%a4%ba/#comments</comments>
		<pubDate>Sat, 31 Oct 2009 08:16:49 +0000</pubDate>
		<dc:creator>musicman</dc:creator>
				<category><![CDATA[技术心得]]></category>
		<category><![CDATA[ArcGIS]]></category>
		<category><![CDATA[GIS]]></category>
		<category><![CDATA[Jquery]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Social Network]]></category>
		<category><![CDATA[uDig]]></category>

		<guid isPermaLink="false">http://www.geoinformatics.cn/?p=1438</guid>
		<description><![CDATA[好长一个标题&#8230; &#8230;但是确实是用python来连接SNA（Social Network Analysis）和GIS(Geographic Information System)。脑子里反复想着自己特长是啥，画地图？那大概是5岁以前的事情，后来几个伙计打趣说我谈恋爱很在行，Seriously，这方面我还确实拿不出手。一直不离不弃的，也许就是自己编程的能耐，当学了“君子不器”后，越来越发觉似乎连编程都不能当会事了，但是话说回来，至少这算是个爱好吧。 需求大抵是这样的，客户用igraph进行社会网络分析，然后生成了xml格式的数据文件，但并没有很好的网络展示平台，manager就来找我，希望通过我们研发的WebGIS系统展示。在我们的WebGIS系统中，矢量数据都是保存在PostgreSQL数据库里，一般来说，都是通过shapefile 生成sql files，然后导入数据库。由于没有shapefile，但是分析graphicML文件发现结构还是很简单的，而且对于社会网络的两个node之间的关系（relationship），从几何的角度讲，两个nodes构成的关系就是一条两点直线（edge）。基于此，我希望通过python对graphML进行分析，然后直接生成sql file，导入到postgreSQL里面，此后就能用uDig就能直接转换成为shapefile，我不清楚新版的ArcGIS 9.3有没有相似的功能，好久不用Arctoolbox了。 原始数据片段： &#60; ?xml version=&#34;1.0&#34; encoding=&#34;UTF-8&#34;?&#62; &#60;graphml xmlns=&#34;http://graphml.graphdrawing.org/xmlns&#34; xmlns:xsi=&#34;http://www.w3.org/2001/XMLSchema-instance&#34; xsi:schemaLocation=&#34;http://graphml.graphdrawing.org/xmlns http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd&#34;&#62; &#60;!-- Created by igraph --&#62; &#60;key id=&#34;filestub&#34; for=&#34;graph&#34; attr.name=&#34;filestub&#34; attr.type=&#34;string&#34;/&#62; &#60;key id=&#34;id&#34; for=&#34;node&#34; attr.name=&#34;id&#34; attr.type=&#34;string&#34;/&#62; &#60;key id=&#34;xcoord&#34; for=&#34;node&#34; attr.name=&#34;xcoord&#34; attr.type=&#34;double&#34;/&#62; &#60;key id=&#34;ycoord&#34; for=&#34;node&#34; attr.name=&#34;ycoord&#34; attr.type=&#34;double&#34;/&#62; &#60;key id=&#34;h_loc&#34; for=&#34;edge&#34; attr.name=&#34;h_loc&#34; attr.type=&#34;string&#34;/&#62; &#60;key id=&#34;h_zip&#34; for=&#34;edge&#34; attr.name=&#34;h_zip&#34; [...]]]></description>
			<content:encoded><![CDATA[<p>好长一个标题&#8230; &#8230;但是确实是用python来连接SNA（Social Network Analysis）和GIS(Geographic Information System)。脑子里反复想着自己特长是啥，画地图？那大概是5岁以前的事情，后来几个伙计打趣说我谈恋爱很在行，Seriously，这方面我还确实拿不出手。一直不离不弃的，也许就是自己编程的能耐，当学了“君子不器”后，越来越发觉似乎连编程都不能当会事了，但是话说回来，至少这算是个爱好吧。</p>
<p>需求大抵是这样的，客户用igraph进行社会网络分析，然后生成了xml格式的数据文件，但并没有很好的网络展示平台，manager就来找我，希望通过我们研发的WebGIS系统展示。在我们的WebGIS系统中，矢量数据都是保存在PostgreSQL数据库里，一般来说，都是通过shapefile 生成sql files，然后导入数据库。由于没有shapefile，但是分析graphicML文件发现结构还是很简单的，而且对于社会网络的两个node之间的关系（relationship），从几何的角度讲，两个nodes构成的关系就是一条两点直线（edge）。基于此，我希望通过python对graphML进行分析，然后直接生成sql file，导入到postgreSQL里面，此后就能用uDig就能直接转换成为shapefile，我不清楚新版的ArcGIS 9.3有没有相似的功能，好久不用Arctoolbox了。</p>
<p><span id="more-1438"></span><img class="alignnone size-full wp-image-1440" title="sna" src="/wp-content/uploads//200091031_sna1.jpg" alt="sna" width="500" height="466" /></p>
<p>原始数据片段：</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;">&lt; ?xml <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;UTF-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;graphml</span> <span style="color: #000066;">xmlns</span>=<span style="color: #ff0000;">&quot;http://graphml.graphdrawing.org/xmlns&quot;</span></span>
<span style="color: #009900;">         <span style="color: #000066;">xmlns:xsi</span>=<span style="color: #ff0000;">&quot;http://www.w3.org/2001/XMLSchema-instance&quot;</span></span>
<span style="color: #009900;">         <span style="color: #000066;">xsi:schemaLocation</span>=<span style="color: #ff0000;">&quot;http://graphml.graphdrawing.org/xmlns</span>
<span style="color: #009900;">         http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
<span style="color: #808080; font-style: italic;">&lt;!-- Created by igraph --&gt;</span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;key</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;filestub&quot;</span> <span style="color: #000066;">for</span>=<span style="color: #ff0000;">&quot;graph&quot;</span> <span style="color: #000066;">attr.name</span>=<span style="color: #ff0000;">&quot;filestub&quot;</span> <span style="color: #000066;">attr.type</span>=<span style="color: #ff0000;">&quot;string&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;key</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;id&quot;</span> <span style="color: #000066;">for</span>=<span style="color: #ff0000;">&quot;node&quot;</span> <span style="color: #000066;">attr.name</span>=<span style="color: #ff0000;">&quot;id&quot;</span> <span style="color: #000066;">attr.type</span>=<span style="color: #ff0000;">&quot;string&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;key</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;xcoord&quot;</span> <span style="color: #000066;">for</span>=<span style="color: #ff0000;">&quot;node&quot;</span> <span style="color: #000066;">attr.name</span>=<span style="color: #ff0000;">&quot;xcoord&quot;</span> <span style="color: #000066;">attr.type</span>=<span style="color: #ff0000;">&quot;double&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;key</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;ycoord&quot;</span> <span style="color: #000066;">for</span>=<span style="color: #ff0000;">&quot;node&quot;</span> <span style="color: #000066;">attr.name</span>=<span style="color: #ff0000;">&quot;ycoord&quot;</span> <span style="color: #000066;">attr.type</span>=<span style="color: #ff0000;">&quot;double&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;key</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;h_loc&quot;</span> <span style="color: #000066;">for</span>=<span style="color: #ff0000;">&quot;edge&quot;</span> <span style="color: #000066;">attr.name</span>=<span style="color: #ff0000;">&quot;h_loc&quot;</span> <span style="color: #000066;">attr.type</span>=<span style="color: #ff0000;">&quot;string&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;key</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;h_zip&quot;</span> <span style="color: #000066;">for</span>=<span style="color: #ff0000;">&quot;edge&quot;</span> <span style="color: #000066;">attr.name</span>=<span style="color: #ff0000;">&quot;h_zip&quot;</span> <span style="color: #000066;">attr.type</span>=<span style="color: #ff0000;">&quot;string&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;key</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;h_city&quot;</span> <span style="color: #000066;">for</span>=<span style="color: #ff0000;">&quot;edge&quot;</span> <span style="color: #000066;">attr.name</span>=<span style="color: #ff0000;">&quot;h_city&quot;</span> <span style="color: #000066;">attr.type</span>=<span style="color: #ff0000;">&quot;string&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;key</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;t_loc&quot;</span> <span style="color: #000066;">for</span>=<span style="color: #ff0000;">&quot;edge&quot;</span> <span style="color: #000066;">attr.name</span>=<span style="color: #ff0000;">&quot;t_loc&quot;</span> <span style="color: #000066;">attr.type</span>=<span style="color: #ff0000;">&quot;string&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;key</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;t_zip&quot;</span> <span style="color: #000066;">for</span>=<span style="color: #ff0000;">&quot;edge&quot;</span> <span style="color: #000066;">attr.name</span>=<span style="color: #ff0000;">&quot;t_zip&quot;</span> <span style="color: #000066;">attr.type</span>=<span style="color: #ff0000;">&quot;string&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;key</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;t_city&quot;</span> <span style="color: #000066;">for</span>=<span style="color: #ff0000;">&quot;edge&quot;</span> <span style="color: #000066;">attr.name</span>=<span style="color: #ff0000;">&quot;t_city&quot;</span> <span style="color: #000066;">attr.type</span>=<span style="color: #ff0000;">&quot;string&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;key</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;appyear&quot;</span> <span style="color: #000066;">for</span>=<span style="color: #ff0000;">&quot;edge&quot;</span> <span style="color: #000066;">attr.name</span>=<span style="color: #ff0000;">&quot;appyear&quot;</span> <span style="color: #000066;">attr.type</span>=<span style="color: #ff0000;">&quot;string&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;key</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;patent&quot;</span> <span style="color: #000066;">for</span>=<span style="color: #ff0000;">&quot;edge&quot;</span> <span style="color: #000066;">attr.name</span>=<span style="color: #ff0000;">&quot;patent&quot;</span> <span style="color: #000066;">attr.type</span>=<span style="color: #ff0000;">&quot;string&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;key</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;pat_type&quot;</span> <span style="color: #000066;">for</span>=<span style="color: #ff0000;">&quot;edge&quot;</span> <span style="color: #000066;">attr.name</span>=<span style="color: #ff0000;">&quot;pat_type&quot;</span> <span style="color: #000066;">attr.type</span>=<span style="color: #ff0000;">&quot;string&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;graph</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;G&quot;</span> <span style="color: #000066;">edgedefault</span>=<span style="color: #ff0000;">&quot;undirected&quot;</span> <span style="color: #000066;">parse.nodes</span>=<span style="color: #ff0000;">&quot;1022&quot;</span> <span style="color: #000066;">parse.edges</span>=<span style="color: #ff0000;">&quot;9399&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;data</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">&quot;filestub&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>/tmp/VDC/DSB/iGraph.322801<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/data<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;node</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;n0&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;data</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">&quot;id&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>20190035<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/data<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;data</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">&quot;xcoord&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>394.439<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/data<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;data</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">&quot;ycoord&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>245.759<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/data<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/node<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;node</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;n1&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;data</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">&quot;id&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>21810055<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/data<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;data</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">&quot;xcoord&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>452.308<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/data<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;data</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">&quot;ycoord&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>-49.6771<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/data<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/node<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;edge</span> <span style="color: #000066;">source</span>=<span style="color: #ff0000;">&quot;n1020&quot;</span> <span style="color: #000066;">target</span>=<span style="color: #ff0000;">&quot;n1021&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;data</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">&quot;h_loc&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>MA<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/data<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;data</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">&quot;h_zip&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>01532<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/data<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;data</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">&quot;h_city&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>NORTHBORO<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/data<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;data</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">&quot;t_loc&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>MA<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/data<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;data</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">&quot;t_zip&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>01601<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/data<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;data</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">&quot;t_city&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>WORCESTER<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/data<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;data</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">&quot;appyear&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>2004<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/data<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;data</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">&quot;patent&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>7459547<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/data<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;data</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">&quot;pat_type&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>U<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/data<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/edge<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/graph<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/graphml<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>通过python对XML进行解析，我还是向大家推荐pyQuery，大概是喜欢Jquery的缘故吧，我觉得pyQuery用起来很方便，很顺手。大家可以到pyquery.org查找帮助和教程。需要注意的是，pyQuery对于命名空间的解析似乎不是很好，我记得以前我写过一篇帖子叫做<a href="/?p=1060">两个GIS编程技巧</a>，里面提及了用@nodeName=namespace:elementName的方式来对异域命名空间的元素进行解析。但是pyQuery似乎不能进行该操作，所以我在进行解释之前，将根节点的所有命名空间都删除了。<br />
解析本省是一件很简单的事情，随后写入到另一个文件中，其次对每一个node和edge进行分析，按照SQL语法，生成INSERT INTO的语句。</p>
<p>python 代码片段</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">from</span> pyquery <span style="color: #ff7700;font-weight:bold;">import</span> PyQuery <span style="color: #ff7700;font-weight:bold;">as</span> pq
<span style="color: #ff7700;font-weight:bold;">from</span> lxml <span style="color: #ff7700;font-weight:bold;">import</span> etree
d = pq<span style="color: black;">&#40;</span>filename=<span style="color: #483d8b;">&quot;data/rna.xml&quot;</span><span style="color: black;">&#41;</span>
<span style="color: #008000;">file</span> = <span style="color: #008000;">open</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'data/output.sql'</span>, <span style="color: #483d8b;">'w+'</span><span style="color: black;">&#41;</span>
content = <span style="color: #483d8b;">''</span>
nodes =  d<span style="color: black;">&#40;</span><span style="color: #483d8b;">'node'</span><span style="color: black;">&#41;</span>
<span style="color: #ff7700;font-weight:bold;">for</span> item <span style="color: #ff7700;font-weight:bold;">in</span> nodes:
  content += <span style="color: #483d8b;">&quot;INSERT INTO sn_node ( the_geom, nid) VALUES ( GeomFromText('POINT(&quot;</span> + item<span style="color: black;">&#91;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span>.<span style="color: black;">text</span>.<span style="color: #0000cd;">__str__</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> + <span style="color: #483d8b;">&quot; &quot;</span> + item<span style="color: black;">&#91;</span><span style="color: #ff4500;">2</span><span style="color: black;">&#93;</span>.<span style="color: black;">text</span>.<span style="color: #0000cd;">__str__</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> +<span style="color: #483d8b;">&quot;)', 900913), '&quot;</span> + item.<span style="color: black;">attrib</span><span style="color: black;">&#91;</span><span style="color: #483d8b;">'id'</span><span style="color: black;">&#93;</span> + <span style="color: #483d8b;">&quot;');<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>
<span style="color: #008000;">file</span>.<span style="color: black;">write</span><span style="color: black;">&#40;</span>content<span style="color: black;">&#41;</span>
<span style="color: #008000;">file</span>.<span style="color: black;">close</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></div></div>

<p>从而生成output.sql,如下片段，</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> sn_node <span style="color: #66cc66;">&#40;</span> the_geom<span style="color: #66cc66;">,</span> nid<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span> GeomFromText<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'POINT(394.439 245.759)'</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">900913</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'n0'</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> sn_node <span style="color: #66cc66;">&#40;</span> the_geom<span style="color: #66cc66;">,</span> nid<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span> GeomFromText<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'POINT(452.308 -49.6771)'</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">900913</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'n1'</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> sn_node <span style="color: #66cc66;">&#40;</span> the_geom<span style="color: #66cc66;">,</span> nid<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span> GeomFromText<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'POINT(172.295 72.8809)'</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">900913</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'n2'</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> sn_node <span style="color: #66cc66;">&#40;</span> the_geom<span style="color: #66cc66;">,</span> nid<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span> GeomFromText<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'POINT(-217.813 -581.18)'</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">900913</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'n3'</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> sn_edge <span style="color: #66cc66;">&#40;</span> the_geom<span style="color: #66cc66;">,</span> snid<span style="color: #66cc66;">,</span> tnid<span style="color: #66cc66;">,</span> s_zip<span style="color: #66cc66;">,</span> t_zip<span style="color: #66cc66;">,</span> appyear<span style="color: #66cc66;">,</span> patent<span style="color: #66cc66;">,</span> pat_type<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span> GeomFromText<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'LINESTRING(-206.829 790.104,-200.639 791.055)'</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">900913</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'n121'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'n365'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'05403'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'05452'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'1997'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'5902044'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'U'</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> sn_edge <span style="color: #66cc66;">&#40;</span> the_geom<span style="color: #66cc66;">,</span> snid<span style="color: #66cc66;">,</span> tnid<span style="color: #66cc66;">,</span> s_zip<span style="color: #66cc66;">,</span> t_zip<span style="color: #66cc66;">,</span> appyear<span style="color: #66cc66;">,</span> patent<span style="color: #66cc66;">,</span> pat_type<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span> GeomFromText<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'LINESTRING(-206.829 790.104,-231.181 757.468)'</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">900913</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'n121'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'n214'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'05403'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'05403'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'1998'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'6134704'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'U'</span><span style="color: #66cc66;">&#41;</span>;</pre></div></div>

<p>生成了SQL的INSERT INTO 语句后，然后加上创建数据库和构建索引的语句</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> sn_node <span style="color: #66cc66;">&#40;</span>
id serial<span style="color: #66cc66;">,</span>
nid varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">6</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333; font-weight: bold;">SELECT</span> AddGeometryColumn<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">''</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'sn_node'</span><span style="color: #66cc66;">,</span><span style="color: #ff0000;">'the_geom'</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">900913</span><span style="color: #66cc66;">,</span><span style="color: #ff0000;">'POINT'</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">INDEX</span> sn_node_index <span style="color: #993333; font-weight: bold;">ON</span> sn_node <span style="color: #993333; font-weight: bold;">USING</span> GIST <span style="color: #66cc66;">&#40;</span> the_geom <span style="color: #66cc66;">&#41;</span>;</pre></div></div>

<p>所有的SQL语句组成了一个SQL文件，如果你有PgAdminIII，导入不是繁琐的事情。不再熬述了。uDig可以直接读取PostgreSQL里面的数据，然后我在uDig里面可以绘制出社会网络的模型，也可uDig输出shapefile，再用ArcGIS读取并展示。如图所示：</p>
<p><img class="alignnone size-full wp-image-1441" title="ArcGIS 显示 SNA" src="/wp-content/uploads//200091031_sna2.jpg" alt="ArcGIS 显示 SNA" width="500" height="478" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.geoinformatics.cn/2009/10/%e5%88%a9%e7%94%a8python%e8%a7%a3%e6%9e%90%e5%9f%ba%e4%ba%8egraphml%e7%9a%84%e7%9a%84%e7%a4%be%e4%bc%9a%e7%bd%91%e7%bb%9c%e5%b9%b6%e7%94%a8gis%e5%b1%95%e7%a4%ba/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>基于python的Geoprocessing 编程</title>
		<link>http://www.geoinformatics.cn/2009/10/%e5%9f%ba%e4%ba%8epython%e7%9a%84geoprocessing-%e7%bc%96%e7%a8%8b/</link>
		<comments>http://www.geoinformatics.cn/2009/10/%e5%9f%ba%e4%ba%8epython%e7%9a%84geoprocessing-%e7%bc%96%e7%a8%8b/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 20:32:59 +0000</pubDate>
		<dc:creator>musicman</dc:creator>
				<category><![CDATA[技术心得]]></category>
		<category><![CDATA[GIS]]></category>
		<category><![CDATA[OSGeo]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.geoinformatics.cn/?p=1390</guid>
		<description><![CDATA[如果想基于python并使用Open Source GIS做点事情，大家可以参考犹他州大学Chris Garrard做的一份教程（估计她和我一样，有着做TA的背景）。基本上涉及了对矢量和栅格数据的处理，以及一些必要的图像处理算法，有空的话，不妨看看。 链接地址：http://www.gis.usu.edu/~chrisg/python/2009/]]></description>
			<content:encoded><![CDATA[<p>如果想基于python并使用Open Source GIS做点事情，大家可以参考犹他州大学Chris Garrard做的一份教程（估计她和我一样，有着做TA的背景）。基本上涉及了对矢量和栅格数据的处理，以及一些必要的图像处理算法，有空的话，不妨看看。</p>
<p>链接地址：<a href="http://www.gis.usu.edu/~chrisg/python/2009/">http://www.gis.usu.edu/~chrisg/python/2009/</a></p>
<p><img class="alignnone size-full wp-image-1391" title="cgarrard" src="/wp-content/uploads//me_matterhorn.jpg" alt="cgarrard" width="300" height="177" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.geoinformatics.cn/2009/10/%e5%9f%ba%e4%ba%8epython%e7%9a%84geoprocessing-%e7%bc%96%e7%a8%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>网络浏览笔记</title>
		<link>http://www.geoinformatics.cn/2009/10/%e7%bd%91%e7%bb%9c%e6%b5%8f%e8%a7%88%e7%ac%94%e8%ae%b0/</link>
		<comments>http://www.geoinformatics.cn/2009/10/%e7%bd%91%e7%bb%9c%e6%b5%8f%e8%a7%88%e7%ac%94%e8%ae%b0/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 21:59:28 +0000</pubDate>
		<dc:creator>musicman</dc:creator>
				<category><![CDATA[技术心得]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Social Network]]></category>

		<guid isPermaLink="false">http://www.geoinformatics.cn/?p=1301</guid>
		<description><![CDATA[今天下午在网上乱逛，不过主要是搜索和SNS以及microblog有关的实例，看到一个不错的网站www.paraimage.com。里面总结了不少相关的内容，和大家分享： 40款开源社交网络软件免费下载 6款开源微博客程序 60+Javascript图片相册脚本 26款国外开源PHP建站程序 UCenter Home: 康盛创想发布的社交网络程序 6款Javascript代码高亮插件 19款Javascript富文本编辑器 http://www.jaiku.com/ (google 支持的微博) http://demo.modoer.com/ (点评网，类似于UCenter) http://elgg.org/downloads.php (基于PHP的SNS系统，想找个基于django或者python的，知道的同学和我联系。)]]></description>
			<content:encoded><![CDATA[<p>今天下午在网上乱逛，不过主要是搜索和SNS以及microblog有关的实例，看到一个不错的网站<a href="http://www.paraimage.com">www.paraimage.com</a>。里面总结了不少相关的内容，和大家分享：</p>
<ul>
<li><a style="padding: 0px; margin: 0px;" title="40款开源社交网络软件免费下载" rel="bookmark" href="http://paranimage.com/40-open-source-social-networking-software-for-free-download/"><span style="color: #000000;"><span style="color: #000000;"><span style="text-decoration: none;">40款开源社交网络软件免费下载</span></span></span></a></li>
<li><a style="padding: 0px; margin: 0px;" title="6款开源微博客程序" rel="bookmark" href="http://paranimage.com/6-open-source-microblogging-apps/"><span style="color: #000000;"><span style="color: #000000;"><span style="text-decoration: none;">6款开源微博客程序</span></span></span></a></li>
<li><a style="padding: 0px; margin: 0px;" title="60+Javascript图片相册脚本" rel="bookmark" href="http://paranimage.com/60-javascript-photo-album-scripts/"><span style="color: #000000;"><span style="color: #000000;"><span style="text-decoration: none;">60+Javascript图片相册脚本</span></span></span></a></li>
<li><a style="padding: 0px; margin: 0px;" title="26款国外开源PHP建站程序" rel="bookmark" href="http://paranimage.com/10-open-source-php-apps/"><span style="color: #000000;"><span style="color: #000000;"><span style="text-decoration: none;">26款国外开源PHP建站程序</span></span></span></a></li>
<li><a style="padding: 0px; margin: 0px;" title="UCenter Home: 康盛创想发布的社交网络程序" rel="bookmark" href="http://paranimage.com/ucenter-home-hong-sing-chong-would-like-to-publish-a-social-network-of-procedures/"><span style="color: #000000;"><span style="color: #000000;"><span style="text-decoration: none;">UCenter Home: 康盛创想发布的社交网络程序</span></span></span></a></li>
<li><a style="padding: 0px; margin: 0px;" title="6款Javascript代码高亮插件" rel="bookmark" href="http://paranimage.com/6-javascript-code-highlighting-plugins/"><span style="color: #000000;"><span style="color: #000000;"><span style="text-decoration: none;">6款Javascript代码高亮插件</span></span></span></a></li>
<li><a style="padding: 0px; margin: 0px;" title="19款Javascript富文本编辑器" rel="bookmark" href="http://paranimage.com/19-javascript-rich-text-editor/"><span style="color: #000000;"><span style="color: #000000;"><span style="text-decoration: none;">19款Javascript富文本编辑器</span></span></span></a></li>
<li><a href="http://www.jaiku.com/"><span style="color: #000000;">http://www.jaiku.com/</span></a><span style="color: #000000;"> (google 支持的微博)</span></li>
<li><a href="http://demo.modoer.com/"><span style="color: #000000;">http://demo.modoer.com/</span></a><span style="color: #000000;"> (点评网，类似于UCenter)</span></li>
<li><a href="http://elgg.org/downloads.php"><span style="color: #000000;">http://elgg.org/downloads.php</span></a><span style="color: #000000;"> (基于PHP的SNS系统，想找个基于django或者python的，知道的同学和我联系。)</span></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.geoinformatics.cn/2009/10/%e7%bd%91%e7%bb%9c%e6%b5%8f%e8%a7%88%e7%ac%94%e8%ae%b0/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>中文分词实战与文言文分词的初步设想</title>
		<link>http://www.geoinformatics.cn/2009/10/%e4%b8%ad%e6%96%87%e5%88%86%e8%af%8d%e5%ae%9e%e6%88%98%e4%b8%8e%e6%96%87%e8%a8%80%e6%96%87%e5%88%86%e8%af%8d%e7%9a%84%e5%88%9d%e6%ad%a5%e8%ae%be%e6%83%b3/</link>
		<comments>http://www.geoinformatics.cn/2009/10/%e4%b8%ad%e6%96%87%e5%88%86%e8%af%8d%e5%ae%9e%e6%88%98%e4%b8%8e%e6%96%87%e8%a8%80%e6%96%87%e5%88%86%e8%af%8d%e7%9a%84%e5%88%9d%e6%ad%a5%e8%ae%be%e6%83%b3/#comments</comments>
		<pubDate>Sun, 04 Oct 2009 08:36:06 +0000</pubDate>
		<dc:creator>musicman</dc:creator>
				<category><![CDATA[历史研究]]></category>
		<category><![CDATA[技术心得]]></category>
		<category><![CDATA[History]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.geoinformatics.cn/?p=1249</guid>
		<description><![CDATA[接着帖子《中文分词整理》讲开来，上回说我比较中意的pymmseg和coreseek —— pymmseg基于python，短小精悍，功能强大，适合扩展应用和初学使用；coreseek是将中文分词和sphinx全文检索结合，适合同中型网站结合使用（比如说去搜索整个台湾中研院的网站，或者是百度国学）。 可以到github上下载pymmseg，然后直接解压到site-package目录里即可。以下是使用该库的基本代码： # coding= utf-8 from pymmseg import mmseg mmseg.dict_load_defaults&#40;&#41; text = &#34;... ...&#34; para = '' algor = mmseg.Algorithm&#40;text&#41; for tok in algor: print '%s [%d .. %d]' % &#40;tok.text, tok.start, tok.end&#41; para += tok.text + ' ' print para 需要注意的是，pymmseg现在只支持utf-8，如果要对基于gbk或big5的中文文章进行分词，需要首先进行字符集的转换。经过测试，我发现pymmseg对白话文的分词，效果还是不错的，如下所示， 原文： 2003年，余英时先生的《朱熹的历史世界》在台北的允晨出版公司出版，第二年，大陆的三联书店也出版了简体字本。至今我还记得，在这部书还没有正式出版时，因为《绪说》部分曾在台湾的《当代》杂志上连载，经由互联网的传播，就已经有部分内容在大陆流传，仅就我所知，在北京大学、清华大学的朋友中，就已经有了热烈的议论。在这部书正式出版之后，更引起了两岸三地，以及北美学界的讨论，出现了不少分量很重的评论 。所以，我在一篇书评中说，在学术社群越来越缺少共同话题，研究取向逐渐多元化的时代，能够成为海内外中国研究领域共同关注焦点的话题并不太多，而这部著作能有这么多反响与争论，真是非常值得高兴的事情。 分词结果： 2003  年  ，  余  英  时  先生 [...]]]></description>
			<content:encoded><![CDATA[<p>接着帖子<a href="/?p=1194">《中文分词整理》</a>讲开来，上回说我比较中意的pymmseg和coreseek —— pymmseg基于python，短小精悍，功能强大，适合扩展应用和初学使用；coreseek是将中文分词和sphinx全文检索结合，适合同中型网站结合使用（比如说去搜索整个台湾中研院的网站，或者是<a href="http://guoxue.baidu.com">百度国学</a>）。</p>
<p>可以到<a href="http://github.com/pluskid/pymmseg-cpp">github</a>上下载pymmseg，然后直接解压到site-package目录里即可。以下是使用该库的基本代码：</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;"># coding= utf-8</span>
<span style="color: #ff7700;font-weight:bold;">from</span> pymmseg <span style="color: #ff7700;font-weight:bold;">import</span> mmseg
mmseg.<span style="color: black;">dict_load_defaults</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
text = <span style="color: #483d8b;">&quot;... ...&quot;</span>
para = <span style="color: #483d8b;">''</span>
algor = mmseg.<span style="color: black;">Algorithm</span><span style="color: black;">&#40;</span>text<span style="color: black;">&#41;</span>
<span style="color: #ff7700;font-weight:bold;">for</span> tok <span style="color: #ff7700;font-weight:bold;">in</span> algor:
	<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'%s [%d .. %d]'</span> <span style="color: #66cc66;">%</span> <span style="color: black;">&#40;</span>tok.<span style="color: black;">text</span>, tok.<span style="color: black;">start</span>, tok.<span style="color: black;">end</span><span style="color: black;">&#41;</span>
	para += tok.<span style="color: black;">text</span> + <span style="color: #483d8b;">'  '</span>
<span style="color: #ff7700;font-weight:bold;">print</span> para</pre></div></div>

<p>需要注意的是，pymmseg现在只支持utf-8，如果要对基于gbk或big5的中文文章进行分词，需要首先进行字符集的转换。经过测试，我发现pymmseg对白话文的分词，效果还是不错的，如下所示，<span id="more-1249"></span></p>
<p><strong>原文：</strong></p>
<p>2003年，余英时先生的《朱熹的历史世界》在台北的允晨出版公司出版，第二年，大陆的三联书店也出版了简体字本。至今我还记得，在这部书还没有正式出版时，因为《绪说》部分曾在台湾的《当代》杂志上连载，经由互联网的传播，就已经有部分内容在大陆流传，仅就我所知，在北京大学、清华大学的朋友中，就已经有了热烈的议论。在这部书正式出版之后，更引起了两岸三地，以及北美学界的讨论，出现了不少分量很重的评论 。所以，我在一篇书评中说，在学术社群越来越缺少共同话题，研究取向逐渐多元化的时代，能够成为海内外中国研究领域共同关注焦点的话题并不太多，而这部著作能有这么多反响与争论，真是非常值得高兴的事情。</p>
<p><strong>分词结果：</strong></p>
<p>2003  年  ，  余  英  时  先生  的  《  朱熹  的  历  史  世界  》  在  台  北的  允  晨  出版  公司  出版  ，  第二年  ，  大  陆  的  三  联  书  店  也  出版  了  简  体  字  本  。  至今  我  还  记  得  ，  在  这  部  书  还  没  有  正式  出版  时  ，  因  为  《  绪  说  》  部分  曾在  台  湾  的  《  当  代  》  杂  志  上  连  载  ，  经  由  互  联  网  的  传  播  ，  就  已  经  有  部分  内  容  在  大  陆  流  传  ，  仅  就我  所知  ，  在  北京  大  学  、  清  华  大  学  的  朋友  中  ，  就  已  经  有了  热  烈  的  议  论  。  在  这  部  书  正式  出版  之  后  ，  更  引起  了  两  岸  三地  ，  以及  北美  学  界  的  讨  论  ，  出  现  了  不少  分量  很重  的  评  论  。  所以  ，  我  在  一篇  书  评  中  说  ，  在  学  术  社群  越  来  越  缺少  共同  话  题  ，  研究  取向  逐  渐  多元化  的  时  代  ，  能  够  成  为  海  内  外  中  国  研究  领  域  共同  关  注  焦  点  的  话  题  并  不  太多  ，  而  这  部  著作  能有  这  么  多  反  响  与  争  论  ，  真是  非常  值得  高  兴  的  事情  。</p>
<p>大体上看，效果还不错，但是我们也发现“余英时”并未被分解出，但“朱熹”被识别了。所以为了让pymmseg同样可以识别“余英时”，需要在word.dic里面加入&#8221;余英时&#8221;这个人名。所以对于mmseg这种基于辞典分词法的分词机，只要加入专业词汇（当然包括人名、地名。）就可以将其分解出。比如说，如果要对《水经注》进行分词，给word.dic里面加入古代地名是相当必要的。</p>
<p>于是乎，我拿来一段古文，来自《近思录》卷三（格物穷理）中的一节进行试验，</p>
<p><strong>原文：</strong></p>
<p>伊川先生答朱长文书曰：心通乎道，然后能辨是非，如持权衡以较轻重，孟子所谓知言是也。心不通于道，而较古人之是非，犹不持权衡而酌轻重，竭其目力，劳其心智，虽使时中，亦古人所谓“亿则屡中”，君子不贵也。</p>
<p><strong>分词结果：</strong></p>
<p>伊  川  先生  答  朱  长  文  书  曰  ：  心  通  乎  道  ，  然  后  能辨  是非  ，  如  持  权  衡  以  较  轻  重  ，  孟子  所  谓  知  言  是  也  。  心  不通  于  道  ，  而  较  古人  之  是非  ，  犹  不  持  权  衡  而  酌  轻  重  ，  竭  其  目力  ，  劳  其  心智  ，  虽  使  时  中  ，  亦  古人  所  谓  “  亿  则  屡  中  ”  ，  君子  不  贵  也。</p>
<p>可以看到，只有“先生”、“能辨”、“孟子”、“不通”、“古人”、“是非”、“君子”几个词被分解出，同时虚词也被分出，但是比如“伊川”、“轻重”等词并没有被识别。针对这种情况，当然了，如果在word.dic里面加入相关词汇，则分词机也是可以识别“伊川先生”等些特定词汇。</p>
<p>总体而言，如果要使用辞典法对文言文进行分词，我觉得需要注意以下几个问题：</p>
<ul>
<li><strong>1） </strong>字符集问题，请使用utf-8，如果不是，请先进行字符集转换。</li>
<li><strong>2）</strong>将古人常用的词汇加入字典。这里就有一个tricky的地方，所谓古人，每个历史时期都有其习惯使用的词汇，所以我们需要对每个时期单独配套字典，同时针对不同的专业书籍，可能也要配套专门的字典。但凡搞分词的同僚们大概都知道“没有最好的分词机，只有最适合的分词机。”这句话，所以如果要达到最好的分词结果，可能需要针对不同的情况使用不同的分词机。</li>
<li><strong>3）</strong>对于我的应用而言，我希望通过分词，了解到古代人物之间的关系，这些联系是什么样的关系呢？比如吕祖谦给朱熹的儿子介绍对象，这就是一种关系，朱熹给张栻写墓志铭，而没有给陈亮写，这也是一种关系。也就是说，要通过分词，了解到古人的社会网络关系（婚姻关系、君臣关系、买卖关系等等），以此，自动化的建立一个社会网络（social network）并赋予网络节点他们的关系情况。</li>
<li><strong>4）</strong>展开来想，由于CHGIS已经提供了地名、人名的坐标信息，所以我们可以对查找出的地名和人名进行匹配，这样可以很容易的查询到相关信息的地理坐标。</li>
</ul>
<p>大概先说这么多吧，以后有了新的想法，再和大家交流。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geoinformatics.cn/2009/10/%e4%b8%ad%e6%96%87%e5%88%86%e8%af%8d%e5%ae%9e%e6%88%98%e4%b8%8e%e6%96%87%e8%a8%80%e6%96%87%e5%88%86%e8%af%8d%e7%9a%84%e5%88%9d%e6%ad%a5%e8%ae%be%e6%83%b3/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>人人都说我丑，其实我只是美得不明显。</title>
		<link>http://www.geoinformatics.cn/2009/04/%e4%ba%ba%e4%ba%ba%e9%83%bd%e8%af%b4%e6%88%91%e4%b8%91%ef%bc%8c%e5%85%b6%e5%ae%9e%e6%88%91%e5%8f%aa%e6%98%af%e7%be%8e%e5%be%97%e4%b8%8d%e6%98%8e%e6%98%be%e3%80%82/</link>
		<comments>http://www.geoinformatics.cn/2009/04/%e4%ba%ba%e4%ba%ba%e9%83%bd%e8%af%b4%e6%88%91%e4%b8%91%ef%bc%8c%e5%85%b6%e5%ae%9e%e6%88%91%e5%8f%aa%e6%98%af%e7%be%8e%e5%be%97%e4%b8%8d%e6%98%8e%e6%98%be%e3%80%82/#comments</comments>
		<pubDate>Tue, 14 Apr 2009 06:30:31 +0000</pubDate>
		<dc:creator>musicman</dc:creator>
				<category><![CDATA[技术心得]]></category>
		<category><![CDATA[GDAL]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.geoinformatics.cn/?p=990</guid>
		<description><![CDATA[我越发从大多数程序员觉得丑陋的cmd.exe中找到美感。 也许是ipython让我感受到了这一点。就像geosalon的sunng经常说，“我不是一个在乎外表的人，所以他会选择有内涵的终端而不是倾向于UI的美丑”。 今晚要和大家分享一下用python-gdal和numpy做图像分析的一点小小的总结。比如，我做栅格处理，每个栅格的值域到底在什么范围比较好，换句话说采取什么数据类型会比较恰当。实际工作中，大体上有这么一个思路，比如，表示土地利用分类的栅格数据，用uint8（0～255）比较好而至于其他栅格数据，比如DEM，栅格打分数据，可能用float会比较好。因为我觉得栅格数据尽量要有一定的实际意义，这样一来，使用者也会省去不少力气，减少了误差和计算中的失误。 但是说到python-gdal和numpy的结合还是要注意以下几点，也就是说，在声明数据类型的时候，numpy和gdal用的是不同的声明变量，所以要pay attention一下几个部分, #uint8 则表示值域在0～256，如果为浮点型，应该使用numpy.float32 result = numpy.zeros&#40;&#40;height, width&#41;, dtype=numpy.uint8&#41; for j in range&#40;height&#41;: for i in range&#40;width&#41;: if 255 == caresult&#91;j&#93;&#91;i&#93;: #设置nodatavalue，一般而言都是设置该值域的最小值，但是uint8最小为0， #所以一般设置为255，而若为float32，则使用值域最小值， #我觉得也可以使用-1，毕竟在我这个应用中不可能有负数出现。 result&#91;j&#93;&#91;i&#93; = 255 continue #注意如果要变为整形，则int（number），如果为float32则不需要。 result&#91;j&#93;&#91;i&#93; = int&#40;255*&#40;0.25* road&#91;j&#93;&#91;i&#93; + 0.2 * vcity&#91;j&#93;&#91;i&#93; + 0.2 * tam&#91;j&#93;&#91;i&#93; + 0.25 * float&#40;caresult&#91;j&#93;&#91;i&#93;&#41;&#41;&#41; driver = gdal.GetDriverByName&#40;'GTiff'&#41; #注意这里，gdal.GDT_Float32 对应的是numpy.float32, 而numpy.uint8 对应的是gdal.GDT_Byte [...]]]></description>
			<content:encoded><![CDATA[<p>我越发从大多数程序员觉得丑陋的cmd.exe中找到美感。 也许是ipython让我感受到了这一点。就像geosalon的sunng经常说，“我不是一个在乎外表的人，所以他会选择有内涵的终端而不是倾向于UI的美丑”。</p>
<p>今晚要和大家分享一下用python-gdal和numpy做图像分析的一点小小的总结。比如，我做栅格处理，每个栅格的值域到底在什么范围比较好，换句话说采取什么数据类型会比较恰当。实际工作中，大体上有这么一个思路，比如，表示土地利用分类的栅格数据，用uint8（0～255）比较好而至于其他栅格数据，比如DEM，栅格打分数据，可能用float会比较好。因为我觉得栅格数据尽量要有一定的实际意义，这样一来，使用者也会省去不少力气，减少了误差和计算中的失误。</p>
<p>但是说到python-gdal和numpy的结合还是要注意以下几点，也就是说，在声明数据类型的时候，numpy和gdal用的是不同的声明变量，所以要pay attention一下几个部分,<span id="more-990"></span></p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;">    <span style="color: #808080; font-style: italic;">#uint8 则表示值域在0～256，如果为浮点型，应该使用numpy.float32</span>
    result = numpy.<span style="color: black;">zeros</span><span style="color: black;">&#40;</span><span style="color: black;">&#40;</span>height, width<span style="color: black;">&#41;</span>, dtype=numpy.<span style="color: black;">uint8</span><span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">for</span> j <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">range</span><span style="color: black;">&#40;</span>height<span style="color: black;">&#41;</span>:
            <span style="color: #ff7700;font-weight:bold;">for</span> i <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">range</span><span style="color: black;">&#40;</span>width<span style="color: black;">&#41;</span>:
                <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #ff4500;">255</span> == caresult<span style="color: black;">&#91;</span>j<span style="color: black;">&#93;</span><span style="color: black;">&#91;</span>i<span style="color: black;">&#93;</span>:
                    <span style="color: #808080; font-style: italic;">#设置nodatavalue，一般而言都是设置该值域的最小值，但是uint8最小为0，</span>
                    <span style="color: #808080; font-style: italic;">#所以一般设置为255，而若为float32，则使用值域最小值，</span>
                    <span style="color: #808080; font-style: italic;">#我觉得也可以使用-1，毕竟在我这个应用中不可能有负数出现。</span>
                    result<span style="color: black;">&#91;</span>j<span style="color: black;">&#93;</span><span style="color: black;">&#91;</span>i<span style="color: black;">&#93;</span> = <span style="color: #ff4500;">255</span>
                    <span style="color: #ff7700;font-weight:bold;">continue</span>
                <span style="color: #808080; font-style: italic;">#注意如果要变为整形，则int（number），如果为float32则不需要。</span>
                result<span style="color: black;">&#91;</span>j<span style="color: black;">&#93;</span><span style="color: black;">&#91;</span>i<span style="color: black;">&#93;</span> = <span style="color: #008000;">int</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">255</span><span style="color: #66cc66;">*</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">0.25</span><span style="color: #66cc66;">*</span> road<span style="color: black;">&#91;</span>j<span style="color: black;">&#93;</span><span style="color: black;">&#91;</span>i<span style="color: black;">&#93;</span> + <span style="color: #ff4500;">0.2</span> <span style="color: #66cc66;">*</span> vcity<span style="color: black;">&#91;</span>j<span style="color: black;">&#93;</span><span style="color: black;">&#91;</span>i<span style="color: black;">&#93;</span> + <span style="color: #ff4500;">0.2</span> <span style="color: #66cc66;">*</span> tam<span style="color: black;">&#91;</span>j<span style="color: black;">&#93;</span><span style="color: black;">&#91;</span>i<span style="color: black;">&#93;</span>  + <span style="color: #ff4500;">0.25</span> <span style="color: #66cc66;">*</span> <span style="color: #008000;">float</span><span style="color: black;">&#40;</span>caresult<span style="color: black;">&#91;</span>j<span style="color: black;">&#93;</span><span style="color: black;">&#91;</span>i<span style="color: black;">&#93;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
    driver = gdal.<span style="color: black;">GetDriverByName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'GTiff'</span><span style="color: black;">&#41;</span>
    <span style="color: #808080; font-style: italic;">#注意这里，gdal.GDT_Float32 对应的是numpy.float32, 而numpy.uint8 对应的是gdal.GDT_Byte</span>
    out = driver.<span style="color: black;">Create</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;output.tif&quot;</span>, width,height, <span style="color: #ff4500;">1</span>, gdal.<span style="color: black;">GDT_Byte</span><span style="color: black;">&#41;</span>
    outtx = <span style="color: #008000;">list</span><span style="color: black;">&#40;</span>ds.<span style="color: black;">GetGeoTransform</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
    out.<span style="color: black;">SetGeoTransform</span><span style="color: black;">&#40;</span>outtx<span style="color: black;">&#41;</span>
    out.<span style="color: black;">SetProjection</span><span style="color: black;">&#40;</span>ds.<span style="color: black;">GetProjection</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
&nbsp;
    outband = out.<span style="color: black;">GetRasterBand</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#41;</span>
    <span style="color: #808080; font-style: italic;">#outband.SetNoDataValue(result.band.GetNoDataValue())</span>
    <span style="color: #808080; font-style: italic;">#outband.SetNoDataValue(-1.0), 设置nodatavalue</span>
    outband.<span style="color: black;">SetNoDataValue</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">255</span><span style="color: black;">&#41;</span>
    <span style="color: #808080; font-style: italic;">#outdata = result.astype(numpy.float32).tostring()，这个记住就行了。</span>
    outdata = result.<span style="color: black;">astype</span><span style="color: black;">&#40;</span>numpy.<span style="color: black;">uint8</span><span style="color: black;">&#41;</span>.<span style="color: black;">tostring</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
    <span style="color: #808080; font-style: italic;"># gdal.GDT_Byte, gdal.GDT_Float32</span>
    outband.<span style="color: black;">WriteRaster</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">0</span>, <span style="color: #ff4500;">0</span>, out.<span style="color: black;">RasterXSize</span>, out.<span style="color: black;">RasterYSize</span>, outdata, buf_type=gdal.<span style="color: black;">GDT_Byte</span><span style="color: black;">&#41;</span></pre></div></div>

<p>当时在做这里的时候，尝试过使用 numpy.float 或者numpy.int 都会因为和gdal.GDT_XXX长度不统一的问题产生错误，我不想多实验了，至少我上述两个类型就能解决大部分问题。其他的问题，只要确定一点，那就是说数据类型的长度相同，我想都不会有问题。 同时，还有一点，numpy.uint8 有助于可视化。<br />
Reference:<br />
1) http://www.scipy.org/Tentative_NumPy_Tutorial  (This is called upcasting and it&#8217;s ruled by the following table. )<br />
2) the sample hillshade.py from python-gdal samples.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geoinformatics.cn/2009/04/%e4%ba%ba%e4%ba%ba%e9%83%bd%e8%af%b4%e6%88%91%e4%b8%91%ef%bc%8c%e5%85%b6%e5%ae%9e%e6%88%91%e5%8f%aa%e6%98%af%e7%be%8e%e5%be%97%e4%b8%8d%e6%98%8e%e6%98%be%e3%80%82/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>没白忙活，初步完成了基于元胞自动机的土地利用模型。</title>
		<link>http://www.geoinformatics.cn/2009/04/%e6%b2%a1%e7%99%bd%e5%bf%99%e6%b4%bb%ef%bc%8c%e5%88%9d%e6%ad%a5%e5%ae%8c%e6%88%90%e4%ba%86%e5%9f%ba%e4%ba%8e%e5%85%83%e8%83%9e%e8%87%aa%e5%8a%a8%e6%9c%ba%e7%9a%84%e5%9c%9f%e5%9c%b0%e5%88%a9%e7%94%a8/</link>
		<comments>http://www.geoinformatics.cn/2009/04/%e6%b2%a1%e7%99%bd%e5%bf%99%e6%b4%bb%ef%bc%8c%e5%88%9d%e6%ad%a5%e5%ae%8c%e6%88%90%e4%ba%86%e5%9f%ba%e4%ba%8e%e5%85%83%e8%83%9e%e8%87%aa%e5%8a%a8%e6%9c%ba%e7%9a%84%e5%9c%9f%e5%9c%b0%e5%88%a9%e7%94%a8/#comments</comments>
		<pubDate>Sun, 05 Apr 2009 21:12:20 +0000</pubDate>
		<dc:creator>musicman</dc:creator>
				<category><![CDATA[技术心得]]></category>
		<category><![CDATA[Cellunar Automaton]]></category>
		<category><![CDATA[GDAL]]></category>
		<category><![CDATA[Land Use]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.geoinformatics.cn/?p=973</guid>
		<description><![CDATA[好久天没有update我的blog，自从二月中旬boss让我做multi-agent  based 土地利用模型以来，一直没有清闲的时间，一会脑子里还要想如何做potiential impact of climate change on transportation， 一会还要去思量如何完善课题组的网站。其实以上两个项目我到不怕，毕竟是有点经验，做起来也驾轻就熟。而这个CA model，对我来说确实花了不少时间来读文献，读python的manual以及很多基于开源GIS的python 类库。不过瞎子摸了半天黑，还好自己算是摸到了那扇门。今天基本上用python做出了CA模型，当然这个模型仅仅是个最基本的部件，包括基于Moore的邻域分析，交通可达性分析，城镇影响的指数衰减模型，然后用一个线性方程来计算转换概率，接着基于tietenburg模型计算每个年度土地cell的转换数量。 最要感谢的是中南大学的张鸿辉，做为我的partner，我们有更加宏伟的计划:-)。同时也要谢谢赵丽源，我们时常讨论关于MAS模型的细节。当然BOSS的seasoned guidance以及我爸妈，minne的关怀也是很重要滴。 下午的时候想做个总结，但是又无从下手，突然想起来读了这些年的圣贤书，其实也没啥长进，如果真的要说出点长进，无非是积累了一些方法论，同时在自己的实践中不停的renew。也许做学问就是这样，给自己设立一个reasonable的目标，并基于自己的方法论来实现它。]]></description>
			<content:encoded><![CDATA[<p>好久天没有update我的blog，自从二月中旬boss让我做multi-agent  based 土地利用模型以来，一直没有清闲的时间，一会脑子里还要想如何做potiential impact of climate change on transportation， 一会还要去思量如何完善课题组的网站。其实以上两个项目我到不怕，毕竟是有点经验，做起来也驾轻就熟。而这个CA model，对我来说确实花了不少时间来读文献，读python的manual以及很多基于开源GIS的python 类库。不过瞎子摸了半天黑，还好自己算是摸到了那扇门。今天基本上用python做出了CA模型，当然这个模型仅仅是个最基本的部件，包括基于Moore的邻域分析，交通可达性分析，城镇影响的指数衰减模型，然后用一个线性方程来计算转换概率，接着基于tietenburg模型计算每个年度土地cell的转换数量。</p>
<p>最要感谢的是中南大学的张鸿辉，做为我的partner，我们有更加宏伟的计划:-)。同时也要谢谢赵丽源，我们时常讨论关于MAS模型的细节。当然BOSS的seasoned guidance以及我爸妈，minne的关怀也是很重要滴。</p>
<p>下午的时候想做个总结，但是又无从下手，突然想起来读了这些年的圣贤书，其实也没啥长进，如果真的要说出点长进，无非是积累了一些方法论，同时在自己的实践中不停的renew。也许做学问就是这样，给自己设立一个reasonable的目标，并基于自己的方法论来实现它。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geoinformatics.cn/2009/04/%e6%b2%a1%e7%99%bd%e5%bf%99%e6%b4%bb%ef%bc%8c%e5%88%9d%e6%ad%a5%e5%ae%8c%e6%88%90%e4%ba%86%e5%9f%ba%e4%ba%8e%e5%85%83%e8%83%9e%e8%87%aa%e5%8a%a8%e6%9c%ba%e7%9a%84%e5%9c%9f%e5%9c%b0%e5%88%a9%e7%94%a8/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
