Skip to content

Instantly share code, notes, and snippets.

@rajadain
Last active August 9, 2017 20:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rajadain/aa1df58f9c13b11e51938579b989606c to your computer and use it in GitHub Desktop.
Save rajadain/aa1df58f9c13b11e51938579b989606c to your computer and use it in GitHub Desktop.
PNG to GeoTrellis ColorMap

Requirements

Demo

$ ./convert.sh ppt_colorbar.png
+ gm convert ppt_colorbar.png txt:-
+ grep --color=never -o '#[0-9A-F]\{6\}'
+ ./hex2geotrellis.py
0:#E66F00;4:#E67001;5:#E67102;8:#E67204;9:#E77305;12:#E77407;13:#E87508;16:#E8760A;17:#E9770B;20:#E9780D;21:#E9790E;24:#E97A10;25:#EA7B11;28:#EA7D12;29:#EB7E13;32:#EB7F15;33:#EC8016;36:#EC8118;37:#ED8219;40:#ED831B;41:#ED841C;43:#ED851E;44:#EE861F;47:#EE8721;48:#EF8822;51:#EF8A23;52:#F08B24;55:#F08C26;56:#F08D27;59:#F08E29;60:#F18F2A;63:#F1902C;64:#F2912D;67:#F2922F;68:#F39330;71:#F39432;72:#F49533;75:#F49635;76:#F49736;79:#F49937;80:#F59A38;82:#F09A3C;83:#F09B3D;86:#E89B42;87:#E79C44;90:#DF9C48;91:#DE9D4A;94:#D69E4F;95:#D59F51;98:#CD9F55;99:#CCA057;102:#C4A05B;103:#C3A15D;106:#BBA162;107:#BAA264;110:#B2A268;111:#B1A36A;114:#AAA36F;115:#A8A471;118:#A1A475;119:#9FA577;121:#98A57C;122:#96A67E;125:#8FA782;126:#8DA884;129:#86A888;130:#84A98A;133:#7DA98F;134:#7BAA91;137:#74AA95;138:#72AB97;141:#6BAB9C;142:#69AC9E;145:#62ACA2;146:#60ADA4;149:#59ADA8;150:#57AEAB;153:#50AEAF;154:#4EAFB1;157:#47B0B5;158:#45B1B7;160:#40B1BB;161:#3EB2BD;164:#3FB2BE;165:#40B3BF;168:#40B4C0;169:#41B5C1;172:#42B6C2;173:#43B7C3;176:#44B7C4;177:#45B8C5;180:#45B9C6;181:#46BAC7;184:#47BBC8;185:#48BCC9;188:#49BCCA;189:#4ABDCB;192:#4BBECC;193:#4CBFCD;196:#4CC0CE;197:#4DC1CF;200:#4EC2D0;201:#4FC3D2;203:#50C3D3;204:#51C4D4;207:#51C5D5;208:#52C6D6;211:#53C7D7;212:#54C8D8;215:#55C8D9;216:#56C9DA;219:#57CADB;220:#58CBDC;223:#58CBDD;224:#59CCDE;227:#5ACDDF;228:#5BCEE0;231:#5CCFE1;232:#5DD0E2;235:#5DD1E3;236:#5ED2E4;239:#5FD2E5;240:#60D3E6;242:#5ED1E3;246:#5ACDDE;251:#54C6D7;255:#4FC2D1;258:#4CBFCE;262:#48BAC8;263:#46B8C6;266:#43B5C3;267:#41B3C0;270:#3FB1BD;271:#3DAFBB;274:#3AACB8;275:#38AAB5;278:#35A7B2;279:#33A5AF;281:#31A3AC;282:#2FA1AA;285:#2C9EA7;286:#2A9CA4;289:#2899A1;290:#26979E;293:#23959B;294:#219399;297:#1E9096;298:#1C8E93;301:#1A8B90;302:#18898D;305:#16878B;306:#138488;309:#118285;310:#0E8082;313:#0C7E80;314:#0A7B7D;317:#08797A;318:#057677;320:#037475;321:#027373;332:#027273;340:#027173;352:#027073;356:#027072;360:#026F72;371:#026E72;383:#026D72;387:#026D71;391:#026C71;402:#026B71;410:#026A71;422:#026970;434:#026870;441:#026770;453:#026670;457:#02666F;461:#02656F;473:#02646F;484:#02636F;488:#02636E;492:#02626E;505:#02616E;513:#02606E;524:#025F6D;532:#025E6D;544:#025D6D;548:#015D6D;556:#015C6D;560:#015C6C;563:#015B6C;575:#015A6C;583:#01596C;591:#01596B;595:#01586B;606:#01576B;614:#01566B;626:#01556A;634:#01546A;645:#01536A;657:#01526A;661:#015269;665:#015169;677:#015069;684:#014F69;692:#014F68;696:#014E68;704:#014D68;716:#014C68;727:#014B67;735:#014A67;747:#014967;755:#014867;762:#014866;766:#014766;774:#004766;778:#004666;786:#004566;794:#004565;798:#004465;805:#004365;817:#004265;829:#004164;837:#004064;848:#003F64;856:#003E64;864:#003E63;868:#003D63;876:#003C63;887:#003B63;895:#003B62;899:#003A62;907:#003962;919:#003862;926:#003762;930:#003761;938:#003661;950:#003561;958:#003461;965:#003460;969:#003360;977:#003260;989:#003160;997:#003060

Color Bar Images

ppt_colorbar

0:#E66F00;4:#E67001;5:#E67102;8:#E67204;9:#E77305;12:#E77407;13:#E87508;
16:#E8760A;17:#E9770B;20:#E9780D;21:#E9790E;24:#E97A10;25:#EA7B11;
28:#EA7D12;29:#EB7E13;32:#EB7F15;33:#EC8016;36:#EC8118;37:#ED8219;
40:#ED831B;41:#ED841C;43:#ED851E;44:#EE861F;47:#EE8721;48:#EF8822;
51:#EF8A23;52:#F08B24;55:#F08C26;56:#F08D27;59:#F08E29;60:#F18F2A;
63:#F1902C;64:#F2912D;67:#F2922F;68:#F39330;71:#F39432;72:#F49533;
75:#F49635;76:#F49736;79:#F49937;80:#F59A38;82:#F09A3C;83:#F09B3D;
86:#E89B42;87:#E79C44;90:#DF9C48;91:#DE9D4A;94:#D69E4F;95:#D59F51;
98:#CD9F55;99:#CCA057;102:#C4A05B;103:#C3A15D;106:#BBA162;107:#BAA264;
110:#B2A268;111:#B1A36A;114:#AAA36F;115:#A8A471;118:#A1A475;119:#9FA577;
121:#98A57C;122:#96A67E;125:#8FA782;126:#8DA884;129:#86A888;130:#84A98A;
133:#7DA98F;134:#7BAA91;137:#74AA95;138:#72AB97;141:#6BAB9C;142:#69AC9E;
145:#62ACA2;146:#60ADA4;149:#59ADA8;150:#57AEAB;153:#50AEAF;154:#4EAFB1;
157:#47B0B5;158:#45B1B7;160:#40B1BB;161:#3EB2BD;164:#3FB2BE;165:#40B3BF;
168:#40B4C0;169:#41B5C1;172:#42B6C2;173:#43B7C3;176:#44B7C4;177:#45B8C5;
180:#45B9C6;181:#46BAC7;184:#47BBC8;185:#48BCC9;188:#49BCCA;189:#4ABDCB;
192:#4BBECC;193:#4CBFCD;196:#4CC0CE;197:#4DC1CF;200:#4EC2D0;201:#4FC3D2;
203:#50C3D3;204:#51C4D4;207:#51C5D5;208:#52C6D6;211:#53C7D7;212:#54C8D8;
215:#55C8D9;216:#56C9DA;219:#57CADB;220:#58CBDC;223:#58CBDD;224:#59CCDE;
227:#5ACDDF;228:#5BCEE0;231:#5CCFE1;232:#5DD0E2;235:#5DD1E3;236:#5ED2E4;
239:#5FD2E5;240:#60D3E6;242:#5ED1E3;246:#5ACDDE;251:#54C6D7;255:#4FC2D1;
258:#4CBFCE;262:#48BAC8;263:#46B8C6;266:#43B5C3;267:#41B3C0;270:#3FB1BD;
271:#3DAFBB;274:#3AACB8;275:#38AAB5;278:#35A7B2;279:#33A5AF;281:#31A3AC;
282:#2FA1AA;285:#2C9EA7;286:#2A9CA4;289:#2899A1;290:#26979E;293:#23959B;
294:#219399;297:#1E9096;298:#1C8E93;301:#1A8B90;302:#18898D;305:#16878B;
306:#138488;309:#118285;310:#0E8082;313:#0C7E80;314:#0A7B7D;317:#08797A;
318:#057677;320:#037475;321:#027373;332:#027273;340:#027173;352:#027073;
356:#027072;360:#026F72;371:#026E72;383:#026D72;387:#026D71;391:#026C71;
402:#026B71;410:#026A71;422:#026970;434:#026870;441:#026770;453:#026670;
457:#02666F;461:#02656F;473:#02646F;484:#02636F;488:#02636E;492:#02626E;
505:#02616E;513:#02606E;524:#025F6D;532:#025E6D;544:#025D6D;548:#015D6D;
556:#015C6D;560:#015C6C;563:#015B6C;575:#015A6C;583:#01596C;591:#01596B;
595:#01586B;606:#01576B;614:#01566B;626:#01556A;634:#01546A;645:#01536A;
657:#01526A;661:#015269;665:#015169;677:#015069;684:#014F69;692:#014F68;
696:#014E68;704:#014D68;716:#014C68;727:#014B67;735:#014A67;747:#014967;
755:#014867;762:#014866;766:#014766;774:#004766;778:#004666;786:#004566;
794:#004565;798:#004465;805:#004365;817:#004265;829:#004164;837:#004064;
848:#003F64;856:#003E64;864:#003E63;868:#003D63;876:#003C63;887:#003B63;
895:#003B62;899:#003A62;907:#003962;919:#003862;926:#003762;930:#003761;
938:#003661;950:#003561;958:#003461;965:#003460;969:#003360;977:#003260;
989:#003160;997:#003060

tmean_colorbar

0:#2E0067;4:#2F0069;5:#30006A;8:#31006D;9:#32006E;12:#330070;
13:#340171;16:#350174;17:#360175;20:#380177;21:#390278;24:#3A027B;
25:#3B027C;28:#3C027F;29:#3D0380;32:#3E0382;33:#3F0383;36:#410386;
37:#420487;40:#430489;41:#44048A;43:#45048D;44:#46058E;47:#470590;
48:#480591;51:#4A0594;52:#4B0695;55:#4C0698;56:#4D0699;59:#4E069B;
60:#4F079C;63:#50079F;64:#5107A0;67:#5207A2;68:#5307A3;71:#5507A6;
72:#5608A7;75:#5708A9;76:#5808AA;79:#5908AD;80:#5A09AE;82:#5B09B1;
83:#5C09B2;86:#5E09B4;87:#5F0AB5;90:#600AB8;91:#610AB9;94:#620ABB;
95:#630BBC;98:#640BBF;99:#650BC0;102:#670BC2;103:#680CC3;106:#690CC6;
107:#6A0CC7;110:#6B0CCA;111:#6C0DCB;114:#6D0DCD;115:#6E0DCE;118:#700DD1;
119:#710ED2;121:#720ED4;122:#730ED5;125:#740ED8;126:#750FD9;129:#760FDB;
130:#770FDD;133:#780FDF;134:#790FE0;137:#7B0FE2;138:#7C10E4;141:#7D10E6;
142:#7E10E7;145:#7F10E9;146:#8011EB;149:#8111ED;150:#8211EE;153:#8411F0;
154:#8512F2;157:#8612F4;158:#8712F6;160:#8812F8;161:#8913F9;164:#8A13FB;
165:#8B13FD;168:#8D13FD;169:#8E13FE;172:#8F13FD;173:#9113FD;176:#9212FC;
177:#9412FC;180:#9511FA;181:#9611FA;184:#9711F9;185:#9911F9;188:#9A10F8;
189:#9C10F8;192:#9D10F7;193:#9F10F7;196:#A00FF6;197:#A20FF6;200:#A30FF5;
201:#A50FF5;203:#A60EF3;204:#A70EF3;207:#A80DF2;208:#AA0DF2;211:#AB0DF1;
212:#AD0DF1;215:#AE0CF0;216:#B00CF0;219:#B10CEF;220:#B30CEF;223:#B40BED;
224:#B50BED;227:#B60AEC;228:#B80AEC;231:#B90AEB;232:#BB0AEB;235:#BC09EA;
236:#BE09EA;239:#BF09E9;240:#C109E9;242:#C208E8;243:#C408E8;246:#C507E6;
247:#C607E6;250:#C707E5;251:#C907E5;254:#CA06E4;255:#CC06E4;258:#CD06E3;
259:#CF06E3;262:#D005E2;263:#D205E2;266:#D205E1;267:#D405E1;270:#D504E0;
271:#D704DF;274:#D803DE;275:#DA03DE;278:#DB03DD;279:#DD03DD;281:#DE02DC;
282:#E002DC;285:#E102DB;286:#E302DB;289:#E401DA;290:#E601D9;293:#E700D8;
294:#E900D8;297:#EA00D7;298:#EC00D7;301:#EB00D7;305:#E700D7;306:#E301D8;
309:#E001D8;310:#DC02D9;313:#D902D9;314:#D503DB;317:#D203DB;318:#CE04DC;
320:#CB04DC;321:#C705DD;324:#C405DD;325:#C006DE;328:#BD06DE;329:#B907DF;
332:#B607DF;333:#B108E1;336:#AF08E1;337:#AB08E2;340:#A808E2;341:#A409E3;
344:#A109E3;345:#9D0AE4;348:#9A0AE4;349:#960BE5;352:#930BE5;353:#8F0CE6;
356:#8C0CE6;357:#880DE8;360:#860DE8;361:#810EE9;363:#7F0EE9;364:#7A0FEA;
367:#780FEA;368:#7310EB;371:#7110EB;372:#6C11EC;375:#6A11EC;376:#6512ED;
379:#6312ED;380:#5E13EF;383:#5C13EF;384:#5714F0;387:#5514F0;388:#5015F1;
391:#4E15F1;392:#4916F2;395:#4716F2;396:#4217F3;399:#4017F3;400:#3B19F5;
402:#3919F5;403:#341AF6;406:#321AF6;407:#2D1BF7;410:#2B1BF7;411:#261CF8;
414:#241CF8;415:#1F1DF9;418:#1D1DF9;419:#181EFA;422:#161EFA;423:#111FFC;
426:#0F1FFC;427:#0A20FD;430:#0820FD;431:#0321FE;434:#0221FD;435:#0024FB;
438:#0024FA;439:#0029F5;441:#0029F4;442:#002EEE;445:#002EED;446:#0033E7;
449:#0033E6;450:#0038E1;453:#0038E0;454:#003DDA;457:#003DD9;458:#0042D4;
461:#0042D3;462:#0047CD;465:#0047CC;466:#004CC7;469:#004CC6;470:#0052C0;
473:#0052BF;474:#0057B9;477:#0057B8;478:#005CB3;480:#005CB2;481:#0061AC;
484:#0061AB;485:#0066A6;488:#0066A5;489:#006C9F;492:#006C9E;493:#007198;
496:#007197;497:#007692;500:#007691;501:#007B8B;505:#007F84;506:#008084;
509:#00847E;510:#00857E;513:#008977;514:#008A77;517:#008E70;518:#008F70;
521:#00936A;522:#00946A;524:#009863;525:#009963;528:#009D5C;529:#009E5C;
532:#00A355;533:#00A455;536:#00A84F;537:#00A94F;540:#00AD49;541:#00AE49;
544:#00B242;545:#00B342;548:#00B73C;549:#00B83C;552:#00BC35;553:#00BD35;
556:#00C22F;557:#00C32F;560:#00C728;561:#00C828;563:#00CC22;564:#00CD22;
567:#02CF1E;568:#03D01E;571:#09D01D;572:#0AD01D;575:#0FD01C;576:#11D01C;
579:#16D01B;580:#18D11B;583:#1DD11A;584:#1FD11A;587:#24D119;588:#26D119;
591:#2BD118;592:#2DD218;595:#32D217;596:#34D217;599:#39D217;600:#3BD317;
602:#3FD316;603:#41D316;606:#46D315;607:#48D315;610:#4DD314;611:#4FD414;
614:#54D413;615:#56D413;618:#5BD412;619:#5DD412;622:#61D411;623:#63D511;
626:#68D510;627:#6AD510;630:#6FD50F;631:#71D50F;634:#76D50E;635:#78D60E;
638:#7DD60D;639:#7FD60D;641:#84D60C;642:#86D60C;645:#8BD60B;646:#8DD70B;
649:#91D70A;650:#94D70A;653:#98D709;654:#9BD709;657:#9FD708;658:#A2D808;
661:#A6D807;662:#A9D807;665:#ADD807;666:#AFD807;669:#B4D806;670:#B7D906;
673:#BBD905;674:#BED905;677:#C2D904;678:#C5DA04;681:#C9DA03;682:#CCDA03;
684:#D0DA02;685:#D3DB02;688:#D7DB02;689:#DADB02;692:#DEDB01;693:#E1DC01;
696:#E5DC00;697:#E8DC00;700:#EADA00;701:#ECD900;704:#ECD500;705:#ECD300;
708:#ECCE00;709:#EDCC00;712:#EDC700;713:#EDC500;716:#EDC100;717:#EEBF00;
720:#EEBB00;721:#EEB800;723:#EEB400;724:#EFB200;727:#EFAE00;728:#EFAB00;
731:#EFA700;732:#F0A400;735:#F0A000;736:#F09E00;739:#F09A00;740:#F19800;
743:#F19400;744:#F19100;747:#F18D00;748:#F28B00;751:#F28700;752:#F28401;
755:#F28101;756:#F37E01;759:#F37A01;760:#F47701;762:#F47401;763:#F47101;
766:#F46D01;767:#F56A02;770:#F56702;771:#F56402;774:#F56002;775:#F65D02;
778:#F65A02;779:#F75702;782:#F75302;783:#F75002;786:#F74D02;787:#F84A02;
790:#F84702;791:#F84302;794:#F84002;795:#F93D02;798:#F93A02;799:#FA3702;
801:#FA3402;802:#FA3002;805:#FA2D02;806:#FB2A02;809:#FB2702;810:#FB2302;
813:#FB2002;814:#FC1D02;817:#FC1A02;818:#FC1603;821:#FC1303;822:#FD1003;
825:#FD0D03;826:#FE0903;829:#FE0603;830:#FE0303;833:#FD0103;834:#FD0004;
837:#FB0004;838:#F90004;841:#F70004;842:#F50004;844:#F30004;845:#F10004;
848:#EF0004;849:#ED0005;852:#EB0005;853:#E90005;856:#E70005;857:#E50005;
860:#E30005;861:#E10006;864:#DF0006;865:#DD0006;868:#DB0006;869:#D90006;
872:#D70006;873:#D50006;876:#D30006;877:#D10007;880:#D00007;881:#CD0007;
883:#CC0007;884:#C90007;887:#C80007;888:#C50008;891:#C40008;892:#C10008;
895:#C00008;896:#BD0008;899:#BC0008;900:#B90008;903:#B80008;904:#B50009;
907:#B40009;908:#B10009;911:#B00009;912:#AD0009;915:#AC0009;916:#AA000A;
919:#A9000A;920:#A6000A;922:#A5000A;923:#A2000A;926:#A1000A;927:#9E000A;
930:#9D000A;931:#9A000B;934:#99000B;935:#96000B;938:#95000B;939:#92000B;
942:#91000B;943:#8E000C;946:#8D000C;947:#8A000C;950:#89000C;951:#86000C;
954:#85000C;955:#82000C;958:#81000C;959:#7E000D;961:#7D000D;962:#7A000D;
965:#79000D;966:#76000D;969:#75000D;970:#72000E;973:#71000E;974:#6E000E;
977:#6D000E;978:#6A000E;981:#69000E;982:#66000E;985:#65000E;986:#62000F;
989:#61000F;990:#5E000F;993:#5D000F;994:#5A000F;997:#59000F;998:#570010
#!/usr/bin/env bash
set -ex
gm convert $1 txt:- | grep --color=never -o "#[0-9A-F]\{6\}" | ./hex2geotrellis.py
#!/usr/bin/env python
from __future__ import print_function
import sys
import operator
colors = [line[:7] for line in sys.stdin.readlines()]
colors_with_index = zip(colors, xrange(len(colors)))
colors_with_min_index = {}
for color, index in colors_with_index:
colors_with_min_index[color] = min(colors_with_min_index[color], index) \
if color in colors_with_min_index else index
colors_with_min_index_sorted = sorted(colors_with_min_index.items(),
key=operator.itemgetter(1))
print(';'.join(['{}:{}'.format(index, color)
for color, index in colors_with_min_index_sorted]))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment