Thursday, 14 June 2012

Mengubahsuai Sistem Koordinat : Kajian Kes - Putrajaya Grid

Apa khabar semua? Hari ni saya dapat panggilan emergency dari seorang sahabat.. kira macam talian hayat ler macam dalam program Who Wants to be a Millionaire tu..hehe.. Sahabat saya tu ada buat kerja-kerja field data collection di kawasan Putrajaya dan sekarang ni data-data tu nak diserahkan kepada pihak Perbadanan Putrajaya. Tahukah anda, Perbadanan Putrajaya ni, data-data geospatial diaorg disimpan di dalam custom Cassini coordinate system yang dipanggil Putrajaya Grid. Jadi soalan cepumas daripada sahabat saya tu ialah macamana nak convert data-data yang dah dicerap tu ke dalam Putrajaya Grid? Data-data tu pula sekarang ni di dalam sistem koordinat RSO.

OK, jadi soalan pertama yang saya tanya ialah "client ada bagi tak custom parameter utk koordinat Putrajaya Grid tu?". Jawapannya ada... ok kalau macam tu baru lah boleh saya proceed next step. Sahabat saya tu pun terus email custom parameter lebih kurang macam gambarajah di bawah ni :

Nota : nilai custom parameter 123,456.789 adalah bukan nilai sebenar.

Saya nyatakan nilai custom parameter 123,456.789 di atas tu bukan nilai parameter sebenar sebab saya pun tak pasti adakah pihak Perbadanan membenarkan nilai parameter tu didedahkan kepada umum, so untuk jalan selamat, kita anggapkan sahaja nilai mudah 123,456.789. Apa yang penting  saya nak tunjukkan disini adalah konsep bagaimana nak project data kita kepada custom coordinate system. Dari penerangan rajah di atas, Putrajaya Grid menggunakan sistem koordinat Cassini, tetapi sedikit pengubahsuaian pada parameter False Easting dan False Northing. Nilai False Easting (E Cassini) perlu dianjak (shift) kepada 123,456.789 meter begitu juga dengan False Northing (N Cassini)...dimaklumkan lagi sekali...nilai shift tu bukan nilai sebenar. :D



Ok..sekarang ni macamana nak masukkan nilai shift tu?? Sabar2.. mula-mula masukkan dulu data yang nak convert tu ke dalam ArcMap.



Data yg nak di tukar ke Putrajaya GRID... source dalam RSO
OK, sekarang data dah masuk dlm ArcMap.. next step, setkan koordinat sistem Data Frame sebagai Cassini. Caranya, dari tetingkap Data Frame Properties tu, kat ruangan Select a coordinate system:, klik pada Predefined > Projected Coordinate Systems > National Grids > Malaysia and Singapore > malaysia_cassini_selangor... tapi jangan klik butang OK dahulu.

Kalau anda tak jumpa fail malaysia_cassini_selangor tu, copy paste semua font kuning di bawah ni masuk dalam notepad atau wordpad, kemudian savekan sebagai fail extension .prj (contoh malaysia_cassini_selangor.prj) dan letakkan di dalam folder <Arcgis installation folder>\Desktop10.0\Coordinate Systems\Projected Coordinate Systems\National Grids\Malaysia and Singapore (untuk arcgis version 10). Sesudah copy, ulang step seperti di atas. Anda sepatutnya akan dapat melihat nama fail prj tu dipaparkan dalam senarai Projected coordinate system tu..

PROJCS["Malaysia_Cassini_Selangor",GEOGCS["GCS_Kertau",DATUM["D_Kertau",SPHEROID["Everest_1830_Modified",6377304.063,300.8017]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Cassini"],PARAMETER["False_Easting",-21759.43848],PARAMETER["False_Northing",55960.90576],PARAMETER["Central_Meridian",101.5082444],PARAMETER["Scale_Factor",1],PARAMETER["Latitude_Of_Origin",3.680344444],UNIT["Meter",1]]

Ok, sekarang perhatikan semula parameter Cassini di dalam tetingkap Data Frame Properties tu. Dinyatakan disitu nilai False_Easting adalah -21759.438480 manakala False_Northing adalah 55960.905760 (rujuk rajah di bawah).

Kedua-dua nilai False_Easting dan False_Northing ini perlu anda tambahkan nilai shift 123,456,789 supaya masuk ke kedudukan Putrajaya Grid (rujuk pada rajah pertama di atas untuk formula Putrajaya Grid).  Untuk tambah nilai shift tu, anda perlu klik dulu butang Modify di tetingkap Data Frame Properties. Kemudian anda akan dapat dialog Projected Coordinate System Properties seperti di bawah :-


So formula yang anda perlu apply adalah seperti berikut : 
False_Easting : -21759.438480 + 123456.789 = 101697.35052
False_Northing : 55960.90576 + 123456.789 = 179417.69476

Jadi taipkan nilai hasil yang anda dapat tadi di dalam ruangan Value untuk False_Easting dan False_Northing. Kalau anda dah ada nilai parameter shift yang sebenar nanti, anda gantikan sahaja nilai 123456.789 tu kepada nilai parameter sebenar. Hasilnya seperti di bawah :


Anda juga boleh menamakan sistem koordinat yang telah anda ubahsuai kepada nama yang anda kehendaki. Macam contoh rajah di atas tu, saya tukarkan nama sistem koordinat tu kepada Putrajaya Grid di ruangan Name:. Setelah selesai, export data yang nak anda convert tu kepada layer yang baru, tetapi pastikan data yang akan dihasilkan itu menggunakan sistem koordinat yang telah anda ubahsuai pada Data Frame. Caranya, right click pada data yang hendak diconvert, kemudian pilih Data > Export Data .. Pada tetingkap Export Data tu, pastikan anda klik option Use the same coordinate system as : the data frame. Kemudian taipkan nama output  feature class.


Output feature class yang dibina merupakan data baru anda yang menggunakan sistem koordinat Putrajaya Grid. Mudah sahaja kan?


Saturday, 9 June 2012

Demam EURO.. 3D visibility analysis

Mesti sekarang ni korang sume ramai yang tengah demam kan? Bukan demam apa, demam bola EURO2012...hehehe. Apa pulak kena mengena EURO ngan GIS ni?? Takda kena mengena apa-apa pun... cuma hari tu saya ada tonton satu program EURO di astro, cerita pasal stadium-stadium, ciri-ciri setiap stadium dan dalam satu part tu, siap ditunjukkan diaorang buat analisis untuk pastikan semua penonton dapat view yang bagus bila duduk di seat stadium. So dalam program tu dia tunjukkan rajah lebih kurang seperti kat bawah ni..


Maknanya kalau posisi bola di A, penonton kat belakang tu boleh lah nampak clear aksi pemain, tapi kalau posisi bola di B, dah terhalang pulak oleh penonton di depan, tu belum lagi kalau penonton di depan tu bangun, lagi la tak nampak. Penonton belakang cuma boleh nampak takat kepala orang depan je (line hijau), selebihnya kat line merah tu dah terlindung dari pandangan. So solutionnya engineer kena adjust sikit design grandstand tu... kena curamkan sikit slope grandstand seat tu supaya view boleh clear.

So saya pun terus teringat ada satu visibility analysis dalam 3D Analyst yang dipanggil analisis Line of Sight. Konsepnya lebih kurang sama dengan apa yang ingin dicapai dari rajah kat atas tu, nak tentukan kawasan yang nampak atau kawasan yang terlindung dari pandangan. Rujuk rajah di bawah. Katalah anda berada di lokasi A dan ingin melihat lokasi di B. Perkara pertama yang perlu anda buat adalah sediakan data DEM surface dahulu. Kemudian aktifkan toolbar dan extension 3D Analyst di dalam ArcMap.


Bila toolbar 3D tu dah diaktifkan, klik sahaja tool Create Line of Sight yang ikon gambar mata tu (rujuk rajah kat bawah).

Tool Create Line of Sight
Kemudian tetingkap Line of Sight akan dipaparkan. Anda mempunyai pilihan untuk memasukkan nilai  Observer offset dan Target offset. Contohnya katakan saya ingin mendirikan menara tinjauan setinggi 5 meter di lokasi A, jadi saya cuma perlu masukkan nilai 5 pada ruangan Observer offset.


Kemudian saya lukis sahaja garisan bermula dari point A dan berakhir pada point B. Hasilnya adalah seperti di bawah.

Lokasi disepanjang garisan hijau adalah lokasi yang boleh dilihat dari kedudukan A manakala lokasi di sepanjang garisan merah akan terlindung dari pandangan lokasi A. Hasil dari analisis di atas menunjukkan lokasi B akan terlindung dari pandangan kerana ia terletak di kawasan garisan merah. 

Semoga anda mendapat serba sedikit idea dari apa yang cuba saya terangkan ini.


Saturday, 2 June 2012

Evolusi Data Spatial : Pengenalan Geodatabase

Mungkin kebanyakan daripada anda biasa menggunakan data-data spatial format shapefile, mapinfo tab, DXF atau mungkin juga anda pernah menggunakan format geodatabase. Apakah geodatabase? Geodatabase merupakan data native format ArcGIS dan merupakan satu mekanisma storan untuk penyimpanan data spatial dan juga atribut. Tentu anda terfikir tak bolehkah saya gunakan data shapefile sahaja, perlukah saya upgrade ke geodatabase? Perlu atau tidak tu sebenarnya bergantung kepada keperluan anda, contohnya anda boleh tanya soalan-soalan berikut :-
  1. Adakah saya ingin memodel hubungkait (relationship) antara feature atau antara atribut?
  2. Adakah saya ingin mendapatkan keluasan data polygon saya secara automatik?
  3. Adakah saya ingin menyemak ralat topology pada data saya? Contohnya mungkin saya ingin menyemak adakah terdapat polygon bertindih, polygon gap, line gap dan lain-lain.
  4. Adakah saya inginkan data-data saya di edit secara serentak oleh pengguna lain? (multiuser editing)
  5. Adakah saya ingin meletakkan kesemua data-data saya secara berpusat (centralize) dan boleh dicapai oleh semua pengguna di pejabat?
  6. Adakah saya ingin mengimplemen ciri-ciri keselamatan pada data-data saya? Contohnya dari segi capaian login ke data, tahap capaian berbeza antara pengguna.
  7. Adakah saiz data saya terlalu besar sehingga lambat untuk dicapai oleh pengguna?
Sekiranya antara keperluan anda adalah seperti di atas, mungkin anda perlu fikirkan tentang upgrade data-data anda ke geodatabase. 
Elemen geodatabase bukan sekadar spatial dan atribut, tetapi berupaya menyimpan ciri topology relationship, raster dan lain-lain.
Data-data seperti format shapefile, dxf, dwg, fail mapinfo tab adalah dipanggil data fail GIS, ini adalah kerana data-data ini menggunakan konsep fail dan disimpan di dalam folder-folder di dalam komputer kita. Berbanding geodatabase, ia merupakan Object Relational Data Model dan menggunakan konsep pangkalan data di mana ia menyokong saiz data yang besar, mempunyai ciri-ciri keselamatan, bersifat multi-user dan amat bersesuaian digunakan di dalam persekitaran GIS Enterprise. Evolusi format-format spatial data boleh dilihat pada rajah di bawah.

Mungkin ada di antara anda yang tidak pernah menggunakan format Coverage. Masa dulu-dulu itulah format data yang digunakan kalau anda menggunakan perisian ArcInfo, kalau tak silap saya masa tu ArcInfo version 6, belum ada ArcGIS lagi. Platform yang digunakan pula zaman tu adalah platform UNIX. Saya ingat lagi dulu-dulu bila saya conduct kursus ArcInfo, mesti perlu dipakejkan dengan kursus UNIX supaya pengguna tahu cara-cara mengendalikan fail-fail di dalam komputer UNIX mereka. ArcInfo pula zaman tu bukan macam sekarang, semua perlu hafal command-command, bukan ada Windows GUI macam ArcMap sekarang.. pergghh berasap kepala hafal command.

Kemudian bila keluar software ArcView 2.1, format shapefile diperkenalkan. So sebenarnya data-data shapefile yang anda gunakan tu dibangunkan spesifik untuk penggunaan ArcView pada masa dahulu. Selain dari tu, timbul keperluan untuk membangunkan data 3D dan analisis-analisis raster. Sebab itulah data TIN dan Grid diperkenalkan. Data ArcStorm pula membolehkan data-data coverage disimpan di dalam RDBMS Oracle dan beberapa RDBMS lain. Setelah itu timbul pula format SDE yang membolehkan data-data coverage, shapefile dan raster disimpan sebagai SDE layer di dalam RDBMS. Kemudian perisian-perisian ESRI di re-engineered untuk menghasilkan satu produk yang fully intergrated di dalam family ArcGIS merangkumi produk-produk client dan server. Kesemua versi produk-produk ini diseragamkan bermula pada ArcGIS versi 8.x. Pada masa inilah muncul format data Geodatabase.


Geodatabase boleh dibahagikan kepada tiga kategori iaitu Personal Geodatabase, File Geodatabase dan juga ArcSDE Geodatabase.
Tiga kategori geodatabase
Personal geodatabase menggunakan format storan MS Access, bermaksud data-data akan disimpan di dalam fail MDB. Had saiz untuk personal geodatabase ini hanya 2Gbyte sahaja. File geodatabase pula menggunakan format struktur fail binary yang disimpan di dalam folder. Kelebihan file geodatabase adalah had saiznya yang besar iaitu 1Terabyte per dataset. Terdapat sedikit perbezaan pada ArcSDE geodatabase atau dipanggil juga sebagai Enterprise geodatabase. Untuk ArcSDE geodatabase, anda perlu memilih RDBMS apa yang ingin anda gunakan untuk penyimpanan data-data anda. Antara RDBMS yang boleh digunakan adalah seperti Oracle, SQL Server, DB2, Informix dan juga PostgreSQL. 

Tiga jenis geodatabase dan ciri-ciri perbezaan
Untuk membina Personal atau File geodatabase, mudah sahaja. Anda hanya perlu klik pada folder yang dikehendaki di dalam ArcCatalog atau ArcMap Catalog Window dan pilih New > Personal Geodatabase atau New > File Geodatabase seperti di bawah.



Bagaimana pula ArcSDE Geodatabase. Anda perlu setup dulu RDBMS anda, kemudian install ArcSDE sebelum anda boleh setup connection kepada pangkalan data anda. Contohnya sekiranya anda membuat keputusan untuk menggunakan MS SQL Server sebagai RDBMS anda, setup dahulu MS SQL Server, kemudian install ArcSDE untuk communicate dengan SQL Server tersebut. Selepas itu, barulah anda boleh setup capaian kepada pangkalan data melalui ArcCatalog atau ArcMap Catalog Window. Caranya, klik pada Database Connections > Add Spatial Database Connection seperti di bawah.


Kemudian pada tetingkap Spatial Database Connection, anda perlu memasukkan maklumat berikut :-
  • Nama server RDBMS anda atau IP Address
  • Nombor port TCP service untuk ArcSDE
  • Nama pangkalan data anda
  • Nama login kepada pangkalan data
  • Katalaluan


Thursday, 31 May 2012

Tips : Hillshading - Memberi Effect 3D Pada Peta

Cuba kita perhatikan kedua-dua peta gunatanah di bawah. Rasa-rasanya peta manakah yang lebih menarik? Peta A ke Peta B?


Sudah tentu peta B lebih menarik kan? Sebab nampak macam 3D pulak, nampak kawasan berbukit-bukit. Peta A tu nampak flat je...  Bila ada effect 3D tu secara tidak langsung kita boleh nampak gunatanah mana yang terletak di kawasan berbukit dan gunatanah mana pula yang terletak di kawasan rata. Di dalam GIS, teknik membina data ini dinamakan hillshading atau shaded relief.

Macamana nak buat hillshading tu? Kalau dalam ArcGIS ada dua cara nak buat ni.
  1. Gunakan function HILLSHADE di dalam extension 3D atau Spatial Analyst
  2. Jika anda guna ArcGIS versi 10, anda boleh jana data ni free sahaja menggunakan Image Analysis Window.
Faktor utama dalam membina data hillshade adalah kedudukan matahari di sesuatu kawasan yang ditentukan oleh faktor azimuth (sudut arah pancaran matahari) dan juga altitude (sudut ketinggian matahari di atas horizon). Untuk memudahkan pemahaman anda, rujuk rajah di bawah.

Default azimuth adalah 315 darjah
Default altitude adalah 45 darjah
Perkara pertama yang perlu anda lakukan adalah menyediakan data surface DEM dahulu.  Banyak kaedah yang boleh dilakukan untuk membina data DEM ini, anda boleh jana melalui data TIN, interpolation, menggunakan data LIDAR dan pelbagai lagi. Anda boleh rujuk salah satu kaedah penyediaan data surface DEM ini di dalam post saya terdahulu di sini. Kemudian anda bolehlah menggunakan data DEM ini sebagai input untuk menjana data hillshade. Rajah di bawah menunjukkan contoh tetingkap untuk menyediakan data hillshade di dalam 3D dan Spatial Analyst. Tetingkap ini anda boleh capai melalui ArcToolbox.


Jika anda tiada extension 3D atau Spatial Analyst, macamana nak buat tu. Tiada masalah, syaratnya gunakan ArcGIS versi 10. Dalam versi 10 terdapat  Image Analysis Window yang boleh anda gunakan untuk membina data shaded relief. Klik sahaja pada menu Windows > Image Analysis. Kemudian klik butang shaded relief untuk menjana data hillshade. Mudah sahaja.


Bila dah ready data hillshade tu, susunkan agar ia dipaparkan di atas data anda (dalam kes saya, paparkan di atas data gunatanah). Oopps, nampak macam data hillshade saya tu dah tutup pula data gunatanah. Macamana nak buat tu??

Trick dia macam ni, saya jadikan pula data hillshade di atas tu sebagai transparent supaya data gunatanah saya yang di bawah tu boleh kelihatan. Caranya, buka Layer Properties untuk layer hillshade, klik tab Display dan taipkan peratus transparent yang dikehendaki.

Dalam contoh ini, saya menggunakan tahap transparent 60%.
Hasilnya adalah kombinasi data hillshade data gunatanah seperti peta di bawah. Menarik kan?

Hasil kombinasi data hillshade dan polygon gunatanah.
Selamat mencuba ...



Tuesday, 29 May 2012

ArcObject.. customize ArcMap interface

Adakah anda seorang programmer?? Kalau bukan programmer pun tak apa, tapi berminat tak nak ubah sikit-sikit interface ArcMap anda, maybe nak buat custom menu ke, custom button ke. Kali ini saya akan terangkan serba sedikit mengenai konsep customize interface di dalam ArcGIS.

Sebelum itu saya bagi dulu pengenalan serba sedikit tentang ArcObject. Perisian ArcGIS Desktop anda dibina on top of ArcObject dimana ArcObject ni terdiri dari beberapa set of classes yang ditulis oleh programmer ESRI menggunakan pengaturcaraan C++. Bagaimana ianya disimpan di dalam ArcGIS? Ianya disimpan di dalam fail-fail DLL apabila anda install ArcGIS Desktop anda. Kalau sesiapa yang pernah belajar Object Oriented Programming tentu lebih mudah faham tentang apa yang saya maksudkan ni. 

Bagaimana kita nak programkan ArcGIS desktop kita menggunakan ArcObject classes ini? Anda boleh menggunakan pelbagai bahasa pengaturcaraan, antaranya VB, VBA, C++, C# dan .NET. Bermula dari versi ArcGIS 10, ESRI mencadangkan agar persekitaran .NET digunakan kerana mereka tidak akan support VB/VBA apabila versi 10.1 muncul kelak. Tetapi untuk memudahkan anda memahami konsep customization ArcObject, saya akan menggunakan contoh menggunakan VBA kerana VBA Editor memang telah sedia ada di dalam ArcMap versi ArcGIS10 dan juga versi 9.x.

Untuk buka VBA Editor ni, anda klik sahaja pada menu Customize > VBA Macros > Visual Basic Editor di dalam ArcMap.


Penerangan mengenai komponen-komponen di dalam VBA Editor adalah seperti di bawah.

Di dalam contoh ini, saya akan membina satu form yang berfungsi untuk melaksanakan proses carian nama sungai di atas peta saya. Untuk membina form di dalam VBA Editor, right click di dalam ruangan Project (rujuk rajah di atas untuk ruangan Project), kemudian pilih sahaja Insert > UserForm.
Kaedah membina Form

Secara default VBA Editor akan menamakan form anda sebagai UserForm1. Kemudian saya drag control ComboBox masuk ke dalam form saya. Ini akan bertindak sebagai dropdown box di dalam form saya yang akan menyenaraikan nama-nama sungai. Saya drag juga control CommandButton yang akan mencari nama sungai yang saya kehendaki di dalam ComboBox. Saya namakan CommandButton saya ini sebagai CARI.

                                         
                            Click/Drag control ComboBox dan CommandButton ke dalam form.
Kemudian saya double click di atas form saya untuk memaparkan ruangan Procedure. Seterusnya saya klik kepada Initialize (rujuk rajah di bawah).

Double click form dan pastikan anda tukar kepada Event Initialize pada Procedure.
Kemudian saya masukkan kod berikut di bawah ruangan Private Sub UserForm_Initialize()

    Dim pMxDoc As IMxDocument
    Dim PFLayer As IFeatureLayer
    Dim pFc As IFeatureClass
    Dim pFeat As IFeature    
    Dim i As Integer

    Set pMxDoc = ThisDocument
    For i = 0 To pMxDoc.FocusMap.LayerCount - 1
            If (UCase(pMxDoc.FocusMap.Layer(i).Name) = UCase("Sungai")) Then
                    Set PFLayer = pMxDoc.FocusMap.Layer(i)
                    Exit For
            End If
    Next
    Set pFc = PFLayer.FeatureClass
    
    'sort nama sungai
    Dim pTableSort As ITableSort
    Set pTableSort = New TableSort
    pTableSort.Fields = "NAME"
    pTableSort.Ascending("NAME") = True
    Set pTableSort.Table = pFc
    pTableSort.Sort Nothing
           
    'Return a cursor for all the features
    Dim pFCur As IFeatureCursor
    Set pFCur = pTableSort.Rows
    Set pFeat = pFCur.NextFeature
    
    Dim namaExists As Boolean
    namaExists = False

    Do Until pFeat Is Nothing
          nama = pFeat.Value(pFeat.Fields.FindField("NAME"))
        
          'Check for duplicate name
          For i = 0 To ComboBox1.ListCount - 1
                 If nama = ComboBox1.List(i) Then
                       namaExists = True
                 Else: End If
          Next i
          
          Select Case namaExists
                  Case False
                          ComboBox1.AddItem nama
                  Case Else
          End Select
          namaExists = False
          
          Set pFeat = pFCur.NextFeature
    Loop
    
    ComboBox1.ListIndex = 0

OK, selesai coding untuk memapar nama sungai ke dalam combobox form saya. Sekarang saya akan masukkan pula coding untuk mencari nama sungai sekiranya pengguna klik butang CARI pada form saya. Kaedah ini samalah seperti bila kita laksanakan proses carian menggunakan kaedah Select by Attributes di dalam ArcMap. Untuk masukkan coding tu, saya double click pada CommandButton CARI, seterusnya procedure CommandButton1_Click akan dipaparkan. 

Double click CommandButton CARI untuk mendapatkan procedure
Seterusnya saya masukkan coding berikut di bawah ruangan Private Sub CommandButton1_Click()

    Dim pDoc As IMxDocument
    Dim pMap As IMap
    Dim pLayer As IFeatureLayer
    Dim pFc As IFeatureClass
    Dim pQf As IQueryFilter
    Dim pSelSet As ISelectionSet
    Dim pFSel As IFeatureSelection
    
    Set pDoc = ThisDocument
    Set pMap = pDoc.FocusMap
    
    For i = 0 To pMap.LayerCount - 1
        If UCase(pMap.Layer(i).Name) = UCase("Sungai") Then
                Set pLayer = pMap.Layer(i)
                Exit For
        End If
    Next
    Set pFc = pLayer.FeatureClass
    
    'Create the query filter
    Set pQf = New QueryFilter
     pQf.WhereClause = "NAME = '" & ComboBox1.Value & "'"

    'Get the features that meet the where clause
    Set pSelSet = pFc.Select(pQf, esriSelectionTypeIDSet, esriSelectionOptionNormal,          
    Nothing)
    
    'Apply the selection
    Set pFSel = pLayer
    Set pFSel.SelectionSet = pSelSet
    pDoc.ActiveView.Refresh

Kemudian, saya aktifkan kembali form saya dan klik sahaja butang Run di dalam VBA Editor.

Klik Run untuk run form anda

Sebaik sahaja saya klik Run, form saya akan dipaparkan di dalam ArcMap. Senarai nama-nama sungai akan dapat saya lihat apabila saya klik combobox di dalam form tersebut.


Dalam contoh ini, saya memilih nama Sungai Langat. Apabila saya klik butang CARI, Sungai Langat akan ditunjukkan di atas peta saya seperti rajah di bawah.


Contoh yang saya tunjukkan ini adalah menggunakan bahasa pengaturcaraan VBA. Sekiranya anda ingin menggunakan persekitaran .NET, anda boleh programkan di dalam Microsoft Visual Studio menggunakan samada VB.Net ataupun C#.Net.

So macamana? Menarik tak? Anda boleh mencuba coding di atas untuk disesuaikan dengan data anda. Cuma perlu gantikan sahaja perkataan "Sungai" dengan nama layer anda di dalam ArcMap dan gantikan "NAME" dengan nama field yang ingin anda query di dalam layer anda. Selamat mencuba.



Monday, 28 May 2012

Kursus ArcGIS Desktop untuk Jab Landskap Negara

Hari ini saya mengendalikan kursus GIS lagi.. Working with ArcGIS 10 Desktop. Kali ini peserta terdiri dari kakitangan Jabatan Landskap Negara. Rancangan asalnya seramai 12 peserta akan hadir pada kursus ini tapi kerana beberapa masalah teknikal, hanya 6 yang dapat hadir. Takpe, kursus tetap di jalankan.

Seperti biasa untuk kursus Working with ArcGIS 10 Desktop, saya akan mengendalikan kursus ini selama 2 hari. Ianya lebih kepada peringkat asas pengendalian perisian ArcGIS Desktop merangkumi topik-topik pengenalan GIS, memapar maklumat, penyuntingan data, analisis-analisis asas sehinggalah kepada penyediaan peta. Seperti kursus-kursus saya yang terdahulu, saya lebih berminat fokus dan tekankan kepada topik-topik yang berkaitan dengan penggunaan di dalam kerja-kerja seharian peserta. Kadang-kadang tu off topic juga, saya tunjukkan contoh-contoh yang tiada di dalam silibus sekiranya saya rasa perlu supaya mereka lebih mendapat gambaran dan idea.

Peserta kusyuk mendengar taklimat.. ye ke fokus tu? hehe

Latihan hands-on
Sambutan dari peserta agak menggalakkan. Nampak mereka berminat menggunakan perisian ArcGIS Desktop ini. Selamat menuntut ilmu..

Sunday, 27 May 2012

Kartografi : Berkongsi Fail Simbol

Topik kali ini adalah lanjutan dari post saya sebelum ini Custom Symbology. Dalam topik sebelum ini saya ada menerangkan beberapa tips untuk customise simbol-simbol yang kita kehendaki. Ok sekarang fikirkan senario ini. Katalah jabatan anda merancang untuk membangunkan standard di dalam penggunaan simbol-simbol untuk membuat peta. Mungkin setup di jabatan anda terdiri dari beberapa PC ArcGIS di Ibu Pejabat dan mungkin juga di pejabat negeri. Atau mungkin di universiti anda mempunyai GIS lab yang mengandungi beberapa PC ArcGIS. Sekiranya anda telah membina beberapa set simbol untuk kegunaan anda sendiri di Ibu Pejabat, bagaimana pula nak share simbol tu pada kawan-kawan anda yang lain di pejabat negeri supaya mereka boleh menggunakan standard simbol yang sama?


Senang saja, saya akan terangkan di dalam topik ini. Gambar di bawah adalah contoh beberapa simbol yang saya paparkan menggunakan Style Manager di dalam ArcMap. Asalnya simbol-simbol ini saya bina menggunakan Font Creator. Ingat lagi software ni? Saya ada ceritakan di dalam post sebelum ini.


Nampak macam banyak juga simbol-simbol yang saya dah buat tu. Ada simbol polygon kelapa, kelapa sawit, koko, kopi, lada dan lain-lain. Itu baru Fill Symbols untuk polygon, belum lagi simbol-simbol untuk point dan line. Simbol-simbol ini hanya terdapat di dalam PC ArcGIS saya bila saya open ArcMap. Bila kawan saya open ArcMap di dalam PC atau laptop dia, tak nampak pun simbol-simbol tu. So macamana nak kongsi simbol-simbol ni?

Jawapannya gunakan kaedah Styles di dalam ArcMap. Styles adalah satu kaedah untuk menyimpan dan menstandardkan simbol dan komponen peta (scale bar, north arrow, text label etc) dan seterusnya dikongsi kepada pelbagai pengguna yang menggunakan ArcGIS Desktop. 

Bagaimana pula untuk membina Styles ini? Anda hanya perlu klik menu Customize > Style Manager. Kemudian klik butang Styles. Bila dah keluar tetingkap Style Referrences tu, klik pulak butang Create New Style. Lepas tu namakan fail anda. Nanti anda akan lihat fail extension .style akan dibina di dalam folder yang anda telah pilih dan secara automatik terus dimasukkan ke dalam senarai Style Manager anda. Dalam contoh ini, saya menamakan fail style saya sebagai SPR.style (perhatikan tetingkap Style Manager di bawah)

Fail style yang anda baru bina tu masih kosong, tidak mempunyai apa-apa simbol lagi. Untuk memasukkan simbol-simbol custom yang telah anda bina tu simple je, anda hanya perlu copy dan paste masuk ke dalam folder Fill Symbols, Line Symbols atau Marker Symbols.
                                                                      
                          
OK, so bila anda sudah selesai masukkan semua simbol-simbol tu ke dalam fail style anda, anda hanya perlu copykan fail .style tadi masuk ke dalam PC kawan anda.  Sekiranya anda customise simbol tu menggunakan teknik simbol font (menggunakan Font Creator), fail font tersebut (.ttf) perlu juga anda copy dan masukkan ke dalam PC kawan anda, seterusnya install font tersebut ke dalam sistem operasi Windows PC kawan anda tadi. Kemudian setkan ArcMap pada PC kawan anda tu untuk baca fail .style tadi. Caranya, klik butang Add Style to List dan pilih fail .style yang telah anda copykan tadi.


Mudah sahaja kan? Selamat mencuba...