cursor.executemany("SQL EXEC STATEMENT", data, batcherrors=True)
for error in cursor.getbatcherrors():
print("Error", error.message, "at row offset", error.offset)
cursor.executemany("SQL EXEC STATEMENT", data, batcherrors=True)
for error in cursor.getbatcherrors():
print("Error", error.message, "at row offset", error.offset)
Here I summarise two approach for calculating the viewing location in Cesium viewer:
Method 1 (using Camera.computeViewRectangle() method)
var projection = new Cesium.WebMercatorProjection();
var rect = new Cesium.Rectangle()
viewer.camera.computeViewRectangle(projection.ellipsoid, rect)
let rect_x = (rect.east - rect.west)/2 + rect.west;
let rect_y = (rect.north - rect.south)/2 + rect.south;
var rect_lon = Cesium.Math.toDegrees(rect_y);
var rect_lat = Cesium.Math.toDegrees(rect_x);
console.log(rect_lat, rect_lon)
Note: The computeViewRectangle( ) could be very large when the view pitch is very flat, resulting in a very far point being calculated.
Method 2 (using Camera.computeViewRectangle() method)
var cc = document.getElementById("cesiumContainer");
var screenCenterPt = new Cesium.Cartesian2(cc.offsetWidth/2, cc.offsetHeight/2);
var pick = viewer.scene.globe.pick(viewer.camera.getPickRay(screenCenterPt), viewer.scene);
if (pick) {
var geoPt = viewer.scene.globe.ellipsoid.cartesianToCartographic(pick);
var point = [geoPt.longitude/ Math.PI * 180, geoPt.latitude/ Math.PI * 180];
var rect_lon = point[0];
var rect_lat = point[1];
console.log(rect_lat, rect_lon);
}
Note: It uses screen center to calculate the point, seems to be more useful.
expand-wildcard.bat
@echo off
setlocal EnableDelayedExpansion
set params=command
for %%a in ("%~1") do (
set params=!params! %%a
)
echo %params%
%params%
C:\>expand-wildcard filename*
C:\>command filename1 filename2 filename3 filename4 ..
When I connect to a Linux machine via ssh, it waits a long time (~ 10secs) before showing me the password prompt.
After some research, I found that it's caused by the GSS API authentication issue. Some suggestions to solve this issues are listed below (either one of this will work):
Modify the file "/etc/ssh/sshd_config", disable the "GSSAPIAuthentication" by:
GSSAPIAuthentication no
Connection > SSH > Auth > GSSAPI
Uncheck "Attempt GSSAPI authentication (SSH-2 only)"
In GeoNework (3.x), the XSL caching is enabled by default. To disable this, we can modify the following:
In the ZIP GeoNetwork version, find the file "<GeoNetwork-Directory>/web/geonetwork/WEB-INF/classes/META-INF/services/javax.xml.transform.TransformerFactory"
This file should contains the following:
de.fzi.dbs.xml.transform.CachingTransformerFactory
Change this to the following:
net.sf.saxon.TransformerFactoryImpl
Then the XSL transformation will not be cached.
Reference: http://mapas.mda.gov.br/geonetwork/docs/eng/users/quickstartguide/installing/index.html
Just being asked to convert string "1/1/2020 0:00' to date field in Oracle, and come up with this:
select to_date('1/1/2020 0:00', 'dd/mm/yyyy hh24:mi') from dual
According to the documentation in GeoPandas, the following codes could read a local GeoJSON file and import to a PostGIS DB:
import geopandas
from sqlalchemy import create_engine
path_to_data = "./my_file.geojson"
gdf = geopandas.read_file(path_to_data)
db_connection_url = "postgres://user:pwd@localhost:5432/db";
engine = create_engine(db_connection_url)
gdf.to_postgis("my_file_table", con=engine)
I found the following tips:
In lubuntu 20.04, we can install CKAN from package via the following command:
# dpkg -i python-ckan_2.9-py3-focal_amd64.deb
The system fails with the following error:
ModuleNotFoundError: No module named 'distutils.core'
This error is caused by missing some essential Python modules, to solve this problem, install the 'python3-distutils' package by:
sudo apt-get install python3-distutils
You can use "ckan seed" to create sample datasets
e.g. ckan seed basic, which creates two datasets:
BUT, after you delete the two datasets, either via
User Interface
OR
CLI:
ckan dataset delete annakarenina
ckan dataset purge annakarenina
You cannot run the "ckan seed basic" again to regenerate the two datasets.
Why?
Since there are two records still in table "group" and 5 records created in table "user" (They are created by "ckan seed basic"). Remove those records and then you can run the "ckan seed basic" again.
I'd been creating a shared folder in VirtualBox guest (Lubuntu) in a Ubuntu host. While the folder path I entered is a symbolic link, it just NOT work at all.
So, always remember the "Folder Path" has to be a REAL PATH, no symbolic link !!
If your conda env is nodejs v18, doing a conda install nodejs=26 is likely to create a lot of conflict. Consider remove those conflicting p...