در این مطلب، ویدئو خواندن و نوشتن فایل های برداری با GDAL/OGR در پایتون با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:16:50
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,080 –> 00:00:02,399
سلام این یک آموزش دیگر در مورد نحوه
2
00:00:02,399 –> 00:00:04,000
استفاده از gdal در پایتون است
3
00:00:04,000 –> 00:00:05,680
و امروز به نحوه خواندن
4
00:00:05,680 –> 00:00:07,359
و نوشتن داده های برداری با اسکریپت پایتون می پردازیم،
5
00:00:07,359 –> 00:00:08,080
6
00:00:08,080 –> 00:00:09,599
اکنون این چیزی است که من برای امروز برنامه ریزی کرده ام،
7
00:00:09,599 –> 00:00:11,440
بنابراین اول از همه به
8
00:00:11,440 –> 00:00:12,559
نحوه باز کردن یک اسکریپت می پردازیم. شکل
9
00:00:12,559 –> 00:00:14,639
فایل یا هر نوع مجموعه داده برداری در
10
00:00:14,639 –> 00:00:16,800
پایتون با استفاده از tidal و در اینجا ما
11
00:00:16,800 –> 00:00:18,640
با شکل فایلی که از
12
00:00:18,640 –> 00:00:19,680
آموزش قبلی خود
13
00:00:19,680 –> 00:00:21,920
در مورد نحوه کار با vectordata و gdal
14
00:00:21,920 –> 00:00:23,039
از خط فرمان
15
00:00:23,039 –> 00:00:24,560
و همانطور که ممکن است به خاطر داشته باشید کار خواهیم کرد.
16
00:00:24,560 –> 00:00:26,480
آن ویدیو را تماشا کردم، یک
17
00:00:26,480 –> 00:00:28,240
فیلد مشخصه جدید در آنجا ایجاد کردیم که
18
00:00:28,240 –> 00:00:30,320
مساحت هر چند ضلعی را ذخیره میکند
19
00:00:30,320 –> 00:00:32,320
و امروز یک کار مشابه را فقط
20
00:00:32,320 –> 00:00:34,399
در پایتون انجام میدهیم و مساحت را محاسبه نمیکنیم،
21
00:00:34,399 –> 00:00:35,840
اما فکر کردم بیایید به جای آن اندازهگیری مفید دیگری یعنی محیط را محاسبه کنیم.
22
00:00:35,840 –> 00:00:37,760
23
00:00:37,760 –> 00:00:38,559
24
00:00:38,559 –> 00:00:40,640
بعد از اینکه جدول ویژگی را به روز
25
00:00:40,640 –> 00:00:42,800
کردیم، از پایتون و gdal برای نوشتن یک
26
00:00:42,800 –> 00:00:44,719
شکل فایل جدید استفاده خواهیم کرد، اما این اساساً
27
00:00:44,719 –> 00:00:47,039
فقط یک کپی از شکل فایل ورودی ما خواهد بود،
28
00:00:47,039 –> 00:00:48,559
اما برای اینکه شما همه چیز را
29
00:00:48,559 –> 00:00:50,399
در مورد خواندن و نوشتن شکل فایل ها بدانید، i.
30
00:00:50,399 –> 00:00:52,079
فکر میکردیم فقط یک
31
00:00:52,079 –> 00:00:54,000
چند ضلعی را از ابتدا یا شاید نه از
32
00:00:54,000 –> 00:00:55,600
ابتدا، بلکه از
33
00:00:55,600 –> 00:00:57,600
وسعت شکل فایل ورودی خود ایجاد کنیم و سپس
34
00:00:57,600 –> 00:00:59,680
آن چند ضلعی جدید را در یک شکل فایل کاملاً جدید
35
00:00:59,680 –> 00:01:00,559
بنویسیم،
36
00:01:00,559 –> 00:01:02,480
خوب فقط یک یادآوری کوتاه از اینکه
37
00:01:02,480 –> 00:01:04,159
دادههایی که میخواهیم چگونه به نظر میرسند. برای کار
38
00:01:04,159 –> 00:01:04,559
با
39
00:01:04,559 –> 00:01:06,479
آن، ما این شکل فایل به نام merge را داریم
40
00:01:06,479 –> 00:01:08,479
که در اینجا شبیه این پازل فانتزی است
41
00:01:08,479 –> 00:01:09,119
و
42
00:01:09,119 –> 00:01:10,880
جدول ویژگی های آن در
43
00:01:10,880 –> 00:01:12,960
سمت راست به این شکل است، بنابراین ما یک شناسه ویژگی
44
00:01:12,960 –> 00:01:15,040
داریم و قبلاً منطقه را محاسبه کرده ایم و
45
00:01:15,040 –> 00:01:16,560
اکنون یک فیلد جدید ایجاد خواهیم کرد. که
46
00:01:16,560 –> 00:01:18,640
طول طرح کلی هر
47
00:01:18,640 –> 00:01:19,600
چند ضلعی را ذخیره می کند
48
00:01:19,600 –> 00:01:21,600
و سپس در مرحله دوم
49
00:01:21,600 –> 00:01:23,520
یک چند ضلعی از
50
00:01:23,520 –> 00:01:25,759
وسعت این مجموعه داده ورودی ایجاد می کنیم و آن را در
51
00:01:25,759 –> 00:01:26,880
یک شکل فایل جدید می نویسیم،
52
00:01:26,880 –> 00:01:28,960
بنابراین این اتفاقی است که قرار است بیفتد
53
00:01:28,960 –> 00:01:30,240
و اکنون اجازه دهید با
54
00:01:30,240 –> 00:01:32,799
باز کردن فایل شیپ شروع کنیم. با استفاده از پایتون و gdal
55
00:01:32,799 –> 00:01:35,040
و به طور خاص ogr که
56
00:01:35,040 –> 00:01:36,479
کتابخانه ویژگی های ساده ای
57
00:01:36,479 –> 00:01:38,640
است، بخشی از gdal است و به شما امکان می
58
00:01:38,640 –> 00:01:40,560
دهد انواع کارهای مربوط به برداری را انجام دهید،
59
00:01:40,560 –> 00:01:41,840
بنابراین امروز به یک چیز دیگر نیاز خواهیم داشت.
60
00:01:41,840 –> 00:01:43,439
h قبل از شروع
61
00:01:43,439 –> 00:01:45,520
کدنویسی در اینجا می توانید ببینید که چگونه یک فایل برداری
62
00:01:45,520 –> 00:01:46,079
63
00:01:46,079 –> 00:01:48,159
سازماندهی شده است و وقتی شکل فایل را
64
00:01:48,159 –> 00:01:50,159
در پایتون باز می کنیم ابتدا به منبع داده دسترسی پیدا می
65
00:01:50,159 –> 00:01:50,640
66
00:01:50,640 –> 00:01:53,200
کنیم بنابراین شکل فایل ادغام ما این منبع داده
67
00:01:53,200 –> 00:01:54,320
لایه ای
68
00:01:54,320 –> 00:01:56,799
به نام merged را ذخیره می کند و ما باید به ترتیب به این لایه دسترسی داشته باشیم.
69
00:01:56,799 –> 00:01:58,880
برای دسترسی به ویژگیهای
70
00:01:58,880 –> 00:02:00,079
ذخیره شده در آن
71
00:02:00,079 –> 00:02:02,079
که چند ضلعیهای منفرد ما هستند و
72
00:02:02,079 –> 00:02:03,680
میخواهیم محیط آن را محاسبه کنیم،
73
00:02:03,680 –> 00:02:06,799
اکنون به پایتون برویم
74
00:02:06,799 –> 00:02:08,318
اولین کاری که باید انجام دهیم این است
75
00:02:08,318 –> 00:02:10,318
که کتابخانه ویژگی ساده را وارد کنیم
76
00:02:10,318 –> 00:02:14,080
تا این بار از osgo import.
77
00:02:14,080 –> 00:02:17,280
نه gdal بلکه ogr اما همانطور که گفتم
78
00:02:17,280 –> 00:02:19,760
ogr بخشی از gdal است، بنابراین اگر gdl
79
00:02:19,760 –> 00:02:20,720
را قبلاً نصب کرده
80
00:02:20,720 –> 00:02:23,120
اید باید برای شما نیز کار کند،
81
00:02:23,120 –> 00:02:24,720
اکنون اولین چیزی که می خواهیم به آن
82
00:02:24,720 –> 00:02:25,200
دسترسی پیدا
83
00:02:25,200 –> 00:02:27,680
کنیم منبع داده است و شکل فایل خود را با آن باز می کنیم.
84
00:02:27,680 –> 00:02:28,959
ogr
85
00:02:28,959 –> 00:02:30,800
شبیه به باز کردن یک فایل شطرنجی با
86
00:02:30,800 –> 00:02:32,480
gdal است، بنابراین تابع
87
00:02:32,480 –> 00:02:36,319
ogr open است، فایل شکل ادغام خود را درست
88
00:02:36,319 –> 00:02:37,599
در اینجا قرار دهید
89
00:02:37,599 –> 00:02:39,200
و سپس یک چیز مهم این است که ما می خواهیم شکل فایل
90
00:02:39,200 –> 00:02:41,360
خود را ویرایش کنیم،
91
00:02:41,360 –> 00:02:43,519
بنابراین باید یکی را در اینجا قرار دهیم، یکی را
92
00:02:43,519 –> 00:02:44,720
فعال کنیم. رد کردن
93
00:02:44,720 –> 00:02:48,080
صفر برای خواندن فقط کافی است
94
00:02:48,080 –> 00:02:51,040
این را اجرا کنید و حالا می بینید که ما اینجا یک
95
00:02:51,040 –> 00:02:52,400
منبع داده از نوع
96
00:02:52,400 –> 00:02:55,280
منبع داده ogr داریم اکنون می خواهیم به
97
00:02:55,280 –> 00:02:56,080
لایه ادغام
98
00:02:56,080 –> 00:02:59,280
شده در منبع داده خود دسترسی پیدا کنیم و این کار را با
99
00:02:59,280 –> 00:03:00,400
تایپ
100
00:03:00,400 –> 00:03:03,120
let’s name آن لایه و سپس از
101
00:03:03,120 –> 00:03:04,480
منبع داده ما میخواهیم
102
00:03:04,480 –> 00:03:07,840
یک لایه دریافت کنیم
103
00:03:08,080 –> 00:03:10,000
بسیار خوب حالا لایه ادغام شده خود را بارگذاری کردهایم
104
00:03:10,000 –> 00:03:12,239
و از آن لایه میتوانیم
105
00:03:12,239 –> 00:03:13,680
اطلاعات زیادی
106
00:03:13,680 –> 00:03:15,920
به عنوان مثال Extend دریافت کنیم که
107
00:03:15,920 –> 00:03:18,159
بعداً به آن نیاز خواهیم داشت، بنابراین آن را در یک متغیر ذخیره میکنیم
108
00:03:18,159 –> 00:03:19,120
109
00:03:19,120 –> 00:03:22,800
بنابراین که ext و ما
110
00:03:22,800 –> 00:03:23,360
extension را
111
00:03:23,360 –> 00:03:27,440
از لایه با تایپ لایه get extend دریافت
112
00:03:27,440 –> 00:03:30,080
113
00:03:30,640 –> 00:03:32,799
می کنیم و در اینجا می رویم وسعت ما که مقادیر
114
00:03:32,799 –> 00:03:33,680
x min
115
00:03:33,680 –> 00:03:36,720
x max y min و y max را ذخیره می کند،
116
00:03:36,720 –> 00:03:38,239
اکنون چیزهای دیگری نیز وجود دارد که
117
00:03:38,239 –> 00:03:40,080
می توانیم از لایه خود به دست آوریم به عنوان مثال
118
00:03:40,080 –> 00:03:41,519
تعداد ویژگیهایی که میتوانیم
119
00:03:41,519 –> 00:03:44,480
با تایپ لایه اطلاعاتی در مورد آنها بهدست آوریم
120
00:03:44,480 –> 00:03:48,480
و سپس تعداد ویژگیها را دریافت میکنیم
121
00:03:48,480 –> 00:03:52,720
و این هشت عدد را چاپ میکند زیرا
122
00:03:52,720 –> 00:03:54,480
ما هشت چند ضلعی در لایه خود ذخیره کردهایم تا
123
00:03:54,480 –> 00:03:55,120
124
00:03:55,120 –> 00:03:56,720
فهرست کاملی از چیزهایی که
125
00:03:56,720 –> 00:03:58,480
میتوانید از یک لایه دریافت کنید،
126
00:03:58,480 –> 00:03:59,280
صفحه
127
00:03:59,280 –> 00:04:03,360
وب gdl را ببینید. ogr و سپس لایه
128
00:04:03,360 –> 00:04:05,360
اسکرول را به پایین انتخاب کنید و تمام
129
00:04:05,360 –> 00:04:07,439
متدهای موجود را در اینجا خواهید دید.
130
00:04:07,439 –> 00:04:09,120
یکی از آخرین چیزهایی که
131
00:04:09,120 –> 00:04:10,720
در این آموزش از لایه خود دریافت می کنیم
132
00:04:10,720 –> 00:04:13,120
یک ویژگی است، بنابراین ما آن ویژگی را فراخوانی می کنیم
133
00:04:13,120 –> 00:04:15,360
134
00:04:15,360 –> 00:04:18,560
و سپس از لایه خود می خواهیم یک
135
00:04:18,560 –> 00:04:20,959
ویژگی
136
00:04:21,600 –> 00:04:23,360
اکنون ما چندین ویژگی
137
00:04:23,360 –> 00:04:25,520
در لایه خود ذخیره کرده ایم، بنابراین بیایید آنها را با
138
00:04:25,520 –> 00:04:26,639
شناسه ویژگی
139
00:04:26,639 –> 00:04:28,720
انتخاب کنیم و مثلاً ویژگی را انتخاب کنیم
140
00:04:28,720 –> 00:04:29,840
که دارای شناسه
141
00:04:29,840 –> 00:04:33,520
است و به این ترتیب یک متغیر از نوع ویژگی ogr دریافت می کنیم
142
00:04:33,520 –> 00:04:34,479
143
00:04:34,479 –> 00:04:38,160
و بیایید شناسه آن را با تایپ
144
00:04:38,160 –> 00:04:43,360
فیلد get feature بررسی کنیم.
145
00:04:43,360 –> 00:04:47,040
و سپس fid را در اینجا قرار دهید
146
00:04:47,440 –> 00:04:49,199
، البته این یکی را چاپ می کند، زیرا
147
00:04:49,199 –> 00:04:50,880
ما این ویژگی را با یک ویژگی
148
00:04:50,880 –> 00:04:52,000
id1 دریافت
149
00:04:52,000 –> 00:04:54,080
کرده ایم، اکنون که متوجه شده ایم چندین
150
00:04:54,080 –> 00:04:56,000
ویژگی در این لایه ذخیره شده است،
151
00:04:56,000 –> 00:04:58,240
بنابراین اجازه دهید به همه آنها دسترسی داشته باشیم و می
152
00:04:58,240 –> 00:04:59,759
توانیم این کار را با یک حلقه
153
00:04:59,759 –> 00:05:02,800
بنابراین برای هر ویژگی که
154
00:05:02,800 –> 00:05:05,280
در لایه
155
00:05:05,280 –> 00:05:07,360
ما ذخیره میشود، میخواهیم شناسه ویژگی را
156
00:05:07,360 –> 00:05:09,039
چاپ کنیم، پس فیلد
157
00:05:09,039 –> 00:05:12,240
دریافت ویژگی چاپ
158
00:05:12,240 –> 00:05:15,759
و سپس دوباره شناسه ویژگی را در
159
00:05:15,759 –> 00:05:16,720
اینجا قرار
160
00:05:16,720 –> 00:05:19,840
دهیم، خوب اجازه دهید این را اجرا کنیم و اکنون میتوانید ببینید
161
00:05:19,840 –> 00:05:22,080
که همه شناسههای یک را چاپ میکند. همه
162
00:05:22,080 –> 00:05:23,759
ویژگی های درون لایه ما
163
00:05:23,759 –> 00:05:25,199
خوب است، بنابراین به این صورت است که شما یک
164
00:05:25,199 –> 00:05:27,520
shapefile را باز می کنید، یک لایه و حلقه روی تمام
165
00:05:27,520 –> 00:05:28,720
ویژگی های آن
166
00:05:28,720 –> 00:05:30,800
به عنوان مرحله دوم ایجاد کنید، اکنون یک shapefile جدید ایجاد می کنیم
167
00:05:30,800 –> 00:05:32,400
که یک کپی
168
00:05:32,400 –> 00:05:34,960
از شکل فایل ورودی ما و برای
169
00:05:34,960 –> 00:05:36,080
هر ویژگی
170
00:05:36,080 –> 00:05:38,560
در آن جدید است. فایل ما پارامتر را محاسبه می کنیم
171
00:05:38,560 –> 00:05:39,360
172
00:05:39,360 –> 00:05:41,280
تا یک فایل برداری بنویسیم، ما به یک درایور بردار نیاز داریم،
173
00:05:41,280 –> 00:05:42,800
174
00:05:42,800 –> 00:05:46,080
بنابراین بیایید آن درایور را فراخوانی کنیم
175
00:05:46,080 –> 00:05:49,680
و سپس درایور را با نام ogr دریافت کنیم
176
00:05:49,680 –> 00:05:52,240
و در این مورد ما به درایور نیاز داریم
177
00:05:52,240 –> 00:05:54,080
تا یک shapefile بنویسد، بنابراین
178
00:05:54,080 –> 00:05:58,319
179
00:05:58,319 –> 00:06:00,160
اکنون با این درایور به درایور نیاز داریم. ما میتوانیم یک منبع داده جدید ایجاد کنیم که آن
180
00:06:00,160 –> 00:06:01,440
منبع داده
181
00:06:01,440 –> 00:06:04,840
را فراخوانی میکند و سپس از
182
00:06:04,840 –> 00:06:06,319
درایور خود برای
183
00:06:06,319 –> 00:06:09,600
ایجاد یک
184
00:06:09,600 –> 00:06:13,840
منبع داده استفاده میکنیم و اکنون نام
185
00:06:13,840 –> 00:06:14,720
شکل فایل
186
00:06:14,720 –> 00:06:17,919
خروجی ما خارج از شکل خواهد بود و ما میتوانیم
187
00:06:17,919 –> 00:06:18,960
این را اجرا
188
00:06:18,960 –> 00:06:20,960
کنیم و اکنون یک منبع داده جدید داریم.
189
00:06:20,960 –> 00:06:22,960
در اینجا و این منبع داده هنوز
190
00:06:22,960 –> 00:06:25,199
هیچ لایه ای از ویژگی ها ندارد، بنابراین ما باید آنها را
191
00:06:25,199 –> 00:06:26,080
اضافه کنیم
192
00:06:26,080 –> 00:06:27,680
در این مورد ما قصد نداریم
193
00:06:27,680 –> 00:06:29,520
هیچ ویژگی جدیدی ایجاد کنیم، من به شما نشان خواهم داد که چگونه
194
00:06:29,520 –> 00:06:30,800
این کار را انجام دهید،
195
00:06:30,800 –> 00:06:32,960
اما ابتدا فقط همه را کپی می کنیم. از
196
00:06:32,960 –> 00:06:35,120
featu res از شکل فایل ادغام ما،
197
00:06:35,120 –> 00:06:37,039
بنابراین اکنون یک لایه جدید ایجاد می کنیم
198
00:06:37,039 –> 00:06:39,680
که آن لایه بیرونی را فراخوانی می کند
199
00:06:39,680 –> 00:06:41,680
و در اینجا فقط لایه را
200
00:06:41,680 –> 00:06:43,520
از منبع داده اصلی خود
201
00:06:43,520 –> 00:06:48,080
کپی می کنیم، بنابراین ورودی لایه را به عنوان لایه در اینجا کپی کنید
202
00:06:48,080 –> 00:06:49,919
و اجازه دهید لایه جدید را در
203
00:06:49,919 –> 00:06:51,280
منبع داده
204
00:06:51,280 –> 00:06:55,280
خروجی خود فراخوانی کنیم. از آنجایی که این لایه بیرونی یک کپی دقیق
205
00:06:55,280 –> 00:06:55,759
206
00:06:55,759 –> 00:06:57,759
از لایه ای است که ما از فایل نوار ادغام بازیابی کرده ایم، در
207
00:06:57,759 –> 00:06:59,840
حال حاضر دو فیلد
208
00:06:59,840 –> 00:07:00,960
در جدول ویژگی های خود دارد،
209
00:07:00,960 –> 00:07:03,759
یعنی شناسه ویژگی و مساحت
210
00:07:03,759 –> 00:07:04,720
هر چند ضلعی،
211
00:07:04,720 –> 00:07:06,639
اگر اکنون پارامتری را که می خواهیم
212
00:07:06,639 –> 00:07:08,479
در جایی ذخیره کنیم، محاسبه کنیم و ما این کار
213
00:07:08,479 –> 00:07:09,680
را در یک فیلد جدید
214
00:07:09,680 –> 00:07:11,680
که در جدول صفت ایجاد می کنیم،
215
00:07:11,680 –> 00:07:12,960
لایه پیشنهادی را
216
00:07:12,960 –> 00:07:15,120
انجام خواهیم داد، بنابراین بیایید یک فیلد برای پارامتری تعریف
217
00:07:15,120 –> 00:07:16,800
کنیم که آن فیلد جدید
218
00:07:16,800 –> 00:07:18,639
یا هر چیزی را که دوست دارید، فراخوانی کنیم و سپس از
219
00:07:18,639 –> 00:07:19,840
تابع
220
00:07:19,840 –> 00:07:23,520
تعریف فیلد ogr استفاده می کنیم، باید به آن فیلد
221
00:07:23,520 –> 00:07:26,160
یک نشان دهیم. پس بیایید آن را محیط بنامیم،
222
00:07:26,160 –> 00:07:28,240
اکنون باید یک نوع برای
223
00:07:28,240 –> 00:07:29,919
این فیلد نیز ارائه کنیم، بنابراین باید فکر
224
00:07:29,919 –> 00:07:30,880
کنیم که آیا می خواهیم یک
225
00:07:30,880 –> 00:07:33,440
عدد صحیح یا یک رشته یا مانند این مورد ذخیره
226
00:07:33,440 –> 00:07:35,360
کنیم تا اندازه گیری دقیق یک عدد اعشاری
227
00:07:35,360 –> 00:07:36,000
228
00:07:36,000 –> 00:07:39,280
را بدست آوریم.
229
00:07:39,280 –> 00:07:41,840
اگر با
230
00:07:41,840 –> 00:07:43,520
ایجاد fill در qjs آشنایی
231
00:07:43,520 –> 00:07:45,280
دارید، اکنون ogr را انتخاب کنید، میدانید که نه تنها
232
00:07:45,280 –> 00:07:47,199
باید یک نام و نوع فیلدی
233
00:07:47,199 –> 00:07:48,000
که ایجاد میکنید،
234
00:07:48,000 –> 00:07:50,000
بلکه طول و دقت را نیز در
235
00:07:50,000 –> 00:07:51,520
صورت استفاده از اعشار ارائه کنید. عدد
236
00:07:51,520 –