0%

正则表达式

什么是正则表达式

正则表达式是用字符序列来描述复杂查询条件的方式。

匹配所有的数字

1
^[0-9]+$

表达式说明:

  • ^ - 表示一行的开始
  • [0-9] - 匹配介于0-9中间的任何数字;也可以用\d来代替
  • + - 匹配前面表达式的一个或者多个实例
  • $ - 表示一行的结束

不同语言实现正则表达式

C#语言下实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using System;
using System.IO;
using System.Text;
using System.Text.RegularExpressions;
using System.Linq;

namespace RegexExample
{
class FileRegexExample
{
static void Main()
{
string text = File.ReadAllText(@"./test.txt", Encoding.UTF8);
Regex regex = new Regex("^[0-9]+$", RegexOptions.Multiline);
MatchCollection mc = regex.Matches(text);
var matches = mc.OfType<Match>().Select(m => m.Value).ToArray();
Console.WriteLine(string.Join(" ", matches));
}
}
}

Python语言下实现

Read more »

SQL语言

这部分描述了SQL语言在PostgreSQL中的使用。我们从描述SQL的基础语法开始,然后解释如何创建结构来保存数据,如何填充数据库以及如何查询它。中间部分列出了用于SQL命令的可用数据类型和函数。剩余部分对于优化数据库以获得最佳性能非常重要。

这个部分的信息是被安排的,这样一个新手用户可以跟随它开始结束以获得对主题的充分理解,而不必过多的引用。这些章节的内容是独立的,所以高级用户可以在选择的时候单独阅读章节。这部分的信息以一种叙事的方式呈现在主题单元中。读者在寻找特定命令的完整描述时,应该看到第VI部分。

读者在这一部分应该知道如何连接到PostgreSQL数据库并发出SQL命令。不熟悉这些问题的读者会被鼓励阅读第一部分。SQL命令通常使用PostgreSQL交互式终端psql来输入,但是其他具有类似功能的程序也可以使用。

SQL语法

本章描述SQL语法。它为理解以下章节奠定了基础,接下来的章节将详细介绍如何应用SQL命令来定义和修改数据。

我们还建议已经熟悉SQL的用户仔细阅读本章,因为它包含了一些在SQL数据库中不一致地实现的规则和概念,或者是特定于PostgreSQL的。

词汇结构

Read more »

PostgreSQL下的Python

PL/Python过程语言允许PostgreSQL函数用Python语言编写。

要在特定数据库中安装PL/Python,请使用CREATE EXTENSION plpythonu

提示:如果语言安装到template1中,则随后创建的所有数据库都将自动安装该语言。

PL/Python仅作为”不可信”语言提供,这意味着它不提供限制用户可以在其中执行的任何方式,因此命名为plpythonu。如果在Python中开发安全执行机制,将来可能会有可信变量plpython。在不可信的PL / Python中函数的作者必须注意,该函数不能用于做任何不想要的事情,因为它可以完成登录为数据库管理员的用户所能做的任何事情。 只有超级用户可以使用不受信任的语言(如plpythonu)创建函数。

Python 2 和 Python 3

PL/Python支持Python 2和Python 3语言变量。由于Python 2和Python 3语言变量在某些重要方面不兼容,因此PL / Python使用以下命名和转换方案来避免混淆它们:

  • 命名为plpython2u的PostgreSQL语言实现了基于Python 2语言版本的PL/Python。
  • 命名为plpython3u的PostgreSQL语言实现了基于Python 3语言版本的PL/Python。
  • 命名为plpythonu的语言基于默认的Python语言变体(目前是Python 2)实现了PL/Python。(这个默认值与任何本地Python安装可能认为是它们的”默认”无关,例如,可能是usr/bin/python。)根据在Python社区中迁移到Python 3的进度,在PostgreSQL的一个遥远的未来版本中,默认情况下可能会更改为Python 3。

这个方案类似于PEP 394关于python命令的命名和转换的建议。

它取决于构建配置或安装的包是否可用于Python 2或Python 3的PL/Python。

这会导致以下使用和迁移策略:

Read more »

CentOS7下安装PostgreSQL10

1、下载源代码并解压

1. sudo yum install readline-devel gcc gdal-devel libxml-devel proj-devel pcre-devel \
                    bison-devel flex-devel
2. wget https://ftp.postgresql.org/pub/source/v10.6/postgresql-10.6.tar.gz
2. tar -xvzf postgresql-10.6.tar.gz  #解压pg包
3. ./configure
4. sudo make
5. sudo make install

2、创建用户组和用户

Read more »

CentOS7下安装PostGIS

写在安装之前

PostGIS的安装和运行需要在PostgreSQL环境下,故本人安装的环境是:

  • CentOS 7 64位

  • PostgreSQL 10.3,具体安装可参考CentOS7 下安装 PostgreSQL10

  • PostGIS 2.4.3, 安装过程看本文介绍

  • geos 3.4.2, 可以使用yum install geos geos-devel

  • gdal 1.11.4, 可以使用yum install jdal gdal-devel

  • libxml 2 2.9.1, 可以使用yum install libxml2 libxml2-devel

  • proj 4.8.0, 可以使用yum install proj proj-devel

  • json-c 0.11, 可以使用yum install json-c json-c-devel

  • pcre 8.32, 可以使用yum install pcre pcre-devel

  • protobuf-c 1.02, 可以使用yum install protobuf-c-devel

注: 具体PostgreSQL与PostGIS之间版本的对应可查看osgeo官网说明文档

PostGIS及其扩展的安装

Read more »

SQL语法

基础语法

1. SELECT

说明

SELECT语句用于从表中选取数据。结果被存储在一个结果表中(称为结果集)。

语法
1
2
SELECT columnname1, columnname2,... FROM table_name
SELECT * FROM table_name

2. DISTINCT

说明

在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。关键词DISTINCT用于返回唯一不同的值。

语法
1
SELECT DISTINCT column_name FROM table_name

3. WHERE 子句

Read more »

Linux命令——find使用

find常用格式

1
2
find [-H | -L | -P] [-EXdsx] [-f path] path ... [expression]
find [-H | -L | -P] [-EXdsx] -f path [path ...] [expression]

参数详解:

Read more »

安装和配置rasdaman

rasdaman简介

rasdaman(”raster data manager”)栅格数据管理器: 号称是世界上最灵活和可伸缩的阵列引擎。

它允许存储和查询大量多维数组,如传感器、图像、模拟和统计数据,这些数据出现在地球、空间和生命科学等领域。这个全球领先的阵列分析引擎以其灵活性、性能和可扩展性而著称。rasdaman可以处理驻留在文件系统目录和数据库中的数组。

一个常用的同义词是栅格数据阵列,如二维光栅图形;这实际上促使名称rasdaman。然而,rasdaman在维度数目没有限制它可以,例如,一维二维测量数据、卫星图像、三维X/Y/T的时间序列图像和X、Y、Z的勘探资料,四维的海洋和气候数据,甚至超越时空的维度。

新一代地理栅格服务器 :从简单的地理图像服务到复杂的分析,rasdaman提供了时空光栅数据的所有功能——包括规则网格和不规则网格。正如最近的科学基准所显示的那样,它的性能和可扩展性是前所未有的。为了利用这种支持技术,用户不必学习新的接口:rasdaman与R、OpenLayers、Leaflet、NASA WorldWind、GDAL、MapServer、ESRI ArcGIS等软件进行了平滑集成,想要了解更多可点击这里

下面介绍一下rasdaman的几种安装方法:

一、通过rpm安装rasdaman

下载并安装

  1. 向yum添加rasdaman仓库

    1
    2
    sudo - root
    curl "http://download.rasdaman.org/packages/rpm/stable/CentOS/7/x86_64/rasdaman.repo" -o /etc/yum.repos.d/rasdaman.repo
  2. 现在在yum下可以使用rasdaman包

    1
    2
    3
    yum clean all
    yum update
    yum search rasdaman

    输出:

    1
    2
    3
    rasdaman.x86_64 : Rasdaman is the leading Array Database for flexible, scalable
    : analytics of massive multi-dimensional array (raster) data,
    : such as spatio-temporal datacubes.
  3. 向yum添加EPEL仓库

    1
    yum install epel-release
  4. 安装rasdaman包,并启动

    1
    2
    yum install rasdaman
    source /etc/profile.d/rasdaman.sh

注: 要想使用petascope,必须配置数据库为postgres,目前的rpm包都是以sqlite为默认包,后期会有更想,请期待!

配置

Read more »

Linux与Windows命令的比较

文件目录操作

Command Linux Windows
批处理 .sh .bat
帮助 cmd –help / -h
列出目录文件 ls/ ls -l dir
改变当前目录 cd cd
进父目录 cd .. cd ..
进home目录 cd ~
复制 cp copy
删除 rm file_name del file_name
建目录 mkdir folderName md folderName
建文件 touch fileName touch fileName
删目录 rmdir folderName rmdir folderName
设置目录文件权限 chmod u+rwx file
设置目录文件所有者 chown user.group file

文件内容操作

Command Linux Windows
显示文件内容 cat type
more,less more
head、tail
统计行数 wc
显示文件信息 file
查找文件 find /bin -name ls
定位可执行文件位置 which
在文本文件内查找 grep str1 1.txt find
启动运行程序 gnome-open/open start

系统信息查询

Read more »

利用Hexo在github上搭建个人博客

一、前期准备

1. 申请Github账户

进入Github网站,按照提示进行注册,然后登录。

Github主界面

登录完成之后,在你的主页点击图标New Repository创建一个新的版本库,因为我们是使用Github Pages去搭建我们的静态博客,所以版本库的名称应该是:用户名+.github.io。如:我的用户名是:javyxu,那么版本库的名字应该是:javyxu.github.io,这个是一定不能出错的。因为之后你将要访问的你的博客地址就是:https://javyxu.cn

新建仓库界面

至此,Github账号创建完成,GIthub Pages 所需要的版本库也创建好了。

2. 申请leancloud账户

为何要注册Leancloud,因为我们的统计量、评论系统其实是放在Leancloud上的,因此首先需要去注册一个账号。Leancloud官网,点我注册

注册完以后需要创建一个应用,名字可以随便起,比如blog,为了我们的评论和统计可以使用,我们新建两个Class,分别命名为CommentCounter,如下图所示

leancloud1

最后进入应用->设置->应用key获取你的appidappkey如图所示:

leancloud2

这两个信息在后期的主题配置文件中会用到。

3. 申请clustrmaps账户

Read more »