Daha çox

QGIS Python skriptindən işləməyən Yerə görə özniteliklərə qoşulun


Mənim nöqtələrim olan bir formalı, çoxbucaqlı formalı şəklim var. Müəyyən bir çoxbucaq içərisində olan bütün nöqtələrin atribut dəyərini cəmləmək istəyirəm və bunu verilənlər bazamdakı hər çoxbucaqlı üçün etmək istərdim. QGIS Attributes by Location vasitəsi ilə buna nail olmağımda kömək edir və alətdən Qenerasiya Alətləri qutusundan istifadə edərkən mükəmməl işləyir. Bununla birlikdə, aləti avtomatik bir skriptə daxil etmək istəyirəm. Bir çox fərqli arqumentləri sınadım, amma kodum (hələ də) işləmir və yeni poliqon atributunun NULL dəyərlərinə sahib olduğu bir verilənlər bazası ilə nəticələnir.

Qenerasiya Alətlər Qutusundan daxil olduğum zaman alətin işlədiyi ilə tam eyni olmalıdır ki, aşağıdakı kodu istifadə edirəm (hətta eyni kodu Tarix və Giriş pəncərəsindən kopyalayıb işə salmağa çalışdım):

cəmi = processing.runalg ("qgis: joinattributesbylocation", "polygonlayer.shp", "pointlayer.shp", "['' '' 'ehtiva edir, 1," cəmi ", 1, Yoxdur)

QGIS 2.8.2 Wien istifadə edirəm.


  • QGIS 2.8.2 ilə Qenerasiya olunur plagin 2.9.0:

    processing.runalg ("qgis: joinattributesbylocation", layer1, layer2, u'contains ', 1,' sum ', 1, None)
  • QGIS 2.12.2 ilə Qenerasiya olunur plagin 2.12.2:

    processing.runalg ("qgis: joinattributesbylocation", layer1, layer2, u'contains ', 0, 1,' sum ', 1, None)

    ("dəqiqlik" üçün əlavə parametrə diqqət yetirin)


Script & # 39s qovluğunu necə tapa bilərəm? [dublikat]

Skript faylının qovluq yerini almaq üçün os.getcwd () istifadə edirəm. Komut xəttindən ssenarini işə saldığımda mənə doğru yolu verir, Django görünüşündə kodla işləyən ssenaridən çalıştırdığımda yazdırır /.

Django görünüşü ilə işləyən bir skript içərisindən skript yolunu necə əldə edə bilərəm?

YENİLƏNİB:
Bu günə qədər verilən cavabları xülasə edərək - os.getcwd () və os.path.abspath () hər ikisi də skriptin yerləşdiyi qovluq ola biləcək və ya olmaya bilən cari iş qovluğunu verir. Veb hostumda quraşdırma __file__ yalnız yol olmadan fayl adını verir.

Python-da (həmişə) skriptin yerləşdiyi yolu ala bilmək üçün bir yol varmı?


Blender 2.81 + obyekt obyektini çərçivəyə salmaq üçün çərçivə alın

Bir döngə yolu yaradan və yolu izləmək üçün bir obyekt təyin edən bir skriptim var, animasiya hərəkətində obyektin doğru hərəkət etdiyini görə bilərəm və eyni zamanda düzgün yerə (ən azı əyani olaraq portda, koordinatlar bpy.context.scene.frame_set (desirved_frame) istifadə edərkən n dəyişməyin) düyməsini basarsınız. Lakin, təyin etdiyim çərçivədə həmin obyektin yerini və fırlanmasını əldə etməyə çalışdığım zaman, obyektin orijinal yerini 0-cu çərçivəyə qaytarır. Aşağıda animasiya məlumatlarını yaratmaq üçün istifadə etdiyim kod və nə olduğumu ' m yeri sınamaq və əldə etmək üçün istifadə edirəm.

Son döngənin əvəzini də verdim:

Hər iki üsul da yalnız obyektin orijinal yerini çap edir.

Bu sənədləri oxuyaraq qeyd etdikləri sinifdən qiymətləndirilən yer və fırlanmanı çıxarmaq üçün göstərdikləri nümunələri necə istifadə edəcəyimdən və hətta icra metodunu necə çağıracağımdan əmin deyiləm.

Aşağıda heç bir nəticə vermədən oxuduğum və cəhd etdiyim bəzi həllər və cavablar:

Həqiqətən, səhv etdiyimə əmin deyiləm, çünki baxdığım bəzi suallar mənim problemimə bənzəyir.


Cycles hissəcik yaş materialında istifadə üçün cari çərçivə nömrəsini almağa çalışırıq

Blender 2.72a istifadə edərək başqa bir hissəciklə toqquşarkən öləndə hissəcik alovlanması üçün dövrlər materialı yaratmağa çalışıram.

Boid fizikasından istifadə edərək hissəciklərin digər hissəciklərə hücum etməsini və öldürməsini təmin etdim, ancaq ölmüş hissəciklərin yox olması və ya orada oturması xaricində bir şey etməsini təmin etmək problemli bir problem olduğunu sübut etdi.

Bir neçə yanaşmanı tükürürəm. İndiki cəhdim, hissəciklərin ölümünün vaxtından əvvəl olduğuna əsaslanan emissiya gücünü və şəffaflığını artırmaqdır. Bir toqquşmada ölən bir hissəcik sürəti sıfır və ömründən daha az yaşa sahib olacaqdır. Bununla birlikdə, ölü hissəciklər yaşı üçün 0 hesabat verdiyindən, bir hissəcikin sadəcə qeyri-təbii şəkildə öldüyünü və ya yüz kvadrat əvvəl bitib bitmədiyini təyin etmək üçün bunu istifadə edə bilməzsiniz. Səhnə üçün mövcud kadr nömrəsini ala bilsəm və kod parçasını da əldə edə bilsəm, bu vəziyyətdən keçə bilərəm: bpy.data.scenes ['CYCLES']. Frame_current Bunu bir skript kimi saxladım və bir skriptdə istinad etdim Hissəcik toxumuna əlavə edə bildiyim qovşaq, ancaq alınan dəyərə çata bilmirəm.

Qlobal dəyişən və ya atributu çərçivə nömrəsi ilə doldurmaq və sonra Atribut nodu ilə daxil olmaq üçün skripti dəyişdirməyi düşünürdüm.

Bəs hazırkı kadr nömrəsini material redaktoru üçün əlçatan bir şəkildə necə saxlaya bilərəm? Qarışıq sənədimə bir keçid əlavə etdim. Düzgün cavab mənim kodumu tətbiq etmək məcburiyyətində deyil. Python ilə heç bir əlaqəsi olmayan bir fikriniz varsa, yenə də eşitmək istəyirəm.


Ola Hallengren & # 39s Şəbəkə Yerinə SQL Yedəkləmə işləmir

Son bir neçə ildə Ola Hallengrenin SQL Server Bakım Çözümünü bir neçə SQL Express serverində (2008-2012 R2) qurdum. Bu yaxınlarda hamısında yenisi olan şəbəkə ehtiyat komponenti ilə bağlı problemlər yaşamağa başladım. Keçmişdə bir neçə serverdə bu işi görmüşdüm, buna görə işləyə biləcəyini bilirəm, amma indi işləməsinə nə mane olduğunu anlaya bilmirəm. Maraq nöqtəsi olaraq, mən DBA deyiləm və SQL haqqında heç bir şey bilmirəm, buna görə də burdayam.

Problem

Xüsusilə bir serverdə təxminən bir il yarım əvvəl bir texniki xidmət cədvəli qurdum. Gecə bir UNC Yolunu (və bir neçə digər əmrləri) istifadə edərək başqa bir yerli serverə ehtiyat nüsxələri edirdi. Ssenarinin kodu aşağıdakı kimidir:

Bu bir müddət yaxşı işlədi, ancaq təxminən bir ay əvvəl işini dayandırdı. Yerli olaraq ehtiyat nüsxə qurdum, sonra uzaq yerə xcopy etmək üçün bir sətir və köhnə nüsxələri təmizləmək üçün uzaq serverdə bir ssenari əlavə etdim. Yox idealdır.

Onu özüm və super icazələr hesabı kimi komanda xəttində çalışdırdım. Bütün hallarda aldığım səhv budur:

Nə etdim

Aydındır ki, SQL şəbəkə yerinin olmadığını düşünür, buna görə bütün şəbəkə tərəflərinin qaydasında olub olmadığını yoxlamaq üçün əlimdən gələni etdim. Ssenarinin yeni bir nüsxəsini çəkdim və bütün obyektləri və işləri yenidən yaratdım. Digər skriptlərin (bütövlük yoxlamaları, statistik yeniləmələr və s.) İşlədiyini yoxladım. Yerli ehtiyatların xcopy-nı hədəf serverə göndərmək üçün ehtiyat skriptlə eyni etimadnamədən istifadə edən bir skript yaratdım, buna görə də müvafiq pay / NTFS etimadnaməsinə sahibəm. Bu hesab, SQL ehtiyat nüsxələri üçün xüsusi olaraq yaradılmış bir domen hesabıdır (AD). Yerli olaraq (bu hesabla) ehtiyat nüsxə edə bilərəm, buna görə verilənlər bazası icazələrim var. Windows Explorer istifadə edərək ehtiyat hesabı kimi paylaşıma gedə bilərəm. Yedək hesabından istifadə edərək Windows Explorer istifadə edərək faylları əl ilə uzaq yerə köçürə bilərəm.

Eyni məsələni bir neçə başqa şəbəkədə də alıram, bu da məni SF-yə yönəltdi. Mən 2008 R2 və 2012 domenindəyəm, bütün serverlər heç bir səhv olmadan domen üzvləridir. Serverlər 2008 R2 və 2012 R2 Standart maşınlardır. SQL tərəfində bir şey dəyişmiş kimi hiss edirəm ki, bunun 3 fərqli şəbəkədə və bir neçə serverdə baş verməsi üçün problemi həll edə bilmirəm. Super əsas əmrlərdən istifadə etdim - yoxlama və təmizləməni tərk edərək işdən çıxdım və eyni xətanı aldım. Eyni nəticələrlə Ola saytındakı nümunə əmrlərini bir sınaq olaraq da istifadə etdim. Əsas test bazası olan, heç bir sevgisi olmayan yeni bir SQL Serverdə sınadım. Google-da qara kəmərimi bir neçə gündür çox xəyal qırıqlığına uğratan nəticələrlə istifadə etdim (bəlkə nə axtaracağımı bilmirəm?).

Nə əldə edəcəyimi ümid edirəm

SQL Komanda xəttinin içindəki şəbəkə paylaşımları ilə əlaqələri yoxlamaq və ya məni oraya gətirəcək bəzi materialları oxumaq üçün həqiqətən bir yol üçün təşəkkür edirəm. Bu mövzuda dərinliyi xaricində olan səlahiyyətli bir sistem administratoru olduğumu oxumağa zidd deyiləm. Ola saytında hər şeyi oxudum və hər halda praktik olaraq misal əmrlərini sözdə istifadə edirəm (və bir neçə ay işlədilər !?). Bu həftə sonu və bu həftə sonu üzərində işləyəcəyəm və hər kəsin göstərə biləcəyi hər hansı bir kömək və ya rəhbərlik çox təqdir ediləcəkdir.


& LdquoI & rdquo düyməsini basmaq və LocRotScale seçimi üçün düzgün python kodu nədir?

Zaten bir kukla testi etdim və kodumun qalan hissəsi işləyir. Uğursuz olan yalnız bpy.ops.anim.keyframe_insert_menu (type = 'LocRotScale') zəng etməkdir, bu I düyməsini basdığınızda və bunu əl ilə etdiyiniz zaman görünür. Aldığım səhv:

Fayl "D: Blender 2.79 scripts modules bpy ops.py", sətir 189, in zəng edin ret = op_call (self.idname_py (), Yoxdur, kw) TypeError: Piy arqların operator xüsusiyyətlərinə çevrilməsi: enum "yer" ('Location', 'Rotation', 'Scaling', 'BUILTIN_KSI_LocRot', 'LocRotScale' , 'BUILTIN_KSI_LocScale', 'BUILTIN_KSI_RotScale', 'BUILTIN_KSI_DeltaLocation', 'BUILTIN_KSI_DeltaRotation', 'BUILTIN_KSI_DeltaScal)

Ssenarimin ideyası sadədir, bir siyahıda 8 koordinat var və hər koordinatı bir kuba tətbiq etmək istəyirəm.

  1. Hazırkı çərçivəni zaman çizelgesində Frame_set, beləliklə başlanğıc çərçivəsi 0 olacaqdır
  2. Siyahıda koordinatı [i] götürüb kuba tətbiq edərdim
  3. Bundan sonra animasiya üçün kubun yerini açardım
  4. cari_frame hər dəfə = + 4 ilə yeniləyin. S0 çərçivəsi 0, 4, 8. əsas kadrlar olacaqdır.

Bütün digər addımlar işləyir, 3 nömrəli addımı şərh etsəm, kubumun 1 yerdən digərinə keçdiyini görərdim, yalnız animasiya üçün hər yeri açmağı bilməliyəm!


1 Cavab 1

Bəzi API dəyişiklikləri digərlərindən daha yenidir

Bmesh from object metodu, 2-ci arqumentin cavab yazıldığı zaman IIRC-dən əvvəl olduğu kimi səhnə deyil, depsqraf olmasını tələb edir.

Daha yeni sənədlərə müraciət edin, bunun üçün konsolun avtomatik tamamlama xüsusiyyətindən istifadə etməyi məsləhət görürük

depsqrafın sənəd sətrini yaratmadığını görəcək, açıq şəkildə mübahisəlidir.

Test təmizləyin. Bunun bir çərçivə dəyişikliyi post işləyicisi kimi çalışmasını təmin etmək üçün minimal dəyişikliklər etdiniz. Bir test obyekti olaraq 256 vert & quotCircle & quot istifadə etdiniz, (ona bucaqların sayı ən azı vertlərə sahib olması tələbini verir.)

Skript çox az vert ilə mesh üçün bir indeks səhvini atır.

Metod bir çərçivə dəyişdirmə işləyicisinə bağlanmışdır, buna görə də çərçivə dəyişəndə ​​& quotits şey & quot;

_Kənə dəyişdirmə hadisəsində işləyən kodla mesh yeniləməsini çağırmaq (idarə etmək) üçün animasiya oynayaraq bir neçə kubu hərəkət etdirən bir nümunə.


PyQt və OOP ilə ilk yaddaş oyunu

Beləliklə, bu saytda ilk dəfə olmağımdır. Yaddaş Oyunu yaratmaq üçün bu çox təməl Python kodunu PyQt5 ilə yazdım. OOP ilə tanış olmadığım üçün (amma olmağa çalışıram!) Ümid edirəm kimsə məni oyunumu inkişaf etdirə biləcəyim yerə yönəldə bilər.

Durduğu kimi, hər şey işləyir, lakin qəşəng bir şablon yoxdur (bu, ikinci mərhələdə inkişaf etdirəcəyim bir şeydir). Hal-hazırda daha çox maraqlandığım şey, kodumun bir şəkildə daha yaxşı təşkil oluna biləcəyini anlamaqdır (məsələn, mövcud olan bir çox metod əvəzinə fərqli siniflərə / alt siniflərə ayıraraq).

  1. istifadəçi (JPG) şəkillərdən bir qovluq seçir
  2. bütün şəkilləri olan bir ızgara qurulur, lakin hər bir şəkil "back.jpg" şəkli ilə örtülür (kodla eyni qovluqda qalmalıdır)
  3. oyun başlayır

Əsasən hadisə dinləyiciləri ilə düymələrə qoyulmuş bir Qgridlayout-da şəkillər istifadə edərək hər şeyi edirəm. "Onclick" siqnalı yayıldıqda, self.status atributu analiz edilir və oyun yenidən başlayır və ya buna uyğun olaraq davam edir.

Son bir şey: kartlar (şəkillər) hazırda qarışdırılmayıb, bu xüsusiyyəti hələ tətbiq etməliyəm (əks halda oyun tamamilə darıxdırıcı olardı.)


Tam olaraq - obyektin fiziki yeri. Xarici bir sistem istifadə etməsə və ya yeniləməsə onu dəyişdirmək başqa bir şeyə təsir etməyəcəkdir. Məsələn, böyük müəssisələrdə bu kimi atributlar MS ILM / FIM kimi bir IdM sistemi istifadə edərək aktiv izləmə verilənlər bazasından doldurula və sinxronizasiya edilə bilər.

Yazıcıların yerlə əlaqəsi düzgün edildiyi təqdirdə hər kəs üçün yaxşıdır. Windows 7-də "printerinizi tapın" görünüşü fiziki yerinizə görə avtomatik süzülür. Bu qismən əl ilə quraşdırma, hissə IP alt şəbəkəsidir.

Əksər istifadəçi / admin ilə dolu olan AD xüsusiyyətləri kimi, istifadə etmək istədiyiniz hər şey üçün istifadə olunur. Ümumiyyətlə, Chris McKeown-un qeyd etdiyi kimi, bu obyektin fiziki yeri üçün olardı, ancaq istədiyiniz hər şey üçün istifadə edə bilərsiniz və hər şey eyni olan kiçik bir şirkət olsanız bunu etməyinizin bir dəyəri ola bilər fiziki yer, varsayılan olaraq Yerin CustomAttribute8 və bənzərlərindən daha qabarıq şəkildə göstərildiyini nəzərə alaraq.

Bir az əvvəl bir AD mühiti gördüm ki, sysadmin istifadəçiləri buludlardakı, göndərilmədə itirilən, Kölndə yerləşdirilən və s. Kimi yerlərlə incə bir şəkildə təhqir etmək üçün istifadə etdi (istifadəçinin başı. Düşünün.), Buna görə mümkün istifadə həqiqətən, yalnız yaradıcılığınızla məhdudlaşır (və bəlkə də kin-küdurət səviyyəsi).


Niyə bu qəza yeri ELT vasitəsi ilə yerləşmədi?

14 yanvar 2019-cu ildə İndoneziya vaxtı ilə 9.10-da qəzaya uğrayan Lion Air JT-610-un CVR tapıldı. Daha bir həyati cihaz əvvəllər tapıldı.

İndoneziyada suya düşən üç müasir təyyarə var:

Adam Air, qeydiyyatı PK-KKW, Boeing 737-400, KI514 reysi, 1 yanvar 2007-ci il tarixində uğursuzluq üzündən Majene dənizinə çırpıldı. Daxili Referans Sistemi (IRS), dəniz səthinin 2.000 m altında istirahət etdi.

Air Asia, qeyd PK-AXC, Airbus A320-216, QZ8501 reysi, 28 dekabr 2015-ci il tarixində uğursuzluq səbəbindən Karimunjawa dənizinə düşdü. sükan-səyahət məhdudlaşdırıcısı.

Lion Air, qeydiyyatı PK-LQP, Boeing 737 Max-8, JT-610 reysi, 28 Noyabr 2018-ci il tarixində Java dənizinə düşdü. Qəza səbəbi hələ araşdırılır.

Bu üç qəza yeri elektron alət sistemi tərəfindən deyil, balıqçılar tərəfindən tapıldı.

O zaman sualım belədir: müasir təyyarə niyə ELT-si ilə yerləşmədi?


Videoya baxın: QGIS Join attributes by location (Sentyabr 2021).