Daha çox

QGIS Python istifadə edərək hər hansı bir Raster Faylını yükləmək mümkün deyil

QGIS Python istifadə edərək hər hansı bir Raster Faylını yükləmək mümkün deyil


QGIS Python API -yə daxil olan bir raster olaraq bir dem faylını yükləyən elementar bir Python kodu işə salmağa çalışıram.

Daxili konsolda (QGIS tətbiqi GUI daxilində) yaxşı işləyir və raster yüklənir. Bununla birlikdə, bir toplu fayl istifadə edərək QGIS_PREFIX_HOME və PYTHONPATH qurduqdan sonra standart bir pəncərədən quraşdırılmış konsol xaricində işlədiyim zaman iş yüklənmir.

Çalışdığım kod aşağıdakı kimidir:

PyQt4.QtCore -dan os idxal QFileInfo, QSettings qgis.core -dan idxal * # yük təminatçıları QgsApplication.initQgis () # Giriş yükləyin dem rasterFile = "E:  data  43j11  43J11.dt2" fileInfo = QFileInfo ( rasterFile) fileName = fileInfo.fileName () baseName = fileInfo.baseName () yazdır "Raster qatı yüklənir:" + fileName, əgər fileInfo.exists (): "Göstərilən raster faylı mövcuddur." başqa: çap "Fayl yoxdur" çıxın (1) errorStr = "Naməlum" əgər QgsRasterLayer.isValidRasterFileName (rasterFile, errorStr): çap edin "Fayl etibarlı bir rasterdir" rlayer = QgsRasterLayer (rasterFile, baseName) deyilsə rlayer.isValid ( ): çap "Layer yüklənmədi!" else: print "Uğurla yükləndi dem:" + fileName başqa: çap et "Fayl etibarlı bir raster deyil. Xəta:" + errorStr QgsApplication.exitQgis ()

Daxili konsolun içərisində əldə etdiyim çıxış:

Raster təbəqəsi yüklənir: 43J11.dt2 Göstərilən Raster faylı mövcuddur. Fayl etibarlı bir rasterdir Uğurla yükləndi: 43J11.dt2

Daxili konsolun xaricində əldə etdiyim çıxış:

Raster təbəqəsi yüklənir: 43J11.dt2 Göstərilən Raster faylı mövcuddur. Fayl etibarlı rastr deyil. Səhv: naməlum

Bunun bir yol/başlanğıc problemi olduğundan şübhələnirəm, buna görə də burada istifadə etdiyim .bat faylını da daxil edirəm:

set QGIS_PREFIX_PATH = C:  Program Files  QGIS Wien set PYTHONHOME =%QGIS_PREFIX_PATH% apps  Python27 set PYTHONPATH =%QGIS_PREFIX_PATH%;^%QGIS_PREFIX_PAT_PH__AT_FAT_PHF_PATH%  python  plugins;^ %QGIS_PREFIX_PATH % apps  Python27;^ %QGIS_PREFIX_PATH % apps  Python27  Lib;^ %QGIS_PREFIX_PATH % apps  Python27  Lib  site-paketləri;^ %QGIS_PisFiyatları  q ;^ %QGIS_PREFIX_PATH % apps  Python27  DLLs;^ %QGIS_PREFIX_PATH % apps  qgis  bin;^ %QGIS_PREFIX_PATH % apps  qgis  plugins;^ %QGIS_PREFIX_PATH % bin  gdal_p  g  gdal  gdal saga  modules;^ %QGIS_PREFIX_PATH % apps  Qt4  plugins;^ %QGIS_PREFIX_PATH % apps  o't  ot-6.4.3  lib;^ %QGIS_PREFIX_PATH % apps  ot  ot-6.4.3  bin set PATH =%PYTHONPATH%;%PATH%

Tətbiqimin bir hissəsi olaraq QGis paketləməli olduğum üçün quraşdırılmış konsol xaricində işləməyimə ehtiyacım var. Son planım, tətbiqimin yükləyicisindən QGIS_PREFIX_HOME quracağım bir .bat faylı daxil etməkdir.


Düşünürəm ki, bu sətri daxil etməlisiniz:

QgsApplication.setPrefixPath ("C:  Proqram Faylları  QGIS Wien  apps  qgis", Doğru)

düz bundan əvvəl:

QgsApplication.initQgis ()

Raster piramidaları

Piramidalar performansı yaxşılaşdırmaq üçün istifadə olunur. Orijinal raster verilənlər bazasının aşağı ölçülmüş bir versiyasıdır və bir çox aşağı nümunə götürülmüş təbəqələrdən ibarət ola bilər. Piramidanın hər bir ardıcıl təbəqəsi 2: 1 miqyasında aşağı nümunəyə alınır. Aşağıda bir rastr verilənlər bazası üçün yaradılmış iki səviyyəli piramidanın nümunəsi verilmişdir:

Piramidalar, yalnız məlumatları ekran üçün lazım olan müəyyən bir qətnamədə əldə edərək raster məlumatların göstərilməsini sürətləndirə bilər. Piramidalarda, məlumatların daha aşağı qətnamə bir nüsxəsi bütün verilənlər bazası çəkilərkən tez görünür. Böyütdükcə, daha kiçik ölçülü sahələr çəkdiyiniz üçün daha yaxşı qətnamələri olan səviyyələr çəkilir. Verilənlər bazası serveri, istifadəçinin ekran ölçüsünə əsasən avtomatik olaraq ən uyğun piramida səviyyəsini seçir. Piramidalar olmadan, bütün verilənlər bazası diskdən oxunmalı və daha kiçik bir ölçüdə yenidən nümunələnməlidir. Buna ekranın yenidən seçilməsi deyilir və ArcGIS displeyi təzələndikdə baş verir.

Piramidaların hər bir raster verilənlər bazasına yalnız bir dəfə qurulması lazımdır, hər dəfə raster verilənlər bazasına baxıldıqda onlara daxil olurlar. Raster verilənlər bazası nə qədər böyükdürsə, piramidalar dəstini yaratmaq üçün bir o qədər vaxt lazımdır. Ancaq bu, uzun müddətdə daha çox vaxtınıza qənaət etməyiniz deməkdir.

Raster kataloqu üzərində piramidalar qura bilməsəniz də, raster kataloqu daxilində hər bir rastr verilənlər bazası üçün piramidalar qurmaq mümkündür. Mozaika məlumatları raster kataloqlarına bənzəyir. Mozaika verilənlər bazası içərisində hər bir raster verilənlər bazası üçün piramidalar qura bilərsiniz, ancaq mozaika verilənlər bazası üçün ümumi görünüşlər qura bilərsiniz, ancaq yalnız Mosaic Dataset alətlər dəstindəki xüsusi vasitələrdən istifadə edə bilərsiniz.


& kvota şəbəkə sorğusunun vaxtı bitdi & quot - WMS təbəqələri QGIS -də yüklənmədi

Hamıya salam, burada olan NSW Məkan Xidmətləri saytından WMS keçid ünvanını idxal etmək cəhdlərimlə bağlı bir sualım var: https://maps.six.nsw.gov.au/arcgis/rest/services/public/NSW_Cadastre/ MapServer

WMS URL -ni bağlayarkən və qatı QGIS -ə idxal etməyə çalışarkən, yüklənə bilmir. Sessiyanın vaxtının bitdiyini bildirən bir bildiriş gəlir. Bir qat (dünən) yükləyə bildim, amma o qədər gecikdi ki, hətta ekranda gəzə bilmədim. O vaxtdan bəri yenidən yükləyə bilmədim. İnternet araşdırmalarım və indiyə qədər həll etmək üçün edilən müxtəlif cəhdlər nəticə vermədi. Bu faylları kiçiltməyin bir yolu varmı? Bunu necə həll edəcəyimi bilmirəm.

Bəzi biliklərini verə biləcək hər kəsə təşəkkür edirəm! Mən tamamilə təcrübəsizəm, buna görə xahiş edirəm sadə insanlar.

Əgər 't etməmisinizsə, problem yarandıqda veb trafikinizi ələ keçirmək üçün Fiddler və ya başqa bir veb ayıklama vasitəsi quraşdırın. Sonra, paylaşdığınız server URL ilə QGIS arasındakı söhbətə baxmağa başlaya bilərsiniz. Hər hansı bir müraciət uğur qazandı? 400 və ya 500 səhv görürsünüzmü? Eyni WMS xidmətindən başqa fərqli bir tətbiqlə nə görürsünüz?

Bu URL -ə tez baxdım və bir brauzerdə mənim üçün yaxşı yüklənir və WMS funksionaldır. Vəhşi bir tahmin etsəm, QGIS -in göndərdiyi sorğuda səhv bir şey var. Çox məlumat istəmək və ya səhv parametrlər göndərmək ola bilər. İndiyə qədər az məlumatla demək çətindir.

Şəbəkədə baş verənləri təsvir etməyə başlaya bilsəniz, hər hansı bir problemi və ya digər uğursuz nəticəni öyrənməyə başlaya bilərsiniz.


Android üçün Klassik – QGIS böyüyür

Android üçün QGIS -in Növbəti Dövrü, böyük biliklərin artırılması, fəlsəfi düşüncələr və ilk möhtəşəm xüsusiyyətlərin yüksəlişi zamanı kimi görünə bilər:

Python uğursuzluğu

Android tarixində QGIS-in ən böyük uğursuzluğu Python dəstəyinin tamamlanmamasıdır. Dəfələrlə yaxınlaşdım, amma təəssüf ki, ilanı ram edə bilmədim. Bəlkə də gələcəkdə araşdıracağımız bir şey var, kim bilir.

Başlanğıcdan sonra, 2013 -cü ildən 2014 -cü ilin sonuna qədər playstore -da müntəzəm olaraq yeniləmələrin çıxmasına səbəb olan masa üstü versiyalarla birlikdə Android üçün QGIS -in saxlanmasının çox aktiv vaxtı gəldi. Bu da Matthias Kuhn Android üçün QGIS -ə başlamağa başladı.

QGIS mobil olaraq qısaca tanınan adın yeni adını elan etmək çox məmnunluq hissi ilədir.

QGIS ™ üçün QField -ə xoş gəldiniz!

QGIS mobile, QTouch, OPENGIS.ch QGIS mobile, QWork və daha çox daxil olmaqla müxtəlif adlar və variantlar haqqında uzun müddət düşündükdən sonra, QField -in arxivləşdirmək istədiyimizi ən yaxşı şəkildə təmsil etdiyini hiss etdik. QGIS ™ ilə tam uyğun bir sahə məlumat tutma və idarəetmə proqramı.

https://www.opengis.ch/2015/01/28/qgis-mobile-is-now-qfield/

QField Experimental, bir neçə aylıq tələblərin toplanmasından, özəl erkən alfa testlərindən və bu gün mövcud BETA versiyasını playstore -a yerləşdirmək qərarına gəldiyimiz testlər qrupuna giriş tələb edən ən çox ton e -poçtdan sonra çıxdı.

https://www.opengis.ch/2015/06/15/qfield-in-the-wild/

Sadə quraşdırma

Android üçün QGIS başladıqdan sonra lazım olan Qt kitabxanalarını yaymaq üçün “ministro ” adlı bir layihədən istifadə etdik. Kitabxanaları yalnız bir dəfə yükləməyə icazə verdiyi üçün maraqlı idi, digər tərəfdən, QField -i işə salmadan əvvəl ikinci bir tətbiq yükləməli olan istifadəçi üçün çox ağrılı bir təcrübə idi. Təxminən 2015 -ci ilin sonuna qədər bu qədər idi, nəhayət bu asılılıqdan qurtulmağı və quraşdırma prosesini mümkün qədər asanlaşdırmağı bacardıq.

Tamamlandı, nəhayət, Ministro -dan yaxa qurtara bildik ki, nəhayət deyə bilərik ki, QField 4.0.3 -dən (ICS) istənilən Android -də işləyir. Bu gündən etibarən (google -a görə) dünyada Android qurğularının 96% -ni təşkil edir.

https://www.opengis.ch/2015/12/01/qfield-for-android-5/

Gazebo'da istifadə üçün DEM məlumatlarının hazırlanması

DEM məlumatları ümumiyyətlə çox yüksək qətnamə ilə yaradılır. İstifadə edin gdalwarp Arazinin həllini Gazebo'da istifadə etməzdən əvvəl daha idarə edilə bilən bir ölçüyə endirmək.

DEM məlumatları tez -tez & quotholes & quot və ya & quotvoid & quot sahələrini ehtiva edir. Bu bölmələr DEM yaradılarkən məlumatların toplana bilmədiyi sahələrə uyğundur. Bir məlumat və quothole & quot vəziyyətində, çuxura həmin DEM -də istifadə edilən məlumat tipinin minimum və ya maksimum dəyəri təyin ediləcək.

Həmişə boşluqların doldurulduğu DEM məlumat dəstlərinin & bitmiş & quot versiyalarını yükləməyə çalışın. DEM ərazinizdə çuxurlar varsa (NODATA dəyərləri olaraq da bilinir), məsələn, gdal alətlərindən istifadə edərək əllə təmir etməyə çalışın. gdal_fillnodata.py.


QGIS Python - Coğrafi İnformasiya Sistemlərindən istifadə edərək hər hansı bir Raster Faylını yükləyə bilmirik

Bu, QGIS - versiya 2.14.0 'Essen' in növbəti buraxılışı üçün dəyişiklik qeydidir. Essen, 2012 və 2014 -cü illərdə geliştirici görüşlərimizə ev sahibliyi edən şəhər idi.

Uzun müddətli buraxılış

Bu, 'LTR' (Uzun müddətli buraxılış) təyin edildiyi üçün xüsusi bir buraxılışdır. LTR buraxılışları backported hata düzeltmeleri ilə dəstəklənəcək bir ilvə daimi xüsusiyyət dondurulacaq (yəni heç bir yeni xüsusiyyət əlavə edilməyəcək, yalnız hata düzəlişləri və əhəmiyyətsiz yeniləmələr). Qeyd edək ki, LTR buraxılışlarımızın müddətini iki ilə qədər uzatmaq üçün müzakirə edirik, lakin texniki səbəblərə görə bunu QGIS 3.2 -ə qədər etməyəcəyik.

LTR buraxılışlarının məqsədi, ildə bir dəfədən çox istifadəçi bacarıqlarının, təlim materiallarının və s. LTR -nin müvəffəqiyyəti sizdən çox asılıdır, sevimli istifadəçilərimiz - hata düzəlişlərinin maliyyələşdirilməsinə kömək etmək üçün dəstəyinizə ehtiyacımız var və dəstək provayderləri ilə dəstək müqavilələrinizdə sizin adınızdan edilən hər hansı bir səhv düzəltmənin LTR filialına tətbiq olunacağına əmin olmaq lazımdır. normal inkişaf şöbəmiz kimi.

Bir LTR sizin üçün vacibdirsə, lütfən, QGIS layihəsini birbaşa dəstəkləməyi də düşünün və ya kommersiya təminatçınızı LTR -ni müəssisənizin həlli üçün əsas kimi istifadə etməyə təşviq edin ki, hər kəs davamlı olaraq təkmilləşdirilən və təkmilləşdirilən sabit bir platformadan faydalana bilsin. Qeyd edək ki, sərhəddə yaşamağı sevən istifadəçilər və təşkilatlar üçün müntəzəm olaraq dörd aylıq buraxılışlarımız dayanmadan davam edəcək.

QGIS 2.14 'Essen' də yeni xüsusiyyətlər

QGIS 2.8 -dən (əvvəlki LTR versiyamız) təkmilləşdirirsinizsə, bu buraxılışda çoxlu yeni xüsusiyyətlər tapa bilərsiniz. Bu QGIS 2.14 də həmin buraxılışlarda nəşr olunan bütün xüsusiyyətləri ehtiva etdiyi üçün LTR 2.10 və 2.12 aralıq olmayan dəyişikliklər üçün dəyişiklik qeydləri ilə tanış olmağı tövsiyə edirik. Qeyd edək ki, 2.14 əvvəlcə adi paket depolarına daxil olur və LTR paket anbarlarında 2.8 -i dərhal əvəz etməyəcək. 2.16 buraxıldıqda bu baş verəcək.

Proqrama yeni xüsusiyyətlər əlavə edildikdə, yeni səhvlərin olma ehtimalını ortaya qoyurlar - bu buraxılışla bağlı hər hansı bir problemlə qarşılaşsanız, QGIS Bug Tracker -ə bilet göndərin.

Vaxtlarını və səylərini könüllü olaraq verən (və ya insanları maliyyələşdirən) inkişaf etdiricilərə, sənədləşdiricilərə, sınaqçılara və orada olan bir çox insana təşəkkür etmək istərdik. QGIS cəmiyyətindən ümid edirik ki, bu buraxılışdan zövq alacaqsınız! Vaxt, pul bağışlamaq və ya başqa bir şəkildə QGIS -in daha möhtəşəm olması ilə məşğul olmaq istəyirsinizsə, lütfən qgis.org saytına gedin və kömək edin!

QGIS donorlar və sponsorlar tərəfindən dəstəklənir. Layihəyə böyük və kiçik maliyyə yardımı edən donorların mövcud siyahısını donorlar siyahımızda görmək olar. Layihənin rəsmi sponsoru olmaq istəyirsinizsə, ətraflı məlumat üçün sponsorluq səhifəmizi ziyarət edin. QGIS -ə sponsorluq etmək, altı aylıq geliştirici görüşlərimizi maliyyələşdirməyimizə, layihə infrastrukturunu qorumağımıza və səhvlərin aradan qaldırılması səylərini maliyyələşdirməyimizə kömək edir. Mövcud sponsorların tam siyahısı aşağıda verilmişdir - bütün sponsorlarımıza çox təşəkkür edirik!

QGIS Pulsuz bir proqramdır və istifadə etmək üçün heç bir şey ödəmək öhdəçiliyiniz yoxdur - əslində maddi və sosial vəziyyətinizdən asılı olmayaraq uzaq və uzaq insanları bu proqramdan istifadə etməyə təşviq etmək istəyirik - insanlara məkan qərar vermə vasitələri ilə güc verəcəyinə inanırıq. bütün insanlıq üçün daha yaxşı bir cəmiyyətlə nəticələnir. QGIS -i dəstəkləyə bilsəniz, edə bilərsiniz


Kosmosda Tısbağalar! GIS və NetLogo inteqrasiyası

Schelling ’s segregation modeli kimi klassik agent əsaslı modellər, kompleks davranışların sadə davranış qaydalarından necə yarana biləcəyini öyrənmək üçün dünyanın necə işlədiyinə dair çox sadə fikirlərdən istifadə edir. Ayrılma kimi ümumi bir problemlə məşğul olanda bu əlbəttə faydalıdır, amma modelimizi tətbiq etmək istədiyimiz konkret bir nümunə tədqiqatımız varsa nə edək? Modellərin siyasət və qərar vermə üçün istifadə ediləcəyi zaman modellərin hər bir halda xüsusi məlumat dəstləri ilə inteqrasiyası xüsusilə vacib olur. Bu hallarda, real şəraitdə şərh edilə bilən nəticələr çıxara bilən modellərin olması çox vaxt lazımdır. Araşdırılan sistemlərin bir laboratoriya ilə məhdudlaşa bilmədiyi arxeologiya və digər fənlər üçün bu, çox vaxt məlumatlarımızı məkan baxımından nəzərdən keçirə bilmək deməkdir. Real coğrafi şəraitdə işləyən modellər qurmaq istəyiriksə (və agentlərə əsaslanan modellərin bir çox arxeoloji tətbiqi bu məqsədə yönəldilmişdir, nümunələr üçün bura və ya buraya baxın), coğrafi məlumatları modellərlə inteqrasiya etmək üçün bir yol tapmalıyıq. Bu təlimatda, NetLogo istifadə edərək bunu necə edəcəyimi danışacağam.

NetLogo platforması, GIS -in bir neçə əsas xüsusiyyətinə malikdir, bu mənada məkan məlumatlarını sistemli şəkildə izləyir və məkan məlumatlarının vizualizasiyasını yaratmaq üçün istifadə edilə bilər. Bununla birlikdə, əksər tətbiqlər üçün NetLogo modelləri tərəfindən yaradılan məkan məlumatları kobud abstraksiyalardır (məsələn, bu yamaqlar "ot", digər yamalar "ot deyil"). NetLogo, NetLogo interfeysindəki dünya pəncərəsinə sağ tıklayaraq və "redaktə et" seçərək idarə edilə bilən daxili, barmaqlı bir topologiyaya malikdir. Burada mənşə nöqtənizi, maksimum və minimum koordinatlarınızı, yamaq ölçüsünüzü və dünyanın toroid və ya silindr olaraq "bükülməsini" təyin edə bilərsiniz. Verilərinizi əlavə edərkən bunları nəzərə almaq istəyəcəksiniz, çünki bunlar məlumatlarınızın NetLogo dünyasına necə çevriləcəyini təsir edəcək.

Fayl giriş/çıxış əmrlərindən istifadə edərək GIS məlumatlarının idxalı

NetLogo-ya məlumat daxil etməyin bir yolu, Netlogo-nun istifadəçi tərəfindən müəyyən edilmiş qaydalara uyğun olaraq mətn sənədlərində oxumasına imkan verən fayl giriş-çıxış əmrlərindən istifadə etmək olardı. Buna bir nümunə NetLogo model kitabxanasının Kod Nümunələri bölməsində tapıla bilər ("Fayl Giriş Misalı.nlogo"). Bu modeli açarsanız, üç düymə var: "yük-yamaq-məlumat", "şou-yamaq-məlumat" və "yük-öz-yama-məlumat". "Yükləmə-yamaq-məlumat" düyməsini basarsanız, belə görünən bir pəncərə açılır:

Başqa bir şey olmamış kimi görünmür, amma bu düyməni basdığınız zaman bəzi kodlar arxa planda işləyir:

Bunun üçün ilk növbədə məlumat faylının ("File IO Patch Data.txt") olub olmadığını yoxlamaqdır və əgər bu faylın indiki qovluqda olmadığını bildirən bir mesaj göndərər. NetLogo, yalnız modelin özü ilə eyni qovluqda yerləşdiyi və ya başqa bir fayl yeri göstərdiyiniz halda bir fayl tapacaq. Ancaq bu vəziyyətdə fayl eyni qovluqda olmalıdır, buna görə də heç bir problem olmamalıdır. NetLogo sonra boş bir siyahı açır yamaq məlumatlarıvə sonra məlumatları oxuyur. Məlumatlar, hər biri bir yamağın x və y koordinatlarını və sonra bu yamaya əlavə ediləcək rəng dəyərini əks etdirərək üçə bölünə bilən ədədlər ardıcıllığı ilə gəlir. Eynilə:

Sonra model a istifadə edir isə şərti ilə döngə sonunda fayl deyil? bütün faylı təkrarlamaq üçün. Döngü ətrafında hər gedişində NetLogo fayl oxumaq üç mətn blokunu oxumaq üçün üç dəfə əmr edin (hər biri məlumat faylında bir boşluqla ayrılır), onları vahid dəyərlər siyahısına birləşdirin (məsələn [-17 17 9.9999]) və adlanan siyahıya əlavə edin yamaq məlumatları. Fayl sona çatdıqda isə loop dayanır və bütün məlumatlar NetLogo-da yamaq-məlumat dəyişənləri siyahısına daxil edilir. Fayl istifadə edərək bağlanır fayl bağlayın birdən çox fayl istifadə edərək oxuyub yazmağı bitirsəniz bunu etmək vacibdir.

Növbəti addım "məlumatları göstər-yamaq" düyməsini basmaqdır. Bu düyməni basmaq bu kodu işə salır:

Bu kod əvvəlcə bütün mövcud varlıqları modeldən (cp = aydın ləkələr, ct = təmiz tısbağalar). Sonra, olduğu müddətcə yamaq məlumatları siyahısı mövcuddur, hər bir alt siyahıda oxuyacaq ön əmr. The ön command, siyahıdakı hər bir element üzərində təkrarlanan bir döngədir. Kodunuzla sözügedən maddəyə istinad etmək istəyirsinizsə, ?. The ? "bu siyahıdakı bir maddə" üçün dayanır. Bu halda, ? daxilindəki hər bir alt siyahıya aiddir yamaq məlumatlarıvə kimi ön loop siyahı boyunca davam edir, hər bir alt siyahı olur ? öz növbəsində. Beləliklə, kod [-17 17 9.9999] olan ilk alt siyahını oxuduqda bunu istəyəcək birinci? maddə 1?, "(bu alt siyahıdakı ilk maddə) (bu alt siyahıdakı ikinci maddə)" və ya -17 17. The birinci əmr, alt siyahıdakı əmrdən istifadə edə biləcəyiniz ilk maddəyə aiddir maddə 0 bu maddəyə istinad etmək. Alt siyahıdakı ikinci maddədir maddə 1, və sair. Sonra bu yamağı soruşur (yamaq -17 17) -ə rəngi son olaraq təyin etmək?, tələb edən sonuncu maddə (buna da aid edilə bilər maddə 2) 9.9999 olan alt siyahıda (ağ bir kölgə üçün rəqəmsal kod). A daxilində siyahı/alt siyahı quruluşu ön loop bir az qarışıq ola bilər, inşallah bu diaqram əlaqələri bir az daha yaxşı göstərir:

Hər bir alt siyahı oxunduqdan və yamalara bir dəyər verildikdən sonra, hər yamanın öz rənginə sahib olması və dünya belə görünür:
Kod rəng variantları əvəzinə, bu metodu cədvəl hüceyrələrinə coğrafi məlumatları (məsələn, yüksəklik, bitki örtüyü və s.) Daxil etmək üçün istifadə edə bilərsiniz. Əlavə olaraq, məlumatlarınızın nöqtə örtükləri olmasını istəyirsinizsə, onları yalnız iki onluq koordinat və bir dəyər dəsti ilə ifadə edə və bunları yarat-tısbağalar əmrindən istifadə edərək agentlərə ötürə bilərsiniz. Misal üçün:

Bununla birlikdə, məlumatlarınız bu formatda deyilsə (və ya asanlıqla çevirə bilmirsinizsə), başqa bir (bəlkə də daha asan) seçim NetLogonun GIS uzantısından istifadə etməkdir.

GIS uzantısından istifadə

NetLogo GIS uzantısı, standart GIS məlumat formatlarının bir NetLogo modelinə əlavə edilməsinə və idarə edilməsinə imkan verir. Digər mənbələrdən yüklənmiş və ya sahədə GPS istifadə edərək qeydə alınan məlumatlarla birbaşa işləmək istəyirsinizsə, bu, həqiqətən faydalıdır. Bu uzantı NetLogo ilə əvvəlcədən paketlənmişdir, buna görə özünüzü yükləmək və ya konfiqurasiya etmək lazım deyil. Lazım olan tək şey bu kodu modelinizin üstünə əlavə etməkdir:

NetLogo GIS uzantısı həm raster, həm də vektor (shapefile) məlumatlarını idarə edə bilər. NetLogo model kitabxanasının Kod Nümunələri bölməsində GIS kodunun necə işlədiyinə dair nümunələr var. Aşağıdakı işlənmiş nümunə tək bir NetLogo modelində hər iki növ məlumatdan istifadə edəcək.

Raster məlumatları yalnız NetSCo'ya ASCII (.asc) və ya ESRI grid (.grd) faylları olaraq birbaşa idxal edilə bilər. Hər bir faylın düzgün formatda olan bir proyeksiya faylı (.prj) faylı ilə müşayiət olunması vacibdir.

Sahil balığı populyasiyalarında çay axıdılması ilə maraqlandığımı söyləyin. Başlamaq üçün GEBCO dünya batimetrik məlumat bazasından bəzi yüksəklik/batimetrik məlumatları yükləyəcəyik. Bir kvadratı 150 E -dən 170 W -a və 60 S -dən 20 S -ə (Yeni Zelandiya ətrafı) çəkib "nz_area.asc" olaraq qeyd edəcəyəm. Sonra faylları (nz_area.asc və nz_area.prj, ən azından) modelimizin saxlandığı qovluğa atacağıq.

Pikseldə 30 qövs saniyə miqyasında qeydə alınan məlumatların özü bizə 4800 x 4800 piksellik bir şəbəkə verir. Dünyanı bunu qəbul edəcək şəkildə qurmaq üçün, ayarların mənşəyinin yeri sol alt küncdə olması üçün redaktə etməli, max-pxcor və max-pycor'u 199 olaraq təyin etməli və 2 və ya daha çox bir piksel ölçüsü seçməlisiniz. Bu, xəritəni ekranınızda ağlabatan bir ölçü halına gətirməlidir, ancaq bunu daha sonra uyğun gördüyünüz kimi dəyişə bilərsiniz.

Bu kodu modelinizə əlavə etmək, GIS məlumatlarını birbaşa idxal etməyə imkan verməlidir:

Qlobal dəyişən yüksəklik raster verilənlər bazasının model daxilində saxlandığı yer olacaq. The gis: yük məlumatları komanda məlumatları yükləyir, halbuki gis: set-world-zarf-ds dünyanın zərfini GIS məlumat bazası ilə uyğunlaşdırır. Birdən çox GIS qatı ilə işləyirsinizsə və dünyanızın sərhədlərini məhdudlaşdırmaq istəyirsinizsə, bu son əmr çox vacibdir.

Bəzən məlumatların yüklənməsi səhvlər yaradır. Budur ümumi bir şey:

Buradakı problem, məlumatların istədiyimiz kimi formatlanmamasıdır (bu, hər halda məlumatlarla çox olur). NetLogonun GIS girişi bir neçə məsələyə həssasdır:

  1. Ondalık (.) Yerinə vergül (,) işlətməz. Hər hansı bir vergül və ya digər durğu işarələrindən qaçınmaq lazımdır.
  2. Bəzi NO_DATA dəyərlərini sevmir. Bunları başqa istifadə edilməyən tam ədədlərlə əvəz etməyiniz daha yaxşıdır (-9999 kimi).
  3. Başlıq şərtləriniz dəyərlərindən tək boşluqlarla ayrılmalı və bir -birinə qarışmamalıdır. Belə bir şeyə baxmalıdırlar

ncols 4800
qiyməti 4800
xllcorner 150
yllcorner -60
hüceyrə ölçüsü 0.00833333333333333

Bu problemləri həll etmək üçün sənədinizi bir mətn redaktoru ilə açın, lazımi dəyişiklikləri edin və sonra məlumatlarınızı qeyd edin və yenidən cəhd edin (qəribə vaqon qaytarılması və bu kimi məlumatların formatlanması üçün bunu bir neçə dəfə yoxlamalı ola bilərsiniz). . Bu addımları izləsəniz, məlumatlarınızı formaya salmalısınız.

Java yığın boşluğunu aşarsanız və ya səhv proyeksiya məlumatlarınız varsa digər ümumi səhvlər baş verə bilər. Birincisidirsə, məlumat dəstiniz NetLogo tərəfindən istifadə edilə bilməyəcək qədər böyükdür. Java yığın ölçüsünü dəyişdirərək bunun öhdəsindən gələ bilərsiniz, ancaq bu yalnız müəyyən bir nöqtəyə qədər işləyir. QGIS -ə və ya başqa bir GIS platformasına yükləməyə və ya modelinizə mənfi təsir etmədiyi təqdirdə faylları kiçiltmək üçün ya əhatə dairəsini kəsməyə və ya daha aşağı bir qətnaməyə yenidən nümunələməyə cəhd edə bilərsiniz. Məsələ proyeksiya məlumatlarıdırsa, məlumatlarınız üçün düzgün biçimləndirilmiş bir proyeksiya faylına sahib olduğunuzdan əmin olun. Bu vəziyyətdə, GEOGCS formatı belə görünür:

Məlumat yüklədikdən sonra onu görselleştirmek isteyirik. Edə biləcəyimiz ilk şey gis: boya raster məlumatları ilə uyğunlaşmaq üçün yamaları rəngləndirmək əmri. Bu kodu əmr satırına daxil etməyə çalışın:

Bu şəkil dünya pəncərəsində ortaya çıxmalıdır.

Ancaq, ehtimal ki, məlumatları görməkdən daha çox iş görmək istəyirik. Agentlərin onunla əlaqə qurmasına icazə vermək daha yaxşı olardı. Bunu edə biləcəyiniz iki yol var. Birincisi, agentlərdən istifadə etdikləri hər yerdə rasterdən nümunə götürməsini istəməkdir gis: raster nümunəsi əmr:

Burada, agentlər, durduqları yerdən yüksəklik məlumatlarını oxuyacaq və bunu öz dəyişənlərinə çevirəcəklər hündürlük_asl. Əlbəttə ki, hər dəfə bir agentin bir şey etməsini istədiyiniz zaman raster məlumatlarını çağırmaq istifadə etmək istədiyinizdən daha çox kodlaşdırma ola bilər. Bunu öndən çıxarmaq və raster məlumatlarını yamaq dəyişəninə gətirmək istəyə bilərsiniz. Bunu istifadə edərək edə bilərsiniz gis: raster tətbiq edin əmr:

İndi yamaqlar yüksəklik dəyərinə malikdir (adlanır yüksəklik) raster məlumatlarından götürülür. Bu kodu istifadə edərək dünyamızı bu məlumatlara əsaslanaraq yenidən rəngləndirə bilərik:

Bu, dəniz səviyyəsindən yuxarıdakı hər şeyin yaşıl rəngdə, dəniz səviyyəsindən aşağı olanların isə mavi rəngli olduğu bir dünya yaradır. Bu belə görünməlidir:

Şəkil faylları (.shp) və ya vektor məlumatları kifayət qədər sadə bir şəkildə NetLogo -ya idxal edilə bilər, ancaq NetLogo dünyasının başlanğıcdan büküldüyü üçün şəkil faylları ilə agentlər/yamalar arasındakı topoloji əlaqələr bir az çətin ola bilər və ümumiyyətlə yaxşı bir anlayış tələb edir. siyahıların necə işlədiyini (yuxarıya baxın).

Bu nümunə üçün NZ meşə xidmətindən bəzi polyline çay məlumatlarından istifadə edəcəyik. Yenə məlumatları yükləyəcəyik və faylları modelimizlə eyni qovluqda saxlayacağıq. İndi bir yaratmaq üçün qloballaşmalarımızı redaktə etməliyik çaylar dəyişən və sonra redaktə edin yük-gis yeni verilənlər bazasına yükləmək üçün son bölmədən prosedur:

Bu kifayət qədər asandır və rəngli ləkələr son hissədən prosedur:

Bu son iki sətrin əlavə edilməsi, üst -üstə düşən çay məlumatlarını görməyə imkan verir:

Mükəmməl bir vizuallaşdırma deyil, ancaq fikir əldə edirsiniz. Bu mərhələdə agentlər məlumatlarla birbaşa qarşılıqlı əlaqə qura bilməzlər. Bir agentin məlumatlarla qarşılıqlı əlaqədə olub -olmaması, onun şəkil faylına olan münasibətindən və ya daha əhəmiyyətlisi xüsusiyyətlərindən və zirvələrindən asılıdır. Şəkil faylının fərdi xüsusiyyətlərini (yəni bir çay hissəsini təmsil edən hər bir polyline) əldə edə bilərik gis: xüsusiyyət siyahısı əmr. Bu kodu əmr satırına daxil etməyə çalışın:

Bu kimi görünən bir siyahı hazırlamalıdır:

Hər bir cüt qıvrım aşırma << >> bir vektor xüsusiyyətini ehtiva edir, bu halda təxminən 6.935 kilometr uzunluğunda bir çay seqmentini təmsil edən bir polyline. Bundan istifadə etməklə çay məlumatlarını təpələri baxımından əldə edə bilərik gis: vertex siyahısı Müəyyən bir xüsusiyyət haqqında əmr (müalicə ilə əldə edilə bilər gis: xüsusiyyət siyahısı NetLogo siyahısı kimi gis: vertex siyahısı (maddə 0 gis: çayların xüsusiyyət siyahısı)). Bu, nöqtə məlumatları ilə işləyərkən xüsusilə faydalıdır, çünki hər bir nöqtə öz zirvəsidir. Bənzər bir əmr gis: mərkəzdən, bir xüsusiyyətin mərkəzində tək bir təpə təklif edəcək. Bu, çay seqmentinin coğrafi mərkəzini müəyyən etmək üçün istifadə edilə bilər. Nəhayət, bu təpələr gis: location-of əmrindən istifadə edərək NetLogo koordinatlarının siyahısına çevrilə bilər. Misal üçün:

Bu, [100.3872222118864 77.92170204594207] olan çaylar məlumat bazasındakı ilk xüsusiyyətin centroidinin NetLogo koordinatlarına çevriləcəkdir.

Agentlərin vektor məlumatlarından xəbərdar olmasını təmin etmək üçün onların məlumatlarla topoloji əlaqələrini qururuq. Əsas əlaqələr, boolean dəyərləri qaytaran bir sıra əmrlərdən istifadə etməklə qurulur:

gis: kəsişir? agentin və ya yamanın məlumatlarla kəsişdiyini müəyyən edir
gis: ehtiva edir? agentin və ya yamanın məlumatları ehtiva etdiyini təyin edir
gis: tərkibində? agentin və ya yamanın məlumatlarda olub olmadığını müəyyən edir

Bir agentin çayda olub olmadığını müəyyən etmək istəsək, bunu belə bir şeydən istifadə edərək edə bilərik:

Bununla birlikdə, agentlərin çayların yerini tapmaqda çətinlik çəkdiyini görə bilərsiniz, baxmayaraq ki, rəsmə baxdıqda onların üstündə görünürlər. Bunun səbəbi, həm çayın, həm də agentin çox dəqiq yerlərə sahib olmasıdır. Bir agentin bir çay ilə kəsişən bir yamada olub olmadığını müəyyən etmək daha faydalı ola bilər. Bu olardı:

Daha irəli gedir

GIS uzantısında araşdırmağa dəyər olan əlavə əmrlər var, çünki onlar maksimum və minimum dəyərləri əldə etmək və s. Ayrıca, GIS məlumatlarını NetLogoya almaq əyləncənin yalnız yarısıdır: modelinizdən məlumat çıxarmaq üçün bu uzantıdan istifadə edə bilərsiniz. NetLogodan bir verilənlər bazası yaratmaq istəyirsinizsə, onu birləşdirməlisiniz mağaza məlumat bazası yaradılan bir verilənlər bazasını aşağıdakılardan biri ilə saxlayan əmr:

yamaq-verilənlər bazası yamaq dəstini raster verilənlər bazasına çevirir
tısbağa məlumat bazası bir agenti bir nöqtə vektor məlumatlarına çevirir
link-verilənlər bazası bir dəsti bir xətt vektor məlumatlarına çevirir

Ayrı bir proqramda məlumat ixrac etmək və məkan təhlili aparmaq sizi narahat edə bilmirsə, NetLogo R uzantısından istifadə edərək məkan təhlili apara bilərsiniz. spatstat paket. R uzantısı ilə necə işləyəcəyinizə dair təlimatları bu əvvəlki blog yazısında tapa bilərsiniz spatstat paket burada.

Bir xəbərdarlıq sözü əlavə etmək istərdim: modelləri real dünya məlumatlarına bağlamaq potensialı səbəbindən həqiqi məkan əlaqələri ilə işləmək cazibədar görünə bilər, lakin bu modelə əlavə mürəkkəblik əlavə edir və ümumiliyini azaldır. ABM -də çox vaxt nəzərə alınmayan coğrafi məlumatların təqdim edilməsinə xas olan bəzi məsələlər var. Heç bir məkan məlumatı reallığın mükəmməl bir nümayəndəsi deyil və müəyyən mübadilə həmişə edilir. Məsələn, tətbiqinizin nə olduğuna və modelinizin ölçüsünə görə, məkan məlumatlarınızın necə yansıtıldığını düşünməli və proyeksiya fərqlərini nəzərə almaq üçün agent davranışlarını diqqətlə kalibr etməlisiniz. Yuxarıdakı nümunədə, xəritənin şimal hissəsində şərqdən qərbə qədər olan miqyas xəritənin cənub hissəsindəki ölçüdən çox fərqlidir. Əlavə olaraq, modelləri real məkanlara köçürmək, nəticələrin ümumiyyətlə modeldə istifadə olunan xüsusi şərtlərdən və məlumatlardan daha çox asılı olması və araşdırılan proseslə əlaqədar daha az olması deməkdir. Məqsədiniz hipotez testidirsə, bu məqsədəuyğun ola bilər, ancaq sahəyə xüsusi modelləşdirmə işləri aparmadan əvvəl bir prosesin nə qədər yaxşı başa düşüldüyünü və hansı fərziyyələrin bir modelə daxil olduğunu düşünməyə dəyər.

Bu son narahatlıq əvvəllər də səsləndirilmişdi və bütün fənlərdəki modellər üçün real əhəmiyyət kəsb etməlidir. Ancaq bu, burada və indi olan məsələlər üçün faydalı olan məlumatlara olan ehtiyacımızla rəqabət aparır. Mövzu ilə əlaqədar redaktə edilmiş bir cildin girişində H. Randy Gimblett -in bir təklifi ilə sona çatacağam və hesab edirəm ki, modellərdəki özəllik narahatlıqları ilə birlikdə nəzərə alınmalı olan əks nöqtəni təmin edir:

Şübhəsiz ki, insan/vəhşi təbiət/landşaft qarşılıqlı əlaqələrini araşdırmaq üçün GIS ilə birlikdə fərdi əsaslı modelləşdirmə üsulları qərar qəbul edənlər üçün güclü bir vasitədir. Fərdi davranışları və əlaqəli mühitləri əks etdirməklə yanaşı, həm sosial, həm də ekoloji təsirləri dinamik bir sistemdə araşdırmaq qərara gələnlərə fövqəladə mənzərələri anlamaq və qorumaqda kömək etmək üçün böyük potensiala malikdir.

…agent əsaslı simulyasiyalar, menecerlərə və tədqiqatçılara alternativ ssenariləri tətbiq etməzdən əvvəl araşdırmaq və müqayisə etmək və siyasət hərəkətlərinin nəticələri və sosial, ekoloji və iqtisadi təsirlər baxımından qiymətləndirmək üçün yeni və maraqlı yollar təqdim edir.


2 Cavab 2

SharePoint sənəd kitabxanası 30 milyon fayl və qovluğu heç bir problem olmadan saxlaya bilər. Faylları saxlamaq üçün müvafiq qovluq strukturları yaratmalısınız ki, heç biri 5000 siyahı eşik həddini keçməsin və hələ də sənəd kitabxanasını aça və əlaqəli axtarış qutusundan istifadə edə bilərsiniz. Bu ən yaxşı seçimdir, çünki bunu müasir siyahı təcrübəsi ilə istifadə edirsinizsə, müasir sənəd kitabxanasının sol üst küncündəki axtarış qutusu sizə cari qovluğun altındakı bütün alt qovluqların elementlərini göstərəcəkdir.

Və ya uyğun indeksli sütunlar yarada və sənəd kitabxananızda süzülmüş görünüşlər yaratmaq üçün istifadə edə bilərsiniz. Sənəd kitabxanasını standart olaraq açdığınız zaman 'gündəlik istifadə olunan fayllarınızı' bu şəkildə görə bilməlisiniz. İndi 'gündəlik istifadə edilməyən faylları' tapmaq üçün SharePoint axtarışından istifadə etməli olacaqsınız (əgər süzülmüş sütunlardan birini istifadə etməsəniz və 'xüsusi' istifadə edəcək 2 tarix arasında yaradılan bütün elementləri göstərməyiniz istəsəniz. sütun filtr kimi və bu sütunda indeks yaratmalısınız).

SharePoint axtarışından istifadə edirsinizsə, nəticəni göstərmək üçün xüsusi bir sənəd kitabxanasını göstərmək mümkündür. SharePoint axtarışından istifadə edərkən heç bir performans problemi olmamalıdır, yalnız məzmunun indekslənməsi bir az vaxt ala bilər.


3 Cavablar 3

Problemi həll etdim. İki yol var:

Yenidən yönləndirməni & amp & gt & gt -dən 2 & gt & amp1 -ə dəyişin. İndi crontab -e bənzəyir

Mən inanıram yuxarıda işləyir, çünki standart olaraq cron bash yerinə vəzifəni yerinə yetirmək üçün sh istifadə edir, buna görə & amp & gt & gt sh tərəfindən dəstəklənmir.

Crontab -e faylına SHELL =/bin/bash əlavə edərək standart qabığı dəyişdirin.

@RanRag -ın cavabına bir dipnot və ya əlavə əlavə etmək istərdim.

Qabığın yönləndirmə sintaksisinin /bin /sh ilə uyğun olduğundan əmin olun. /Bin /sh ilə etibarlı olmayan qabıq yönləndirmə sintaksisindən istifadə etməyə çalışsanız, əmriniz uğursuz olacaq və cron işiniz heç vaxt işləməyəcək.

/Etc/cron.d/example1 konfiqurasiya fayllarınızda kökdən başqa bir istifadəçi təyin edirsinizsə və həmin istifadəçinin giriş qabığı/bin/bash deyilsə. /etc/cron.d/example1 əmrində hələ də/bin/sh sintaksisindən istifadə etməlisiniz.


Nəhayət: Yenidən cəhd edin

Şifrə meneceri inkişaf dünyasına xoş gəldiniz! Texniki cəhətdən rəqabətdə olacağıq, amma varlığını bilməyən bir parol menecerindən istifadə etməli olan bir çox insan var ki, hamımız bazarı genişləndirməyə çalışırıq. Başqa bir yaxşı dizayn edilmiş parol menecerinin təklif olunduğunu görməkdən məmnunam, ancaq bəzi problemləri dərindən başa düşməyən insanlar tərəfindən hazırlanan ilan yağı yalnız bir sistemdən istifadə edən insanlara zərər verir. ümumiyyətlə parol menecerlərinin nüfuzuna xələl gətirir.

Bir mətn faylında bir qədər etibarlı şəkildə saxlanılması və sonra mətnin oxunması üçün kodun deşifr edilməsi üçün (ən yaxşı halda yalnız sahibi tərəfindən) kodlaşdırmanın "ən yaxşı" yolu nədir?

"Şifrələmənin" tam mənası budur. Bunun ən yaxşı yolu etibarlı bir kriptoqrafik şifrədən istifadə etməkdir (bir açarı və bəzi düz mətn məlumatlarını daxil edən və anlaşılmaz "şifrəli mətn" yayan və ya açar və bəzi şifrəli mətnləri götürən və orijinal düz mətni yayan bir funksiya). ). Açar (ən azından şifrələmə üçün bir açar və şifrəni açmaq üçün cütləşdirilmiş, lakin fərqli açarlardan istifadə etdiyiniz bəzi şifrələrdə şifrəni açmaq üçün istifadə olunan) gizli saxlanmalı və təcavüzkar tərəfindən əvvəlcədən təxmin edilməməlidir, lakin əksər şifrələr (düzgün istifadə edildikdə) məlumatları açarlarından xeyli uzaqda şifrələyə və deşifr edə bilər. Məsələn, 256 bit (32 bayt) açarı ilə şifrələnmiş 2 TB (2000000000000 bayt) sabit diskim var.

Hansı şifrənin "ən yaxşı" olduğu sualı bir çox şeydən asılıdır, lakin hazırda ən çox güvənilən şifrəyə AES (Advanced Encryption Standard) deyilir. AES özü yalnız kiçik məlumat bloklarını (tam 16 bayt) şifrələyə bilər, buna görə də blok şifrəsi iş rejimi və bəzən eyni düyməni (demək olar ki) məhdud olmayan sayda bloklarla yenidən istifadə etməyə imkan verən doldurma ilə birləşdirilir. blok ölçüsünün tam ədəd çoxluğu olmayan məlumatlarla. In this way, I can have some secret data (such as a password file) of essentially arbitrary length, and it is totally unreadable to anybody who doesn't have the right 16- or 32-byte key (which in practice can be derived from a password, though most real-world passwords are far more predictable than a proper encryption key so this does make it weaker)

Any decent password manager (including the multiple available commercial and/or open-source ones) use a "master password" or "master key" to protect the stored passwords. This master secret is used to encrypt and decrypt an encryption key (which is totally randomly generated and never stored in plain text, but is stored in encrypted form along with the encrypted passwords), and the encryption key is used to actually encrypt and decrypt the passwords (which, again, are never stored in plain text). The master can either be a key that is stored in some device (like a Yubikey or flashdrive that must be entered before decrypting the passwords), or a password itself that is turned into a cryptographic key by running it through a key-derivation function (essentially a very computationally expensive salted cryptographic hash function).

The reason for this additional layer of indirection (master key wrapping the encryption key which in turn wraps the passwords, rather than just using the master key to wrap the passwords) is so that you can change the master or have multiple master secrets (say, a password and also a recovery key stored on a hardware token) without needing to re-encrypt anything except the encryption key. This also makes it easier to handle password sharing between users (where one user wants to allow another user to see some of their passwords, but not all), if you ever desired to add that feature.

Unfortunately, Automate doesn't support any cryptographic ciphers (and the hash functions it supports are old and deprecated, although you can build a KDF out of those if you have to). Short of re-implementing something like Blowfish or AES using Automate - which you definitely should not do - that means the language is simply not suitable for any app that needs to handle sensitive data.

You seem to have a few false beliefs about security which I'm going to try to clear up here.

that means that the program will be open source, so I think it's impossible to make it completely secure because anyone can see & modify their local version of the code

There are lots of extremely secure open-source tools for storing secret data. A few examples: Gnu Privacy Guard (GPG), TrueCrypt/VeraCrypt, OpenSSL, numerous email clients with support for the OpenPGP and/or S/MIME standards like Thunderbird, etc. The key difference between all of these programs and your idea is that they all use actual encryption.

they need both the code & someone else's save-file to compromise the security, and realistically then it's already game over for any security program

This is very, very false. A crucial requirement of good encryption is that even if the attacker has the full ciphertext (encrypted data, such as your password save file, and any data typically stored along with it such as a message authentication code and the initialization vector for the encryption) and knows the full details of the algorithm used to encrypt it (such as AES-256 in CBC mode with that known IV and using PKCS5 padding, as implemented in a particular version of the open-source "OpenSSL" tool), the attacker hələ də should not be able to decrypt the data without a brute-force attack on the key, which can be made long enough that such an attack is totally impractical (we're talking "using every processor in existence on earth, you still wouldn't finish before the heat death of the universe" levels of impractical, here). That is what people mean when they say "obscurity is not security" if your system is secure only so long as the attacker doesn't know exactly how it works, it actually just isn't secure.

I'm not aiming for Bank-level security

Aim higher. Banks often don't actually use very good cryptography (or security in general), by modern standards. It would be harder to get into my password manager's vault than into my bank account, because my bank doesn't permit the use of passwords that are as strong as my password manager does, and the numbers needed to extract money from my account (account number + routing number, or card number + ZIP code + CVV or PIN) are probably easier to guess or find than even the bank account password (still not truly easy, but probably easier).

I don't really trust them since I can't know what their code is doing to my passwords

Even password managers that aren't 100% open-source should still enable you to see what they actually do with the passwords. An example is LastPass, which is commercial software but is offered as browser extensions. Browser extensions are written in JavaScript and are not compiled, so you can read the source code yourself and see exactly what it does (and you can also use your browser's developer tools to debug the extension while it works and monitor what network traffic it generates or receives). Obviously, you personally might not want to do this, but you could, and people have the idea is that yetər people do this that if they try to pull anything sketchy, it would get caught and announced publicly, and then nobody would use it anymore.

like maybe it's storing them on a central server. NO!

Some security people definitely agree with you that they don't want their password vault going to any device they don't control (such as a password manager company's server). However, I don't think you have a good grasp of the actual risks. Done right (and remember, you can verify that it's done right), the password manager company can never decrypt your vault, so even though they hold onto it they cannot peek inside. As mentioned above, even though they have the vault (the ciphertext) and obviously know exactly how it was encrypted (because it was their code that did it), they cannot decipher the contents without the encryption key, and well-designed password managers never store or transmit the encryption key (or any material used to derive it). There is still bəziləri risk, because they can try to steal or guess your master key somehow without you knowing that it's happening (for example, by trying to guess your password using an "offline" attack), which they cannot (usefully) do if they don't have the ciphertext (the vault), but it's probably a lot less risk than you thought.


Videoya baxın: Basic QGIS Tutorial - Open some Shapefile layers and a Project