Note: the function of ArcMap usually can be performed by ArcInfo commands. So the processes using ArcMap could be replaced by ArcInfo commands. But ArcMap can export figures more easily. Basically, the processes should be manipulative. Assume the vector maps are available in ArcInfo format. irrizone, hhgq : coverage of irrigation zone. riverbasin: coverage of river basin irribasin: coverage of river basin with irrigation area (which might be outside of the river basin) hhgl2.shp, onejzl1.shp : coverage of river way (main stem and tributaries) 1. Use ArcMap open irrizone , irribasin , riverbasin change projection to LAMBERT_AZIMUTHAL Projection LAMBERT_AZIMUTHAL Spheroid SPHERE Units METERS 6370997.0 /* radius of the sphere of reference 100 0 0.0 /* longitude of center of projection 45 0 0.0 /* latitude of center of projection export data/ use the same coordinate system as the data frame/ get irrizone_l , irribasin_l , riverbasin_l coverages under LAMBERT_AZIMUTHAL 2. Download HYDRO1K Asia Use Arc command imagegrid as_dem.bil as_dem Use grid command as_dem2 = con ( as_dem < 55537 , as_dem) gridclip as_dem2 yr_dem BOX -457500 -1500500 1752500 -240500 gridsize 10000 max_nc 220 max_nr 126 min_x -457500 max_x 1752500 min_y -1500500 max_y -240500 Use ArcMap, open yr_dem Export data, cell size 10000m, get yr_dem10 grid Use grid command dem.asc = gridascii ( yr_dem10) Use ArcCatalog, find yr_dem10, right click, define properties, spatical reference Projection LAMBERT_AZIMUTHAL Spheroid SPHERE Units METERS 6370997.0 /* radius of the sphere of reference 100 0 0.0 /* longitude of center of projection 45 0 0.0 /* latitude of center of projection 3. Get Fraction File Use ArcMap, select yr_dem10, export raster data, celle size: 100m to yr_dem100m Use Grid command gridclip yr_dem100m true_dem1 COVER riverbasin_l ws01 = con ( ISNULL(true_dem1) , 0 , 100) Use Getfraction.f to get zone2.asc (if div is large, it will take serval minutes) zone2 = asciigrid ( zone2.asc) zmean2 = zonalmean ( zone2 , ws01 ) frac = con ( yr_dem10 & zmean2 > 0, zmean2 ) wsdem = con ( frac , yr_dem10 ) 4. Burn riverbasin and riverway ! Change hhgl2.shp and onejzl1.shp to LAMBERT_AZIMUTHAL projection Conversion Tools / To Coverage / Feature Class To Coverage convert hhgl2.shp and onejzl1.shp to coverage hhgl1_l, yjzl1_l Arc: linegrid hhgl1_l hhgl 1 (set parameters same as dem map) Cell Size (square cell): 10000 Convert the Entire Coverage(Y/N)?: n Grid Origin (x, y): -457500, -1500500 Grid Size (nrows, ncolumns): 126, 220 Enter background value (NODATA | ZERO): nodata linegrid yjzl1_l yjzl 2 boud = con ( frac < 100 , 1 ) wsbd = con ( isnull( boud ) , 0 , +100 ) rvd2 = con( ISNULL(hhgl) , con (ISNULL (yjzl), 0, -600 ) , -800) rdm1 = wsdem + rvd2 rdm2 = con ( ISNULL(rdm1) , con (ISNULL(yr_dem10) , -1000 , 5500) , rdm1 ) 5. Get flow direction Use ArcToolbox (recommend) or Grid command to get flow direction etc. fill rdm2 frdm drdm = flowdirection ( frdm ) drdm2 = con( ^ ISNULL (wsdem) , drdm ) ardm = flowaccumulation ( drdm2 ) net = con ( ardm > 50 , 1) gridline net grv 6. Get Fraction Include irrigation zone Use Grid command union hhgq riverbasin_l irrbs_l polygrid irrbs_l irrrv 1 Cell Size (square cell): 100 Convert the Entire Coverage? (Y/N): n Grid Origin (x, y): -457500, -1500500 Grid Size (nrows, ncolumns): 12600, 22000 wsirr01 = con ( ISNULL(irrrv) , 0 , 100) zmeamirr = zonalmean ( zone2 , wsirr01 ) fracirr = con ( yr_dem10 & zmeamirr > 0, zmeamirr ) wsdemirr = con ( fracirr , yr_dem10 ) 7. Get Fraction of irrigation zone polygrid hhgq irr 1 irr01 = con ( ISNULL(irr) , 0 , 100) zirr = zonalmean ( zone2 , irr01 ) firr = con (yr_dem10 & zirr > 0, zirr ) 8. Get grids which is out of the river basin, but in the extend river basin ! hhzxdL.shp and hhzxuL.shp: shape file, maps of irrigation districts ! copy hhzxdL.shp and hhzxuL.shp ArcCatalog, Properties, Fields, Add Field IRRID, Data Type: Long Integer Add Field RIVID, Data Type: Long Integer Add Field INTERID, Data Type: Long Integer Add Field RIVPER, Data Type: Double Add Field RESID, Data Type: Long Integer Add Field RESPER, Data Type: Double In ArcMAP, Add rb3 ! Start Editing ! Open attributes table, change IRRID to unique value for each irrigation area ! Assign sub-basin and intervals, and reservoirs ! Save Editing and export to table hhzxul.txt hhzxdl.txt ! Use Excel hhzx.xls format the table to irrpro.asc Use ArcToolBox, Conversion Tools, Feature to Raster Input feature: Copy of hhzxdL Field: IRRID Output raster: griddl Output cell size: 100 zmajoru = zonalmajority ( zone2 , girdul ) zmajord = zonalmajority ( zone2 , griddl ) irr_rivu1 = con ( wsdemirr, zmajoru ) irr_rivd1 = con ( wsdemirr, zmajord ) irr_riv1 = con ( ISNULL ( irr_rivu1) , irr_rivd1 , irr_rivu1 ) irrcode.asc = gridascii (irr_riv1) 9. Output asc file for SIB_DHM system gridascii drdm2 dir.asc gridascii ardm acc.asc disrdm = flowlength ( drdm2 ) dis.asc = gridascii ( disrdm ) ! slope.asc is used for river routing, slope of river bed Use NO revised dem to get slope slpdem10 =slope ( yr_dem10 ) slope.asc = gridascii ( slpdem10 ) frac.asc = gridascii ( frac ) wsdem.asc = gridascii ( wsdem ) fracirr.asc = gridascii ( fracirr ) wsdemirr.asc = gridascii ( wsdemirr ) ! slpsib.asc is used for gird sib2 model (one optional slope parameters, can be modified) ! yrdem1km is high resolution DEM to get slope of hillslope Grid: slp1km = slope ( yrdem1km ) Grid: slp1 = con ( yr_dem10 > -1 & zmslp > -1.0 , zmslp ) Grid: slpsib.asc = gridascii ( slp1 ) f77 Getgridarea.f run Getgridarea.exe get gridarea.asc 9.1 Output asc file for SIB_DHM system (small revised) ! Revise wsdem ! If wsdem has different range with rb3 because of flow direction at river mouth wsdem1 = con ( rb3 > -1 , wsdem) wsdem1.asc = gridascii ( wsdem1 ) ! Revise wsdemirr ! If the wsdemirr range is different with wsdem1 + irr_riv1 bacuse 'union hhgq riverbasin_l irrbs_l' make the range larger polygrid riverbasin_l rvb100_1 1 Cell Size (square cell): 100 Convert the Entire Coverage? (Y/N): n Grid Origin (x, y): -457500, -1500500 Grid Size (nrows, ncolumns): 12600, 22000 rvb100_2 = con ( ISNULL(rvb100_1)& ISNULL(girdul) & ISNULL(griddl) , 0 , 100) zmeanrvb = zonalmean ( zone2 , rvb100_2 ) fracirr1 = con ( yr_dem10 & zmeanrvb > 0, zmeanrvb ) wsdemirr2 = con ( fracirr1 , yr_dem10 ) fracirr1.asc = gridascii ( fracirr1 ) wsdemirr2.asc = gridascii ( wsdemirr2 )