Daha çox

Python Kod Blokundan istifadə edərək ArcGIS Sahə Kalkulyatorunda XY centroidlərin alınması və istifadəsi


Grid istinadını almaq üçün bir ssenari yazıram, lakin yeni sahələr yaratmadan XY centroidlərin necə alınacağını başa düşə bilmirəm (tapdığım bütün nümunələr sahəyə XY centroids yazmağa əsaslanır).

Budur mənim cari kodum və üstündə şərq / şimalda əldə etmək istədiyim şey:

def getParcel: ## east = SHAPE.CENTROID.X ## şimal = SHAPE.CENTROID.Y rəqəmləri = 8 # 100km-grid e100k = math.floor (east / 100000) n100k = math.floor (north / 100000) e100k <0 və ya e100k> 6 və ya n100k <0 və ya n100k> 12 olduqda: return "# ədədi ekvivalentlər alın l1 = (19-n100k) - (19-n100k)% 5 + math.floor ((e100k + 10) / 5 ) l2 = (19-n100k) * 5% 25 + e100k% 5 l1> 7 olduqda: l1 + = 1 əgər l2> 7: l2 + = 1 # tam dəyərlərə dəyişdirilsin l1 = int (l1) l2 = int (l2 ) # alfa kodunu hesablayın letPair = chr (l1 + (ord ('A'))) + chr (l2 + (ord ('A')))) # Şərqdən və şimaldan 100 km-ızgara indekslərini soyun və dəqiqliyi # və string dəyərinə dəyişmək e = str (int (math.floor (east% 100000/10))) n = str (int (math.floor (north% 100000/10)))) # 4 rəqəmli az verildikdə pad dəyərləri len (e) <4: e = e.zfill (4) əgər len (n) <4: n = n.zfill (4) gridFull = letPair + e + n return gridFull

Hal-hazırda hesablanan hər bir bağlamanın Centroid koordinatlarını istədiyinizi istədiyinizi düşünərək bunu etmək asandır. İstifadə edin! SHAPE.CENTROID.X! və! SHAPE.CENTROID.Y! ifadəni təyin etmək üçün parametrlər kimi, sonra onları şərq və şimal dəyişənləri kimi def-ə daxil edin.

Bu bir şəkildə iki ayrı xüsusiyyət sinifindən istifadə etməyə çalışırsa, o zaman bir imlec istifadə etməlisiniz.

Ayrıştırıcı: Python

Kod Blokundan istifadə edin: Yoxlanıldı

Məntiq öncəsi skript kodu:

def getParcel (şərq, şimal): ## şərq = SHAPE.CENTROID.X ## şimal = SHAPE.CENTROID.Y rəqəmləri = 8 # 100 km-ızgara alın e100k = math.floor (east / 100000) n100k = math.floor (şimal / 100000) e100k <0 və ya e100k> 6 və ya n100k <0 və ya n100k> 12: return "# ədədi ekvivalentlər əldə edin l1 = (19-n100k) - (19-n100k)% 5 + math.floor ((e100k) +10) / 5) l2 = (19-n100k) * 5% 25 + e100k% 5 l1> 7 olduqda: l1 + = 1 əgər l2> 7: l2 + = 1 # tam dəyərlərə dəyişdirilsə l1 = int (l1) l2 = int (l2) # alfa kodunu hesablayın letPair = chr (l1 + (ord ('A'))) + chr (l2 + (ord ('A')))) # Şərqdən və şimaldan 100 km-ızgara indekslərini soyun, və dəqiqliyi # azaldın və sətir dəyərinə dəyişin e = str (int (math.floor (east% 100000/10)))) n = str (int (math.floor (north% 100000/10)))) # Pad dəyərlər azdırsa len (e) <4: e = e.zfill (4) əgər len (n) <4: n = n.zfill (4) gridFull = letPair + e + n return gridFull olduqda 4 rəqəmli ref verilmişdir

İfadə: getParcel (! SHAPE.CENTROID.X !,! SHAPE.CENTROID.Y!)


Əvvəlcə Python radio düyməsini seçin.

İfadə mətn qutusunda, ilk hərflə böyük hərf yazmaq istədiyiniz mövcud mətn sahəsi olan sahəni cüt vurun. Sahədən sonra .title () yazın və OK düyməsini basın.

Sahə kalkulyatoru kod blokuna bir nümunə:

Nəticəni görürsənsə, böyük hərflərlə yeni bir sahəyə sahibdir.

Bir səhv əldə edirsinizsə, aşağıdakılara cəhd edin:

Əvvəlcə qeydləri seçərək bu python kod blokunu işə salın.

.Title () 'T' böyük hərflə yazmayın


ArcGIS-də XY koordinat cütlərinin xətt kimi göstərilməsinə kömək axtarırsınız

Tamam, burada biraz kömək axtarıram. Hal-hazırda üzərində işlədiyim bir ev heyvanı layihəsi üçün ArcGIS-ə bəzi məlumatlar daxil olmağa çalışıram, amma bəzi problemlərim var. Hal-hazırda müxtəlif məlumatlardan ibarət bir neçə CSV sənədim var və onları ArcGIS-ə çəkməyə çalışıram. İki şeyim var, bir sıra nöqtələr və nöqtələr arasındakı xətləri müəyyənləşdirən nöqtə şəxsiyyətləri cütlərinin siyahısı. Mənə ən çox bəla verən şey, düşünürəm ki, bunlar hər hansı bir coğrafi koordinat sistemində deyil, yalnız nisbi mövqedən başqa bir şey ifadə etməyən özbaşına XY koordinatlarıdır (və onlar nəzərdə tutulmayıb). üçün).

Bu nöqtədə, nöqtələrin idxalını və xəritədə düzgün göstərilməsini bacardım. Burada nöqtə məlumatlarının bir nümunəsi var (sütun adları həqiqi məlumatlarda deyil, sadəcə onları kontekst vermək üçün əlavə etdim). Mən .gdb-yə bir cədvəl əlavə edərək xəritəyə əlavə edib XY məlumatlarını göstərərək (Z-yi Y olaraq istifadə edirəm, çünki düzgün işləyən & # x27s, mənbə məlumatlarının niyə belə yönəldildiyini IDK ilə) idxal edirəm. .

Mən də xəritədə göstərmək istədiyim sətir seqmenti təriflərinin bir nümunəsidir (yenə də, faktiki məlumatların yalnız kiçik bir dəsti, lakin təmsiledici).

İndiyə qədər XZ məlumatlarını ID ilə diktə etmək üçün Python istifadə edərək xətt seqmentləri faylına mənbə və təyinat koordinat cütlərini əlavə etməyə müvəffəq oldum və bu veridə göründüyü kimi bağlantı məlumatları ilə yeni bir CSV sənədinə daxil etdim.

Bununla birlikdə, bu məlumatların ArcGIS-də həqiqətən görünməsi üçün əldə edə bilmərəm. İdxal etmək üçün XY to Line alətindən istifadə etməyə çalışdım, ancaq 14k nöqtə cütlərini işləmək üçün bir az vaxt aldıqdan sonra ekranda heç nə çəkilmir. Bunun XY to Line alətinin bir Məkan İstinadını tələb etməsi ilə əlaqəli ola biləcəyindən şübhələnirəm, amma vicdanla əmin deyiləm.

Kimsə bu işi necə əldə edə biləcəyim barədə hər hansı bir məlumat verə bilərsə, bunu qiymətləndirərəm. Bu anda səhv etdiyimə dair heç bir ipucu yoxdur.

tldr: XY koordinat cütlərini bir ArcGIS xəritəsində xətt kimi idxal etməyə çalışmaq, ancaq əslində görünmək üçün bir şey əldə edə bilməz.


Windows-da Python üçün FileGDB Driver ilə GDAL / OGR qurulması

Dünyasına girməyə qərar verdim GDAL / OGR ilə Piton bəzi alətləri təqlid etmək üçün əsas motivasiyamla Masaüstü üçün ArcGIS. Ümid edirəm ki, bu, bir neçə cəbhədə inkişaf etməyimə kömək edəcəkdir Piton kodlaşdırma, açıq mənbəli yerleşim kitabxanaları ilə əlaqəli məlumatların artırılması və GUI əsaslı GIS-də bir düyməni basdığınızda və bir növ geo-işləmə və ya məlumat təhlili apardığınız zaman pərdə arxasında qaçan alqoritmləri daha yaxşı başa düşmək.

Mən əsasən işləyirəm ESRI Fayl Geodatabases və bunun açıq mənbəli olmadığını bildiyim halda ESRI vasitəsilə bir gdb-yə oxumaq və yazmaq üçün bir API var GDAL / OGR. İlk addım öyrənmək üçün səyahətə başlamaq üçün lazım olanı qurmaqdır GDAL / OGR ilə Piton üçün Windows. Daha səmərəli geosessil üçün bəzi hesablamaları sürətləndirməyə kömək edəcək bir neçə kitabxana da quraşdıracağam.

& # 8230 istifadə edirəm
Windows 7 Professional'da Python 2.7.13 32bit

1. Microsoft Visual C ++ 2008 Service Pack yükləyin və quraşdırın

Yükləmək və yükləmək üçün buraya vurun.

2. Christoph Gohlke & # 8217s veb saytına gedin və GDAL çarxını yükləyin.

GDAL whl faylını götürün. Yüklədim GDAL ‑ 2.1.3 ‑ cp27 ‑ cp27m ‑ win32.whl
Komanda təklifini açın, kataloqu whl-in endirildiyi yerə dəyişin və istifadə edin tırtıl qurmaq.

3. ESRI-dən File Geodatabase API alın (bir ESRI hesabına ehtiyacınız olacaq)

ESRI Dowloads-a gedin və Windows üçün File Geodatabase API 1.3 versiyasını yükləyin (Visual Studio 2008). Bu bir zip qovluğu olacaq. API sıxılmış qovluğunun içindəkiləri açın və FileGDBAPI.dll faylını zibil qutusundan çıxarın

C: Python27 Lib site-packages osgeo

və ya sayt paketinizin yerləşdiyi yerdə. Yalnız osgeo-ya çıxardığınızdan əmin olun.

4. Ətraf Dəyişənlərdə Yeni Dəyişən Yaradın

İldə Ətraflı Sistem Ayarları yeni yaratmaq Ətraf Dəyişən çağırdı GDAL_DRIVER_PATH və addım 5-də osgeo qovluğuna gedən yolu təyin edin.

5. osgeo & # 8230'dan __init__.py açın

6. Quraşdırmanı sınayın

& # 8230 istifadə edərək bir Python tərcüməçi açın və test edin

Yuxarıdakı ekran görüntüsü kimi bir səhv əldə etməsəniz, quraşdırma müvəffəq olmuşdur.

7. Christoph Gohlke'nin parlaq veb saytından numpy + mkl təkərini yükləyin

Buraya vurun və lazımi whl faylını yükləyin. Quraşdırma üçün yüklədim səssiz ‑ 1.11.3 + mkl ‑ cp27 ‑ cp27m ‑ win32.whl
Komut istemini açın və endirilmiş sənədin yerləşdiyi yerə dəyişdirin. İstifadə edin tırtıl qurmaq.

8. SciPy quraşdırın

Geri Gohlke deposuna və SciPy Wheels-ə gedirik. Budur, yüklədim scipy ‑ 0.19.0 ‑ cp27 ‑ cp27m ‑ win32.whl
Addım 1-dən sonra bağlamısınızsa, əmr istasyonunu açın və qovluğu yüklənmiş sənədin olduğu yerə dəyişin.
İstifadə edin tırtıl qurmaq.

9. Shapely quraşdırın

Bildin, Gohlke-yə qayıdın və Shapely whl faylını yükləyin. Mən tutdum Formalı ‑ 1.5.17 ‑ cp27 ‑ cp27m ‑ win32.whl . Addım 7 və 8-ə bənzər bir quraşdırma üçün pip istifadə edin.

İndi özümü öyrənmə rejiminə salmaq və qoymaq GDAL / OGR bəzi istifadə üçün. İlk cəhd üçün OSGP # 1.1: Coğrafi Dağılımları Ölçmə & # 8211 Ortalama Mərkəzinə baxın.


OSGP: Coğrafi Dağılımların Ölçülməsi & # 8211 Mərkəzi Xüsusiyyət

(Açıq Mənbə Coğrafi Python)

Bu nədir? & # 8217

The Mərkəzi xüsusiyyət verilənlər bazasındakı bütün digər nöqtələrə ən qısa məsafə olan nöqtədir və beləliklə ən mərkəzdə yerləşən xüsusiyyəti müəyyənləşdirir. The Mərkəzi xüsusiyyət ən əlçatan xüsusiyyəti tapmaq üçün istifadə edilə bilər, məsələn, müəyyən bir ərazidəki məktəblərin müəllimləri üçün təlim günü keçirmək üçün ən əlçatan məktəb.

Formula!

Hər bir xüsusiyyət üçün bütün digər xüsusiyyətlərə olan ümumi məsafəni hesablayın. Ən qısa ümumi məsafəyə sahib olan xüsusiyyət Mərkəzi xüsusiyyət.

Üçün Nöqtə xüsusiyyətləri üçün hər xüsusiyyətin X və Y koordinatları istifadə olunur Çoxbucaqlar hər bir xüsusiyyətin centroidi, istifadə üçün X və Y koordinatlarını təmsil edir və üçün Xətti hər sətirin orta nöqtəsi X və Y koordinatları üçün istifadə olunur

Hesablama vaxtını sürətləndirməyə kömək edən GIS StackExchange-dən Logan Byers-ə kredit vermək istəyirəm. NumPy və möcüzələrini öyrənməyə başlamağım üçün NumPy.

Hal-hazırda bu, eyni prosesi həyata keçirmək baxımından daha yavaşdır ArcGIS 20.000+ xüsusiyyət üçün, lakin daha az miqdarda daha sürətli. 1000 saniyə 3 saniyədə işlənib.

Nümunə:

OS Open Map & # 8211 Local-dan West Midlands-i əhatə edən məktəblər üçün çoxbucaqlı vektor məlumatlarını yüklədim. OS Sərhəd Xətti məlumatlarını da yüklədim. Istifadə olunur PitonGDAL / OGR Birmingham məlumatlarından orta məktəbləri çıxardım. İndi tapmaq üçün hər şey yerində idi Mərkəzi xüsusiyyət Birmingham üçün bütün orta məktəblərin sayı. (görmək Digər ssenarilər məlumatın işlənməsi üçün bu yazının altındakı bölmə)

Ssenarini işləyir Kod yuxarıdakı bölüm koordinatlarını hesablayır Mərkəzi xüsusiyyət bütün Orta məktəblər üçün və bir nöqtə xüsusiyyət sinfi yaradır GDB sənədini göndərin.

OSGP Mərkəzi Xüsusiyyət: 407726.185, 287215.1
ArcGIS Mərkəzi Xüsusiyyət : 407726.185, 287215.1

Median Center (yazı tamamlandıqdan sonra link yenilənəcək)

Mənbələr:

ESRI GIS Cildinə 2 Təlimat: Fəsil 2 (bu kitabı tövsiyə edirəm)
burada kitab icmalına baxın.

& lt Digər Yazılar & gt

Birmingham Orta məktəbləri

Həmişə olduğu kimi, kodu daha səmərəli etməyə, səhvləri vurğulamağa kömək etmək üçün şərh verməkdən çəkinməyin və ya bunun sizin üçün bir faydası olub olmadığını mənə bildirin.


Tampon altında əhalinin paylanması

Bir çoxbucaqlıda əhali sayının müəyyənləşdirilməsində kimsə mənə kömək edə bilərmi? Hər blokla əlaqəli populyasiya ilə siyahıyaalma bloklarım var və bufer içərisində populyasiya sayını yaratmaq istədiyim buferli nöqtələr var. Tamponlu ərazi 1-dən çox siyahıyaalma blokunu əhatə edir. Bu kömək edərsə ArcGIS 10.5 Advance istifadə edirəm. Ümid edirəm bunun mənası var. Hər hansı bir kömək çox təqdir ediləcəkdir.

Bunu əlavə etmək üçün, siyahıyaalma cədvəllərində yeni bir sahə yaradın və üzərində Həndəsəni Hesablayın, sonra bufer ilə Census bloklarını kəsin. Çıxışda yeni bir sahə yaradın və köhnə siyahıyaalma həndəsi ilə yeni kəsilmiş həndəsə arasındakı sahənin faizini hesablayın. Sonra siyahıyaalma blokundakı ümumi populyasiyanızı götürün və siyahıyaalma blokunun həmin hissəsi üçün dəyişdirilmiş təxmini populyasiya əldə etmək üçün onu orijinalın faizinə vurun. Daha sonra, sahə statistikasını cəmi və maraq dairəsinə əsaslanan əhali hesabını, voila ilə yoxlayın.

Toshibi məlumatların bölüşdürülməsinin ən geniş yayılmış metodunu təmin etmişdir. Buna əlavə olaraq, populyasiyanı tapmaq üçün bir çox tampon varsa, məkan cəhətdən yeni və köhnə sahələri ehtiva edən yeni kəsilmiş bloklara bütün buferləri qoşun. Sonra Excel-də cədvəli açaram və nəticələri tez tapmaq üçün pivot cədvəlindən istifadə edirəm.


MODIS Torpaq Səthi Temperatur Təsvirlərindən istifadə edərək istilik stresinin qiymətləndirilməsi

MODEZ Torpaq Səthi Temperaturu (LST) xəritələrinin Oregon kəndlərindəki mühacir təsərrüfatları işçiləri üçün istilik stres xəritələrinin yaradılmasında faydalılığını araşdırmaqla maraqlanıram. Hal-hazırda tarla işçiləri üçün istilik marağını qiymətləndirmək çətindir, çünki nöqtə mənbəyi məlumatları çox dağınıqdır. Hazırda monitorinq stansiyalarından geniş miqyasda məlumat toplamaq üçün istifadə olunur, lakin bu məlumat geniş bir ərazidə dəqiq interpolasiya edilə bilməz. Tez-tez çox böyük bir ərazi üçün yalnız bir monitorinq stansiyası var ki, bu da davamlı bir səth temperatur xəritəsi yaratmağa çalışarkən ciddi problemlərə səbəb ola bilər. Bu istilik stresi modelləri üçün uzaqdan algılanan məlumatları istifadə etmək qabiliyyəti tədqiqatçıların fərdi məruz qalmağı daha dəqiq qiymətləndirməsinə imkan verəcəkdir. Bu, daha çox diqqət və ya mənbəyə ehtiyac duyulan sahələrin müəyyənləşdirilməsində vacibdir və bu məlumatların təhlili prosesini xeyli asanlaşdıracaqdır.

Müəyyən bir tarix üçün MODIS LST tərəfindən proqnozlaşdırılan dəyərləri Milli Hava Xidməti (NWS) və ya temperatur məlumatları üçün başqa bir nöqtə mənbəyi tərəfindən qeyd olunan temperaturla müqayisə etmək istərdim. Bu mənə məlumat mənbələri arasındakı fərqi tapmağı və MODIS məlumatları üçün səhv paylanmasında hər hansı bir qanunauyğunluğu müəyyən etməyimi təmin edəcəkdir. Bunu etmək üçün, hər hansı bir məkan və ya mövsümi nümunəni müəyyənləşdirmək üçün müxtəlif yerlərdəki bir çox tarixə aid məlumatları müqayisə edəcəyəm. Bu layihənin əsas məqsədləri aşağıdakılardır:

  1. Bu 2 məlumat mənbəyi arasındakı fərqin miqdarını müəyyənləşdirin
  2. Müəyyən tarixlər və yerlər üçün NWS və MODIS LST xəritələri tərəfindən qeydə alınan temperatur məlumatlarını müqayisə etmək üçün bir regresiya modeli yaradın.
  3. Nöqtə mənbəyi məlumatından MODIS LST görüntüsünə qədər fərq çoxdursa, miqrant əhali üçün istilik stresini proqnozlaşdırmaq üçün MODIS LST şəkillərindən istifadə etməyin digər yollarını araşdırın.
  4. Lazım gələrsə və / və ya mümkünsə, MODIS bu məkan problemi üçün işə yaramırsa, digər uzaqdan algılanan məlumat mənbələrini araşdırın

İlk əngəl analiz üçün lazım olan yerlər üçün bütün bu məlumatları toplayacaqdır. Ayrıca, MODIS məlumatları və NWS məlumatları eyni müddətdə bildirilmir (yəni NWS tərəfindən bildirilən yüksək və aşağı temperatur MODIS LST görüntüsündə qeydə alınan orta temperaturla uyğun olmaya bilər). Bu dəyərləri müqayisə etmək və bir-birinə normallaşdırmaq üçün bir yol tapmalıyam (hal-hazırda mənim yeganə fikrim NWS məlumatlarından yüksək və aşağı qeydlərin vaxtını alacaq bir funksiya yaratmaq, temperatur boyunca bir təxmin yaratmaqdır) gün bu dəyərlərə əsaslanaraq və temperaturu MODIS oxumasının müəyyən vaxtında müqayisə edin). İdeal olaraq hər fəsildən 5 gün ərzində fərqli ərazi 5 saytın məlumatlarına baxmaq istəyirəm (cəmi 20 gün, 100 məlumat nöqtəsi).

Bu sinif üçün müxtəlif vasitələrlə təcrübəmlə əlaqədar olaraq R və ArcGIS istifadə mülayim təcrübəm var, Python'u istifadə etmək üçün güclü bir girişim var və ModelBuilder'ı istifadə etmək üçün ibtidai bir məlumatım var.


Mdhntd

Bir hobbi GPS istiqamətini izləyən İHA üçün minimum sensor sayı nədir?

diff mövcud olmayan bir faylı göstərir

Qəribə otomorfizmlərlə bir DVR cəbri

Kübik proqramlaşdırma və xaricində?

Niyə supermassive qara dəliklər birləşə bilmir? (və ya edə bilərlər?)

Test sinfi üçün geri qayıtma üsulu ilə sarma

Tramp şəxsən Twitter-də insanları bloklayır?

Soyğunçular: Gizli OEIS Substring

ABŞ hökuməti, güclü insanların Jeff Epstein kimi son dərəcə əlverişli sövdələşmə sövdələşmələrinin qarşısını almaq üçün nə edə bilər?

Niyə standart bir ay və ya Mars hərəkətliliyi platforması yaratmaq üçün araşdırma aparılmır?

Qurucu atalardan kimsə Lysander Spooner-in konstitusiyanı tənqid etməsini gözlədi?

"Faza Metal" dan hazırlanmış ideal döyüş silahı nə ola bilər?

QGIS Qarşılama səhifəsi: 'siyahı üçün pin' nədir?

Windows versiya nömrələri necə işləyir?

Generallardan istifadə edərək xüsusi xüsusiyyətlərə malik xüsusi obyektlərin yaradılması

"Craqueuhhe" adı necə oxunur

Müəyyən bir hava kütləsi çirklənirsə, çirklənmə onunla qalacaqmı?

Söyüş sözlərinin əvəzlənməsi

Məntiqi ardıcıllıqla deduktiv məntiqdəki məntiqi tələb arasındakı fərq nədir?

Bir AB üzvü başqa bir AB üzvünə qarşı müharibə elan edərsə AB nə edərdi?

& # 60schwitz & # 62, & # 60zwinker & # 62 və s. Alman hər zaman ifadələr üçün 2-ci Şəxsi Tək İmperativ fellərdən istifadə edirmi? Varsa niyə?

Mənim amansız DM var və partiyadan çıxmağı düşünürəm. Qrupun qalan hissəsinə mənfi təsiri minimuma endirmək üçün seçimlərim hansılardır?

Bütün ölkələr üçün mərkəzi koordinatların siyahısı?

Mərkəzi nöqtədən x mil məsafədə koordinatları hesablamaq? WGS84-də olmayan bir nöqtə qatına Lat / uzun sütunları necə əlavə etmək olar? X, Y Dövlət Təyyarə koordinatlarını ondalık dərəcəyə çevirmək Nöqtə koordinatlarını ölkələrə və ya qitələrə təsnif etmək? Kimliklər üçün təsadüfi nöqtələr yaratmaq ArcMapQgis ilə oxşar koordinatlar bir sıra excel nöqtələrini real koordinatları olan yalnız bir nöqtəsi olan bir googlemap-a yükləyir R-dən istifadə edərək bölgə adlarına koordinatları sürətlə təyin edin? Üçbucaqlı nöqtə nöqtəsinin Lat / Lon koordinatlarını almaq mümkündür? ENU-dan nöqtə buludunu dəyişdirin (şərq, şimal, yuxarı) LLA-ya (lat, uzun, alt) Excel-dən ArcMap-a idxal edildikdə düzgün göstərilməsi üçün koordinatların əldə edilməsi?


Xülasə

Bu gün & # 8217s post blog, biz OpenCV və Python ilə forma aşkarlamanın necə həyata keçiriləcəyini öyrəndik.

Bunu həyata keçirmək üçün istifadə etdik kontur yaxınlaşması, döngədəki nöqtələrin sayının daha sadə səviyyəyə endirilməsi prosesi təxmini versiya.

Sonra, bu kontur yaxınlaşmasına əsaslanaraq, hər bir formanın sahib olduğu zirvələrin sayını araşdırdıq. Vertex sayını nəzərə alaraq, hər bir formanı dəqiq etiketləməyi bacardıq.

Bu dərs, forma aşkarlanması və təhlili üzrə üç hissəli bir hissənin bir hissəsidir. Keçən həftə bir kontur mərkəzinin necə hesablanacağını müzakirə etdik. Bu gün forma aşkarlanmasını OpenCV ilə əhatə etdik. Və gələn həftə necə edəcəyimizi müzakirə edəcəyik bir formanın həqiqi rəngini etiketləyin rəngli kanal statistikasından istifadə etmək.

Növbəti yazı canlı yayımlandıqda bildiriş almaq üçün aşağıdakı formada e-poçt adresinizi daxil etdiyinizə əmin olun & # 8212 darıxmaq istəməzsən!

Mənbə kodunu və 17 səhifəlik PULSUZ Resurs Təlimatını yükləyin

Kodu .zip və a almaq üçün aşağıya e-poçt adresinizi daxil edin Kompüter Vizyonu, OpenCV və Dərin Öyrənmə haqqında 17 səhifəlik PULSUZ Resurs Kılavuzu. İçəridə CV və DL-yə yiyələnməyinizə kömək etmək üçün əl ilə seçdiyim dərsliklər, kitablar, kurslar və kitabxanaları tapa bilərsiniz!

Müəllif haqqında

Salam, mən Adrian Rosebrock, doktorum. Çox vaxt inkişaf edənlərin, tələbələrin və tədqiqatçıların vaxtlarını itirdiyini, səhv şeyləri araşdırdığını və ümumiyyətlə Computer Vision, Deep Learning və OpenCV ilə işə başlamaq üçün mübarizə apardığını görürəm. Bu veb saytı başlanğıc üçün ən yaxşı yol olduğuna inandığımı göstərmək üçün yaratdım.


Python ilə PDF-dən JPG-yə Dönüşüm (Windows üçün)

Bu yaxınlarda bir araşdırma və tətbiq etməyə çalışdığım çətin bir vaxt keçirdim Piton toplu dönüştürebilen skript PDF üçün JPG. Kömək etməyi məqsəd qoyan (və bunu hissə-hissə etdi) onlayn çox sayda giriş var, amma əvvəldən axıra qədər kriteriyalarımı qane edən qısa bir iş axını olanı tapmaq üçün mübarizə apardım və bu tətbiqetmə üçün tələb olunanları qurdum. Aşağıdakılar bunu etmənin ən & # 8216Pythonic & # 8217 yolu olmadığına görə planlaşdırıla bilər, amma həyatımı asanlaşdırdı. İlə mübarizə edirdim ÇubuqImageMagick ən çox yazıya görə, girişdə rast gəldiyimə qədər StackOverflow harada floqqi, yeni qəhrəmanım, dualarımı qəbul etdi. Hiss edirdim ki, bununla mübarizə aparsaydım, eyni çətinliyə düçar olanlar da var və ümid edirəm ki, bu yazının adı axtarışlarda ön plana çıxmasına və Python parçacıqlarını araşdıran həmkarlarına bir qurtuluş tapmasına kömək edəcəkdir.
Qeyd: Windows 7 Professional-da Python 2.7 32 bit istifadə edirəm

1. ImageMagick quraşdırın
floqqi, yazarkən 7.0.4-3 olan son versiyasını yükləməyi tövsiyə edir. Əldə etməyə çalışarkən daha əvvəlki bir versiyanı quraşdırmışdım Çubuq işləmək üçün modul. Mənim versiyam 6.9.7-3-dir. Keçidlərin üstündə gəzirsinizsə, http://www.imagemagick.org/download/binaries/ImageMagick-6.9.7-3-Q8-x86-dll.exe linkinin tam adını görə bilməlisiniz və ya sadəcə bu etdiyim eyni versiyanı yükləmək üçün link.
Yükleyiciyi çalıştırın, lisenziya müqaviləsini qəbul edin və vurun Növbəti üstündə Məlumat pəncərə. İçində Əlavə Tapşırıqlar seçin əmin olun C və C ++ üçün inkişaf başlıqlarını və kitabxanaları quraşdırın seçilmişdir.

Basın Növbəti daha sonra Yüklemek.

3. Ətraf Dəyişənlərini təyin edin
Yenisini yaradın Sistem Dəyişən (Ətraflı Sistem Ayarları və gt Ətraf Dəyişənləri) çağırıldı MAGICK_HOME və dəyər olaraq Image Magick quraşdırma yolunu daxil edin. Bu bənzər olacaq C: Program Files (x86) ImageMagick-6.9.7-Q8

Basın tamam və eyni dəyərin (C: Program Files (x86) ImageMagick-6.9.7-Q8) başlanğıcda olduğundan əmin olun. Yol dəyişən. Bu girişdən sonra Yol üçün dəyişəni daxil edin GhostScript buna bənzəyəcək C: Program Files (x86) gs gs9.20 bin
Qeyd: girişlərin yarım nöqtəli nöqtə ilə ayrıldığından əmin olun ()

4. 1-3 addımlarının düzgün qurulduğunu yoxlayın
Açın Əmr lövhəsi və daxil edin & # 8230

burada file.pdf və file2.jpg giriş üçün tam ixtisaslı yollardır PDF və çıxış JPG (və ya mövcud qovluqda fayl var).

Heç bir səhv təqdim edilmirsə və JPG növbəti mərhələyə keçə biləcəyiniz üçün yaradıldı. Əks təqdirdə bəzi problemlərin həllinə keçin.

5. PythonMagick quraşdırın
Mən yüklədim Python 2.7 32-bit whl fayl PythonMagick ‑ 0.9.10 ‑ cp27 ‑ yox ‑ win32.whl və sonra komut istəməsindən yükləmək üçün pip istifadə etdi.

Açın a Python IDE və idxal edə biləcəyinizi yoxlayın PythonMagick

İndi hər şey qurulmuşdur və birdən çox (tək səhifə) çevirəcək bir skript yazmağa başlaya bilərik PDF sənədləri üçün JPG-lər.

Lazımi modulları idxal edin.

Tamam Tarix vaxt lazım deyil, amma ssenarilərimi vaxtı ilə düzəltməyi və bunun təkmilləşdirilə biləcəyini görmək istərdim. Ssenari üçün başlama vaxtını təyin edin

Bir neçə qlobal dəyişən, birini tutan qovluq üçün PDF sənədləri, və arxa plan rəngi üçün onaltılı bir dəyəri tutmaq üçün başqa bir & # 8216white & # 8217. Sınaq və səhvdən sonra bəzilərinin fərqinə vardım JPG-lər ağ əvəzinə qara bir fon ilə ixrac olunurdu və bu, ağ bir fon məcbur etmək üçün istifadə ediləcəkdir. StackOverflow-da bunun öhdəsindən gəlməyə kömək etmək üçün faydalı bir əlaqə tapdım.

Hər birini dolaşırıq PDF qovluqda

Hər birini qurun və oxuyun PDF. sıxlıq qətnamədir.

Görüntünün ölçülərini əldə edin.

Qurmaq JPG çıxış üçün. Bu hissə Magick olmalıdır PythonMagic çünki bunun kiçik bir hissəsi üçün mən sirr içindəyəm. Kodun mənşəyi üçün StackOverflow-a son keçidə baxın. The PythonMagick sənədləri həzm etmək çətindir və müxtəlif mövzularda nə qədər kasıb olduğuna dair mərsiyələri oxuyun.

Və sonda JPG-ni yazırıq

Və görün ssenarinin çalışması nə qədər çəkdi.

Bu çıxışı yerləşdirir JPG-lər ilə eyni qovluqda PDF sənədləri. Çözünürlük (sıxlıq) və keyfiyyət parametrlərinə əsasən proses bir qədər uzun ola bilər. Yuxarıdakı parametrlərdən istifadə edərək 20-nin edilməsi 9 dəqiqə çəkdi PDF-dən JPG-yə Çevirmə. Məqsədiniz üçün optimal qətnamə və keyfiyyəti müəyyənləşdirməlisiniz. Ən aşağı nəticə 20 üçün 46 saniyə çəkdi.

Həmişə olduğu kimi bir əldə etdikdə bir uğur hissi hiss edirəm Piton skript işləyəcək və ümid edirəm ki, bu yazı yuxarıdakı prosesi daha təsirli etmək üçün bəzi şərhlərə təkan verəcəkdir. Hər hansı bir mənbəyə keçid göndərməkdən çəkinməyin, bəlkə də özümə və digər oxuculara kömək etmək üçün şərh verin və ya bu sizə kömək etsə, mənə bildirin və floqqi-yə və heyət üzvlərinə təşəkkür edirəm. Bu ssenari mənim məlumatımın həddi PythonMagick və bu, məndən əvvəl səy göstərənlər və bu yazıdakı linklərdə istinad edənlər sayəsindədir. Təşəkkür edirəm uşaqlar.


Videoya baxın: ArcGIS Pro and Python (Oktyabr 2021).