导航:首页 > 编程语言 > 地图检索系统python代码

地图检索系统python代码

发布时间:2022-05-18 05:06:31

⑴ 怎么用python操作地图数据

使用方法: 把代码保存成bmap.py python bmap.py 或 python bmap.py 服饰厂 运行后会自动采集网络地图中所有的结果,保存为以tab分割的txt文件,方便导入各种数据库。

⑵ 如何用python抓取百度地图数据

使用方法:
把代码保存成bmap.py
python bmap.py
或 python bmap.py 服饰厂
运行后会自动采集网络地图中所有的结果,保存为以tab分割的txt文件,方便导入各种数据库。

⑶ 求python的map函数

_tabkeys = map(int,tabkeys[1:_len])
相当于_tabkeys[0] = int(tabkeys[1])
.... _tabkeys[i] = int(tabkeys[i+1])

这不正是你要的?
例子:

>>> tabkeys=['1','2','3']
>>> _len = len(tabkeys)
>>> _tabkeys = map(int,tabkeys[1:_len])
>>> _tabkeys
[2, 3]

>>> _tabkeys[0]
2
>>> tabkeys[1]
'2'
>>>

如果这不是你想要的,请举例说明什么是想要的结果。

⑷ python map问题

map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。
举例说明,比如我们有一个函数f(x)=x%2,要把这个函数作用在一个list [1, 2, 3, 4, 5, 6, 7, 8, 9]上,就可以用map()实现
#使用lambda函数
>>> print map(lambda x: x % 2, range(7))
[0, 1, 0, 1, 0, 1, 0]
一个最简单的例子,如基于f(x) = x²,map()作用于list [1, 2, 3, 4, 5, 6, 7, 8, 9]后的结果如下:返回结果仍为list

⑸ 求助:arcmap python代码块

这是一个函数 放在代码块里 在最下面调用函数并传参,你仔细检查,我贴代码一般都是测试过的

⑹ 百度地图api用python行吗

今天我使用网络地图api获取地址,我是通过发送HTTP服务实现的(当然这其中肯定要使用自己的秘钥),返回的格式你可以自己决定,可以是xml或者json。

我这里提供一个例子吧:


至此提取成功,问题解决,写这个真的是因为我在解决这个问题的时候搜了很多信息,都是没有解决方案

⑺ 如何用Python批量获取经纬度坐标

python根据地址获取经纬度方法一:
from geopy.geocoders import Nominatim
#使用geopy查询
def geocodeN(address):
gps=Nominatim()
location=gps.geocode(address)
return location.longitude,location.latitude

使用Geopy包 : github.com/geopy/geopy (仅能精确到城镇,具体街道无结果返回)
另外还有一种使用高德地图或网络地图API的方法,有兴趣的朋友可以参考下。
参考链接:https://panxu.net/article/8382.html

⑻ 如何使用Python为Hadoop编写一个简单的MapRece程序

在这个实例中,我将会向大家介绍如何使用Python 为 Hadoop编写一个简单的MapRece
程序。
尽管Hadoop 框架是使用Java编写的但是我们仍然需要使用像C++、Python等语言来实现Hadoop程序。尽管Hadoop官方网站给的示例程序是使用Jython编写并打包成Jar文件,这样显然造成了不便,其实,不一定非要这样来实现,我们可以使用Python与Hadoop 关联进行编程,看看位于/src/examples/python/WordCount.py 的例子,你将了解到我在说什么。

我们想要做什么?

我们将编写一个简单的 MapRece 程序,使用的是C-Python,而不是Jython编写后打包成jar包的程序。
我们的这个例子将模仿 WordCount 并使用Python来实现,例子通过读取文本文件来统计出单词的出现次数。结果也以文本形式输出,每一行包含一个单词和单词出现的次数,两者中间使用制表符来想间隔。

先决条件

编写这个程序之前,你学要架设好Hadoop 集群,这样才能不会在后期工作抓瞎。如果你没有架设好,那么在后面有个简明教程来教你在Ubuntu linux 上搭建(同样适用于其他发行版linux、unix)

如何使用Hadoop Distributed File System (HDFS)在Ubuntu Linux 建立单节点的 Hadoop 集群

如何使用Hadoop Distributed File System (HDFS)在Ubuntu Linux 建立多节点的 Hadoop 集群

Python的MapRece代码

使用Python编写MapRece代码的技巧就在于我们使用了 HadoopStreaming 来帮助我们在Map 和 Rece间传递数据通过STDIN (标准输入)和STDOUT (标准输出).我们仅仅使用Python的sys.stdin来输入数据,使用sys.stdout输出数据,这样做是因为HadoopStreaming会帮我们办好其他事。这是真的,别不相信!

Map: mapper.py

将下列的代码保存在/home/hadoop/mapper.py中,他将从STDIN读取数据并将单词成行分隔开,生成一个列表映射单词与发生次数的关系:
注意:要确保这个脚本有足够权限(chmod +x /home/hadoop/mapper.py)。

#!/usr/bin/env python

import sys

# input comes from STDIN (standard input)
for line in sys.stdin:
# remove leading and trailing whitespace
line = line.strip()
# split the line into words
words = line.split()
# increase counters
for word in words:
# write the results to STDOUT (standard output);
# what we output here will be the input for the
# Rece step, i.e. the input for recer.py
#
# tab-delimited; the trivial word count is 1
print '%s\\t%s' % (word, 1)在这个脚本中,并不计算出单词出现的总数,它将输出 "<word> 1" 迅速地,尽管<word>可能会在输入中出现多次,计算是留给后来的Rece步骤(或叫做程序)来实现。当然你可以改变下编码风格,完全尊重你的习惯。

Rece: recer.py

将代码存储在/home/hadoop/recer.py 中,这个脚本的作用是从mapper.py 的STDIN中读取结果,然后计算每个单词出现次数的总和,并输出结果到STDOUT。
同样,要注意脚本权限:chmod +x /home/hadoop/recer.py

#!/usr/bin/env python

from operator import itemgetter
import sys

# maps words to their counts
word2count = {}

# input comes from STDIN
for line in sys.stdin:
# remove leading and trailing whitespace
line = line.strip()

# parse the input we got from mapper.py
word, count = line.split('\\t', 1)
# convert count (currently a string) to int
try:
count = int(count)
word2count[word] = word2count.get(word, 0) + count
except ValueError:
# count was not a number, so silently
# ignore/discard this line
pass

# sort the words lexigraphically;
#
# this step is NOT required, we just do it so that our
# final output will look more like the official Hadoop
# word count examples
sorted_word2count = sorted(word2count.items(), key=itemgetter(0))

# write the results to STDOUT (standard output)
for word, count in sorted_word2count:
print '%s\\t%s'% (word, count)
测试你的代码(cat data | map | sort | rece)

我建议你在运行MapRece job测试前尝试手工测试你的mapper.py 和 recer.py脚本,以免得不到任何返回结果
这里有一些建议,关于如何测试你的Map和Rece的功能:
——————————————————————————————————————————————
\r\n
# very basic test
hadoop@ubuntu:~$ echo "foo foo quux labs foo bar quux" | /home/hadoop/mapper.py
foo 1
foo 1
quux 1
labs 1
foo 1
bar 1
——————————————————————————————————————————————
hadoop@ubuntu:~$ echo "foo foo quux labs foo bar quux" | /home/hadoop/mapper.py | sort | /home/hadoop/recer.py
bar 1
foo 3
labs 1
——————————————————————————————————————————————

# using one of the ebooks as example input
# (see below on where to get the ebooks)
hadoop@ubuntu:~$ cat /tmp/gutenberg/20417-8.txt | /home/hadoop/mapper.py
The 1
Project 1
Gutenberg 1
EBook 1
of 1
[...]
(you get the idea)

quux 2

quux 1

——————————————————————————————————————————————

在Hadoop平台上运行Python脚本

为了这个例子,我们将需要三种电子书:

The Outline of Science, Vol. 1 (of 4) by J. Arthur Thomson\r\n
The Notebooks of Leonardo Da Vinci\r\n
Ulysses by James Joyce
下载他们,并使用us-ascii编码存储 解压后的文件,保存在临时目录,比如/tmp/gutenberg.

hadoop@ubuntu:~$ ls -l /tmp/gutenberg/
total 3592
-rw-r--r-- 1 hadoop hadoop 674425 2007-01-22 12:56 20417-8.txt
-rw-r--r-- 1 hadoop hadoop 1423808 2006-08-03 16:36 7ldvc10.txt
-rw-r--r-- 1 hadoop hadoop 1561677 2004-11-26 09:48 ulyss12.txt
hadoop@ubuntu:~$

复制本地数据到HDFS

在我们运行MapRece job 前,我们需要将本地的文件复制到HDFS中:

hadoop@ubuntu:/usr/local/hadoop$ bin/hadoop dfs -FromLocal /tmp/gutenberg gutenberg
hadoop@ubuntu:/usr/local/hadoop$ bin/hadoop dfs -ls
Found 1 items
/user/hadoop/gutenberg <dir>
hadoop@ubuntu:/usr/local/hadoop$ bin/hadoop dfs -ls gutenberg
Found 3 items
/user/hadoop/gutenberg/20417-8.txt <r 1> 674425
/user/hadoop/gutenberg/7ldvc10.txt <r 1> 1423808
/user/hadoop/gutenberg/ulyss12.txt <r 1> 1561677

执行 MapRece job

现在,一切准备就绪,我们将在运行Python MapRece job 在Hadoop集群上。像我上面所说的,我们使用的是
HadoopStreaming 帮助我们传递数据在Map和Rece间并通过STDIN和STDOUT,进行标准化输入输出。

hadoop@ubuntu:/usr/local/hadoop$ bin/hadoop jar contrib/streaming/hadoop-0.19.1-streaming.jar
-mapper /home/hadoop/mapper.py -recer /home/hadoop/recer.py -input gutenberg/*
-output gutenberg-output
在运行中,如果你想更改Hadoop的一些设置,如增加Rece任务的数量,你可以使用“-jobconf”选项:

hadoop@ubuntu:/usr/local/hadoop$ bin/hadoop jar contrib/streaming/hadoop-0.19.1-streaming.jar
-jobconf mapred.rece.tasks=16 -mapper ...

一个重要的备忘是关于Hadoop does not honor mapred.map.tasks
这个任务将会读取HDFS目录下的gutenberg并处理他们,将结果存储在独立的结果文件中,并存储在HDFS目录下的
gutenberg-output目录。
之前执行的结果如下:

hadoop@ubuntu:/usr/local/hadoop$ bin/hadoop jar contrib/streaming/hadoop-0.19.1-streaming.jar
-mapper /home/hadoop/mapper.py -recer /home/hadoop/recer.py -input gutenberg/*
-output gutenberg-output

additionalConfSpec_:null
null=@@@userJobConfProps_.get(stream.shipped.hadoopstreaming
packageJobJar: [/usr/local/hadoop-datastore/hadoop-hadoop/hadoop-unjar54543/]
[] /tmp/streamjob54544.jar tmpDir=null
[...] INFO mapred.FileInputFormat: Total input paths to process : 7
[...] INFO streaming.StreamJob: getLocalDirs(): [/usr/local/hadoop-datastore/hadoop-hadoop/mapred/local]
[...] INFO streaming.StreamJob: Running job: job_200803031615_0021
[...]
[...] INFO streaming.StreamJob: map 0% rece 0%
[...] INFO streaming.StreamJob: map 43% rece 0%
[...] INFO streaming.StreamJob: map 86% rece 0%
[...] INFO streaming.StreamJob: map 100% rece 0%
[...] INFO streaming.StreamJob: map 100% rece 33%
[...] INFO streaming.StreamJob: map 100% rece 70%
[...] INFO streaming.StreamJob: map 100% rece 77%
[...] INFO streaming.StreamJob: map 100% rece 100%
[...] INFO streaming.StreamJob: Job complete: job_200803031615_0021

[...] INFO streaming.StreamJob: Output: gutenberg-output hadoop@ubuntu:/usr/local/hadoop$

正如你所见到的上面的输出结果,Hadoop 同时还提供了一个基本的WEB接口显示统计结果和信息。
当Hadoop集群在执行时,你可以使用浏览器访问 http://localhost:50030/ ,如图:

检查结果是否输出并存储在HDFS目录下的gutenberg-output中:

hadoop@ubuntu:/usr/local/hadoop$ bin/hadoop dfs -ls gutenberg-output
Found 1 items
/user/hadoop/gutenberg-output/part-00000 <r 1> 903193 2007-09-21 13:00
hadoop@ubuntu:/usr/local/hadoop$

可以使用dfs -cat 命令检查文件目录

hadoop@ubuntu:/usr/local/hadoop$ bin/hadoop dfs -cat gutenberg-output/part-00000
"(Lo)cra" 1
"1490 1
"1498," 1
"35" 1
"40," 1
"A 2
"AS-IS". 2
"A_ 1
"Absoluti 1
[...]
hadoop@ubuntu:/usr/local/hadoop$

注意比输出,上面结果的(")符号不是Hadoop插入的。

转载仅供参考,版权属于原作者。祝你愉快,满意请采纳哦

⑼ 如何将DEM用python获取河流、河流流域水系地图

将dem数据导入arcmap软件中
利用dem提取河网的方法和步骤

由于dem数据在采集制作过程中,数据元素中存在坑点或叫污点(如:因地貌原有造成,提取时会影响提取的精确度),因而利用工具箱中的填挖工具进行填挖
利用dem提取河网的方法和步骤

河水是从高往低处流,具有方向性,利用填挖的结果点击流向分析工具,进行流向提取
利用dem提取河网的方法和步骤
利用dem提取河网的方法和步骤

河水汇流最终需要集中在河流中,因而需计算各个元素内积累的汇流量,结合河流流向点击汇流量分析工具计算该地方各处汇流量
利用dem提取河网的方法和步骤
利用dem提取河网的方法和步骤

根据对河流特性,对需要提取河网密度情况,设置一定的阈值,阈值是代表河水汇流面积,可粗劣计算多少的汇流面积会形成河沟,然后提取河网。点击栅格计算工具提取
利用dem提取河网的方法和步骤
利用dem提取河网的方法和步骤

由于计算提取的分为0和1两个值,将该结果分类去掉0值的,1值的代表河网,点击分类工具
利用dem提取河网的方法和步骤
利用dem提取河网的方法和步骤

利用河网栅格数据结果与流向数据结果将栅格河网转化为矢量河网,点击转化工具,分析去取完成
利用dem提取河网的方法和步骤
利用dem提取河网的方法和步骤

⑽ 有哪些 GIS+Python 的开发经验值得分享

python之于GIS与python之于IT类似
GISer采用python的原因也在于“人生苦短,我用python”
python在gis中的应用非常之广
1. desktop GIS:
ArcGIS从版本10开始不再支持原来的VBA,而改用python
QGIS本身大部分的代码特别是插件部分可以采用python进行开发
2. 地图引擎
mapnik—基于C++引擎的顶级地图引擎库,和python结合比较紧密
mapfish—支持部分专题地图在线制作
3. webgis
python+geodjango 是最常用也最庞大的后台框架

GISer使用python一定要充分发挥python语言的特性
如ArcGIS集成phthon是利用了python的脚本语言特性
后台webgis等服务,可以发挥python作为语言黏合剂的特性,充分利用已有的GIS算法

阅读全文

与地图检索系统python代码相关的资料

热点内容
安卓清楚缓存命令 浏览:378
汽车压缩机电磁离合器损坏怎么修 浏览:505
怎么提取安卓软件 浏览:593
单片机和主机高速传文件 浏览:476
男生直发加密需要剃光头吗 浏览:823
qtdesignerlinux 浏览:429
命令的几要素 浏览:932
代理服务器地址怎么知道 浏览:170
汉语命令形 浏览:193
ACG官网下载的游戏怎么解压 浏览:963
stata交叉项命令 浏览:470
程序员老公烫头 浏览:692
服务器文件地址格式 浏览:131
securecrtandroid 浏览:176
短字符串压缩 浏览:863
u盘插入后显示加密格式化 浏览:944
我的世界怎么用命令方块获得超级武器 浏览:382
狗语翻译器app链接怎么下 浏览:905
选择排序算法的流程图 浏览:883
如何对文件夹开启共享 浏览:527