build.xml 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  1. <project name="data_directory" default="process"
  2. xmlns:if="ant:if" xmlns:unless="ant:unless"
  3. xmlns:resolver="antlib:org.apache.maven.resolver.ant"
  4. >
  5. <!-- macros -->
  6. <macrodef name="download">
  7. <attribute name="download" default="download"/>
  8. <attribute name="file"/>
  9. <attribute name="url"/>
  10. <sequential>
  11. <condition property="@{file}.downloaded">
  12. <available file="@{download}/@{file}"/>
  13. </condition>
  14. <get unless:set="@{file}.downloaded"
  15. skipexisting="true" tryGzipEncoding="true"
  16. src="@{url}"
  17. dest="@{download}/@{file}"/>
  18. </sequential>
  19. </macrodef>
  20. <!-- some common locations -->
  21. <property name="download" location="download"/>
  22. <property name="process" location="process"/>
  23. <property name="data" location="../../data/release/data"/>
  24. <!-- check environment -->
  25. <condition property="download.available">
  26. <available file="${download}"/>
  27. </condition>
  28. <condition property="process.available">
  29. <available file="${process}"/>
  30. </condition>
  31. <property environment="env"/>
  32. <path id="combined-PATH">
  33. <pathelement path="${env.PATH}"/> <!--linux-->
  34. <pathelement path="${env.Path}"/> <!--windows-->
  35. </path>
  36. <property name="PATH" refid="combined-PATH"/>
  37. <condition property="ogr.available">
  38. <or>
  39. <available file="ogr2ogr.exe" filepath="${PATH}"/>
  40. <available file="ogr2ogr" filepath="${PATH}"/>
  41. </or>
  42. </condition>
  43. <!-- clean -->
  44. <target name="clean_download"
  45. description="clean downloads ">
  46. <delete dir="${download}"/>
  47. </target>
  48. <target name="clean"
  49. description="clean processed files">
  50. <delete dir="${process}"/>
  51. </target>
  52. <!-- init -->
  53. <target name="init_download" unless="download.available">
  54. <mkdir dir="${download}"/>
  55. </target>
  56. <target name="init" depends="init_download" unless="process.available">
  57. <mkdir dir="${process}"/>
  58. </target>
  59. <!-- download -->
  60. <target name="download" depends="init_download"
  61. description="Pre-download and prep files">
  62. <parallel threadCount="5">
  63. <antcall target="ne_geopackage_download"/>
  64. </parallel>
  65. </target>
  66. <!-- process -->
  67. <target name="process" depends="download,init"
  68. description="Prep files">
  69. <antcall target="ne_geopackage_process"/>
  70. </target>
  71. <target name="install" depends="process" description="Update release/data with processed data.">
  72. <copy
  73. file="${process}/natural_earth.gpkg" todir="${data}/ne"/>
  74. </target>
  75. <!-- Natural Earth GeoPackage -->
  76. <target name="ne_geopackage_download" depends="init_download">
  77. <download
  78. url="https://naciscdn.org/naturalearth/packages/natural_earth_vector.gpkg.zip"
  79. file="natural_earth_vector.gpkg.zip">
  80. </download>
  81. </target>
  82. <!-- check if custom (processed) geopackage is available -->
  83. <target name="ne_geopackage_check">
  84. <available file="${process}/natural_earth.gpkg" property="gpkg.processed"/>
  85. </target>
  86. <target name="ne_geopackage_process" depends="ne_geopackage_download,ne_geopackage_check" unless="gpkg.processed">
  87. <echo level="info">Unzip into ${download}</echo>
  88. <unzip overwrite="false" src="${download}/natural_earth_vector.gpkg.zip" dest="${download}">
  89. <patternset>
  90. <include name="packages/*"/>
  91. </patternset>
  92. <mapper type="flatten"/>
  93. </unzip>
  94. <echo level="info">Use ogr2ogr create natural_earth.gpkg</echo>
  95. <property name="input" location="${download}/natural_earth_vector.gpkg"/>
  96. <property name="output" location="${process}/natural_earth.gpkg"/>
  97. <property name="options" location="-append -update"/>
  98. <antcall target="-lines">
  99. <param name="table" value="boundary_lines_land"/>
  100. <param name="from" value="ne_50m_admin_0_boundary_lines_land"/>
  101. <param name="select" value = "fid,geom,SCALERANK,FEATURECLA,MIN_ZOOM"/>
  102. <param name="where" value ="TRUE"/>
  103. <param name="options" value=""/>
  104. <param name="title" value="Boundary Lines"/>
  105. <param name="description" value="Country boundaries on land and offshore."/>
  106. </antcall>
  107. <antcall target="-lines">
  108. <param name="table" value="coastlines"/>
  109. <param name="from" value="ne_50m_coastline"/>
  110. <param name="select" value = "*"/>
  111. <param name="where" value ="TRUE"/>
  112. <param name="options" value="-update"/>
  113. <param name="title" value="Coastlines"/>
  114. <param name="description" value="Ocean coastline, including major islands."/>
  115. </antcall>
  116. <antcall target="-polygons">
  117. <param name="table" value="countries"/>
  118. <param name="from" value="ne_50m_admin_0_countries"/>
  119. <param name="select" value = "fid,geom,featurecla,scalerank,LABELRANK,SOVEREIGNT,SOV_A3,ADM0_DIF,LEVEL,TYPE,TLC,ADMIN,ADM0_A3,GEOU_DIF,GEOUNIT,GU_A3,SU_DIF,SUBUNIT,SU_A3,BRK_DIFF,NAME,NAME_LONG,BRK_A3,BRK_NAME,BRK_GROUP,ABBREV,POSTAL,FORMAL_EN,FORMAL_FR,NAME_CIAWF,NOTE_ADM0,NOTE_BRK,NAME_SORT,NAME_ALT,MAPCOLOR7,MAPCOLOR8,MAPCOLOR9,MAPCOLOR13,POP_EST,POP_RANK,POP_YEAR,GDP_MD,GDP_YEAR,ECONOMY,INCOME_GRP,FIPS_10,ISO_A2,ISO_A2_EH,ISO_A3,ISO_A3_EH,ISO_N3,ISO_N3_EH,UN_A3,WB_A2,WB_A3,WOE_ID,WOE_ID_EH,WOE_NOTE,ADM0_ISO,CONTINENT,REGION_UN,SUBREGION,REGION_WB,NAME_LEN,LONG_LEN,ABBREV_LEN,TINY,HOMEPART,MIN_ZOOM,MIN_LABEL,MAX_LABEL,LABEL_X,LABEL_Y,NE_ID,WIKIDATAID,NAME_AR,NAME_BN,NAME_DE,NAME_EN,NAME_ES,NAME_FA,NAME_FR,NAME_EL,NAME_HE,NAME_HI,NAME_HU,NAME_ID,NAME_IT,NAME_JA,NAME_KO,NAME_NL,NAME_PL,NAME_PT,NAME_RU,NAME_SV,NAME_TR,NAME_UK,NAME_UR,NAME_VI,NAME_ZH,NAME_ZHT,FCLASS_ISO,TLC_DIFF,FCLASS_TLC"/>
  120. <param name="where" value ="TRUE"/>
  121. <param name="options" value="-update"/>
  122. <param name="title" value="Countries"/>
  123. <param name="description" value="Sovereign states"/>
  124. </antcall>
  125. <antcall target="-polygons">
  126. <param name="table" value="disputed_areas"/>
  127. <param name="from" value="ne_50m_admin_0_breakaway_disputed_areas"/>
  128. <param name="select" value = "*"/>
  129. <param name="where" value ="TRUE"/>
  130. <param name="options" value="-update"/>
  131. <param name="title" value="Disputed Areas"/>
  132. <param name="description" value="Disputed areas and breakaway regions."/>
  133. </antcall>
  134. <antcall target="-point">
  135. <param name="table" value="populated_places"/>
  136. <param name="from" value="ne_50m_populated_places_simple"/>
  137. <param name="select" value = "*"/>
  138. <param name="where" value ="TRUE"/>
  139. <param name="options" value="-update"/>
  140. <param name="title" value="Populated places"/>
  141. <param name="description" value="City and town points"/>
  142. </antcall>
  143. <!-- roads increases size from 900k to 3.6M -->
  144. <!--antcall target="-lines">
  145. <param name="table" value="roads"/>
  146. <param name="from" value="ne_10m_roads"/>
  147. <param name="select" value = "fid,geom,type,name,label,label2,local,localalt,labelrank,min_zoom,min_label"/>
  148. <param name="where" value ="min_zoom &lt; 6"/>
  149. <param name="options" value="-update"/>
  150. <param name="title" value="Roads"/>
  151. <param name="simplify" value ="0.15"/>
  152. <param name="description" value="Transportation."/>
  153. </antcall-->
  154. </target>
  155. <!-- processing -->
  156. <target name="-lines">
  157. <echo level="info">${title}: ${description}</echo>
  158. <exec executable="ogr2ogr">
  159. <arg line="-f 'GPKG'"/>
  160. <arg path="${output}"/>
  161. <arg path="${input}"/>
  162. <arg line="-lco IDENTIFIER='${title}'"/>
  163. <arg line="-lco DESCRIPTION='${description}'"/>
  164. <arg line="${options}"/>
  165. <arg line="-nlt MULTILINESTRING"/>
  166. <arg line="-nln ${table}"/>
  167. <arg value="-sql"/>
  168. <arg value="SELECT ${select} FROM ${from} WHERE ${where}"/>
  169. <arg line="-simplify ${simplify}" unless:blank="${simplify}"/>
  170. </exec>
  171. </target>
  172. <target name="-polygons">
  173. <echo level="info">${title}: ${description}</echo>
  174. <exec executable="ogr2ogr">
  175. <arg line="-f 'GPKG'"/>
  176. <arg path="${output}"/>
  177. <arg path="${input}"/>
  178. <arg line="-lco OVERWRITE=YES"/>
  179. <arg line="-lco IDENTIFIER='${title}'"/>
  180. <arg line="-lco DESCRIPTION='${description}'"/>
  181. <arg line="${options}"/>
  182. <arg line="-nlt MULTIPOLYGON"/>
  183. <arg line="-nln ${table}"/>
  184. <arg value="-sql"/>
  185. <arg value="SELECT ${select} FROM ${from}"/>
  186. </exec>
  187. </target>
  188. <target name="-point">
  189. <echo level="info">${title}: ${description}</echo>
  190. <exec executable="ogr2ogr">
  191. <arg line="-f 'GPKG'"/>
  192. <arg path="${output}"/>
  193. <arg path="${input}"/>
  194. <arg line="-lco IDENTIFIER='${title}'"/>
  195. <arg line="-lco DESCRIPTION='${description}'"/>
  196. <arg line="${options}"/>
  197. <arg line="-nlt POINT"/>
  198. <arg line="-nln ${table}"/>
  199. <arg value="-sql"/>
  200. <arg value="SELECT ${select} FROM ${from}"/>
  201. </exec>
  202. </target>
  203. </project>