Archive

Archive for the ‘GIS’ Category

QgsExpression with Python

In QGIS, there is this cool feature called by Expression. I use it mostly on Field Calculator in attribute table. There are some places that you can find also. You can read more about this Expression here.

This week, I tried to use it in Python. It turned out very simple (of course, I need to Google it here and there first how to use it). The class name is QgsExpression. You can import it from qgis.core. Below a sample code how to use it:

from qgis.core import QgsField, QgsExpression
def sum_fields(layer, output_field_name, input_fields):
    """Sum the value of input_fields and put it as output_field.

    :param layer: The vector layer.
    :type layer: QgsVectorLayer

    :param output_field_name: The output field name.
    :type output_field_name: str

    :param input_fields: List of input fields' name.
    :type input_fields: list
    """
    # Creating expression
    string_expression = ' + '.join(input_fields)
    sum_expression = QgsExpression(string_expression)
    sum_expression.prepare(layer.pendingFields())

    # Get the output field index
    output_idx = layer.fieldNameIndex(output_field_name)
    # Output index is not found
    if output_idx == -1:
        output_field = QgsField(output_field_name, QVariant.Double)
        layer.startEditing()
        layer.dataProvider().addAttributes([output_field])
        layer.commitChanges()
        output_idx = layer.fieldNameIndex(output_field_name)

    layer.startEditing()
    # Iterate to all features
    for feature in layer.getFeatures():
        feature[output_idx] = sum_expression.evaluate(feature)
        layer.updateFeature(feature)

    layer.commitChanges()

The code above is a function to sum the value in list of fields (input_fields) into an output field (output_field_name) in a layer.

Basically, you just need to create the expression, and evaluate it to get the value from the expression. In this doc, I found out that using prepare will make the evaluation faster for many features.

Embed Peta dari CartoDB

5 Maret 2015 1 komentar

Belum lama ini saya mendapatkan pemberitahuan jika peta dari https://cartodb.com/ bisa di-tanam (embed) pada blog wordpress gratisan, seperti blog ini.

Caranya cukup mudah:

  1. Buat peta dan visualisasi di CartoDB
  2. Klik tombol share di sudut kanan atas seperti di bawah ini

    Share Button

    Share Button

  3. Kemudian, akan muncul jendela seperti di bawah ini:

    Get Simple URL

    Get Simple URL

  4. Selanjutnya, akan terbuka tab baru di browser Anda.
  5. Anda dapat menambahkan peta Anda tersebut di post blog Anda dengan cara Add Media –> Insert From URL, lalu copy URL dari tab yang terbuka tadi. Dan tekan Insert to Post.

Contoh hasilnya, bisa dilihat di peta di bawah ini:

Peta di atas merupakan peta visualisasi tornado yang terjadi di Amerika Serikat dalam suatu rentang waktu. Peta ini saya buat ketika mengikuti online course dari CartoDB, berjudul Online Mapping for Beginners

Selamat mencoba 🙂

Mencoba QGIS-Master (2.0)

13 April 2013 1 komentar

Saya pertama kali menggunakan QGIS 1.8, dan sampai sekarang versi 1.8 adalah versi yang terbaru. Namun (mungkin) pertengahan tahun ini akan dirilis versi 2.0. Kita bisa mencicipi terlebih dahulu QGIS versi yang akan datang ini dengan menginstal versi masternya. Silahkan buka pranala ini. Untuk Windows, silahkan download OSGeo4W dan run administrator.

Saya bukan masih baru dalam dunia GIS ini, termasuk dalam penggunaan QGIS ini. Baru-baru ini saya mencoba (dalam training singkat di kantor) QGIS versi master yang akan dirilis sebagai versi 2.0.

Saya tidak cukup tahu banyak tentang QGIS ini, terutama penggunaan dalam sehari-harinya. Mungkin untuk beberapa API atau plugin-nya, saya cukup tahu. Maklum, tidak pernah makan asam garam-nya, langsung loncat ke kodingannya.

Nah, beginilah kurang lebih hasil coba-coba saya.

QGIS Master Screenshot

QGIS Master Screenshot

Saya mencoba labeling-system pada QGIS Master ini. Nampaknya menyenangkan.

Labeling QGIS Master

Labeling QGIS Master

Mencoba Map Composer.

Map Composer QGIS-Master

Map Composer QGIS-Master

Hasil pembuatan peta. Lumayan lah, untuk seorang yang tidak bisa mencampur warna.

Map result

Map result

Kategori:GIS Tag:,
%d blogger menyukai ini: