Skip to content

Commit 5a7d814

Browse files
committedJun 27, 2020
added support for colormaps
1 parent 59367a7 commit 5a7d814

21 files changed

+136
-109
lines changed
 

‎.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,8 @@ package-lock.json
7676

7777
# test data files
7878
data/geonode_atlanteil.tif
79+
data/*.json
7980
data/*.xml
8081
data/rgb_raster.tif
82+
data/*.tif
8183
stats.json

‎README.md

+6-1
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ that require you to load the whole image into memory. It will also attempt to a
6868
});
6969
```
7070

71-
# properties
71+
# required properties
7272
| name | description |
7373
| ---- | ----------- |
7474
| maxs | array with max value for each band |
@@ -85,6 +85,11 @@ that require you to load the whole image into memory. It will also attempt to a
8585
| ymin | ymin in crs, which is often in latitude |
8686
| ymax | ymax in crs, which is often in latitude |
8787

88+
# optional properties
89+
| name | description |
90+
| ---- | ----------- |
91+
| palette | Array that maps raster values to RGBA colors |
92+
8893
# functions
8994
| name | description |
9095
| ---- | ----------- |

‎data/setup_data.sh

100644100755
File mode changed.

‎dist/0.04ff0f49437f65e006d0.worker.worker.js

-1
This file was deleted.

‎dist/0.0e0b9d4515921cbf8ab7.worker.worker.js

-1
This file was deleted.

‎dist/0.1ac02c4bf5d9d9cdeb09.worker.worker.js

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎dist/0.8a1ffd3a2c74f606cfd5.worker.worker.js

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎dist/0.georaster.browser.bundle.min.worker.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎dist/0.georaster.browser.bundle.worker.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎dist/0.georaster.bundle.min.worker.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎dist/0.georaster.bundle.worker.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎dist/1.a2af9974e83c86afe782.worker.worker.js ‎dist/1.9392d18d1eaf82def340.worker.worker.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎dist/1.4141be3d735ff1770cdc.worker.worker.js ‎dist/1.df4b6c505fadf7966691.worker.worker.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎dist/georaster.browser.bundle.js

+35-36
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎dist/georaster.browser.bundle.min.js

+3-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎dist/georaster.bundle.js

+53-54
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎dist/georaster.bundle.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎package.json

+5-6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "georaster",
3-
"version": "1.0.5",
3+
"version": "1.1.0",
44
"description": "Wrapper around Georeferenced Rasters like GeoTIFF, NetCDF, JPG, and PNG that provides a standard interface",
55
"main": "dist/georaster.bundle.min.js",
66
"browser": {
@@ -17,12 +17,10 @@
1717
"test-dev": "npm run dev && GEORASTER_TEST_BUNDLE_NAME='georaster.bundle.js' node ./node_modules/.bin/mocha --reporter spec",
1818
"test-prod": "npm run build && GEORASTER_TEST_BUNDLE_NAME='georaster.bundle.min.js' node ./node_modules/.bin/mocha --reporter spec",
1919
"dev": "webpack --mode development --target node && webpack --mode development --target web",
20-
"build": "npm run prebuild && npm run build:prod",
21-
"mod-geotiff-js": "./node_modules/replace-in-files-cli/cli.js ./node_modules/geotiff/src/pool.js --string=\"import 'threads/register';\" --replacement=\"import { Worker } from 'threads';\"",
20+
"build": "npm run build:prod",
2221
"build:prod": "npm run build:prod:node && npm run build:prod:web",
2322
"build:prod:node": "webpack --mode production --target node",
24-
"build:prod:web": "webpack --mode production --target web",
25-
"prebuild": "npm run clean && npm run mod-geotiff-js"
23+
"build:prod:web": "webpack --mode production --target web"
2624
},
2725
"repository": {
2826
"type": "git",
@@ -46,7 +44,8 @@
4644
"dependencies": {
4745
"cross-fetch": "^3.0.4",
4846
"georaster-to-canvas": "0.2.0",
49-
"geotiff": "^1.0.0-beta.10",
47+
"geotiff": "^1.0.0-beta.12",
48+
"geotiff-palette": "0.0.0",
5049
"simple-xml-dom": "^1.0.0",
5150
"threads": "^1.4.0",
5251
"tiny-worker": "^2.3.0",

‎src/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import fetch from 'cross-fetch';
66
import Worker from './worker.js';
77
import parseData from './parseData.js';
88
import {unflatten} from './utils.js';
9-
import {fromUrl, fromUrls} from 'geotiff/src/main.js';
9+
import {fromUrl, fromUrls} from 'geotiff';
1010
import toCanvas from 'georaster-to-canvas';
1111

1212
function urlExists(url) {

‎src/parseData.js

+6-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import {fromArrayBuffer, fromUrl} from 'geotiff/src/main.js';
1+
import {fromArrayBuffer, fromUrl} from 'geotiff';
2+
import {getPalette} from 'geotiff-palette';
23
import {unflatten} from './utils.js';
34

45
function processResult(result, debug) {
@@ -110,6 +111,10 @@ export default function parseData(data, debug) {
110111

111112
result.numberOfRasters = fileDirectory.SamplesPerPixel;
112113

114+
if (fileDirectory.ColorMap) {
115+
result.palette = getPalette(image);
116+
}
117+
113118
if (data.sourceType !== 'url') {
114119
return image.readRasters().then(rasters => {
115120
result.values = rasters.map(valuesInOneDimension => {

‎test/test.js

+16
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,22 @@ describe('Parsing RGB Rasters', function() {
152152
});
153153
});
154154
});
155+
describe('Parsing RGB Paletted Raster', function() {
156+
it('should parse data/rgb_paletted.tif', function(done) {
157+
this.timeout(50000);
158+
fs.readFile('data/rgb_paletted.tif', (error, data) => {
159+
parseGeoraster(data).then(georaster => {
160+
try {
161+
expect(georaster.palette).to.be.an('array');
162+
expect(georaster.palette).to.have.lengthOf(256);
163+
done();
164+
} catch (error) {
165+
console.error(error);
166+
}
167+
});
168+
});
169+
});
170+
});
155171
});
156172

157173
describe('Parsing COG Raster', function() {

0 commit comments

Comments
 (0)
Please sign in to comment.