Menyimpan Persamaan yang digunakan dalam Kalkulator Bidang QGIS?

10

Saya mencoba menghitung nilai tertentu dari titik yang baru dihitung. Jadi saya menggunakan kalkulator lapangan untuk menulis persamaan untuk menentukan nilai.

Apakah ada cara untuk menyimpan persamaan itu, sehingga jika dan ketika saya memulai pekerjaan baru, saya tidak perlu mengetik ulang di dalamnya?

Sesuatu yang mirip dengan cara Anda menyimpan gaya dan simbologi untuk berbagai titik.

R Kumar
sumber
Itu adalah permintaan fitur yang bagus dan akan mudah ditambahkan.
Nathan W

Jawaban:

5

QGIS menyimpan persamaan terakhir yang digunakan dalam kalkulator bidang di bawah tab "Terbaru" di mana Anda dapat menggunakannya kembali dengan mengklik dua kali

img bidang kalk

Tertawa
sumber
Itu benar jika OP tidak menggunakan persamaan lain nanti. Tetapi itu akan hilang pada saat OP menggunakan persamaan baru. The Recentkontainer hanya sementara.
ahmadhanb
5

Anda bisa menulis persamaan Anda di fungsi baru, dan kemudian Anda hanya perlu memanggil fungsi untuk menerapkan kembali perhitungan.

Buka kalkulator bidang, klik Function Editortab, new filelalu edit fungsinya. Pilih load. Perhatikan bahwa oktidak akan tersedia pada saat ini.

Kembali ke Expressiontab, pilih customgrup fungsi dan klik dua kali pada fungsi Anda. Pilih bidang yang akan diperbarui, dan tekan ok.


Jika Anda hanya ingin menggunakan nilai bidang dan konstanta, Anda bisa mengedit tanda tangan fungsi default, yang dimulai dengan value1. Dalam contoh saya, saya telah menghapusnya, tetapi Anda bisa menggunakan bidang ini untuk memberikan argumen baru.

Anda kemudian dapat mengakses nilai-nilai bidang fitur menggunakan feature["fieldName"].... hati-hati untuk memanggil fungsi ini hanya pada lapisan yang berisi bidang tersebut!

@qgsfunction(args='auto', group='Custom')
def funcTestCalc( feature, parent):
    return feature["fieldA"]+feature["fieldB"];

masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini

JGH
sumber
3

Selain solusi oleh @LaughU, Anda dapat memasukkan operasi kalkulator bidang apa pun ke dalam model grafis dan kemudian menyimpan dan menjalankan model. Ini tetapi mengharuskan nama kolom Anda selalu sama.

Erik
sumber
2

Jika Anda menambahkan titik baru ke lapisan yang ada, dan Anda ingin menjalankan perhitungan yang sama untuk titik itu seperti untuk semua titik lainnya, berikut adalah dua fitur yang berguna:

Bidang Virtual

Bidang virtual secara otomatis menghitung ekspresi untuk setiap atribut baru. Ini juga diperbarui secara berkala. Jadi, misalnya, untuk bidang virtual yang disebut "lintang" Anda bisa menggunakan ekspresi $y.

Pro dan Kontra Bidang Virtual:

  • Setiap kali Anda menambahkan titik baru, secara otomatis output ekspresi akan ditambahkan ke bidang ini.
  • Secara otomatis diperbarui setiap kali ekspresi keluar membuat perubahan. Jadi, jika Anda memindahkan titik dalam contoh, nilai "garis lintang" akan berubah secara otomatis.
  • Anda tidak dapat mengedit nilai bidang virtual.
  • Bidang virtual disimpan sebagai bagian dari file proyek QGIS, bukan sebagai bagian dari shapefile (atau format apa pun yang ada di layer Anda). Jadi jika Anda membuka lapisan dalam proyek yang berbeda, itu tidak akan memiliki bidang virtualnya.

Bidang Reguler dengan Nilai Bidang Default

Anda bisa menyiapkan bidang untuk memiliki nilai default berdasarkan ekspresi. Saat Anda membuat titik baru, atributnya akan terisi otomatis dengan nilai default. Anda dapat mengubah nilai atribut. Tidak diperbarui secara otomatis. *

Pro dan Kontra Nilai Bidang Default:

  • Setiap kali Anda menambahkan titik baru, secara otomatis output ekspresi akan ditambahkan ke bidang ini.
  • Tidak diperbarui secara otomatis. Dalam contoh ini berarti bahwa jika Anda memindahkan titik yang ada, nilainya "garis lintang" tidak akan diperbarui.
  • Anda dapat mengubah nilai bidang ini.
  • Disimpan sebagai bagian dari shapefile. Jadi jika Anda membuka layer dalam proyek yang berbeda, itu akan memiliki bidang ini di tabel atributnya.

* Dalam QGIS 3.2, nilai-nilai bidang default dapat (opsional) diatur ke "menerapkan nilai default pada pembaruan." Dengan opsi ini, jika Anda memindahkan titik di mana nilai default adalah $ynilai saat ini akan digantikan oleh koordinat y yang baru.

csk
sumber
Saya pikir nilai field default dapat diatur ke pembaruan otomatis di QGIS 3.2.
she_weeds
@she_weeds Terima kasih telah menunjukkannya. Saya akan memperbarui jawaban saya untuk memasukkan informasi itu.
csk