精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

基于Python實現大規模光柵人口數據可視化

譯文 精選
大數據 數據可視化
本文旨在探討如何使用Python語言實現包括全球、國家和城市級別的跨多個尺度的地理空間人口數據的可視化。

譯者 | 朱先忠

審校 | 重樓

我經常看到網上流傳著美麗的人口地圖;然而,我也常常會遇到一些技術問題,比如可視化本文中顯示的其他的地圖片段,或者將大規模光柵數據轉換為更便于計算的向量格式。在本文中,我將通過兩個主要全球人口數據來源的實踐來嘗試克服這其中的一些問題。

另一方面,同樣要注意,除了它們的美學價值外,顯示它們的人口數據和地圖是人們可以為任何城市發展或位置智能任務收集和整合的最基本和有價值的信息之一。它們在規劃新設施、選址和集水區分析、估計城市產品規模或分析不同社區等實踐應用中特別有用。

1.數據來源

在本文試驗中,我將依賴以下兩個細粒度的人口估計數據源,您可以通過所附鏈接來下載這些文件:

  • 歐盟委員會的GHSL(全球人類住區層:https://ghsl.jrc.ec.europa.eu/ghs_pop2019.php)——用于測量每個網格單元的人口水平。從該數據源中可以找到整體描述以及我在他們2023年的報告中使用的空間分辨率為100米的特定集合。
  • WorldPop中心。我將以德國為例,使用分辨率為100米的受限條件下的獨立國家數據集。你可以在鏈接https://hub.worldpop.org/geodata/listing?id=78處查找到完整的國家列表數據,還可以在鏈接https://hub.worldpop.org/geodata/summary?id=49789處查找到德國數據。

2.可視化全球人類住區層

2.1.導入數據

我第一次看到這個數據集是在“體系結構性能”部分的Datashader教程處。在復制了他們的可視化結果之后,在將其擴展到全球地圖時我遇到了一些麻煩,這些問題促使我開展了本文有關的研究工作。所以,接下來我將向您展示我是如何找到破解上述難題的解決方案的!

首先,我使用xarray包來解析光柵文件,代碼如下

import rioxarray

file_path = "GHS_POP_E2030_GLOBE_R2023A_54009_100_V1_0/GHS_POP_E2030_GLOBE_R2023A_54009_100_V1_0.tif" 

data_array = rioxarray.open_rasterio(file_path, chunks=True, lock=False)
data_array

此代碼片斷的輸出結果是對數據集的一段詳細描述:

2.2.可視化數據段

我們已經看到,對于大多數標準筆記本電腦來說,這是一個非常具有挑戰性的數據量。無論如何,讓我們試著使用Datashader來可視化數據,這是一個非常方便的工具,適用于這種規模的地理空間數據集的展示:

#警告:此處代碼塊很可能會導致您的計算機內存溢出錯誤

import datashader as ds
import xarray as xr
from colorcet import palette
from datashader import transfer_functions as tf

# 準備繪圖
data_array_p = xr.DataArray(data_array)[0]
data_array_p = data_array_p.where(data_array_p > 0)
data_array_p = data_array_p.compute()

#取得圖像尺寸信息
size = 1200
asp = data_array_p.shape[0] / data_array_p.shape[1]

#創建數據著色器畫布
cvs = ds.Canvas(plot_width=size, plot_height=int(asp*size))
raster = cvs.raster(data_array_p)

#繪制圖像
cmap = palette["fire"]
img = tf.shade(raster, how="eq_hist", cmap=cmap)
img

雖然這代碼在技術上看起來還可以,但我的2021款帶有16GB RAM的M1 Macbook Pro出現了一個糟糕的內存溢出錯誤。因此,讓我們裁剪一下圖像以便查看數據!為此,我關注上述數據源的“體系結構性能”部分,并專注于歐洲數據,這是我暫時關注的內容,因為這樣的選擇確實有效。

然而,我稍后要回答的主要問題是,盡管內存有限,但我們如何在使用本地機器的情況下可視化整個地球的數據呢?請先等一等!

import datashader as ds
import xarray as xr
from colorcet import palette
from datashader import transfer_functions as tf
import numpy as np

# 裁剪數據陣列
data_array_c = data_array.rio.clip_box(minx=-1_000_000.0, miny=4_250_000.0, maxx=2_500_000.0, maxy=7_750_000.0)
data_array_c = xr.DataArray(data_array_c)

# 準備繪圖
data_array_c = xr.DataArray(data_array_c)[0]
data_array_c = data_array_c.where(data_array_c > 0)
data_array_c = data_array_c.compute()
data_array_c = np.flip(data_array_c, 0)

# 獲取圖像大小
size = 1200
asp = data_array_c.shape[0] / data_array_c.shape[1]

# 創建數據著色器畫布
cvs = ds.Canvas(plot_width=size, plot_height=int(asp*size))
raster = cvs.raster(data_array_c)

#繪制圖像
cmap = palette["fire"]
img = tf.shade(raster, how="eq_hist", cmap=cmap)
img = tf.set_background(img, "black")

img

此代碼塊將輸出以下的視覺效果:

歐洲的人口分布圖(作者本人提供的圖片)歐洲的人口分布圖(作者本人提供的圖片)

此繪制中,使用“火”色圖似乎是一個行業標準,這是有充分理由的;然而,如果你想把事情搞混,你可以在鏈接https://colorcet.holoviz.org/處找到其他配色方案,并使用類似于下面的編程方式:

#創建數據著色器畫布
cvs = ds.Canvas(plot_width=size, plot_height=int(asp*size))
raster = cvs.raster(data_array_c)

# 繪制圖像
cmap = palette["bmw"]
img = tf.shade(raster, how="eq_hist", cmap=cmap)
img = tf.set_background(img, "black")

img

此代碼塊輸出以下形式的視覺效果:

歐洲的人口分布圖另一種色圖(作者本人提供的圖片)歐洲的人口分布圖另一種色圖(作者本人提供的圖片)

2.3.可視化全球人口數據

到此,我們已經取得了全球人口數據,但如果你手邊僅有一臺普通的電腦,仍然想以100米的分辨率可視化整個世界,那該怎么辦呢?我將在這里向您展示的解決方法非常簡單——我將整個光柵圖像分割成大約一百個較小的片斷。這樣一來,我的計算機就可以一個接一個地很好地處理它們,然后使用一些圖像處理技巧將它們合并到一個圖像文件中。

然而,在繼續介紹之前,還有一個細節需要說明。我們可以通過以下方式對XArray數組降低采樣率——然而,我找不到一個合適的降低尺度的方法來處理整個數據集。此外,我不想失去準確性,希望看到整個數據集的真實面貌。

# 對數據進行降低采樣率的快速方法
downsampling_factor = 20

downsampled_data_array = data_array.coarsen(x=downsampling_factor, y=downsampling_factor).mean()
downsampled_data_array

最后的輸出結果不錯,不亞于之前繪制的data_array:

為了實現將整個光柵圖像分割為網格段,首先,獲取其邊界并將N定義為步長。然后,創建圖像片段邊界列表。

minx = float(data_array.x.min().values)
maxx = float(data_array.x.max().values)
miny = float(data_array.y.min().values)
maxy = float(data_array.y.max().values)

N = 10
xstep = (maxx-minx) / N
ystep = (maxy-miny) / N

xsteps = list(np.arange(minx, maxx, xstep)) 
ysteps = list(np.arange(miny, maxy, ystep))

現在,在每個x和y步驟上迭代,并創建每個圖像片段,其中每個圖像文件都以其在原始網格中的位置命名。此循環可能需要一段時間。

import os
foldout = 'world_map_image_segments'
if not os.path.exists(foldout):
 os.makedirs(foldout)

for idx_x, x_coord in enumerate(xsteps):
 for idx_y, y_coord in enumerate(ysteps):

 if not os.path.exists(foldout+'/'+str(idx_x)+'_'+str(idx_y)+'.png'):

 data_array_c = data_array.rio.clip_box( minx=x_coord, miny=y_coord, maxx=x_coord+xstep, maxy=y_coord+ystep)
 data_array_c = xr.DataArray(data_array_c)[0]
 data_array_c = data_array_c.fillna(0)
 data_array_c = data_array_c.where(data_array_c > 0)
 data_array_c = data_array_c.compute()
 data_array_c = np.flip(data_array_c, 0)

 size = 2000
 asp = data_array_c.shape[0] / data_array_c.shape[1]

 cvs = ds.Canvas(plot_width=size, plot_height=int(asp*size))
 raster = cvs.raster(data_array_c)

 cmap = palette["fire"]
 img = tf.shade(raster, how="eq_hist", cmap=cmap)
 img = tf.set_background(img, "black")

 pil_image = img.to_pil()
 pil_image.save(foldout+'/'+str(idx_x)+'_'+str(idx_y)+ '.png')
 print('SAVED: ', x_coord, y_coord, y_coord+xstep,y_coord+ystep)

最后,如果我們擁有所有的圖像片段,我們可以使用以下函數快速地把它們組合到一起。對于這段代碼,我還要求ChatGPT提供一些提示來加快速度,但和往常一樣,這個過程也需要一些手動調整。

from PIL import Image


def find_dimensions(image_dir):
 max_x = 0
 max_y = 0

 for filename in os.listdir(image_dir):
 if filename.endswith(".png"):
 x, y = map(int, os.path.splitext(filename)[0].split("_"))
 max_x = max(max_x, x)
 max_y = max(max_y, y)

 return max_x + 1, max_y + 1 


image_dir = foldout
segment_width = size
segment_height = int(asp*size)


# 確定大圖像的尺寸
large_image_width, large_image_height = find_dimensions(image_dir)

# 創建一個空的大圖像(白色背景)
large_image = Image.new("RGB", (large_image_width * segment_width, large_image_height * segment_height), "black")

# 循環瀏覽各個圖像片段并將它們粘貼到大圖像中
for filename in sorted(os.listdir(image_dir)):
 if filename.endswith(".png"):
 x, y = map(int, os.path.splitext(filename)[0].split("_"))
 segment_image = Image.open(os.path.join(image_dir, filename))
 x_offset = x * segment_width
 y_offset = large_image_height * segment_height-1*y * segment_height
 large_image.paste(segment_image, (x_offset, y_offset))

# 保存合并后的大圖像
large_image.save("global_population_map.png") 

最后的結果是,整個數據都被成功繪制出來了:

全球人口分布(作者本人的圖片)全球人口分布(作者本人的圖片)

3.可視化和轉換WorldPop數據

我想向大家展示的第二個數據來源是WorldPop人口數據庫,它以不同的分辨率分別列出了大洲和相應的國家。在這個例子中,為了補充前面繪制所有大陸和全球級別的數據情況,我在這一部分中主要集中在各國家和相應城市級別數據上。例如,我選擇了德國和2020年策劃的100米的分辨率,并向您展示如何從整個國家中劃出一個城市,并使用GeoPandas將其轉化為易于使用的向量格式。

3.1.可視化WorldPop數據

使用前面相同的方法,我們可以再次快速可視化這一部分的光柵文件:

#分析數據
data_file = 'deu_ppp_2020_constrained.tif'
data_array = rioxarray.open_rasterio(data_file, chunks=True, lock=False)

# 準備數據
data_array = xr.DataArray(data_array)[0]
data_array = data_array.where(data_array > 0)
data_array = data_array.compute()
data_array = np.flip(data_array, 0)

# 取得圖像尺寸
size = 1200
asp = data_array.shape[0] / data_array.shape[1]

#創建數據著色器畫布
cvs = ds.Canvas(plot_width=size, plot_height=int(asp*size))
raster = cvs.raster(data_array)

# 繪制圖像
cmap = palette["fire"]
img = tf.shade(raster, how="eq_hist", cmap=cmap)
img = tf.set_background(img, "black")
img

此代碼片斷將輸出以下視覺效果:

德國的人口分布圖(作者本人的圖片)德國的人口分布圖(作者本人的圖片)

3.2.轉換WorldPop數據

在可視化了整個地球、歐洲大陸和德國之后,我想更多地了解一下柏林市信息,并向您展示如何將這些光柵數據轉換為向量格式,并使用GeoPandas輕松操作。為此,我在這里以geojson格式訪問柏林的行政邊界。

這個管理文件包含柏林的行政區,所以首先,我將它們合并為一個整體。

from shapely.ops import cascaded_union
import geopandas as gpd



admin = gpd.read_file('tufts-berlin-bezirke-boroughs01-geojson.json')
admin = gpd.GeoDataFrame(cascaded_union(admin.geometry.to_list()), columns = ['geometry']).head(1)

admin.plot()

此代碼塊輸出以下所示的視覺效果:

柏林的行政邊界圖(作者本人的圖片)柏林的行政邊界圖(作者本人的圖片)

現在,將xarray轉換為Pandas DataFrame,提取幾何體信息,并構建GeoPandas GeoDataFrame。一種方法是:

import pandas as pd

df_berlin = pd.DataFrame(data_array.to_series(), columns = ['population']).dropna()

現在,在此基礎上構建一個GeoDataFrame,重點關注柏林信息

from shapely.geometry import Point

#找到限制邊界框以便于坐標選擇
minx, miny, maxx, maxy = admin.bounds.T[0].to_list()

points = []
population = df_berlin.population.to_list()
indicies = list(df_berlin.index)

# 從落入該邊界框的點創建點幾何圖形
geodata = []
for ijk, (lon, lat) in enumerate(indicies):
 if minx <= lat <= maxx and miny <= lon <= maxy: 
 geodata.append({'geometry' : Point(lat, lon), 'population' : population[ijk]})

# 構建一個GeoDataFrame
gdf_berlin = gpd.GeoDataFrame(geodata)
gdf_berlin = gpd.overlay(gdf_berlin, admin)

然后,將人口可視化為向量數據:

import matplotlib.pyplot as plt


f, ax = plt.subplots(1,1,figsize=(15,15))

admin.plot(ax=ax, color = 'k', edgecolor = 'orange', linewidth = 3)

gdf_berlin.plot(column = 'population', 
 cmap = 'inferno', 
 ax=ax, 
 alpha = 0.9, 
 markersize = 0.25)

ax.axis('off')
f.patch.set_facecolor('black')

部分代碼塊輸出以下視覺效果:

柏林的人口分布圖(作者本人的圖片)柏林的人口分布圖(作者本人的圖片)

最后,我們得到了一個標準的GeoDataFrame,它具有100米分辨率的人口級別,分配給光柵文件中每個像素對應的每個點幾何體。

總結

在這篇文章中,我探索了兩個全球人口數據集的可視化展示,它們通過結合各種近似、測量和建模方法,使用光柵網格以100米的顯著空間分辨率實現估計人口水平。這類信息對城市發展和位置智能的廣泛應用非常有價值,如基礎設施規劃、選址、社區概況等。從技術層面來看,我展示了三個空間層面的例子,涵蓋了整個球,然后放大到國家,最后是城市。雖然該方法可以處理更小的分辨率,但這一切都發生在一臺筆記本電腦上已經令人非常滿意。另外注意到,編程實現過程中我使用了幾個強大的Python開源庫,如Xarray、DataShader和GeoPandas。

譯者介紹

朱先忠,51CTO社區編輯,51CTO專家博客、講師,濰坊一所高校計算機教師,自由編程界老兵一枚。

原文標題:Exploring Large-scale Raster Population Data,作者:Milan Janosov



責任編輯:華軒 來源: 51CTO
相關推薦

2017-11-15 09:41:14

數據可視化數據科大數據

2017-10-14 13:54:26

數據可視化數據信息可視化

2017-10-31 09:38:53

大數據數據可視化Python

2020-03-11 14:39:26

數據可視化地圖可視化地理信息

2022-09-29 11:16:21

Python數據可視化

2014-05-28 15:23:55

Rave

2022-08-26 09:15:58

Python可視化plotly

2023-04-04 08:10:45

SQL數據可視化

2020-05-26 11:34:46

可視化WordCloud

2022-02-23 09:50:52

PythonEchartspyecharts

2016-01-29 20:23:23

華為

2015-10-29 09:36:48

2017-03-28 14:57:23

kylinsuperset可視化

2024-08-20 18:16:49

數據可視化Python

2018-11-30 10:28:44

Python反爬網頁

2025-10-10 07:00:00

Python數據可視化數據分析

2018-03-14 14:28:20

Python數據分析可視化

2019-08-06 10:35:25

Python時間序列可視化

2018-08-10 14:45:52

Python網絡爬蟲mongodb

2023-06-30 17:59:27

Ray離線推理
點贊
收藏

51CTO技術棧公眾號

中文字幕一区二区人妻电影丶| 国产精品久久国产精品| 国产亚洲精品精品精品| 在线高清欧美| 亚洲永久精品大片| 久草精品电影| 国产一区二区网站| 亚洲午夜伦理| 亚洲午夜av电影| 亚洲天堂伊人网| 成人av免费电影网站| 国产精品国产三级国产专播品爱网| 亚洲一区二区三区久久 | 在线免费观看av片| 亚洲小说欧美另类社区| 中文日韩电影网站| 欧美图片自拍偷拍| 欧美激情啪啪| 福利视频一区二区| 日韩中文字幕在线不卡| 国产精品视频一区二区久久| 国产福利一区在线观看| 国产精品高潮呻吟久久av野狼 | 国产美女久久精品| 日韩和一区二区| 久久精品欧美一区| 国产一区二区黑人欧美xxxx| 国产精品久久久久久亚洲色| 四虎精品永久免费| 91成人免费在线视频| 久久综合久久网| 欧洲不卡视频| 国产精品美女久久久久久久久| 极品校花啪啪激情久久| 国产视频在线观看免费 | 国产精品igao网网址不卡| 国模冰冰炮一区二区| 亚洲第一福利一区| 日本老太婆做爰视频| 美女隐私在线观看| 欧美国产亚洲另类动漫| 欧洲亚洲一区二区三区四区五区| 欧美少妇bbw| 国产一区二区毛片| 91精品综合视频| 一本大道伊人av久久综合| 美女视频一区免费观看| 38少妇精品导航| 国产一卡二卡在线| 亚洲日本黄色| 久久免费少妇高潮久久精品99| 老妇女50岁三级| 亚洲一级毛片| 欧美另类暴力丝袜| 美女视频黄免费| 在线视频观看日韩| 韩国19禁主播vip福利视频| 久久久国产精品人人片| 亚洲午夜极品| 欧美中文字幕在线视频| 国内自拍视频在线播放| 久久亚洲精品伦理| 国产精品成av人在线视午夜片| 9i精品福利一区二区三区| 老鸭窝毛片一区二区三区| 日韩av免费在线播放| 波多野结衣视频观看| 日本免费新一区视频| 国产精品一区二区三区免费视频 | 神马影院午夜我不卡影院| 麻豆app在线观看| 亚洲国产高清aⅴ视频| 亚洲精美视频| 91cn在线观看| 亚洲超碰97人人做人人爱| 日本a视频在线观看| 欧产日产国产精品视频| 亚洲乱亚洲乱妇| 天堂va蜜桃一区二区三区| 国产成人精品在线视频| 在线观看视频二区| 国产精品一级在线| 国产一区免费观看| 国产福利在线视频| 成人欧美一区二区三区在线播放| 中文字幕色呦呦| 成人黄色动漫| 91久久精品一区二区二区| 在线观看国产中文字幕| 久久国产精品美女| 日韩精品中文字幕久久臀| 538精品视频| 午夜精品久久99蜜桃的功能介绍| 午夜精品久久17c| 日本精品入口免费视频| 国产乱码精品1区2区3区| 精品国产一区二区三区四区vr | 色噜噜亚洲精品中文字幕| 国语对白在线播放| 亚洲一区二区免费看| 国产在线精品播放| 三级毛片在线免费看| 亚洲欧洲性图库| 俄罗斯av网站| 国产免费区一区二区三视频免费 | 中文文字幕文字幕高清| 成人中文视频| 97久久精品国产| 艳妇乳肉豪妇荡乳av| 337p粉嫩大胆色噜噜噜噜亚洲| 一道精品一区二区三区| 午夜激情在线播放| 日韩精品中文字幕在线不卡尤物| 亚洲a v网站| 亚洲乱码视频| 91久久极品少妇xxxxⅹ软件| 国产在线网站| 激情av一区二区| 亚洲一区二区三区四区精品| 欧美精选一区二区三区| 国内精品免费午夜毛片| 国产美女三级无套内谢| 日本一区二区视频在线| 18禁免费无码无遮挡不卡网站| avtt久久| 色偷偷91综合久久噜噜| 四虎成人在线观看| gogo大胆日本视频一区| 黄色录像特级片| 美女视频一区| 一区二区三区视频观看| 69视频免费在线观看| 成人免费观看男女羞羞视频| 国产高清精品软男同| 亚洲成人一区在线观看| 亚洲理论在线a中文字幕| 久久久久久av无码免费网站| 极品尤物av久久免费看| 亚洲精品中字| 日本精品网站| 伊人久久精品视频| 免费黄色一级大片| 国产日韩影视精品| 老司机午夜av| 国产一区二区三区91| 亚洲视频在线观看三级| 欧美做受高潮电影o| 色婷婷视频在线| 亚洲制服丝袜av| 337p日本欧洲亚洲大胆张筱雨| 中文精品久久| 成人看片视频| 污视频在线免费观看网站| 日韩一级大片在线| 18精品爽视频在线观看| 粉嫩在线一区二区三区视频| 国产精品69久久久| eeuss鲁片一区二区三区| 国内精品久久久久久影视8| 天堂av资源网| 日韩人体视频一二区| asian性开放少妇pics| 久久激情久久| 亚洲一卡二卡三卡四卡无卡网站在线看| 成人全视频免费观看在线看| 久久九九国产精品怡红院 | 四虎影院中文字幕| 国产高清亚洲一区| 国产一区二区三区乱码| 美国成人xxx| 日本一区二区三区在线播放| 91电影在线播放| 宅男在线国产精品| 久久精品视频6| 26uuu色噜噜精品一区| www.xxx亚洲| 91精品国产麻豆国产在线观看| 91久久久一线二线三线品牌| 91超碰在线| 亚洲人成网站免费播放| 国产一区二区在线视频聊天 | 男人午夜免费视频| 欧美韩日一区二区三区| 久久综合在线观看| 国产精品嫩草99av在线| 夜夜爽99久久国产综合精品女不卡| 精品久久免费| 欧美在线一级视频| 中国日本在线视频中文字幕| 日韩免费在线观看| 亚洲免费黄色网址| 96亚洲精品久久久蜜桃| 亚洲国产精品99久久久久久久久| 国产精品熟女一区二区不卡| 国产日本精品| 国产日韩视频在线播放| 欧美亚洲色图校园春色| 国产欧美精品一区二区三区介绍 | 蜜桃国内精品久久久久软件9| 国产精品男人爽免费视频1| 黄污视频在线观看| 中日韩美女免费视频网址在线观看| 99久久精品免费看国产交换| 欧美午夜宅男影院在线观看| 欧美日韩中文字幕在线观看 | 久久噜噜色综合一区二区| 不卡高清视频专区| 天天综合天天添夜夜添狠狠添| 伊人久久大香线蕉综合热线 | 亚洲av成人精品一区二区三区| 免费成人美女在线观看| 中文字幕无码精品亚洲35| 亚洲欧美日韩高清在线| 日本不卡二区| 理论片一区二区在线| 91中文字幕一区| av成人免费| 欧美一性一乱一交一视频| aaa大片在线观看| 在线观看精品国产视频| 天堂а√在线8种子蜜桃视频| 日韩一区二区影院| 在线免费观看一区二区| 日本久久一区二区三区| 中文字幕在线字幕中文| 一区二区三区精品视频| 黄色三级中文字幕| 中文字幕永久在线| 国产精品久久久久婷婷二区次| 好吊色视频一区二区三区| 精品制服美女丁香| 九热视频在线观看| 肉丝袜脚交视频一区二区| 午夜精品久久久久久久无码| 激情六月综合| 日本久久久网站| 欧美+亚洲+精品+三区| 亚洲最新在线| 日韩欧美高清| 色涩成人影视在线播放| 美日韩中文字幕| 欧美一区二区福利| 猛男gaygay欧美视频| 欧美日韩精品一区| 久久最新网址| 欧美下载看逼逼| 欧美激情网址| 久久久久久精| 亚洲综合福利| 欧美日韩国产免费一区二区三区 | 亚洲白虎美女被爆操| 超碰人人人人人人| 精品毛片乱码1区2区3区| 国产女人高潮的av毛片| 欧美一区二区大片| 午夜精品久久久久久久第一页按摩 | 国产成人自拍视频在线| 亚洲成人一二三| 激情五月色婷婷| 色综合久久六月婷婷中文字幕| 羞羞影院体验区| 日本高清成人免费播放| 美女黄页在线观看| 欧美狂野另类xxxxoooo| 日韩少妇一区二区| 精品欧美视频| 国产中文字幕日韩| 嫩呦国产一区二区三区av| 97伦理在线四区| 欧美绝顶高潮抽搐喷水合集| 久久综合狠狠综合久久综青草| 要久久爱电视剧全集完整观看| 欧美日韩一区在线视频| 欧美日韩在线网站| 91免费网站视频| 亚洲一级特黄| 日本成人中文字幕在线| 精品一区二区影视| 师生出轨h灌满了1v1| caoporn国产一区二区| 在线免费观看麻豆| 国产精品视频一二三区| 777777国产7777777| 亚洲成人自拍一区| 337p粉嫩色噜噜噜大肥臀| 在线播放91灌醉迷j高跟美女 | 亚洲精品成a人在线观看| 国产在线三区| 欧美成aaa人片免费看| 国产理论在线| 国产精品视频自拍| jizz性欧美23| 亚洲v国产v| 在线看片成人| 中文字幕资源在线观看| 成人avav在线| 亚洲色偷偷综合亚洲av伊人| 午夜精品福利视频网站| 亚洲一区二区视频在线播放| 亚洲成年人在线播放| 午夜伦理在线| 日本精品视频在线观看| 久久久久久久久久久久电影| 麻豆久久久9性大片| 欧美一区不卡| 亚洲精品视频导航| 99久久伊人精品| 成人在线观看高清| 色婷婷综合五月| 成人1区2区3区| 在线观看日韩专区| 色吧亚洲日本| 成人自拍视频网站| 婷婷综合五月| 亚洲男人天堂色| 不卡电影免费在线播放一区| 在线免费观看亚洲视频| 在线免费一区三区| 色屁屁草草影院ccyycom| 久久影视免费观看 | 91九色露脸| 小说区亚洲自拍另类图片专区 | 丝袜美腿精品国产二区| 岛国在线视频网站| 51国偷自产一区二区三区| 久久亚洲国产| 黑人粗进入欧美aaaaa| 91色在线porny| 国产精品第九页| 亚洲精品一区二区精华| 中中文字幕av在线| 91亚洲精品一区二区| 日韩免费看片| 国产精品久久久毛片| 久久久99久久| 在线观看日本视频| 亚洲精品按摩视频| 国产夫妻在线播放| 欧美第一黄网免费网站| 粉嫩av国产一区二区三区| 一本久道久久综合狠狠爱亚洲精品 | 中文字幕av一区中文字幕天堂 | 亚洲私拍自拍| 中文字幕人妻熟女在线| 一个色妞综合视频在线观看| 国产亲伦免费视频播放| 久久精品国产一区二区电影| 91成人在线网站| 青青在线免费视频| 精东粉嫩av免费一区二区三区| 林心如三级全黄裸体| 欧美日本在线一区| www视频在线看| 91精品国产综合久久久久久丝袜| 亚洲第一天堂| 一级黄色大片免费看| 亚洲va中文字幕| 亚洲欧洲精品视频| 国产精品久久久久91| 欧美第一精品| 成年人性生活视频| 亚洲风情在线资源站| 天天操天天爱天天干| 日韩av不卡电影| 欧美日韩久久精品| 午夜xxxxx| 亚洲狠狠爱一区二区三区| 蜜桃在线一区二区| 日本久久久久久久久| 91亚洲人成网污www| wwwww在线观看| 凹凸成人精品亚洲精品密奴| 日本一区二区三区四区在线观看| 日本欧美一区二区| 亚洲欧美一区二区三区四区五区| 精品成人私密视频| 中文字幕一区久| 一区二区视频在线播放| 国产成人在线看| 亚洲欧美偷拍一区| 久久精品人人做人人爽| 99re6热只有精品免费观看| 精品中文字幕av| 中文字幕日本不卡| 天天色棕合合合合合合合| 国产精品精品久久久| 欧美激情日韩| 四虎永久免费在线观看| 欧美绝品在线观看成人午夜影视| 日本成人不卡| 日韩欧美三级一区二区| 国产精品一二一区| 日本高清不卡码| 欧美精品生活片| 中国av一区| 中文字幕无码毛片免费看| 欧美午夜丰满在线18影院| 久操视频在线免费播放| 精品综合在线| 国产乱码精品一区二区三区av|