New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

ascii-grid

Package Overview
Dependencies
Maintainers
1
Versions
19
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ascii-grid - npm Package Compare versions

Comparing version 0.0.1 to 0.1.0

3

package.json
{
"name": "ascii-grid",
"version": "0.0.1",
"version": "0.1.0",
"description": "Identify and Read an ARC/INFO ASCII Grid",
"main": "src",
"scripts": {
"format": "npx prettier --write test.js src/*.js",
"test": "ava"

@@ -8,0 +9,0 @@ },

const NEWLINE_CHARCODE = "\n".charCodeAt(0);
module.exports = (input, options={}) => {
const debug = options.debug || false;
module.exports = (input, options = {}) => {
const debug = options.debug || false;
const result = {};
if (typeof Buffer !== 'undefined' && Buffer.isBuffer(input)) {
let i = 0;
const result = {};
if (typeof Buffer !== "undefined" && Buffer.isBuffer(input)) {
let i = 0;
// parse metadata
let line = null;
// parse metadata
let line = null;
const read_length = Math.min(input.length, max_read_length);
for (i = 0; i < read_length; i++) {
const char = String.fromCharCode(input[i]);
if (char === "\n") {
const [param, value] = line.split(" ");
result[param] = Number.parseFloat(value);
line = null;
} else if (line === null) {
if (['-','0','1','2','3','4','5','6','7','8','9'].includes(char)) {
break;
} else {
line = char;
}
} else {
line += char;
}
const read_length = Math.min(input.length, max_read_length);
for (i = 0; i < read_length; i++) {
const char = String.fromCharCode(input[i]);
if (char === "\n") {
const [param, value] = line.split(" ");
result[param] = Number.parseFloat(value);
line = null;
} else if (line === null) {
if (
["-", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"].includes(char)
) {
break;
} else {
line = char;
}
} else {
line += char;
}
}
}
if (input instanceof ArrayBuffer) input = new DataView(input);
if (input instanceof ArrayBuffer) input = new DataView(input);
if (input instanceof DataView) {
const decoded = "";
input = decoded;
}
if (debug) console.log("result:", result);
return result;
if (input instanceof DataView) {
const decoded = "";
input = decoded;
}
if (debug) console.log("result:", result);
return result;
};
const MAX_READ_LENGTH = 500;
module.exports = (input, options={}) => {
const debug = options.debug || false;
if (typeof Buffer !== 'undefined' && Buffer.isBuffer(input)) {
if (input.toString) {
input = input.toString('utf8', 0, MAX_READ_LENGTH);
if (debug) console.log("converted input to a string");
} else {
return false;
}
module.exports = (input, options = {}) => {
const debug = options.debug || false;
if (typeof Buffer !== "undefined" && Buffer.isBuffer(input)) {
if (input.toString) {
input = input.toString("utf8", 0, MAX_READ_LENGTH);
if (debug) console.log("converted input to a string");
} else {
return false;
}
}
if (debug) console.log("input is:", input);
if (debug) console.log("input is:", input);
if (input instanceof ArrayBuffer) input = new DataView(input);
if (input instanceof ArrayBuffer) input = new DataView(input);
if (input instanceof DataView) {
const decoded = "";
const length = Math.min(MAX_READ_LENGTH, input.byteLength);
for (let i = 0; i < length; i++) {
decoded += String.fromCharCode(input.getUint8(i));
}
input = decoded;
if (input instanceof DataView) {
const decoded = "";
const length = Math.min(MAX_READ_LENGTH, input.byteLength);
for (let i = 0; i < length; i++) {
decoded += String.fromCharCode(input.getUint8(i));
}
input = decoded;
}
if (input instanceof Uint8Array) {
const decoded = "";
for (let i = 0; i < Math.min(MAX_READ_LENGTH, input.length); i++) {
decoded += String.fromCharCode(input[i]);
}
input = decoded;
if (input instanceof Uint8Array) {
const decoded = "";
for (let i = 0; i < Math.min(MAX_READ_LENGTH, input.length); i++) {
decoded += String.fromCharCode(input[i]);
}
input = decoded;
}
if (typeof input === 'string') {
if (debug) console.log("input is a string");
return (
input.endsWith(".asc")
|| input.endsWith(".ASC")
|| (input.includes('ncols') && input.includes('nrows'))
);
} else {
return false;
}
if (typeof input === "string") {
if (debug) console.log("input is a string");
return (
Boolean(input.match(/.asc(.gz|.tar|.tar.gz|.tgz|.zip)?$/i)) ||
(input.includes("ncols") && input.includes("nrows"))
);
} else {
return false;
}
};
const NEWLINE_CHARCODE = "\n".charCodeAt(0);
module.exports = (input, options={}) => {
const debug = options.debug || false;
const max_read_length = options.max_read_length || 500;
module.exports = (input, options = {}) => {
const debug = options.debug || false;
const max_read_length = options.max_read_length || 500;
const result = {};
if (typeof Buffer !== 'undefined' && Buffer.isBuffer(input)) {
let i = 0;
const result = {};
if (typeof Buffer !== "undefined" && Buffer.isBuffer(input)) {
let i = 0;
// parse metadata
let line = null;
// parse metadata
let line = null;
const read_length = Math.min(input.length, max_read_length);
for (i = 0; i < read_length; i++) {
const char = String.fromCharCode(input[i]);
if (char === "\n") {
const [param, value] = line.split(" ");
result[param] = Number.parseFloat(value);
line = null;
} else if (line === null) {
if (['-','0','1','2','3','4','5','6','7','8','9'].includes(char)) {
break;
} else {
line = char;
}
} else {
line += char;
}
const read_length = Math.min(input.length, max_read_length);
for (i = 0; i < read_length; i++) {
const char = String.fromCharCode(input[i]);
if (char === "\n") {
const [param, value] = line.split(" ");
result[param] = Number.parseFloat(value);
line = null;
} else if (line === null) {
if (
["-", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"].includes(char)
) {
break;
} else {
line = char;
}
} else {
line += char;
}
}
}
if (input instanceof ArrayBuffer) input = new DataView(input);
if (input instanceof ArrayBuffer) input = new DataView(input);
if (input instanceof DataView) {
const decoded = "";
input = decoded;
}
if (debug) console.log("result:", result);
return result;
if (input instanceof DataView) {
const decoded = "";
input = decoded;
}
if (debug) console.log("result:", result);
return result;
};

@@ -1,27 +0,33 @@

const { readFileSync } = require('fs');
const test = require('ava');
const { readFileSync } = require("fs");
const test = require("ava");
const isAsciiGrid = require('./src/is-ascii-grid');
const parseAsciiGridMetaData = require('./src/parse-ascii-grid-meta');
const isAsciiGrid = require("./src/is-ascii-grid");
const parseAsciiGridMetaData = require("./src/parse-ascii-grid-meta");
test('identifying ascii grid file', async t => {
const buffer = readFileSync('./test_data/michigan_lld/michigan_lld.asc');
const bufferIsAsciiGrid = isAsciiGrid(buffer, { debug: false });
t.is(bufferIsAsciiGrid, true);
test("identifying ascii grid file extensions", async (t) => {
t.true(isAsciiGrid("michigan_lld.asc"));
t.true(isAsciiGrid("michigan_lld.asc.tar"));
t.true(isAsciiGrid("michigan_lld.asc.tar.gz"));
t.true(isAsciiGrid("michigan_lld.asc.zip"));
t.false(isAsciiGrid("michigan_lld.asc.json"));
});
test("identifying ascii grid file", async (t) => {
const buffer = readFileSync("./test_data/michigan_lld/michigan_lld.asc");
const bufferIsAsciiGrid = isAsciiGrid(buffer, { debug: false });
t.is(bufferIsAsciiGrid, true);
});
test('reading ascii metadata', async t => {
const buffer = readFileSync('./test_data/michigan_lld/michigan_lld.asc');
const meta = parseAsciiGridMetaData(buffer, { debug: false });
test("reading ascii metadata", async (t) => {
const buffer = readFileSync("./test_data/michigan_lld/michigan_lld.asc");
const meta = parseAsciiGridMetaData(buffer, { debug: false });
// check metadata
t.is(meta.ncols, 4201);
t.is(meta.nrows, 5365);
t.is(meta.xllcenter, -88);
t.is(meta.yllcenter, 41.62);
t.is(meta.cellsize, 0.0008333333333);
t.is(meta.nodata_value, -9999);
// check metadata
t.is(meta.ncols, 4201);
t.is(meta.nrows, 5365);
t.is(meta.xllcenter, -88);
t.is(meta.yllcenter, 41.62);
t.is(meta.cellsize, 0.0008333333333);
t.is(meta.nodata_value, -9999);
});
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc