@basemaps/cli 6.45.0 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (187) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/README.md +10 -108
  3. package/build/cli/config/action.bundle.d.ts.map +1 -1
  4. package/build/cli/config/action.bundle.js +2 -4
  5. package/build/cli/config/action.bundle.js.map +1 -1
  6. package/build/cli/config/action.import.d.ts +3 -3
  7. package/build/cli/config/action.import.d.ts.map +1 -1
  8. package/build/cli/config/action.import.js.map +1 -1
  9. package/build/cli/config/config.update.d.ts.map +1 -1
  10. package/build/cli/config/config.update.js +2 -2
  11. package/build/cli/config/config.update.js.map +1 -1
  12. package/build/cli/index.d.ts.map +1 -1
  13. package/build/cli/index.js +4 -13
  14. package/build/cli/index.js.map +1 -1
  15. package/build/cli/overview/action.create.overview.d.ts +2 -0
  16. package/build/cli/overview/action.create.overview.d.ts.map +1 -1
  17. package/build/cli/overview/action.create.overview.js +5 -1
  18. package/build/cli/overview/action.create.overview.js.map +1 -1
  19. package/build/cli/util.d.ts +1 -6
  20. package/build/cli/util.d.ts.map +1 -1
  21. package/build/cli/util.js +19 -27
  22. package/build/cli/util.js.map +1 -1
  23. package/build/cog/builder.d.ts +1 -1
  24. package/build/cog/builder.d.ts.map +1 -1
  25. package/build/cog/builder.js +1 -1
  26. package/build/cog/builder.js.map +1 -1
  27. package/build/cog/cutline.d.ts +1 -1
  28. package/build/cog/cutline.d.ts.map +1 -1
  29. package/build/cog/cutline.js +1 -1
  30. package/build/cog/cutline.js.map +1 -1
  31. package/package.json +10 -15
  32. package/build/cli/base.cli.d.ts +0 -1
  33. package/build/cli/base.cli.d.ts.map +0 -1
  34. package/build/cli/base.cli.js +0 -2
  35. package/build/cli/base.cli.js.map +0 -1
  36. package/build/cli/cogify/__tests__/batch.job.test.d.ts +0 -2
  37. package/build/cli/cogify/__tests__/batch.job.test.d.ts.map +0 -1
  38. package/build/cli/cogify/__tests__/batch.job.test.js +0 -92
  39. package/build/cli/cogify/__tests__/batch.job.test.js.map +0 -1
  40. package/build/cli/cogify/__tests__/semver.test.d.ts +0 -2
  41. package/build/cli/cogify/__tests__/semver.test.d.ts.map +0 -1
  42. package/build/cli/cogify/__tests__/semver.test.js +0 -62
  43. package/build/cli/cogify/__tests__/semver.test.js.map +0 -1
  44. package/build/cli/cogify/action.cog.d.ts +0 -20
  45. package/build/cli/cogify/action.cog.d.ts.map +0 -1
  46. package/build/cli/cogify/action.cog.js +0 -198
  47. package/build/cli/cogify/action.cog.js.map +0 -1
  48. package/build/cli/cogify/action.job.d.ts +0 -28
  49. package/build/cli/cogify/action.job.d.ts.map +0 -1
  50. package/build/cli/cogify/action.job.js +0 -176
  51. package/build/cli/cogify/action.job.js.map +0 -1
  52. package/build/cli/cogify/action.make.cog.d.ts +0 -23
  53. package/build/cli/cogify/action.make.cog.d.ts.map +0 -1
  54. package/build/cli/cogify/action.make.cog.js +0 -218
  55. package/build/cli/cogify/action.make.cog.js.map +0 -1
  56. package/build/cli/cogify/action.make.cog.pr.d.ts +0 -25
  57. package/build/cli/cogify/action.make.cog.pr.d.ts.map +0 -1
  58. package/build/cli/cogify/action.make.cog.pr.js +0 -96
  59. package/build/cli/cogify/action.make.cog.pr.js.map +0 -1
  60. package/build/cli/cogify/batch.job.d.ts +0 -40
  61. package/build/cli/cogify/batch.job.d.ts.map +0 -1
  62. package/build/cli/cogify/batch.job.js +0 -205
  63. package/build/cli/cogify/batch.job.js.map +0 -1
  64. package/build/cli/cogify/cutline.d.ts +0 -5
  65. package/build/cli/cogify/cutline.d.ts.map +0 -1
  66. package/build/cli/cogify/cutline.js +0 -33
  67. package/build/cli/cogify/cutline.js.map +0 -1
  68. package/build/cli/cogify/semver.util.d.ts +0 -24
  69. package/build/cli/cogify/semver.util.d.ts.map +0 -1
  70. package/build/cli/cogify/semver.util.js +0 -56
  71. package/build/cli/cogify/semver.util.js.map +0 -1
  72. package/build/cli/config/action.cog.mapsheet.d.ts +0 -12
  73. package/build/cli/config/action.cog.mapsheet.d.ts.map +0 -1
  74. package/build/cli/config/action.cog.mapsheet.js +0 -107
  75. package/build/cli/config/action.cog.mapsheet.js.map +0 -1
  76. package/build/cli/github/github.d.ts +0 -49
  77. package/build/cli/github/github.d.ts.map +0 -1
  78. package/build/cli/github/github.js +0 -107
  79. package/build/cli/github/github.js.map +0 -1
  80. package/build/cli/github/make.cog.pr.d.ts +0 -42
  81. package/build/cli/github/make.cog.pr.d.ts.map +0 -1
  82. package/build/cli/github/make.cog.pr.js +0 -173
  83. package/build/cli/github/make.cog.pr.js.map +0 -1
  84. package/build/cli/sprites/action.sprites.d.ts +0 -11
  85. package/build/cli/sprites/action.sprites.d.ts.map +0 -1
  86. package/build/cli/sprites/action.sprites.js +0 -42
  87. package/build/cli/sprites/action.sprites.js.map +0 -1
  88. package/build/cog/__tests__/builder.test.d.ts +0 -2
  89. package/build/cog/__tests__/builder.test.d.ts.map +0 -1
  90. package/build/cog/__tests__/builder.test.js +0 -81
  91. package/build/cog/__tests__/builder.test.js.map +0 -1
  92. package/build/cog/__tests__/cog.stac.job.test.d.ts +0 -2
  93. package/build/cog/__tests__/cog.stac.job.test.d.ts.map +0 -1
  94. package/build/cog/__tests__/cog.stac.job.test.js +0 -319
  95. package/build/cog/__tests__/cog.stac.job.test.js.map +0 -1
  96. package/build/cog/__tests__/cog.test.d.ts +0 -2
  97. package/build/cog/__tests__/cog.test.d.ts.map +0 -1
  98. package/build/cog/__tests__/cog.test.js +0 -91
  99. package/build/cog/__tests__/cog.test.js.map +0 -1
  100. package/build/cog/__tests__/cog.vrt.test.d.ts +0 -2
  101. package/build/cog/__tests__/cog.vrt.test.d.ts.map +0 -1
  102. package/build/cog/__tests__/cog.vrt.test.js +0 -229
  103. package/build/cog/__tests__/cog.vrt.test.js.map +0 -1
  104. package/build/cog/__tests__/cutline.test.d.ts +0 -2
  105. package/build/cog/__tests__/cutline.test.d.ts.map +0 -1
  106. package/build/cog/__tests__/cutline.test.js +0 -300
  107. package/build/cog/__tests__/cutline.test.js.map +0 -1
  108. package/build/cog/__tests__/projection.loader.test.d.ts +0 -2
  109. package/build/cog/__tests__/projection.loader.test.d.ts.map +0 -1
  110. package/build/cog/__tests__/projection.loader.test.js +0 -27
  111. package/build/cog/__tests__/projection.loader.test.js.map +0 -1
  112. package/build/cog/__tests__/source.tiff.testhelper.d.ts +0 -8
  113. package/build/cog/__tests__/source.tiff.testhelper.d.ts.map +0 -1
  114. package/build/cog/__tests__/source.tiff.testhelper.js +0 -41
  115. package/build/cog/__tests__/source.tiff.testhelper.js.map +0 -1
  116. package/build/cog/cog.d.ts +0 -22
  117. package/build/cog/cog.d.ts.map +0 -1
  118. package/build/cog/cog.js +0 -72
  119. package/build/cog/cog.js.map +0 -1
  120. package/build/cog/cog.stac.job.d.ts +0 -106
  121. package/build/cog/cog.stac.job.d.ts.map +0 -1
  122. package/build/cog/cog.stac.job.js +0 -257
  123. package/build/cog/cog.stac.job.js.map +0 -1
  124. package/build/cog/cog.vrt.d.ts +0 -18
  125. package/build/cog/cog.vrt.d.ts.map +0 -1
  126. package/build/cog/cog.vrt.js +0 -102
  127. package/build/cog/cog.vrt.js.map +0 -1
  128. package/build/cog/constants.d.ts +0 -5
  129. package/build/cog/constants.d.ts.map +0 -1
  130. package/build/cog/constants.js +0 -5
  131. package/build/cog/constants.js.map +0 -1
  132. package/build/cog/job.factory.d.ts +0 -10
  133. package/build/cog/job.factory.d.ts.map +0 -1
  134. package/build/cog/job.factory.js +0 -92
  135. package/build/cog/job.factory.js.map +0 -1
  136. package/build/cog/projection.loader.d.ts +0 -13
  137. package/build/cog/projection.loader.d.ts.map +0 -1
  138. package/build/cog/projection.loader.js +0 -27
  139. package/build/cog/projection.loader.js.map +0 -1
  140. package/build/cog/stac.d.ts +0 -32
  141. package/build/cog/stac.d.ts.map +0 -1
  142. package/build/cog/stac.js +0 -3
  143. package/build/cog/stac.js.map +0 -1
  144. package/build/cog/types.d.ts +0 -83
  145. package/build/cog/types.d.ts.map +0 -1
  146. package/build/cog/types.js +0 -2
  147. package/build/cog/types.js.map +0 -1
  148. package/build/gdal/__tests__/gdal.progress.test.d.ts +0 -2
  149. package/build/gdal/__tests__/gdal.progress.test.d.ts.map +0 -1
  150. package/build/gdal/__tests__/gdal.progress.test.js +0 -22
  151. package/build/gdal/__tests__/gdal.progress.test.js.map +0 -1
  152. package/build/gdal/__tests__/gdal.test.d.ts +0 -2
  153. package/build/gdal/__tests__/gdal.test.d.ts.map +0 -1
  154. package/build/gdal/__tests__/gdal.test.js +0 -52
  155. package/build/gdal/__tests__/gdal.test.js.map +0 -1
  156. package/build/gdal/gdal.cog.d.ts +0 -42
  157. package/build/gdal/gdal.cog.d.ts.map +0 -1
  158. package/build/gdal/gdal.cog.js +0 -108
  159. package/build/gdal/gdal.cog.js.map +0 -1
  160. package/build/gdal/gdal.command.d.ts +0 -44
  161. package/build/gdal/gdal.command.d.ts.map +0 -1
  162. package/build/gdal/gdal.command.js +0 -87
  163. package/build/gdal/gdal.command.js.map +0 -1
  164. package/build/gdal/gdal.config.d.ts +0 -51
  165. package/build/gdal/gdal.config.d.ts.map +0 -1
  166. package/build/gdal/gdal.config.js +0 -23
  167. package/build/gdal/gdal.config.js.map +0 -1
  168. package/build/gdal/gdal.d.ts +0 -19
  169. package/build/gdal/gdal.d.ts.map +0 -1
  170. package/build/gdal/gdal.docker.d.ts +0 -18
  171. package/build/gdal/gdal.docker.d.ts.map +0 -1
  172. package/build/gdal/gdal.docker.js +0 -82
  173. package/build/gdal/gdal.docker.js.map +0 -1
  174. package/build/gdal/gdal.js +0 -28
  175. package/build/gdal/gdal.js.map +0 -1
  176. package/build/gdal/gdal.local.d.ts +0 -10
  177. package/build/gdal/gdal.local.d.ts.map +0 -1
  178. package/build/gdal/gdal.local.js +0 -22
  179. package/build/gdal/gdal.local.js.map +0 -1
  180. package/build/gdal/gdal.progress.d.ts +0 -16
  181. package/build/gdal/gdal.progress.d.ts.map +0 -1
  182. package/build/gdal/gdal.progress.js +0 -50
  183. package/build/gdal/gdal.progress.js.map +0 -1
  184. package/build/index.d.ts +0 -6
  185. package/build/index.d.ts.map +0 -1
  186. package/build/index.js +0 -6
  187. package/build/index.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"cog.vrt.js","sourceRoot":"","sources":["../../src/cog/cog.vrt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,EAAW,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAGtC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;GAEG;AACH,KAAK,UAAU,aAAa,CAC1B,GAAW,EACX,WAAqB,EACrB,OAAe,EACf,WAAwB,EACxB,MAAe;IAEf,MAAM,SAAS,GAAG,CAAC,aAAa,EAAE,8BAA8B,CAAC,CAAC;IAClE,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE;QACvB,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KAC7B;IAED,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;IACjE,MAAM,WAAW,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,GAAG,SAAS,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC,EAAE,MAAM,CAAC,CAAC;AACzF,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,YAAY,CACzB,GAAW,EACX,aAAqB,EACrB,WAAwB,EACxB,UAAkB,EAClB,EAAU,EACV,MAAe,EACf,aAAqB;IAErB,MAAM,QAAQ,GAAG;QACf,KAAK;QACL,KAAK;QACL,QAAQ;QACR,KAAK;QACL,sBAAsB;QACtB,QAAQ;QACR,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE;QACxC,QAAQ;QACR,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,YAAY,EAAE;QACxC,KAAK;QACL,EAAE;QACF,EAAE;QACF,MAAM;KACP,CAAC;IACF,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,EAAE;QAC9B,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QACzC,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;KAChG;IACD,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,EAAE;QAC7B,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;KACjG;IACD,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE;QACzB,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;KACjD;IAED,MAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IAC3D,MAAM,WAAW,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,GAAG,QAAQ,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC;AACtF,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB;;;;;;;;;;OAUG;IACH,KAAK,CAAC,QAAQ,CACZ,SAAiB,EACjB,GAAW,EACX,OAAgB,EAChB,IAAY,EACZ,MAAe;QAEf,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,aAAa,CAAC,CAAC;QAErC,MAAM,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAE3E,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5B,OAAO,IAAI,CAAC;SACb;QAED,MAAM,aAAa,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QACxD,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAElD,IAAI,aAAa,GAAG,EAAE,CAAC;QAEvB,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YACjC,aAAa,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;YACvD,MAAM,GAAG,CAAC,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;SACzD;aAAM;YACL,GAAG,CAAC,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC;SAChC;QAED,MAAM,CAAC,IAAI,CACT;YACE,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM;YACnC,WAAW,EAAE,WAAW,CAAC,MAAM;YAC/B,eAAe,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM;SACzC,EACD,YAAY,CACb,CAAC;QAEF,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAElC,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC3C,0BAA0B;QAC1B,IAAI,cAAc,CAAC,cAAc,CAAC,EAAE;YAClC,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CACrC,cAAc,CAAC,OAAO,EACtB,cAAc,CAAC,UAAU,EACzB,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CACrD,CAAC;YACF,WAAW,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;SACzC;QAED,IAAI,WAAW,CAAC,KAAK,IAAI,IAAI,EAAE;YAC7B,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC7B,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK;gBAAE,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACnE;QAED,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAErC,UAAU,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,OAAO,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QACrF,MAAM,aAAa,CAAC,GAAG,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QAC1E,MAAM,YAAY,CAAC,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QAC3F,OAAO,UAAU,CAAC;IACpB,CAAC;CACF,CAAC"}
@@ -1,5 +0,0 @@
1
- /** Default Aligned levels between resolution zoom level and cog zoom level */
2
- export declare const AlignedLevel = 7;
3
- /** When a tile has at least this much covering merge it up to parent */
4
- export declare const CoveringFraction = 0.25;
5
- //# sourceMappingURL=constants.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/cog/constants.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,eAAO,MAAM,YAAY,IAAI,CAAC;AAE9B,wEAAwE;AACxE,eAAO,MAAM,gBAAgB,OAAO,CAAC"}
@@ -1,5 +0,0 @@
1
- /** Default Aligned levels between resolution zoom level and cog zoom level */
2
- export const AlignedLevel = 7;
3
- /** When a tile has at least this much covering merge it up to parent */
4
- export const CoveringFraction = 0.25;
5
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/cog/constants.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC;AAE9B,wEAAwE;AACxE,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC"}
@@ -1,10 +0,0 @@
1
- import { CogStacJob, JobCreationContext } from './cog.stac.job.js';
2
- export declare const MaxConcurrencyDefault = 50;
3
- export declare function filterTiff(a: string): boolean;
4
- export declare const CogJobFactory: {
5
- /**
6
- * Create a COG Job and potentially submit it to AWS Batch for processing
7
- */
8
- create(ctx: JobCreationContext): Promise<CogStacJob>;
9
- };
10
- //# sourceMappingURL=job.factory.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"job.factory.d.ts","sourceRoot":"","sources":["../../src/cog/job.factory.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAGnE,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAG7C;AAYD,eAAO,MAAM,aAAa;IACxB;;OAEG;gBACe,kBAAkB,GAAG,QAAQ,UAAU,CAAC;CAyF3D,CAAC"}
@@ -1,92 +0,0 @@
1
- import { Bounds } from '@basemaps/geo';
2
- import { fsa, isConfigS3Role, isFileConfigPath, LogConfig } from '@basemaps/shared';
3
- import { basename } from 'path';
4
- import * as ulid from 'ulid';
5
- import { BatchJob } from '../cli/cogify/batch.job.js';
6
- import { CogBuilder } from '../index.js';
7
- import { CogStacJob } from './cog.stac.job.js';
8
- import { Cutline } from './cutline.js';
9
- export const MaxConcurrencyDefault = 50;
10
- export function filterTiff(a) {
11
- const lowerA = a.toLowerCase();
12
- return lowerA.endsWith('.tiff') || lowerA.endsWith('.tif');
13
- }
14
- /** Group a file list by its zoom */
15
- function groupFiles(files) {
16
- var _a;
17
- const fileCounts = {};
18
- for (const f of files) {
19
- const zoom = f.name.split('-')[0];
20
- fileCounts[zoom] = ((_a = fileCounts[zoom]) !== null && _a !== void 0 ? _a : 0) + 1;
21
- }
22
- return fileCounts;
23
- }
24
- export const CogJobFactory = {
25
- /**
26
- * Create a COG Job and potentially submit it to AWS Batch for processing
27
- */
28
- async create(ctx) {
29
- var _a, _b, _c, _d, _e, _f, _g;
30
- const id = (_b = (_a = ctx.override) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : ulid.ulid();
31
- let imageryName = ctx.imageryName;
32
- if (imageryName == null)
33
- imageryName = basename(ctx.sourceLocation.path);
34
- const logger = LogConfig.get().child({ id, imageryName });
35
- const { sourceLocation } = ctx;
36
- logger.info({ source: ctx.sourceLocation.path, sourceRole: isConfigS3Role(sourceLocation) && sourceLocation.roleArn }, 'ListTiffs');
37
- fsa.configure(sourceLocation);
38
- const tiffList = isFileConfigPath(sourceLocation)
39
- ? sourceLocation.files
40
- : (await fsa.toArray(fsa.list(sourceLocation.path))).filter(filterTiff);
41
- const tiffSource = tiffList.map((path) => fsa.source(path));
42
- const maxConcurrency = (_d = (_c = ctx.override) === null || _c === void 0 ? void 0 : _c.concurrency) !== null && _d !== void 0 ? _d : MaxConcurrencyDefault;
43
- logger.info({ source: sourceLocation.path, tiffCount: tiffList.length }, 'LoadingTiffs');
44
- const cutline = new Cutline(ctx.tileMatrix, ctx.cutline && (await Cutline.loadCutline(ctx.cutline.href)), (_e = ctx.cutline) === null || _e === void 0 ? void 0 : _e.blend);
45
- const builder = new CogBuilder(ctx.tileMatrix, maxConcurrency, logger, (_f = ctx.override) === null || _f === void 0 ? void 0 : _f.projection);
46
- const metadata = await builder.build(tiffSource, cutline, (_g = ctx.override) === null || _g === void 0 ? void 0 : _g.alignedLevel);
47
- if (cutline.clipPoly.length === 0) {
48
- // no cutline needed for this imagery set
49
- ctx.cutline = undefined;
50
- }
51
- const files = metadata.files.sort(Bounds.compareArea);
52
- if (files.length > 0) {
53
- const bigArea = files[files.length - 1];
54
- const smallArea = files[0];
55
- logger.info({
56
- tileMatrix: ctx.tileMatrix.identifier,
57
- // Size of the biggest image
58
- big: bigArea.width / cutline.tileMatrix.pixelScale(metadata.resZoom),
59
- // Size of the smallest image
60
- small: smallArea.width / cutline.tileMatrix.pixelScale(metadata.resZoom),
61
- }, 'Covers');
62
- }
63
- // Don't log bounds as it is huge
64
- logger.info({
65
- ...metadata,
66
- tileMatrix: ctx.tileMatrix.identifier,
67
- bounds: undefined,
68
- files: undefined,
69
- fileCount: files.length,
70
- fileGroups: groupFiles(metadata.files),
71
- }, 'CoveringGenerated');
72
- let addAlpha = true;
73
- // -addalpha to vrt adds extra alpha layers even if one already exist
74
- if (metadata.bands > 3) {
75
- logger.info({ bandCount: metadata.bands }, 'Vrt:DetectedAlpha, Disabling -addalpha');
76
- addAlpha = false;
77
- }
78
- const job = await CogStacJob.create({
79
- id,
80
- imageryName,
81
- metadata,
82
- ctx,
83
- addAlpha,
84
- cutlinePoly: cutline.clipPoly,
85
- });
86
- if (ctx.batch)
87
- await BatchJob.batchJob(job, true, logger);
88
- logger.info({ tileMatrix: ctx.tileMatrix.identifier, job: job.getJobPath() }, 'Done');
89
- return job;
90
- },
91
- };
92
- //# sourceMappingURL=job.factory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"job.factory.js","sourceRoot":"","sources":["../../src/cog/job.factory.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- import { Epsg } from '@basemaps/geo';
2
- import fetch from 'node-fetch';
3
- export declare class ProjectionLoader {
4
- static _fetch: typeof fetch;
5
- /**
6
- * Ensure that a projection EPSG code is avialable for use in Proj4js
7
- *
8
- * If its not already loaded, lookup definition from spatialreference.org
9
- * @param code
10
- */
11
- static load(code: number): Promise<Epsg>;
12
- }
13
- //# sourceMappingURL=projection.loader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"projection.loader.d.ts","sourceRoot":"","sources":["../../src/cog/projection.loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAc,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B,qBAAa,gBAAgB;IAE3B,MAAM,CAAC,MAAM,eAAS;IAEtB;;;;;OAKG;WACU,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAc/C"}
@@ -1,27 +0,0 @@
1
- import { Epsg, Projection } from '@basemaps/geo';
2
- import fetch from 'node-fetch';
3
- export class ProjectionLoader {
4
- /**
5
- * Ensure that a projection EPSG code is avialable for use in Proj4js
6
- *
7
- * If its not already loaded, lookup definition from spatialreference.org
8
- * @param code
9
- */
10
- static async load(code) {
11
- if (Projection.tryGet(code) != null)
12
- return Epsg.get(code);
13
- const url = `https://spatialreference.org/ref/epsg/${code}/ogcwkt/`;
14
- const res = await this._fetch(url);
15
- if (!res.ok)
16
- throw new Error('Failed to load projection information for:' + code);
17
- let epsg = Epsg.tryGet(code);
18
- if (epsg == null)
19
- epsg = new Epsg(code);
20
- const text = await res.text();
21
- Projection.define(epsg, text);
22
- return epsg;
23
- }
24
- }
25
- // Exposed for testing
26
- ProjectionLoader._fetch = fetch;
27
- //# sourceMappingURL=projection.loader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"projection.loader.js","sourceRoot":"","sources":["../../src/cog/projection.loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B,MAAM,OAAO,gBAAgB;IAI3B;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAY;QAC5B,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3D,MAAM,GAAG,GAAG,yCAAyC,IAAI,UAAU,CAAC;QAEpE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,GAAG,IAAI,CAAC,CAAC;QAElF,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,IAAI,IAAI,IAAI;YAAE,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QAExC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;;AAtBD,sBAAsB;AACf,uBAAM,GAAG,KAAK,CAAC"}
@@ -1,32 +0,0 @@
1
- import { EpsgCode, StacCollection, StacItem } from '@basemaps/geo';
2
- import { CogGdalSettings } from './types.js';
3
- export interface CogGenerated {
4
- /** ISO date string */
5
- datetime: string;
6
- /** Package name of the generator */
7
- package: string;
8
- version: string;
9
- /** Commit hash of the generator */
10
- hash: string | undefined;
11
- }
12
- export interface CogOutputSummery extends CogGdalSettings {
13
- cutlineBlend?: number;
14
- }
15
- export interface CogSummaries {
16
- 'proj:epsg': EpsgCode[];
17
- /** Ground Sampling Distance in meters per pixel of the generated imagery */
18
- gsd: number[];
19
- 'linz:output': CogOutputSummery[];
20
- 'linz:generated': CogGenerated[];
21
- }
22
- export declare const CogStacKeywords: string[];
23
- export declare const CogStacItemExtensions: string[];
24
- /** STAC compliant structure for storing Job instructions */
25
- export type CogStac = StacCollection<CogSummaries>;
26
- export interface CogStacItemProperties {
27
- datetime: string;
28
- gsd: number;
29
- 'proj:epsg': EpsgCode;
30
- }
31
- export type CogStacItem = StacItem<CogStacItemProperties>;
32
- //# sourceMappingURL=stac.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stac.d.ts","sourceRoot":"","sources":["../../src/cog/stac.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,WAAW,YAAY;IAC3B,sBAAsB;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAEhB,OAAO,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,QAAQ,EAAE,CAAC;IACxB,4EAA4E;IAC5E,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,aAAa,EAAE,gBAAgB,EAAE,CAAC;IAClC,gBAAgB,EAAE,YAAY,EAAE,CAAC;CAGlC;AAED,eAAO,MAAM,eAAe,UAA6B,CAAC;AAC1D,eAAO,MAAM,qBAAqB,UAAiB,CAAC;AAEpD,4DAA4D;AAC5D,MAAM,MAAM,OAAO,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;AAEnD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,QAAQ,CAAC;CACvB;AAED,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,qBAAqB,CAAC,CAAC"}
package/build/cog/stac.js DELETED
@@ -1,3 +0,0 @@
1
- export const CogStacKeywords = ['Imagery', 'New Zealand'];
2
- export const CogStacItemExtensions = ['projection'];
3
- //# sourceMappingURL=stac.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stac.js","sourceRoot":"","sources":["../../src/cog/stac.ts"],"names":[],"mappings":"AA4BA,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AAC1D,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,YAAY,CAAC,CAAC"}
@@ -1,83 +0,0 @@
1
- import { BoundingBox, EpsgCode, NamedBounds, TileMatrixSet } from '@basemaps/geo';
2
- import { FileConfig } from '@basemaps/shared';
3
- import { GdalCogBuilderResampling } from '../gdal/gdal.config.js';
4
- export interface FeatureCollectionWithCrs extends GeoJSON.FeatureCollection {
5
- crs: {
6
- type: string;
7
- properties: {
8
- name: string;
9
- };
10
- };
11
- }
12
- export interface ImageryProperties {
13
- /** Ground Sampling Distance in meters per pixel */
14
- gsd: number;
15
- /** File access details */
16
- location: FileConfig;
17
- /** List of input files */
18
- files: NamedBounds[];
19
- }
20
- export interface CogSourceProperties extends ImageryProperties {
21
- epsg: EpsgCode;
22
- }
23
- export interface CogGdalSettings {
24
- resampling: GdalCogBuilderResampling;
25
- nodata?: number;
26
- /**
27
- * Quality level to use
28
- * @default 90
29
- */
30
- quality: number;
31
- /** Vrts will add a second alpha layer if one exists, so dont always add one */
32
- addAlpha: boolean;
33
- }
34
- export interface CogOutputProperties extends CogGdalSettings, ImageryProperties {
35
- /** The bounds of all the cogs */
36
- bounds: BoundingBox;
37
- /** Identifier of the tile matrix to use */
38
- tileMatrix?: string;
39
- epsg: EpsgCode;
40
- /** Cutline options */
41
- cutline?: {
42
- href: string;
43
- blend: number;
44
- };
45
- /** Should this job ignore source coverage and just produce one big COG for EPSG extent */
46
- oneCogCovering: boolean;
47
- }
48
- export interface CogJobJson {
49
- /** Unique processing Id */
50
- id: string;
51
- /** Imagery set name */
52
- name: string;
53
- title: string;
54
- description?: string;
55
- source: CogSourceProperties;
56
- output: CogOutputProperties;
57
- }
58
- export interface CogJob extends CogJobJson {
59
- tileMatrix: TileMatrixSet;
60
- targetZoom: number;
61
- getJobPath(key?: string): string;
62
- }
63
- export interface SourceMetadata {
64
- /** Number of imagery bands generally RGB (3) or RGBA (4) */
65
- bands: number;
66
- /** Bounding box for polygons */
67
- bounds: NamedBounds[];
68
- /** The number of pixels per meter for the best source image */
69
- pixelScale: number;
70
- /** Highest quality zoom level for the images */
71
- resZoom: number;
72
- /** EPSG projection number */
73
- projection: EpsgCode;
74
- /** GDAL_NODATA value */
75
- nodata?: number;
76
- }
77
- export interface CogBuilderMetadata extends SourceMetadata {
78
- /** the bounding box of all the COGs */
79
- targetBounds: BoundingBox;
80
- /** list of file basenames and their bounding box */
81
- files: NamedBounds[];
82
- }
83
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cog/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,MAAM,WAAW,wBAAyB,SAAQ,OAAO,CAAC,iBAAiB;IACzE,GAAG,EAAE;QACH,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE;YACV,IAAI,EAAE,MAAM,CAAC;SACd,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,iBAAiB;IAChC,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAC;IAEZ,0BAA0B;IAC1B,QAAQ,EAAE,UAAU,CAAC;IAErB,0BAA0B;IAC1B,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;IAC5D,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,wBAAwB,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB,+EAA+E;IAC/E,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,mBAAoB,SAAQ,eAAe,EAAE,iBAAiB;IAC7E,iCAAiC;IACjC,MAAM,EAAE,WAAW,CAAC;IAEpB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,QAAQ,CAAC;IAEf,sBAAsB;IACtB,OAAO,CAAC,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IAEF,0FAA0F;IAC1F,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,2BAA2B;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAC;IAEb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,MAAM,EAAE,mBAAmB,CAAC;CAC7B;AAED,MAAM,WAAW,MAAO,SAAQ,UAAU;IACxC,UAAU,EAAE,aAAa,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IAEnB,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,cAAc;IAC7B,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,MAAM,EAAE,WAAW,EAAE,CAAC;IAEtB,+DAA+D;IAC/D,UAAU,EAAE,MAAM,CAAC;IAEnB,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAC;IAEhB,6BAA6B;IAC7B,UAAU,EAAE,QAAQ,CAAC;IAErB,wBAAwB;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD,uCAAuC;IACvC,YAAY,EAAE,WAAW,CAAC;IAE1B,oDAAoD;IACpD,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/cog/types.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=gdal.progress.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gdal.progress.test.d.ts","sourceRoot":"","sources":["../../../src/gdal/__tests__/gdal.progress.test.ts"],"names":[],"mappings":""}
@@ -1,22 +0,0 @@
1
- import o from 'ospec';
2
- import { GdalProgressParser } from '../gdal.progress.js';
3
- o.spec('GdalProgressParser', () => {
4
- o('should emit on progress', () => {
5
- const prog = new GdalProgressParser();
6
- o(prog.progress).equals(0);
7
- prog.data(Buffer.from('\n.'));
8
- o(prog.progress.toFixed(2)).equals('3.23');
9
- });
10
- o('should take 31 dots to finish', () => {
11
- const prog = new GdalProgressParser();
12
- let processCount = 0;
13
- prog.data(Buffer.from('\n'));
14
- prog.on('progress', () => processCount++);
15
- for (let i = 0; i < 31; i++) {
16
- prog.data(Buffer.from('.'));
17
- o(processCount).equals(i + 1);
18
- }
19
- o(prog.progress.toFixed(2)).equals('100.00');
20
- });
21
- });
22
- //# sourceMappingURL=gdal.progress.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gdal.progress.test.js","sourceRoot":"","sources":["../../../src/gdal/__tests__/gdal.progress.test.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,OAAO,CAAC;AACtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,CAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAChC,CAAC,CAAC,yBAAyB,EAAE,GAAG,EAAE;QAChC,MAAM,IAAI,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACtC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAE3B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9B,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,CAAC,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACtC,MAAM,IAAI,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACtC,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC;QAE1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;YAC3B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5B,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SAC/B;QACD,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=gdal.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gdal.test.d.ts","sourceRoot":"","sources":["../../../src/gdal/__tests__/gdal.test.ts"],"names":[],"mappings":""}
@@ -1,52 +0,0 @@
1
- import o from 'ospec';
2
- import { GdalCogBuilder } from '../gdal.cog.js';
3
- import { normalizeAwsEnv } from '../gdal.command.js';
4
- import { GdalCogBuilderDefaults } from '../gdal.config.js';
5
- import { GdalDocker } from '../gdal.docker.js';
6
- o.spec('GdalCogBuilder', () => {
7
- o('should default all options', () => {
8
- const builder = new GdalCogBuilder('/foo', 'bar.tiff');
9
- o(builder.config.bbox).equals(undefined);
10
- o(builder.config.compression).equals('webp');
11
- o(builder.config.resampling).deepEquals({ warp: 'bilinear', overview: 'lanczos' });
12
- o(builder.config.blockSize).equals(512);
13
- o(builder.config.alignmentLevels).equals(1);
14
- o(builder.config).deepEquals({ ...GdalCogBuilderDefaults, bbox: undefined });
15
- });
16
- o('should create a docker command', () => {
17
- const builder = new GdalCogBuilder('/foo/foo.tiff', '/bar/bar.tiff');
18
- const args = builder.args;
19
- o(args.includes('TILING_SCHEME=GoogleMapsCompatible')).equals(true);
20
- o(args.includes('COMPRESS=webp')).equals(true);
21
- o(builder.args.includes('BLOCKSIZE=512')).equals(true);
22
- builder.config.compression = 'jpeg';
23
- o(builder.args.includes('COMPRESS=jpeg')).equals(true);
24
- builder.config.blockSize = 256;
25
- o(builder.args.includes('BLOCKSIZE=256')).equals(true);
26
- });
27
- o('should mount folders', () => {
28
- const gdalDocker = new GdalDocker();
29
- gdalDocker.mount('/foo/bar');
30
- o(gdalDocker.mounts).deepEquals(['/foo']);
31
- });
32
- o('should not duplicate folders', () => {
33
- const gdalDocker = new GdalDocker();
34
- gdalDocker.mount('/foo/bar.html');
35
- gdalDocker.mount('/foo/bar.tiff');
36
- o(gdalDocker.mounts).deepEquals(['/foo']);
37
- });
38
- o('should ignore s3 uris', () => {
39
- const gdalDocker = new GdalDocker();
40
- gdalDocker.mount('s3://foo/bar.html');
41
- gdalDocker.mount('s3://foo/bar.tiff');
42
- o(gdalDocker.mounts).deepEquals([]);
43
- });
44
- o('should normalize aws environment vars', () => {
45
- const env = normalizeAwsEnv({ AWS_PROFILE: 'lake' });
46
- o(env).deepEquals({ AWS_PROFILE: 'lake', AWS_DEFAULT_PROFILE: 'lake' });
47
- });
48
- o('should error if aws config is not sane', () => {
49
- o(() => normalizeAwsEnv({ AWS_PROFILE: 'lake', AWS_DEFAULT_PROFILE: 'other-lake' })).throws(Error);
50
- });
51
- });
52
- //# sourceMappingURL=gdal.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gdal.test.js","sourceRoot":"","sources":["../../../src/gdal/__tests__/gdal.test.ts"],"names":[],"mappings":"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"}
@@ -1,42 +0,0 @@
1
- /// <reference types="node" />
2
- import { LogType } from '@basemaps/shared';
3
- import { ChildProcessWithoutNullStreams } from 'child_process';
4
- import { GdalCommand } from './gdal.command.js';
5
- import { GdalCogBuilderOptions } from './gdal.config.js';
6
- /** 1% Buffer to the tiff to help prevent gaps between tiles */
7
- /**
8
- * A docker based GDAL Cog Builder
9
- *
10
- * This uses the new 3.1 COG Driver https://gdal.org/drivers/raster/cog.html
11
- *
12
- * When GDAL 3.1 is released docker could be removed from this process.
13
- */
14
- export declare class GdalCogBuilder {
15
- config: GdalCogBuilderOptions;
16
- /**
17
- * Source file generally a .vrt
18
- */
19
- source: string;
20
- /**
21
- * Output file
22
- */
23
- target: string;
24
- /**
25
- * Current running child process
26
- */
27
- child: ChildProcessWithoutNullStreams | null;
28
- /**
29
- * Promise waiting for child process to finish
30
- */
31
- promise: Promise<void> | null;
32
- /** When the process started */
33
- startTime: number;
34
- /** Gdal process */
35
- gdal: GdalCommand;
36
- constructor(source: string, target: string, config?: Partial<GdalCogBuilderOptions>);
37
- getBounds(): string[];
38
- get tileMatrixFileName(): string;
39
- get args(): string[];
40
- convert(log: LogType): Promise<void>;
41
- }
42
- //# sourceMappingURL=gdal.cog.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gdal.cog.d.ts","sourceRoot":"","sources":["../../src/gdal/gdal.cog.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,8BAA8B,EAAE,MAAM,eAAe,CAAC;AAE/D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAA0B,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEjF,+DAA+D;AAG/D;;;;;;GAMG;AACH,qBAAa,cAAc;IACzB,MAAM,EAAE,qBAAqB,CAAC;IAE9B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,KAAK,EAAE,8BAA8B,GAAG,IAAI,CAAC;IAC7C;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC9B,+BAA+B;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB;IACnB,IAAI,EAAE,WAAW,CAAC;gBAEN,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,OAAO,CAAC,qBAAqB,CAAM;IAmBvF,SAAS,IAAI,MAAM,EAAE;IAYrB,IAAI,kBAAkB,IAAI,MAAM,CAO/B;IAED,IAAI,IAAI,IAAI,MAAM,EAAE,CAuDnB;IAEK,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAG3C"}
@@ -1,108 +0,0 @@
1
- import { GoogleTms, Nztm2000Tms } from '@basemaps/geo';
2
- import { Gdal } from './gdal.js';
3
- import { GdalCogBuilderDefaults } from './gdal.config.js';
4
- /** 1% Buffer to the tiff to help prevent gaps between tiles */
5
- // const TiffBuffer = 1.01;
6
- /**
7
- * A docker based GDAL Cog Builder
8
- *
9
- * This uses the new 3.1 COG Driver https://gdal.org/drivers/raster/cog.html
10
- *
11
- * When GDAL 3.1 is released docker could be removed from this process.
12
- */
13
- export class GdalCogBuilder {
14
- constructor(source, target, config = {}) {
15
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
16
- this.source = source;
17
- this.target = target;
18
- this.config = {
19
- bbox: config.bbox,
20
- alignmentLevels: (_a = config.alignmentLevels) !== null && _a !== void 0 ? _a : GdalCogBuilderDefaults.alignmentLevels,
21
- compression: (_b = config.compression) !== null && _b !== void 0 ? _b : GdalCogBuilderDefaults.compression,
22
- tileMatrix: (_c = config.tileMatrix) !== null && _c !== void 0 ? _c : GdalCogBuilderDefaults.tileMatrix,
23
- resampling: (_d = config.resampling) !== null && _d !== void 0 ? _d : GdalCogBuilderDefaults.resampling,
24
- blockSize: (_e = config.blockSize) !== null && _e !== void 0 ? _e : GdalCogBuilderDefaults.blockSize,
25
- targetRes: (_f = config.targetRes) !== null && _f !== void 0 ? _f : GdalCogBuilderDefaults.targetRes,
26
- quality: (_g = config.quality) !== null && _g !== void 0 ? _g : GdalCogBuilderDefaults.quality,
27
- };
28
- this.gdal = Gdal.create();
29
- (_j = (_h = this.gdal).mount) === null || _j === void 0 ? void 0 : _j.call(_h, source);
30
- (_l = (_k = this.gdal).mount) === null || _l === void 0 ? void 0 : _l.call(_k, target);
31
- }
32
- getBounds() {
33
- if (this.config.bbox == null) {
34
- return [];
35
- }
36
- // TODO in theory this should be clamped to the lower right of the imagery, as there is no point generating large empty tiffs
37
- const [ulX, ulY, lrX, lrY] = this.config.bbox;
38
- return ['-projwin', ulX, ulY, lrX, lrY, '-projwin_srs', this.config.tileMatrix.projection.toEpsgString()].map(String);
39
- }
40
- get tileMatrixFileName() {
41
- const tileMatrix = this.config.tileMatrix;
42
- // Gdal built in TileMatrixSets
43
- if (tileMatrix.identifier === GoogleTms.identifier)
44
- return 'GoogleMapsCompatible';
45
- if (tileMatrix.identifier === Nztm2000Tms.identifier)
46
- return 'NZTM2000';
47
- return 'https://raw.githubusercontent.com/linz/NZTM2000TileMatrixSet/master/raw/NZTM2000Quad.json';
48
- }
49
- get args() {
50
- const tr = this.config.targetRes.toString();
51
- return [
52
- // Force output using COG Driver
53
- '-of',
54
- 'COG',
55
- // Force GoogleMaps tiling
56
- '-co',
57
- `TILING_SCHEME=${this.tileMatrixFileName}`,
58
- // Max CPU POWER
59
- '-co',
60
- 'NUM_THREADS=ALL_CPUS',
61
- // in GDAL 3.7.x NUM_THREADS will also set GDAL_NUM_THREADS
62
- '--config',
63
- 'GDAL_NUM_THREADS',
64
- 'ALL_CPUS',
65
- // Force big tiff the extra few bytes savings of using little tiffs does not affect us
66
- '-co',
67
- 'BIGTIFF=YES',
68
- // Force a alpha layer
69
- '-co',
70
- 'ADD_ALPHA=YES',
71
- // User configured output block size
72
- '-co',
73
- `BLOCKSIZE=${this.config.blockSize}`,
74
- // Configured resampling methods
75
- '-co',
76
- `WARP_RESAMPLING=${this.config.resampling.warp}`,
77
- '-co',
78
- `OVERVIEW_RESAMPLING=${this.config.resampling.overview}`,
79
- // User configured compression
80
- '-co',
81
- `COMPRESS=${this.config.compression}`,
82
- // Number of levels to align to web mercator
83
- '-co',
84
- `ALIGNED_LEVELS=${this.config.alignmentLevels}`,
85
- // Default quality of 75 is too low for our needs
86
- '-co',
87
- `QUALITY=${this.config.quality}`,
88
- // most of the imagery contains a lot of empty tiles, no need to output them
89
- '-co',
90
- `SPARSE_OK=YES`,
91
- // Do not attempt to read sidecar files
92
- '--config',
93
- `GDAL_DISABLE_READDIR_ON_OPEN`,
94
- `EMPTY_DIR`,
95
- // Force a target resolution to be better than the imagery not worse
96
- '-tr',
97
- tr,
98
- tr,
99
- ...this.getBounds(),
100
- this.source,
101
- this.target,
102
- ];
103
- }
104
- async convert(log) {
105
- await this.gdal.run('gdal_translate', this.args, log);
106
- }
107
- }
108
- //# sourceMappingURL=gdal.cog.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gdal.cog.js","sourceRoot":"","sources":["../../src/gdal/gdal.cog.ts"],"names":[],"mappings":"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"}