所有,
我再次陷入困境,试图以我需要的格式获取数据.我有一个看起来像这样的文本字段.
"deangelo 001 deangelo
当地名称来源:italain
来自美国名称deangelo
意思是:天使
情感谱•他是所有人欢乐的泉源.
个人诚信•他的好名声是他最宝贵的财富.个性•当你被火鸡包围时,很难翱翔老鹰!关系•开始缓慢,但与deangelo的关系随着时间的推移而建立.旅行和休闲•一生中的旅行是他的未来.
事业和金钱•一个有天赋的孩子,deangelo将需要不断挑战.
生活的机会•欢乐和幸福等待着这个有福的人.
deangelo的幸运数字:12•38•18•34•29•16
"
在Postgresql中删除回车符和新行的最佳方法是什么?我尝试过几件事情,但没有人想表现出来.
select regexp_replace(field, E'\r\c', ' ', 'g') from mytable
WHERE id = 5520805582
SELECT regexp_replace(field, E'[^\(\)\&\/,;\*\:.\>\<[:space:]a-zA-Z0-9-]', ' ')
FROM mytable
WHERE field~ E'[^\(\)\&\/,;\*\:.\<\>[:space:]a-zA-Z0-9-]'
AND id = 5520805582;
Run Code Online (Sandbox Code Playgroud)
亚当,先谢谢你
所有,
在删除目录之前检查目录中是否有数据的最佳方法是什么?我正在浏览几页以找到使用wget的一些图片,当然每个页面上都没有图像,但目录仍然是创建的.
dir = 'Files\\%s' % (directory)
os.mkdir(dir)
cmd = 'wget -r -l1 -nd -np -A.jpg,.png,.gif -P %s %s' %(dir, i[1])
os.system(cmd)
if not os.path.isdir(dir):
os.rmdir(dir)
Run Code Online (Sandbox Code Playgroud)
我想测试一下文件在创建后是否被删除.如果没有,请删除它.
谢谢,亚当
在将数据插入我的数据库时,我遇到了一个重大的速度障碍.您可以从下面的代码中看到,我只是构建SQL语句以传递给execute命令.值是正确的,一切都很好,但python解释器似乎是在运行时添加和删除params中的引号.
这是将空间数据插入数据库的正确方法.
INSERT INTO my_table(
name, url, id, point_geom, poly_geom)
VALUES ('test', 'http://myurl', '26971012',
ST_GeomFromText('POINT(52.147400 19.050780)',4326),
ST_GeomFromText('POLYGON(( 52.146542 19.050557, bleh, bleh, bleh))',4326));
Run Code Online (Sandbox Code Playgroud)
这在Postgres查询编辑器中是可验证的......现在,当我在下面运行Python代码时,它会在ST_GeomFromText函数周围添加双引号,然后从id列中删除引号.
INSERT INTO my_table(
name, url, id, point_geom, poly_geom)
VALUES ('test', 'http://myurl', 26971012,
"ST_GeomFromText('POINT(52.147400 19.050780)',4326)",
"ST_GeomFromText('POLYGON(( 52.146542 19.050557, 52.148430 19.045527, 52.149525 19.045831, 52.147400 19.050780, 52.147400 19.050780, 52.146542 19.050557))',4326)");
Run Code Online (Sandbox Code Playgroud)
这导致插入失败,PostGIS声称它不是一个合适的几何.当我打印每个参数在屏幕上查看时,引号没有什么好玩的,所以我认为问题必须在执行命令中.我正在使用Python 2.7 ...任何人都可以帮助如何防止这种疯狂继续下去?
conn = psycopg2.connect('dbname=mydb user=postgres password=password')
cur = conn.cursor()
SQL = 'INSERT INTO my_table (name, url, id, point_geom, poly_geom) VALUES (%s,%s,%s,%s,%s);'
Data = name, url, id, point, polygon …
Run Code Online (Sandbox Code Playgroud) 我试图查询在"内容"字段的正文中具有日期的文档.
curl -XGET 'http://localhost:9200/index/_search' -d '{
"query": {
"regexp": {
"content": "^(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.]((19|20)\\d\\d)$"
}
}
}'
Run Code Online (Sandbox Code Playgroud)
越来越近了吗?
curl -XGET 'http://localhost:9200/index/_search' -d '{
"filtered": {
"query": {
"match_all": {}
},
"filter": {
"regexp":{
"content" : "^(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.]((19|20)\\d\\d)$"
}
}
}
}'
Run Code Online (Sandbox Code Playgroud)
我的正则表达式似乎已经关闭了.此正则表达式已在regex101.com上验证.以下查询仍然不返回我拥有的175k文档.
curl -XPOST 'http://localhost:9200/index/_search?pretty=true' -d '{
"query": {
"regexp":{
"content" : "/[0-9]{4}-[0-9]{2}-[0-9]{2}|[0-9]{2}-[0-9]{2}-[0-9]{4}|[0-9]{2}/[0-9]{2}/[0-9]{4}|[0-9]{4}/[0-9]{2}/[0-9]{2}/g"
}
}
}'
Run Code Online (Sandbox Code Playgroud)
我开始认为我的索引可能没有为这样的查询设置.您必须使用哪种类型的字段才能使用正则表达式?
mappings: {
doc: {
properties: {
content: {
type: string
}title: {
type: string
}host: {
type: string
}cache: {
type: string …
Run Code Online (Sandbox Code Playgroud) 我希望从7天前开始在Windows批处理文件中设置日期.我想以下面的格式这样做.
set today=%date:~10,4%-%date:~4,2%-%date:~-7,2%
Run Code Online (Sandbox Code Playgroud)
任何想法如何在这里减去7天的时间增量?
所有,
有几个使用Python实现四叉树的例子,但我的问题是,是否有人知道用纯python编写的类,如单个.py文件,我可以轻松地包含在我的项目中?这里列出了三个最受欢迎的软件包这些四树库中的任何一个都不错吗?但由于运行它们所需的所有依赖项,我没有运气使用它们.我真的想要一些重量轻,使用起来相对简单的东西.我想通过传递整个地球的边界来调用脚本并从那里开始工作.myMethod((-180,-90,180,90))
谢谢,亚当
我有一个名为jobrunner.py的脚本,它调用main.py中的类方法.见下文...
# jobrunner.py
from multiprocessing import Process
import main
from main import BBOX
def _a(arg):
f = main.a()
print f.run()
def _b(arg):
p = main.b()
print p.run()
if __name__ == '__main__':
world = '-180,180,-90,90'
BBOX.append(world.split(','))
p1 = Process(target=_a, args=("1",))
p2 = Process(target=_b, args=("1",))
p1.start()
p2.start()
p1.join()
p2.join()
Run Code Online (Sandbox Code Playgroud)
在OSX和Ubuntu上调用进程_a和_b没有任何问题,但是当我尝试在Windows上运行相同的东西(相同版本的python和all)时,它无法说索引超出范围.这让我相信在Windows平台上的模块之间没有设置或传递"全局"变量BBOX.有没有其他人看到这样的东西,知道如何解决它?
亚当
更新:虽然它可能是一个彻底的黑客,但我想出来了......见下文!
# jobrunner.py
from multiprocessing import Process
import main
from main import BBOX
def _a(arg):
BBOX.append(arg) #This is the key
f = main.a()
print f.run()
def _b(arg):
BBOX.append(arg) #This is …
Run Code Online (Sandbox Code Playgroud) 我有一个充满积分的文本文件.它们在每一行上由逗号限制的(x,y)对分隔开.例如.
-43.1234,40.1234\n
-43.1244,40.1244\n
etc.
Run Code Online (Sandbox Code Playgroud)
我现在需要围绕这些点创建一个多边形.多边形必须有一个15公里的缓冲区.我无法访问ArcGIS或任何其他为我提供此功能的GIS,所以此时,我想知道是否有人有数学帮助我开始?
我有两张桌子,我想交叉.第一个表代表大约5000万个点,第二个表是世界上所有国家的多边形层.我想获得与该多边形相交的所有点.
SELECT d.id, d.geom
FROM export d, world_boundaries b
WHERE (b.cntry_name = 'UK')
AND d.date_inserted >= '2012-06-01'
AND d.geom && b.wkb_geometry
AND intersects(d.geom, b.wkb_geometry);
Run Code Online (Sandbox Code Playgroud)
此查询非常简单,但运行时间超过4小时.我在每个表的几何列上构建了GIST索引,并对它们进行了VACUUM ANALYZE.仍然没有性能提升.我使用Postgres 8.4和PostGIS 1.5运行CENTOS 6.有人能说明如何加快速度吗?将查询限制为1000到10000条记录时,我会很快得到结果.当我尝试抓取完整的结果集时,它会拖动.思考?
更新:我现在看到我必须优化我的查询作为此过程的第一步.我得到这样的信封
select astext(st_envelope(wkb_geometry)) as e
from world_borders
where cntry_name = 'UK'
Run Code Online (Sandbox Code Playgroud)
现在,作为整个查询的一部分包含/执行此操作的最有效方法是什么?
我想加快以下命令:
convert -limit memory 64 -limit map 128 -antialias -delay 1x2 final/*.png movie.mp4
Run Code Online (Sandbox Code Playgroud)
我看过其他博客文章,其中并行和转换一起使用,所以我想知道如何使它与上面的命令一起使用.
python ×5
postgis ×2
postgresql ×2
regex ×2
batch-file ×1
gis ×1
globals ×1
gnu ×1
imagemagick ×1
points ×1
polygons ×1
psycopg2 ×1
quadtree ×1
rmdir ×1