开源GIS实验田

OpenSource GIS Space

  • 内容导航

  • 最新评论

    • Gao Ang: 这将是一次开源GIS百科全书式的大会 ...
    • SHG: 恭喜恭喜 希望到时有更多国外的专...
    • Gao Ang: 这个示例可以搜索指定位置500m范围内...
    • suan: 你好,我想請問你GOOGLE MAPS API的問題 ...
    • Gao Ang: 静态地图现在支持用户自定义图标,...
  • 热门主题

  • 随机阅读

    • 2012 年二月
      « 十二    
       12345
      6789101112
      13141516171819
      20212223242526
      272829  
    • Gao Ang

      GaoMiao's Portrait
      有了理想
      就不要寻找放弃的理由

      站点搜索

    • 只言片语

      孩子们,不要害怕现实,不要向现实低头,你们来到这个世界,不是为了要服从老朽的东西,而是要创造新的,有理智的、光辉的东西。 ——高尔基

    Archive for the '兴趣爱好' Category

    LEGO可视化控制语言:NXT-G

    30th 十一月 2010

    在十一月份TIOBE语言排名中,一门特殊的编程语言NXT-G首次跻身跃入排行榜的前20,位列第17名。NXT-G编程语言的特殊之处在于其并非是提供给专业程序开发者的编程语言,而是由丹麦著名玩具制造商 乐高(LEGO)公司为NXT机器人玩具设计的可视化编程语言。

    头脑风暴(Mindstorms)是乐高出品的可编程机器人系列玩具,NXT 2.0是目前乐高机器人系列的主打产品。第一代Mindstorms机器人于1998年问世,定名为RIS(Robotics Invention System),搭载了由日本瑞萨电子提供的8位微控制器,由专用红外接口向处理器中载入设计好的程序来控制机器人行为。时隔8年后,乐高于2006年发布了新一代机器人Mindstorms NXT,并在2009年推出了功能升级后的NXT 2.0,以满足玩家在组装机器人时对颜色传感、蓝牙设备等高级功能的需求。

    NXT的核心是一块被称为智能积木的处理器,能够通过RJ12规格的4芯水晶头线缆接受四路传感信号,并能够控制三个马达协同运转。此外,NXT智能积木搭载了一块100×64像素的单色LCD显示器,可以在机器人运行中通过内置的层级菜单接受用户的按键命令或组织简单的处理步骤。

    NXT-G是对应智能积木处理器的可视化编程控制语言,能够帮助机器人实现简单或复杂的控制流程,如马达驱动、传感器输入合并、完成计算任务并实现流程控制。完成后的程序通过USB或蓝牙传输将程序和音频文件装载到NXT模块中,以赋予LEGO机器人生命,NXT还支持模块间文件拷贝和通过智能手机的蓝牙连接进行实时控制。

    NXT-G的交互式编程环境基于国家仪器(National Instruments)的LabVIEW软件提供,LabVIEW最大的特色就是以图形化编程G语言来组织程序,编写程序的展现形式为具备特定逻辑结构的框图。各模块功能实现则由LabVIEW中能完成各项编程任务的庞大函数库提供,包括数据采集、数据显示、数据存储、GPIB通用接口总线、串口控制、数据分析、蓝牙通讯等。此外,LabVIEW可视化编程环境提供了与传统IDE环境相同的程序调试工具,如断点设置、以动画方式显示数据及其子程序的结果、单步执行等功能。

    NXT-G编程环境对Windows和Mac OS X都提供了良好支持。除了NI LabVIEW软件外,还有不少支持NXT-G编程的软件程序。包含NXT-G零售版和NXT-G教育版、LEGO基于LabVIEW简化定制的RoboLab工具,乐高机器人专用的汇编指令NBC,以及基于NBC编译器实现且语法与C语言相似的高级语言NXC等。

    目前乐高公司已将NXT智能积木的固件设计开源,BricxCC(Bricx Command Center)支持开发者使用C、C++、Pascal、Forth以及Java语言完成乐高RCX模块的程序控制。同时,BricxCC能够在NXC(Not eXactly C)和NBC(Next Byte Codes)的支持下完成面向LEGO Mindstorms NXT机器人的编程控制。

    在教育应用方面,LEGO每年还举办充满乐趣的主题聚会LEGO工程大会,旨在为LEGO MINDSTORMS系统在教育社区和社团中的推广提供交流机会。在一年一度的LEGO工程大会上,教师们能够相互分享经验和想法,集思广益为LEGO MINDSTORMS在课堂上的应用寻找新的思路。

    NXT-G在TIOBE语言排名中的提升,从一个侧面反映了可视化编程语言的流行趋势。如果你是喜欢自己动手又对自动控制感兴趣的程序开发者,不妨尝试一下乐高NXT积木和NXT-G编程环境,LEGO一定会为你带来丰富的体验和乐趣。

    本文曾发表于《程序员》杂志-2010年12期-”程序天下事”栏目。

    Posted in 兴趣爱好 | 1 Comment »

    赤道仪使用体验

    1st 七月 2009

    使用望远镜追踪目标天体进行观测时,由于地球自转引起的天体视运动,会让观测视场内的恒星产生视差偏移。而在望远镜的底部安装赤道仪,就可以帮助观测者抵消地球自转造成的视觉差异。

    晚间的星空,以北天极和南天极连接的自转轴为中心旋转。而赤道仪的赤经轴与地球自转轴平行,当赤道仪架载望远镜沿赤经轴自东向西同步转动时,就可以抵销地球自转的影响,令目标天体的影像固定于视场内,方便观测和长时间曝光的深空拍摄。

    最近在国家天文台曹子皇同学的帮助下,学习了Skywatcher EQ6/HEQ5 PRO Synscan赤道仪的使用方法。EQ6 SynScan赤道仪架设起来后,整体感觉非常扎实,也比想象的沉重很多。SynScan赤道仪具备自动寻星系统和PC端的控制软件,同时配备黑色的设置手柄,能对其进行全面运动控制,并可导入内置目标天体数据库中的参数。

    在观测前,需要通过极轴镜观测,将北极星导入观测中心的小圆圈中,以保证赤经轴(极轴)对准北极星,即赤道仪的极轴和地球的地轴平行。之后使用控制手柄的四个方向键,控制赤经或赤纬轴转动(可以设定1-9种不同的速度),将目标天体移入望远镜视场中心。更详细的调节方法,可以参见文章极轴镜校正及使用,以及漂移法调整极轴,对于白天观测日全食的极轴调整,还可以参考经纬度计算法的讨论。

    为拍摄方便,望远镜目镜可以替换为数码相机的转接板,以连接数码相机或者摄像机,或者直接加载CCD板,通过USB线连接到电脑中采集图像。为了提高拍摄质量,还可以对同一观测天体曝光数十张相片,然后用专门软件合成为一张深空照片,以提高降噪能力,拍摄出效果震撼的深空摄影照片。

    额外提一下,学习赤道仪使用时遇到兴隆观测基地总工程师姜晓军老师,听他聊了一些观测器材的选型经验。姜老师是天文观测器材方面的骨灰高手,也是子皇同学的偶像,健谈、谦和,人很有趣。

    Posted in 兴趣爱好 | No Comments »

    志愿者招募:2009日全食直播现场

    3rd 六月 2009

    2009年7月22日,长江流域将出现罕见的日全食天象,持续时间超过6分钟,是近年最壮观的天象之一。届时,中国科学院国家天文台、微软亚洲研究院、中国科学院计算机网络信息中心、中国科学院上海天文台等四家单位将联合进行面向全球公众的日全食直播活动。

    全食多路联合直播是2009国际天文年中国区的核心活动。届时,将通过设在昆明、重庆、宜昌、武汉、苏州、上海、台北等地的观测点进行联合直播,通过CNGI下一代互联网试验系统将直播点的日食数字高清视频信号传输至北京直播中心,并通过广播通讯卫星、互联网等方式免费向全球发布。

    为保证活动顺利推进,现公开招募直播活动志愿者5-10名。被选中的人员经过培训后将派往上述(台北除外)观测点,作为现场工作人员。志愿者的路费和当地食宿将由直播活动组委会承担。

    志愿者的必需要求是:熟悉望远镜和赤道仪,熟悉日全食和四季星空的知识。志愿者优先考虑的条件是:有过日全食观测或者太阳观测的经验,熟悉Windows Media软件,有很好的团队合作精神。

    志愿者招募活动将在6月底前完成,感兴趣的朋友请在6月14日前发送Email与中科院国家天文台崔辰州博士联系:ccz@bao.ac.cn,在邮件中需要说明的内容包含个人基本情况、对上述要求的满足情况等。欢迎感兴趣天文观测的朋友报名参加。

    Posted in 兴趣爱好, 诸子百家 | 1 Comment »

    物理运动模拟引擎

    31st 五月 2008

    Phun源自于瑞典UMU大学硕士生的毕业论文,可以模拟物体的各种物理运动规律。使用者可以通过鼠标绘图来创建物体,并让物体实验重力、摩擦力、弹力、加速度等等不同的物理规律。

    C++编写的Phun使用了OpenGLGLEWSDL(用于窗口管理)SDL_image(用于读取图像)以及boost等类库,目前Phun提供了Windows和Linux版的免费下载。Phun为我们展现二维物理规律的模拟,实现运动引擎的开源库还有Java实现的Phys2D和C++实现的Box2D项目。

    三维物理运动模拟方面,在Playstation 3,XBox 360,Nintendo Wii等平台的游戏设计上,曾有不错表现的3D游戏引擎Blender同样使用C++实现,使用Java实现的类似引擎还有JBullet,JBullet给出了在线演示的3D。

    除此之外,还有大力推荐的Ubigraph,这是一个图论动画生成工具,可以快速生成图论模型并展示其三维结构,演示各种图论算法推算的过程。

    相关的项目还有很多,在iPhone平台上,类似的运动模拟引擎是Oolong Engine 2,开发者在站点上放置了在iPhone上模拟的视频。好玩的东东还有Bullet等等,以后或许一有用,先记录在这里。

    Posted in 兴趣爱好, 诸子百家 | No Comments »

    近期文字汇总

    3rd 四月 2008

    常在邮件列表中收到宇宙驿站崔老师发来的更新提示,催促我们时常更新博客内容。作为驿站大家庭的一员,我的站点最近更新也不太频繁,可能是写的东西不那么集中,都分散在各处了。试图将这些内容整合后放在一起,但是终究还是不太方便,所以就在这里简单列一下。

    前不久开通了新的SUN技术博客,目前分为GISJavaNetBeansOpenSourcePersonalResearchRubySun等几个大类。同时也会有文章或教程更新在Chinese Functional CA的团队博客上,这里的文章使用英文撰写,比方说Google Maps on Rails with NetBeans这篇Rails开发的教程。

    此外,一些原创的新闻和文章还发表在InfoQ中文站上,关注的方向主要是动态语言、开源项目和开源社区的发展,分季度的简单统计如下:

    07年第四季度:

    1. 开源文档《OSWorkflow开发指南》发布

    2. 从优秀到卓越:Rails发展之路

    3. 从Workshop起步:谈Rails专业培训

    4. 从Google看Ruby语言增长趋势

    5. 关注:Ruby 1.9版本即将发布

    6. InfoQ中文站Ruby社区2007年度十大新闻

    08年第一季度:

    1. 关注部署:谈Rails应用的最后一公里

    2. IBM网格计算:developerWorks专区使命完成

    3. NetBeans文档本地化项目持续推进

    4. 简体中文成为NetBeans博客大赛指定语言

    从07年11月份开始,帮程序员杂志撰写程序天下事的动态语言专栏,非常喜欢这个专栏,感觉这是到目前为止,写的最有意义的文字之一,争取再接再厉,做好为期一年的撰写。

    学习之余,周末和同学一起组织北郊登山队活动,拍摄科普宣传短片,只是MSN Sapce的文字,真的是疏于更新了。

    总体来看,还是比较能写的。期待今年还会有更多的惊喜等待在前面。

    Posted in 兴趣爱好, 思维记录 | No Comments »

    Mac上的非IE浏览器

    19th 二月 2008

    不得不承认,试图在Leopard平台上运行Windows的程序,的确是没有一点乐趣可言。

    由于临时在只有Mac的情况下要使用CMB的在线支付,所以需要找一款支持ActiveX的浏览器。然而为Firefox提供ActiveX支持的MyFirefox、IETab或是MediaWrap插件,也需要依赖Windows平台才可以提供ActiveX支持。于是开始尝试ies4osx,期望可以在Mac上运行原生的Win程序。在为Mac OS提供Windows程序运行环境的Darwine支持下,将IE 6在Leopard上跑了起来。

    先不说运行速度的问题,由于ies4osx需要X11的支持,安装之后IE的字体也是一大问题,需要一系列配置才可以正常在浏览器中显示中文。最后只好通过微软为Mac打造的远程桌面工具RDC 2.0来使用其他安装Win系统的机器登录CMB支付,不料却被CMB检测出使用代理机器登录网银,而中止了交易过程,无语中。

    不过在这个过程中,到时发现了不少非IE内核的优秀浏览器。大都以开放源代码的Gecko内核为主,Gecko是由C++编写的网页排版引擎,由最初的网景移交给现在的Mozilla基金会维护。在执行速度、对W3C标准的支持度方面,Gecko都不逊于IE内核使用的Trident引擎。

    Gecko引擎的领军者Firefox就不再多言了。在Mac平台上几个值得推荐的浏览器还包含有CaminoNavigatorFlock,特别是Flock,拥有非常Cute的界面,还集成了很多Web 2.0的常用元素。比方说delicious、Twitter、Flickr(顺便悼念一下之前的Flickr相册)、Facebook,还可以与朋友共享照片和读取订阅的博客,简直是个不折不扣的Web 2.0和SNS中心。不要总是让Windows挡住视线,就会发现,世界上还有其他靓丽的色彩。

    Posted in 兴趣爱好, 诸子百家 | 1 Comment »

    Mac平台的开源GIS

    8th 一月 2008

    在Apple的官方站点上,提供了Mac OS X系统平台上GIS的应用介绍,并给出Grass在Mac平台下运行的实例。Grass本身是基于GNU GPL协议的开放源代码GIS应用方案,全名为地理资源分析支持系统,可以说Grass是Unix平台下最早的GIS应用,用于数据管理,图象运算、图形生成、空间建模以及使各种各样数据的可视化。Grass拥有上百个GIS数据处理和分析命令,可以处理栅格、矢量等数据,并且可以创建、管理和存储空间数据。

    其实对于GIS这样需要处理大量数据的应用来说,使用 UNIX 操作系统无疑是最好的选择。Mac OS X系统本身建立在Mach 3.0和FreeBSD 5之上,命令与UNIX操作系统完全兼容,可以运行UNIX上的绝大多数应用程序,并且Apple上曾使用的PowerPC处理器,其浮点运算速度,甚至相比更高频率的Pentium CPU还要迅速。Mac OS X稳定、多任务、内存保护等优势,也是Win系统无法比拟的。在Mac OS X之上,可以使用bash,tcsh或ksh这样的Shell终端,同时Mac下也充满着emacs、vim这些编辑器的身影,程序编译时同样也离不开gcc、make和autoconf,在Mac之下,甚至还可以使用源于OpenSolaris的DTrace技术来提升应用的表现。

    开放源代码的GIS应用中,大多都可以直接运行在Mac OS平台之上。如UDig,MapServer都提供了针对于Mac OS的dmg格式镜像包。OpenOSX公司也为Mac平台提供了Grass的集成dmp安装包,可以免费下载使用。甚至是ESRI也提供了面向教学的Arcexplorer 9.2版本让Mac用户下载使用

    其实Apple本身是一个对开源持积极态度的公司,并且也为开源做出非常多的贡献 。Apple已经公开了Mac OS X 10.5 Leopard核心Darwin9的源代码,并且Apple也非常提倡在Mac OS上使用开源的软件。在Leopard系统的默认安装之中,就附带了如Apache、SVN、Ruby、Python等开源的代码。相信随着Mac用户的逐渐普及,使用开源GIS从事教学与数据处理的用户也会越来越多。

    Posted in 兴趣爱好, 聚焦GIS | No Comments »

    Mac OS X体验总结

    31st 十二月 2007

    一直对Mac OS X操作系统非常倾慕,现在终于用上了新版的Mac OS X Leopard,不到一周的时间里,已经完全适应了将原来Windows下的工作转移到Leopard系统平台之下,一点小Tips,也记录在这里以备参考:

    • Mac的休眠默认为安全模式,如果想使用快速休眠,可以通过命令sudo pmset a hibernatemode 0进行切换。
    • 在Leopard中,中文字体显示比较小,可以通过设置DPI分辨率来增大字体,命令为defaults write -g AppleDisplayScaleFactor 2.0,如果恢复默认值,把2.0设置为1.0即可。
    • 部分安装的软件无法通过AppZapper卸载,可以进入到系统的/Library/Receipts目录中,找到相应的项使用rm命令删除。

    Mac系统下的各种软件应用,如系统本身一般,充满着灵气。安装的一些非常Cool的Mac软件,也在此一并推荐一下。如可以通过蓝牙设备遥控Mac的Salling Clicker,我使用的Nokia 6681就可以正确识别,并通过蓝牙传送S60的遥控客户端软件来遥控Mac上的各种程序,还可以用手机的按键来控制鼠标在屏幕上的移动。还有文本编辑器WriteRoom,它这样可以为写作者提供像白纸一样干净的界面,让人心无旁羁的专注于要写的东西,非常适合于用来培养诗人或作家。还有撰写这篇Blog的工具,就是用一款叫做ecto的客户端,ecto可以自动识别Wordpress等多种Blog平台,自动读取已有feed并通过xml-rpc将本地撰写的文章发送到服务器上。

    在Mac中,快捷键的作用是无法忽视的,毕竟键盘设置和普通的Win键盘不同,所以牢记有用的快捷键可以帮助实现键盘上没有的那些键的功能。Mac OS X Leopard系统目前还并非完美,比方说Windows下面的可执行程序,很难迁移到Mac平台下面,但毕竟有大量可以替代的应用来帮助我们完成同样的工作。而且,由于针对Mac系统的病毒较少,所以大多数情况下,不安装杀毒软件使用Mac也是非常安全的。

    Posted in 兴趣爱好, 诸子百家 | 4 Comments »